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

# Conflicts:
#	.gitignore
#	Service/Plugins/PluginLoader.cs
This commit is contained in:
Marcel Hirschle
2021-06-10 14:54:07 +02:00
937 changed files with 205046 additions and 17898 deletions

11
.gitignore vendored
View File

@@ -503,6 +503,17 @@
/ReportImp/VereinSozialmedizinStade/obj/Release
/ReportImp/VereinSozialmedizinStade/obj/Debug
/ReportImp/BewegtSystemischeBeratung/obj/Release
/ReportImp/TeamPfeil/obj/Release
/ReportImp/Bewolonia/obj/Debug
/ReportImp/AlzeyTeilhabe/obj/Debug
/ReportImp/AlzeyTeilhabe/obj/Release
/ReportImp/Bewolonia/obj/Release
/ReportImp/ForumEV/obj/Release
/ReportImp/Kette2/obj/Debug
/ReportImp/Kette2/obj/Release
/ReportImp/ForumEV/obj/Debug
/ReportImp/LebenshilfeDuisburgAtz/obj/Debug
/ReportImp/LebenshilfeDuisburgAtz/obj/Release
/ReportImp/VaroSozialagentur/obj/Debug
/ReportImp/AmbulantBetreutesWohnenAstridPulm/obj/Debug
/ReportImp/VaroSozialagentur/obj/Release

View File

@@ -2355,6 +2355,7 @@
<None Include="app.config">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@@ -291,7 +291,8 @@
<!-- Region Start -->
<Label x:Name="StartLabel" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" Content="Start" />
<dxe:DateEdit Grid.Column="1" Grid.Row="2" MaskType="DateTimeAdvancingCaret" Background="White"
Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayStartDate}" x:Name="StartDateDateEdit" />
Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayStartDate}" x:Name="StartDateDateEdit"
EditValueChanged="StartDate_OnChange" />
<dxe:TextEdit Grid.Column="2" Grid.Row="2" IsEnabled="{Binding Path=Controller.AllDay, Converter={StaticResource BoolReverseConverter}}"
MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23"
EditValue ="{Binding Controller.DisplayStartTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="StartTimeTextEdit"/>
@@ -301,7 +302,8 @@
<!-- Region Ende -->
<Label x:Name="EndLabel" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" Content="Ende"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="3" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80"
Margin="3" EditValue="{Binding Controller.DisplayEndDate}" x:Name="EndDate" />
Margin="3" EditValue="{Binding Controller.DisplayEndDate}" x:Name="EndDate"
EditValueChanged="EndDate_OnChange" />
<dxe:TextEdit Grid.Column="2" Grid.Row="3" IsEnabled="{Binding Path=Controller.AllDay, Converter={StaticResource BoolReverseConverter}}" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding Controller.DisplayEndTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="EndTime"/>
<!-- Endregion -->

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Windows;
@@ -23,7 +22,6 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using DevExpress.Mvvm.Native;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Scheduler.UI;
using DevExpress.XtraScheduler;
@@ -474,7 +472,6 @@ namespace BeWo.Scheduler.View
var employeeOids = new List<long>();
var customerOids = new List<long>();
var overlaps = false;
foreach (var emp in employees)
{
@@ -488,22 +485,23 @@ namespace BeWo.Scheduler.View
var item = (SchedulerAppointmentVM) Appointment.GetSourceObject(Control.GetCoreStorage());
//if(!IsInTaskViewMode){
// ServiceFacade.DoResourceServiceSync(definedBelow => overlaps = definedBelow.OverlappingAppointmentsExist(Appointment.Start, Appointment.End, employeeOids, customerOids, resources.Select(res => res.ResourceOid.Value).ToList(), ViewModel.NewVM.Originator.EmployeeOid, item?.CommitToDataContract().SchedulerAppointmentOid, string.Empty, Appointment.RecurrenceIndex));
//var overlaps = false;
//if(!IsInTaskViewMode){
// ServiceFacade.DoResourceServiceSync(definedBelow => overlaps = definedBelow.OverlappingAppointmentsExist(Appointment.Start, Appointment.End, employeeOids, customerOids, resources.Select(res => res.ResourceOid.Value).ToList(), ViewModel.NewVM.Originator.EmployeeOid, item?.CommitToDataContract().SchedulerAppointmentOid, string.Empty, Appointment.RecurrenceIndex));
// if (overlaps)
// {
// var erg = MessageBox.Show("Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.\n Möchten Sie ihn wirklich speichern?", "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
// if (overlaps)
// {
// var erg = MessageBox.Show("Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.\n Möchten Sie ihn wirklich speichern?", "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
// if (erg.Equals(MessageBoxResult.No))
// {
// Controller.Storage.EndUpdate();
// return;
// }
// }
//}
// if (erg.Equals(MessageBoxResult.No))
// {
// Controller.Storage.EndUpdate();
// return;
// }
// }
//}
ViewModel.ShouldLockOverlappingAppointmentCheck = Appointment.Type == AppointmentType.ChangedOccurrence;
ViewModel.ShouldLockOverlappingAppointmentCheck = Appointment.Type == AppointmentType.ChangedOccurrence;
if (Appointment.RecurrenceInfo != null)
{
@@ -680,39 +678,40 @@ namespace BeWo.Scheduler.View
private void AllDay_OnCheckedChange(object sender, RoutedEventArgs e)
{
var source = (CheckEdit) e.Source;
var value = source.IsChecked ?? false;
//var source = (CheckEdit)e.Source;
//var value = source.IsChecked ?? false;
if(value == false && _HasBeenUnchecked == false)
{
var displayStart = NewSchedulerAppointmentFormController.DisplayStart;
var start = NewSchedulerAppointmentFormController.Start;
var end = NewSchedulerAppointmentFormController.End;
//if(value == false && _HasBeenUnchecked == false)
//{
// var displayStart = NewSchedulerAppointmentFormController.DisplayStart;
// var start = NewSchedulerAppointmentFormController.Start;
// var end = NewSchedulerAppointmentFormController.End;
if(!end.Equals(start))
{
_HasBeenUnchecked = true;
// if(!end.Equals(start))
// {
// _HasBeenUnchecked = true;
var day = displayStart.Day;
var month = displayStart.Month;
var year = displayStart.Year;
// var day = displayStart.Day;
// var month = displayStart.Month;
// var year = displayStart.Year;
var newEndDay = (end.AddDays(-1) >= start ? end.AddDays(-1) : start).Day;
// var newEndDay = (end.AddDays(-1) >= start ? end.AddDays(-1) : start).Day;
var newStart = new DateTime(year, month, day, 0, 0, 0);
var newEnd = new DateTime(year, month, newEndDay, 1, 0, 0);
// var newStart = new DateTime(year, month, day, 0, 0, 0);
// var newEnd = new DateTime(year, month, newEndDay, 1, 0, 0);
NewSchedulerAppointmentFormController.Start = newStart;
NewSchedulerAppointmentFormController.End = newEnd;
// NewSchedulerAppointmentFormController.Start = newStart;
// NewSchedulerAppointmentFormController.End = newEnd;
NewSchedulerAppointmentFormController.DisplayStart = newStart;
NewSchedulerAppointmentFormController.DisplayEnd = newEnd;
// NewSchedulerAppointmentFormController.DisplayStart = newStart;
// NewSchedulerAppointmentFormController.DisplayEnd = newEnd;
NewSchedulerAppointmentFormController.DisplayStartTime = new TimeSpan(0, 0, 0, 0);
NewSchedulerAppointmentFormController.DisplayEndTime = new TimeSpan(0, 1, 0, 0);
_HasBeenUnchecked = true;
}
}
// NewSchedulerAppointmentFormController.DisplayStartTime = new TimeSpan(0, 0, 0, 0);
// NewSchedulerAppointmentFormController.DisplayEndTime = new TimeSpan(0, 1, 0, 0);
// _HasBeenUnchecked = true;
// }
//}
}
private void DueDate_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
@@ -726,6 +725,34 @@ namespace BeWo.Scheduler.View
NewSchedulerAppointmentFormController.DisplayEndDate = newEnd;
}
}
/*
* Appointment.End:
* ======================================================================================================
* The End property is usually specified by the Appointment.Start and Appointment.
* Duration properties, and is always calculated as End = Start + Duration.
* When setting the End property, the Appointment. Start property retains its value, and the Appointment.
* Duration is changed according to the new value of the End property.
* If the new Appointment. End property's value is less than the Appointment.
* Start property's value, an exception is raised.
*
*/
private void StartDate_OnChange(object sender, EditValueChangedEventArgs e)
{
var newStartDate = (DateTime?) e.NewValue;
var oldStartDate = (DateTime?) e.OldValue;
//BeWoApp.LogMessage($"EndDates: {newStartDate:dd.MM.yyyy HH:mm} vs. {oldStartDate:dd.MM.yyyy HH:mm}", DebugWindowMessageColor.Red);
}
private void EndDate_OnChange(object sender, EditValueChangedEventArgs e)
{
var newEndDate = (DateTime?) e.NewValue;
var oldEndDate = (DateTime?) e.OldValue;
//BeWoApp.LogMessage($"EndDates: {newEndDate:dd.MM.yyyy HH:mm} vs. {oldEndDate:dd.MM.yyyy HH:mm}", DebugWindowMessageColor.Red);
}
}
public class NewSchedulerAppointmentFormController : AppointmentFormController

View File

@@ -331,17 +331,17 @@ namespace BeWo.Scheduler.ViewModel
private void UpdateSchedulerAppointment(Appointment app, SchedulerAppointmentVM vm)
{
vm.EmployeeList = app.CF_EmployeeList();
vm.CustomerList = app.CF_CustomerList();
vm.ResourceList = app.CF_ResourceList();
vm.Originator = app.CF_Originator();
vm.IsPrivate = app.CF_IsPrivate();
vm.IsTask = app.CF_IsTask();
vm.DueDate = app.CF_DueDate();
vm.CompletedDate = app.CF_CompletedDate();
vm.CompletedNotice = app.CF_CompletedNotice();
vm.TaskDescription = app.CF_TaskDescription();
vm.SupportConceptList = app.CF_SupportConceptList();
vm.EmployeeList = app.CF_EmployeeList();
vm.CustomerList = app.CF_CustomerList();
vm.ResourceList = app.CF_ResourceList();
vm.Originator = app.CF_Originator();
vm.IsPrivate = app.CF_IsPrivate();
vm.IsTask = app.CF_IsTask();
vm.DueDate = app.CF_DueDate();
vm.CompletedDate = app.CF_CompletedDate();
vm.CompletedNotice = app.CF_CompletedNotice();
vm.TaskDescription = app.CF_TaskDescription();
vm.SupportConceptList = app.CF_SupportConceptList();
vm.HasServiceRecordEntry = app.CF_HasServiceRecordEntry();
if(vm.IsTask)

View File

@@ -142,7 +142,7 @@
</TextBlock.Text></TextBlock>
<TextBlock HorizontalAlignment="Right" VerticalAlignment="Center" FontWeight="Bold"
Margin="0 5 5 0" Height="50" FontSize="14"
Text="{Binding EndClaim, Mode=OneWay, StringFormat=\{0:0.00\} €}" Grid.Column="2"
Text="{Binding EndClaim, Mode=OneWay, StringFormat=\{0:c\}}" Grid.Column="2"
Grid.RowSpan="3" />
<Border VerticalAlignment="Stretch" CornerRadius="0 0 5 5" HorizontalAlignment="Stretch"
BorderBrush="{x:Null}" BorderThickness="0 1 0 0" Grid.Row="3" Grid.ColumnSpan="3"

View File

@@ -427,12 +427,12 @@ namespace BeWo.View.Detail
}
var test = e.GetPosition(ChartRatings);
tooltip1.PlacementTarget = chkShowServiceRecordRatings;
tooltip1.PlacementTarget = ChartRatings;
tooltip1.Placement = PlacementMode.Left;
//tooltip1.HorizontalOffset = test.X + 10;
//tooltip1.VerticalOffset = test.Y - 10;
tooltip1.HorizontalOffset = test.X + 10;
tooltip1.VerticalOffset = test.Y - 10;
tooltip1.PopupAnimation = PopupAnimation.Fade;
//tooltip1.HorizontalOffset = 10;

View File

@@ -471,19 +471,20 @@ namespace BeWo.View
#if DEBUG
//OpenServiceRecordEditViewTest();
//return;
var kundennummer = "5473568546";
//var apikey = "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97";
Login _login = new Login(kundennummer, "kihqx-PiGka", "cb", "bewo", "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97");
var x1 = _login.AnmeldevorgangDurchFuehren();
ServiceChatView = new ChatView(x1);
ServiceChatView.Show();
return;
#endif
//#if DEBUG
// var kundennummer = "5473568546";
// //var apikey = "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97";
// Login _login = new Login(kundennummer, "kihqx-PiGka", "cb", "bewo", "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97");
// var x = _login.AnmeldevorgangDurchFuehren();
// ServiceChatView = new ChatView(x);
// ServiceChatView.Show();
//#else
if (ServiceChatView?.Visibility != Visibility.Visible)
{
@@ -495,6 +496,7 @@ namespace BeWo.View
string _benutzername = "muellerp";
string _passwort = "F5aTk9Co47JFJCWB2Z7Y";
string _apikey;
#else
var empAppCodes = ServiceFacade.DoEmployeeServiceSync(r => r.GetAllEmployeeAppCodes(BeWoApp.LoggedOnUser.Employee.EmployeeOid));

View File

@@ -124,12 +124,15 @@ namespace BeWo.View.Report.Rating
if (SupportConceptRatingView.RatingList != null)
{
var scgoals = SupportConceptRatingView.RatingList.DCBackup;
url += "&scgoals=";
foreach (var goal in scgoals)
if (scgoals.Count > 0)
{
url += goal.RatingOid;
if (scgoals[scgoals.Count - 1] != goal)
url += ",";
url += "&scgoals=";
foreach (var goal in scgoals)
{
url += goal.RatingOid;
if (scgoals[scgoals.Count - 1] != goal)
url += ",";
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -281,18 +281,11 @@
<Content Include="Content\style.css.map" />
<Content Include="Content\style.scss" />
<Content Include="Content\fonts\signika-negative.regular.ttf" />
<None Include="Scripts\jquery-3.4.1.intellisense.js" />
<Content Include="Scripts\jquery-3.4.1.js" />
<Content Include="Scripts\jquery-3.4.1.min.js" />
<Content Include="Scripts\jquery-3.4.1.slim.js" />
<Content Include="Scripts\jquery-3.4.1.slim.min.js" />
<Content Include="Scripts\jquery.unobtrusive-ajax.js" />
<Content Include="Scripts\jquery.unobtrusive-ajax.min.js" />
<None Include="Scripts\jquery.validate-vsdoc.js" />
<Content Include="Scripts\jquery.validate.js" />
<Content Include="Scripts\jquery.validate.min.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
<None Include="Scripts\jquery-3.6.0.intellisense.js" />
<Content Include="Scripts\jquery-3.6.0.js" />
<Content Include="Scripts\jquery-3.6.0.min.js" />
<Content Include="Scripts\jquery-3.6.0.slim.js" />
<Content Include="Scripts\jquery-3.6.0.slim.min.js" />
<Content Include="Scripts\locale\de.js" />
<Content Include="Scripts\mobileUtils.js" />
<Content Include="Scripts\moment-with-locales.js" />
@@ -558,10 +551,6 @@
<ItemGroup>
<Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" />
</ItemGroup>
<ItemGroup>
<Content Include="Scripts\jquery-3.4.1.min.map" />
<Content Include="Scripts\jquery-3.4.1.slim.min.map" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj">
<Project>{b0d73e3d-4ae7-4024-93a6-db1f46d7ccee}</Project>
@@ -580,6 +569,12 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Scripts\jquery-3.6.0.slim.min.map" />
</ItemGroup>
<ItemGroup>
<Content Include="Scripts\jquery-3.6.0.min.map" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>

View File

@@ -256,6 +256,10 @@ namespace BeWoPlanerMobil.Controllers
instsStr = insTs.Value.ToString("dd.MM.yyyy");
}
//if (employee.Person.LastName == "Rapko")
//{
// int test = 0;
//}
if (applicationUsers.ContainsKey(employee.Oid))
{
miInput = new JsonRueckgabeMitarbeiterInput(applicationUsers[employee.Oid].Oid.ToString(), employee.Oid.ToString(), "1", applicationUsers[employee.Oid].LoginName,

View File

@@ -64,7 +64,6 @@ namespace BeWoPlanerMobil.Controllers
if(Model.Employee?.EmployeeOid.HasValue ?? false)
{
//Model.Customers = EmployeeService.GetActiveCompactCustomersForEmployee(Model.Employee.EmployeeOid.Value).OrderBy(customer => customer.LastName).ToList();
Model.Customers = EmployeeService.GetActiveCustomersForEmployee(Model.Employee.EmployeeOid.Value, Model.SelectedCustomerFilter).OrderBy(customer => customer.LastName).ToList();
}
else
@@ -83,10 +82,10 @@ namespace BeWoPlanerMobil.Controllers
InitViewModel();
if (customerOid.HasValue && customerOid > 0)
if (customerOid.HasValue && customerOid > 0 && Model.Customers.Any(customer => customer.CustomerOid.Equals(customerOid.Value)))
{
Model.SelectedCustomerOid = customerOid;
Model.SelectedCustomer = CustomerService.LoadCustomer(customerOid.Value);
Model.SelectedCustomer = CustomerService.LoadCustomer(customerOid.Value);
}
return RedirectToActionPermanent("Customer");
@@ -106,10 +105,14 @@ namespace BeWoPlanerMobil.Controllers
var selectedCustomerOidString = formCollection[FormCollectionConstants.SelectedCustomerOidKey];
if (long.TryParse(selectedCustomerOidString, out var selectedCustomerOid))
{
Model.SelectedCustomerOid = selectedCustomerOid == -1 ? (long?) null : selectedCustomerOid;
Model.SelectedCustomer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null;
var isCustomerInList = Model.Customers.Any(customer => customer.CustomerOid == selectedCustomerOid);
if(isCustomerInList)
{
Model.SelectedCustomerOid = selectedCustomerOid == -1 ? (long?)null : selectedCustomerOid;
Model.SelectedCustomer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null;
}
}
return RedirectToActionPermanent("Customer");
}

View File

@@ -124,7 +124,7 @@ namespace BeWoPlanerMobil.Controllers
break;
}
Model.Zeitraum = 7;
Model.Zeitraum = zeitraum;
}
var customerFilter = MobileUserSettingsUtils.GetSettingValueAsEnum(userSettings, SettingsKeys.CustomerFilterInZeiterfassung, CustomerFilterEnum.MyCustomer);
@@ -218,7 +218,7 @@ namespace BeWoPlanerMobil.Controllers
{
if (Model.SelectedSupportConceptListObject != null && !isInList)
{
Log.Info(String.Format("Model.SelectedSupportConceptListObject.Oid = {0} is not in list !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid));
Log.Info($"Model.SelectedSupportConceptListObject.Oid = {Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid} is not in list !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
StringBuilder sb = new StringBuilder();
foreach (var o in Model.SupportConceptListObjects)
@@ -230,7 +230,7 @@ namespace BeWoPlanerMobil.Controllers
sb.Append(o.CostBearer2SupportConceptOid);
}
Log.Info(String.Format("Model.SupportConceptListObjects Oids = {0}", sb.ToString()));
Log.Info($"Model.SupportConceptListObjects Oids = {sb}");
}
//Log.Info(String.Format("Main() Set CostBearer2SupportConceptOid = -1: Model.SelectedSupportConceptListObject == null {0}, isInList {1}", Model.SelectedSupportConceptListObject == null, isInList));
@@ -452,6 +452,26 @@ namespace BeWoPlanerMobil.Controllers
return _LeerzeichenFuerGetMethoden;
}
var isLoaded = false;
foreach(var supportConcept in Model.SupportConcepts)
{
if(supportConcept.CostBearerRelations.Any(supportConceptCostBearerRel => supportConceptCostBearerRel.CostBearer2SupportConceptOid == oid))
{
isLoaded = true;
}
if(isLoaded)
{
break;
}
}
if(!isLoaded)
{
return null;
}
var statisticsInfo = OperationsService.GetServiceRecordStatisticInfo(oid, DateTime.Now);
var supportConceptStatisticsData = new SupportConceptStatisticsData();
@@ -606,6 +626,7 @@ namespace BeWoPlanerMobil.Controllers
}
}
[Authorize]
public static string ApplyWatermark(string blob, string watermarkImagePath)
{
if(string.IsNullOrWhiteSpace(blob))
@@ -658,7 +679,7 @@ namespace BeWoPlanerMobil.Controllers
try
{
var scm = Model?.ServiceCategories.FirstOrDefault(s => s.ServiceCategoryOid.Value == pServiceCategoryOid);
var scm = Model.ServiceCategories.FirstOrDefault(s => s.ServiceCategoryOid.HasValue && s.ServiceCategoryOid.Value == pServiceCategoryOid);
if (scm != null)
{
@@ -689,7 +710,7 @@ namespace BeWoPlanerMobil.Controllers
{
return _LeerzeichenFuerGetMethoden;
}
// Damit sind die allgemeinen gemeint!
var textbausteine = OperationsService.GetAllTextModules();
foreach (var tm in textbausteine)
{
@@ -704,7 +725,9 @@ namespace BeWoPlanerMobil.Controllers
textbausteine = textbausteine.Where(w => w.Employee.EmployeeOid == Model.Employee.EmployeeOid && w.IsOnlyForEmployee).ToList();
}
Model.Textbausteine = textbausteine.Where(w => (w.ServiceCategory == null || w.ServiceCategory.ServiceCategoryOid == pServiceCategoryOid) && !String.IsNullOrEmpty(w.Text)).ToList();
Model.Textbausteine = textbausteine.Where(
w => (w.ServiceCategory == null || w.ServiceCategory.ServiceCategoryOid == pServiceCategoryOid) && !string.IsNullOrEmpty(w.Text)
&& (w.IsOnlyForEmployee && w.Employee.EmployeeOid.Equals(Model.Employee.EmployeeOid) || !w.IsOnlyForEmployee)).ToList();
Model.Textbausteine.AddRangeIfElementsNotIn(Utils.GetParentTextModules(Model.Textbausteine));
@@ -882,7 +905,7 @@ namespace BeWoPlanerMobil.Controllers
if(Model.IsInEditingMode)
{
var selectedRecordOid = Model.SelectedServiceRecordOid ?? Model.SelectedServiceRecord.ServiceRecordOid;
Model.NewServiceRecord = OperationsService.GetServiceRecordById(selectedRecordOid.Value);
Model.NewServiceRecord = Model.GetServiceRecord(selectedRecordOid.Value);
}
if(Model.NewServiceRecord == null)
@@ -1020,6 +1043,7 @@ namespace BeWoPlanerMobil.Controllers
return ResetEditingMode();
}
[Authorize]
private ActionResult SaveGroupBooking()
{
var employeeCount = Model.SelectedEmployees.Count;
@@ -1079,6 +1103,7 @@ namespace BeWoPlanerMobil.Controllers
return ResetEditingMode();
}
[Authorize]
private ActionResult UpdateGroupBooking()
{
var dc = Model.SelectedServiceRecord;
@@ -1204,6 +1229,7 @@ namespace BeWoPlanerMobil.Controllers
return ResetEditingMode();
}
[Authorize]
private IEnumerable<ServiceRecordDC> CalculateGroupBookingDuration(int pEmployeeCount, int pCustomerCount, ICollection<long> cb2ScOids)
{
var compactSupportConcepts = CustomerServiceImp.GetCompactSupportConcepts((from sc in Model.SelectedSupportConcepts where sc.SupportConceptOid != null select sc.SupportConceptOid.Value).ToList(), GetUser().Employee.EmployeeOid);
@@ -1321,9 +1347,9 @@ namespace BeWoPlanerMobil.Controllers
}
var dcsToChange = new List<ServiceRecordDC>();
var oldSCs = new Dictionary<long, CompactSupportConceptDC>();
var oldEmps = new Dictionary<long, CompactEmployeeDC>();
var newKeys = new Dictionary<string, string>();
var oldSCs = new Dictionary<long, CompactSupportConceptDC>();
var oldEmps = new Dictionary<long, CompactEmployeeDC>();
var newKeys = new Dictionary<string, string>();
foreach(var sc in Model.SelectedSupportConcepts)
{
@@ -1403,10 +1429,10 @@ namespace BeWoPlanerMobil.Controllers
pGroupDC.ServiceRecordList.Add(newServiceRecord);
}
newServiceRecord.Employee = emp;
newServiceRecord.SupportConcept = CustomerService.LoadCompactSupportConceptDC(sc.SupportConceptOid.Value, null);
newServiceRecord.CostBearer = sc.CostBearerRelations.ElementAt(0).CostBearer;
newServiceRecord.Customer = sc.Customer;
newServiceRecord.Employee = emp;
newServiceRecord.SupportConcept = CustomerService.LoadCompactSupportConceptDC(sc.SupportConceptOid.Value, null);
newServiceRecord.CostBearer = sc.CostBearerRelations.ElementAt(0).CostBearer;
newServiceRecord.Customer = sc.Customer;
newServiceRecord.CostBearer2SupportConceptOid = sc.CostBearerRelations.ElementAt(0).CostBearer2SupportConceptOid;
}
}
@@ -1431,7 +1457,7 @@ namespace BeWoPlanerMobil.Controllers
}
long? cb2ScOid = Convert.ToInt64(formCollection[FormCollectionConstants.CostBearer2SupportConceptOidKey]);
Log.Info(String.Format("SelectSupportConcept: {0}", cb2ScOid));
Log.Info($"SelectSupportConcept: {cb2ScOid}");
LoadServiceCategoriesToModel(cb2ScOid);
@@ -1443,7 +1469,7 @@ namespace BeWoPlanerMobil.Controllers
}
catch (Exception e)
{
Log.Error(String.Format("ERROR SelectSupportConcept: {0}\n{1}", e.Message, e.StackTrace));
Log.Error($"ERROR SelectSupportConcept: {e.Message}\n{e.StackTrace}");
throw;
}
@@ -1454,10 +1480,9 @@ namespace BeWoPlanerMobil.Controllers
{
if (cb2ScOid == null)
{
Log.Info(String.Format("cb2ScOid == null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"));
Log.Info("cb2ScOid == null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
if (cb2ScOid == null && Model.IsInGroupBookingMode)
{
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
@@ -1499,14 +1524,14 @@ namespace BeWoPlanerMobil.Controllers
}
else
{
Log.Info(String.Format("Model.SelectedSupportConcept == null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"));
Log.Info("Model.SelectedSupportConcept == null !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
if (Model.SelectedSupportConceptListObject == null ||
Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid == "-1")
{
Log.Info(String.Format("LoadServiceCategoriesToModel() Model.SelectedSupportConceptListObject == null {0}, Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid == {1}", Model.SelectedSupportConceptListObject == null, Model.SelectedSupportConceptListObject?.CostBearer2SupportConceptOid));
Log.Info($"LoadServiceCategoriesToModel() Model.SelectedSupportConceptListObject == null {Model.SelectedSupportConceptListObject == null}, Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid == {Model.SelectedSupportConceptListObject?.CostBearer2SupportConceptOid}");
}
if (Model.ServiceCategories != null)
@@ -1544,6 +1569,7 @@ namespace BeWoPlanerMobil.Controllers
return RedirectToActionPermanent("Main");
}
[Authorize]
public string UpdateGoals(string pGoalOids)
{
if (Model == null)
@@ -1575,6 +1601,7 @@ namespace BeWoPlanerMobil.Controllers
return _LeerzeichenFuerGetMethoden;
}
[Authorize]
public string SetServiceDescription(long pServiceDescriptionOid)
{
if (Model == null)
@@ -1657,12 +1684,17 @@ namespace BeWoPlanerMobil.Controllers
if (!wasSuccessful)
{
RedirectToActionPermanent("Main");
return RedirectToActionPermanent("Main");
}
Model.SelectedServiceRecordOid = serviceRecordOid;
var selectedServiceRecord = OperationsService.GetServiceRecordById(serviceRecordOid);
var selectedServiceRecord = Model.GetServiceRecord(serviceRecordOid);
if(selectedServiceRecord == null)
{
return RedirectToActionPermanent("Main");
}
Model.SelectedServiceRecord = selectedServiceRecord;
Model.SelectedGoals = selectedServiceRecord.Goals;
@@ -1703,7 +1735,8 @@ namespace BeWoPlanerMobil.Controllers
return RedirectToActionPermanent("Main");
}
[Authorize]
public string GetSelectedRecordInformation()
{
if (Model == null)
@@ -1722,6 +1755,7 @@ namespace BeWoPlanerMobil.Controllers
return result;
}
[Authorize]
public string GetSelectedRecordInformationWithOid(long oid)
{
if (Model == null)
@@ -1823,17 +1857,15 @@ namespace BeWoPlanerMobil.Controllers
var mandator = GetMandator();
var maxDaysEditSRsAllowedString = GetSettingValue(mandator.Settings, "MaxDaysEditServiceRecordsAllowed");
var limitFuerZeiterfassungString = GetSettingValue(mandator.Settings, "AnzTageZeiterfassErfolgt");
var maxDaysEditSRsAllowedString = GetSettingValue(mandator.Settings, SettingsKeys.MaxDaysEditServiceRecordsAllowed);
var limitFuerZeiterfassungString = GetSettingValue(mandator.Settings, SettingsKeys.AnzTageZeiterfassErfolgt);
var isSuccessful1 = int.TryParse(maxDaysEditSRsAllowedString, out var maxDaysEditSRsAllowed);
if (!isSuccessful1)
if (!int.TryParse(maxDaysEditSRsAllowedString, out var maxDaysEditSRsAllowed))
{
maxDaysEditSRsAllowed = 0;
}
var isSuccessful2 = int.TryParse(limitFuerZeiterfassungString, out var limitFuerZeiterfassung);
if(!isSuccessful2)
if(!int.TryParse(limitFuerZeiterfassungString, out var limitFuerZeiterfassung))
{
limitFuerZeiterfassung = 0;
}
@@ -1903,13 +1935,13 @@ namespace BeWoPlanerMobil.Controllers
validationResults.Add(new ServiceRecord2Validation(checkServiceRecord, result, dateRangeString ?? ""));
}
var allowOverlappingFLS = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS);
var allowOverlappingFLSForEmployee = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee);
var allowMoreFLSThanApproved = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved);
var bookAfterSettlementInvoice = MobileSessionFacade.CheckForUserRight(UserRightType.BookServiceRecordAfterSettlementInvoice);
var allowOverlappingFLS = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS);
var allowOverlappingFLSForEmployee = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee);
var allowMoreFLSThanApproved = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved);
var bookAfterSettlementInvoice = MobileSessionFacade.CheckForUserRight(UserRightType.BookServiceRecordAfterSettlementInvoice);
var bookServiceRecordOutOfSupportConcept = MobileSessionFacade.CheckForUserRight(UserRightType.BookServiceRecordOutOfSupportConcept);
var allowCreateAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateAfterEmployeeSignature);
var allowEditAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowEditAfterEmployeeSignature);
var allowCreateAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateAfterEmployeeSignature);
var allowEditAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowEditAfterEmployeeSignature);
var allowCreateAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
var allowEditAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
@@ -2058,7 +2090,12 @@ namespace BeWoPlanerMobil.Controllers
var newResult = new ValidationResult();
var serviceRecord = OperationsService.GetServiceRecordById(serviceRecordOid);
var serviceRecord = Model.GetServiceRecord(serviceRecordOid);
if(serviceRecord == null)
{
return _LeerzeichenFuerGetMethoden;
}
var allowDeleteAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowDeleteAfterEmployeeSignature);
@@ -2087,6 +2124,7 @@ namespace BeWoPlanerMobil.Controllers
: SerializeObject(new ValidationResult {KannTrotzdemGespeichertWerden = true, Message = null});
}
[Authorize]
public string SetServiceRecordEmployee(long employeeOid)
{
try
@@ -2131,6 +2169,7 @@ namespace BeWoPlanerMobil.Controllers
}
}
[Authorize]
public string CheckToken(string token)
{
if(token != null && token.Equals("abcd"))
@@ -2222,22 +2261,22 @@ namespace BeWoPlanerMobil.Controllers
if (pIsInGroupBookingMode)
{
Model.PreviouslySelectedEmployee = Model.SelectedEmployee;
Model.PreviouslySelectedEmployee = Model.SelectedEmployee;
Model.PreviouslySelectedSupportConcept = Model.SelectedSupportConcept;
Model.SelectedSupportConcept = null;
Model.SelectedEmployee = null;
Model.SelectedEmployee = null;
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
Model.SelectedEmployees.AddIfNotIn(MobileSessionFacade.LoggedInCompactEmployee);
Model.IsInEditingMode = false;
Model.IsInEditingMode = false;
Model.SelectedServiceRecord = null;
}
else
{
Model.SelectedEmployee = Model.PreviouslySelectedEmployee;
Model.SelectedEmployee = Model.PreviouslySelectedEmployee;
Model.SelectedSupportConcept = Model.PreviouslySelectedSupportConcept;
Model.ServiceCategories.Clear();
@@ -2275,17 +2314,16 @@ namespace BeWoPlanerMobil.Controllers
return Logout();
}
Model.NewServiceRecord = new ServiceRecordDC();
Model.NewServiceRecord = new ServiceRecordDC();
Model.SelectedServiceRecord = null;
Model.IsInEditingMode = false;
Model.IsInEditingMode = false;
Model.SelectedSupportConcepts.Clear();
Model.SelectedConceptCostBearerRelations.Clear();
Model.SelectedCostbearerRelOids.Clear();
Model.SelectedGroupOfPeopleOids.Clear();
Model.SelectedEmployees = new List<CompactEmployeeDC> { MobileSessionFacade.LoggedInCompactEmployee };
Model.SelectedEmployee = MobileSessionFacade.LoggedInCompactEmployee;
Model.SelectedEmployees = new List<CompactEmployeeDC> { MobileSessionFacade.LoggedInCompactEmployee };
Model.SelectedEmployee = MobileSessionFacade.LoggedInCompactEmployee;
//Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
LoadServiceCategoriesToModel(Model.CostBearer2SupportConceptOid);
var serviceDescriptions = Model.GetServiceDesctiptions();
@@ -2466,8 +2504,8 @@ namespace BeWoPlanerMobil.Controllers
{
customerFilter = CustomerFilterEnum.MyCustomer;
}
UpdateSettings("CustomerFilterInZeiterfassung", customerFilter.ToString());
UpdateSettings(SettingsKeys.CustomerFilterInZeiterfassung, customerFilter.ToString());
return RedirectToActionPermanent("Main");
}

View File

@@ -425,6 +425,14 @@ namespace BeWoPlanerMobil.Controllers
{
var oidList = ConvertOidStringToList(resourceOids);
foreach(var oid in oidList)
{
if(!Model.ResourceCategories2Resources.Any(a => a.Value.All(b => b.ResourceOid != oid)))
{
return JsonConvert.SerializeObject(new List<ResourceDC>());
}
}
var dateTimes = ConvertStringDatesToDateTimes(start, end);
var unavailableResources = KalenderService.CheckResourceAvailability(dateTimes.StartDate, dateTimes.EndDate, oidList, Model.SelectedAppointment?.SchedulerAppointmentOid);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,205 +0,0 @@
// Unobtrusive Ajax support library for jQuery
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// @version v3.2.6
//
// Microsoft grants you the right to use these script files for the sole
// purpose of either: (i) interacting through your browser with the Microsoft
// website or online service, subject to the applicable licensing or use
// terms; or (ii) using the files as included with a Microsoft product subject
// to that product's license terms. Microsoft reserves all other rights to the
// files not expressly granted by Microsoft, whether by implication, estoppel
// or otherwise. Insofar as a script file is dual licensed under GPL,
// Microsoft neither took the code under GPL nor distributes it thereunder but
// under the terms set out in this paragraph. All notices and licenses
// below are for informational purposes only.
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global window: false, jQuery: false */
(function ($) {
var data_click = "unobtrusiveAjaxClick",
data_target = "unobtrusiveAjaxClickTarget",
data_validation = "unobtrusiveValidation";
function getFunction(code, argNames) {
var fn = window, parts = (code || "").split(".");
while (fn && parts.length) {
fn = fn[parts.shift()];
}
if (typeof (fn) === "function") {
return fn;
}
argNames.push(code);
return Function.constructor.apply(null, argNames);
}
function isMethodProxySafe(method) {
return method === "GET" || method === "POST";
}
function asyncOnBeforeSend(xhr, method) {
if (!isMethodProxySafe(method)) {
xhr.setRequestHeader("X-HTTP-Method-Override", method);
}
}
function asyncOnSuccess(element, data, contentType) {
var mode;
if (contentType.indexOf("application/x-javascript") !== -1) { // jQuery already executes JavaScript for us
return;
}
mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
$(element.getAttribute("data-ajax-update")).each(function (i, update) {
var top;
switch (mode) {
case "BEFORE":
$(update).prepend(data);
break;
case "AFTER":
$(update).append(data);
break;
case "REPLACE-WITH":
$(update).replaceWith(data);
break;
default:
$(update).html(data);
break;
}
});
}
function asyncRequest(element, options) {
var confirm, loading, method, duration;
confirm = element.getAttribute("data-ajax-confirm");
if (confirm && !window.confirm(confirm)) {
return;
}
loading = $(element.getAttribute("data-ajax-loading"));
duration = parseInt(element.getAttribute("data-ajax-loading-duration"), 10) || 0;
$.extend(options, {
type: element.getAttribute("data-ajax-method") || undefined,
url: element.getAttribute("data-ajax-url") || undefined,
cache: (element.getAttribute("data-ajax-cache") || "").toLowerCase() === "true",
beforeSend: function (xhr) {
var result;
asyncOnBeforeSend(xhr, method);
result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(element, arguments);
if (result !== false) {
loading.show(duration);
}
return result;
},
complete: function () {
loading.hide(duration);
getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(element, arguments);
},
success: function (data, status, xhr) {
asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html");
getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(element, arguments);
},
error: function () {
getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]).apply(element, arguments);
}
});
options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" });
method = options.type.toUpperCase();
if (!isMethodProxySafe(method)) {
options.type = "POST";
options.data.push({ name: "X-HTTP-Method-Override", value: method });
}
// change here:
// Check for a Form POST with enctype=multipart/form-data
// add the input file that were not previously included in the serializeArray()
// set processData and contentType to false
var $element = $(element);
if ($element.is("form") && $element.attr("enctype") == "multipart/form-data") {
var formdata = new FormData();
$.each(options.data, function (i, v) {
formdata.append(v.name, v.value);
});
$("input[type=file]", $element).each(function () {
var file = this;
$.each(file.files, function (n, v) {
formdata.append(file.name, v);
});
});
$.extend(options, {
processData: false,
contentType: false,
data: formdata
});
}
// end change
$.ajax(options);
}
function validate(form) {
var validationInfo = $(form).data(data_validation);
return !validationInfo || !validationInfo.validate || validationInfo.validate();
}
$(document).on("click", "a[data-ajax=true]", function (evt) {
evt.preventDefault();
asyncRequest(this, {
url: this.href,
type: "GET",
data: []
});
});
$(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
var name = evt.target.name,
target = $(evt.target),
form = $(target.parents("form")[0]),
offset = target.offset();
form.data(data_click, [
{ name: name + ".x", value: Math.round(evt.pageX - offset.left) },
{ name: name + ".y", value: Math.round(evt.pageY - offset.top) }
]);
setTimeout(function () {
form.removeData(data_click);
}, 0);
});
$(document).on("click", "form[data-ajax=true] :submit", function (evt) {
var name = evt.currentTarget.name,
target = $(evt.target),
form = $(target.parents("form")[0]);
form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []);
form.data(data_target, target);
setTimeout(function () {
form.removeData(data_click);
form.removeData(data_target);
}, 0);
});
$(document).on("submit", "form[data-ajax=true]", function (evt) {
var clickInfo = $(this).data(data_click) || [],
clickTarget = $(this).data(data_target),
isCancel = clickTarget && (clickTarget.hasClass("cancel") || clickTarget.attr('formnovalidate') !== undefined);
evt.preventDefault();
if (!isCancel && !validate(this)) {
return;
}
asyncRequest(this, {
url: this.action,
type: this.method || "GET",
data: clickInfo.concat($(this).serializeArray())
});
});
}(jQuery));

View File

@@ -1,16 +0,0 @@
// Unobtrusive Ajax support library for jQuery
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// @version v3.2.6
//
// Microsoft grants you the right to use these script files for the sole
// purpose of either: (i) interacting through your browser with the Microsoft
// website or online service, subject to the applicable licensing or use
// terms; or (ii) using the files as included with a Microsoft product subject
// to that product's license terms. Microsoft reserves all other rights to the
// files not expressly granted by Microsoft, whether by implication, estoppel
// or otherwise. Insofar as a script file is dual licensed under GPL,
// Microsoft neither took the code under GPL nor distributes it thereunder but
// under the terms set out in this paragraph. All notices and licenses
// below are for informational purposes only.
!function(t){function a(t,a){for(var e=window,r=(t||"").split(".");e&&r.length;)e=e[r.shift()];return"function"==typeof e?e:(a.push(t),Function.constructor.apply(null,a))}function e(t){return"GET"===t||"POST"===t}function r(t,a){e(a)||t.setRequestHeader("X-HTTP-Method-Override",a)}function n(a,e,r){var n;r.indexOf("application/x-javascript")===-1&&(n=(a.getAttribute("data-ajax-mode")||"").toUpperCase(),t(a.getAttribute("data-ajax-update")).each(function(a,r){switch(n){case"BEFORE":t(r).prepend(e);break;case"AFTER":t(r).append(e);break;case"REPLACE-WITH":t(r).replaceWith(e);break;default:t(r).html(e)}}))}function i(i,u){var o,c,d,s;if(o=i.getAttribute("data-ajax-confirm"),!o||window.confirm(o)){c=t(i.getAttribute("data-ajax-loading")),s=parseInt(i.getAttribute("data-ajax-loading-duration"),10)||0,t.extend(u,{type:i.getAttribute("data-ajax-method")||void 0,url:i.getAttribute("data-ajax-url")||void 0,cache:"true"===(i.getAttribute("data-ajax-cache")||"").toLowerCase(),beforeSend:function(t){var e;return r(t,d),e=a(i.getAttribute("data-ajax-begin"),["xhr"]).apply(i,arguments),e!==!1&&c.show(s),e},complete:function(){c.hide(s),a(i.getAttribute("data-ajax-complete"),["xhr","status"]).apply(i,arguments)},success:function(t,e,r){n(i,t,r.getResponseHeader("Content-Type")||"text/html"),a(i.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(i,arguments)},error:function(){a(i.getAttribute("data-ajax-failure"),["xhr","status","error"]).apply(i,arguments)}}),u.data.push({name:"X-Requested-With",value:"XMLHttpRequest"}),d=u.type.toUpperCase(),e(d)||(u.type="POST",u.data.push({name:"X-HTTP-Method-Override",value:d}));var p=t(i);if(p.is("form")&&"multipart/form-data"==p.attr("enctype")){var f=new FormData;t.each(u.data,function(t,a){f.append(a.name,a.value)}),t("input[type=file]",p).each(function(){var a=this;t.each(a.files,function(t,e){f.append(a.name,e)})}),t.extend(u,{processData:!1,contentType:!1,data:f})}t.ajax(u)}}function u(a){var e=t(a).data(d);return!e||!e.validate||e.validate()}var o="unobtrusiveAjaxClick",c="unobtrusiveAjaxClickTarget",d="unobtrusiveValidation";t(document).on("click","a[data-ajax=true]",function(t){t.preventDefault(),i(this,{url:this.href,type:"GET",data:[]})}),t(document).on("click","form[data-ajax=true] input[type=image]",function(a){var e=a.target.name,r=t(a.target),n=t(r.parents("form")[0]),i=r.offset();n.data(o,[{name:e+".x",value:Math.round(a.pageX-i.left)},{name:e+".y",value:Math.round(a.pageY-i.top)}]),setTimeout(function(){n.removeData(o)},0)}),t(document).on("click","form[data-ajax=true] :submit",function(a){var e=a.currentTarget.name,r=t(a.target),n=t(r.parents("form")[0]);n.data(o,e?[{name:e,value:a.currentTarget.value}]:[]),n.data(c,r),setTimeout(function(){n.removeData(o),n.removeData(c)},0)}),t(document).on("submit","form[data-ajax=true]",function(a){var e=t(this).data(o)||[],r=t(this).data(c),n=r&&(r.hasClass("cancel")||void 0!==r.attr("formnovalidate"));a.preventDefault(),(n||u(this))&&i(this,{url:this.action,type:this.method||"GET",data:e.concat(t(this).serializeArray())})})}(jQuery);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,432 +0,0 @@
// Unobtrusive validation support library for jQuery and jQuery Validate
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// @version v3.2.11
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global document: false, jQuery: false */
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define("jquery.validate.unobtrusive", ['jquery-validation'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports
module.exports = factory(require('jquery-validation'));
} else {
// Browser global
jQuery.validator.unobtrusive = factory(jQuery);
}
}(function ($) {
var $jQval = $.validator,
adapters,
data_validation = "unobtrusiveValidation";
function setValidationValues(options, ruleName, value) {
options.rules[ruleName] = value;
if (options.message) {
options.messages[ruleName] = options.message;
}
}
function splitAndTrim(value) {
return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g);
}
function escapeAttributeValue(value) {
// As mentioned on http://api.jquery.com/category/selectors/
return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
}
function getModelPrefix(fieldName) {
return fieldName.substr(0, fieldName.lastIndexOf(".") + 1);
}
function appendModelPrefix(value, prefix) {
if (value.indexOf("*.") === 0) {
value = value.replace("*.", prefix);
}
return value;
}
function onError(error, inputElement) { // 'this' is the form element
var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
replaceAttrValue = container.attr("data-valmsg-replace"),
replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;
container.removeClass("field-validation-valid").addClass("field-validation-error");
error.data("unobtrusiveContainer", container);
if (replace) {
container.empty();
error.removeClass("input-validation-error").appendTo(container);
}
else {
error.hide();
}
}
function onErrors(event, validator) { // 'this' is the form element
var container = $(this).find("[data-valmsg-summary=true]"),
list = container.find("ul");
if (list && list.length && validator.errorList.length) {
list.empty();
container.addClass("validation-summary-errors").removeClass("validation-summary-valid");
$.each(validator.errorList, function () {
$("<li />").html(this.message).appendTo(list);
});
}
}
function onSuccess(error) { // 'this' is the form element
var container = error.data("unobtrusiveContainer");
if (container) {
var replaceAttrValue = container.attr("data-valmsg-replace"),
replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;
container.addClass("field-validation-valid").removeClass("field-validation-error");
error.removeData("unobtrusiveContainer");
if (replace) {
container.empty();
}
}
}
function onReset(event) { // 'this' is the form element
var $form = $(this),
key = '__jquery_unobtrusive_validation_form_reset';
if ($form.data(key)) {
return;
}
// Set a flag that indicates we're currently resetting the form.
$form.data(key, true);
try {
$form.data("validator").resetForm();
} finally {
$form.removeData(key);
}
$form.find(".validation-summary-errors")
.addClass("validation-summary-valid")
.removeClass("validation-summary-errors");
$form.find(".field-validation-error")
.addClass("field-validation-valid")
.removeClass("field-validation-error")
.removeData("unobtrusiveContainer")
.find(">*") // If we were using valmsg-replace, get the underlying error
.removeData("unobtrusiveContainer");
}
function validationInfo(form) {
var $form = $(form),
result = $form.data(data_validation),
onResetProxy = $.proxy(onReset, form),
defaultOptions = $jQval.unobtrusive.options || {},
execInContext = function (name, args) {
var func = defaultOptions[name];
func && $.isFunction(func) && func.apply(form, args);
};
if (!result) {
result = {
options: { // options structure passed to jQuery Validate's validate() method
errorClass: defaultOptions.errorClass || "input-validation-error",
errorElement: defaultOptions.errorElement || "span",
errorPlacement: function () {
onError.apply(form, arguments);
execInContext("errorPlacement", arguments);
},
invalidHandler: function () {
onErrors.apply(form, arguments);
execInContext("invalidHandler", arguments);
},
messages: {},
rules: {},
success: function () {
onSuccess.apply(form, arguments);
execInContext("success", arguments);
}
},
attachValidation: function () {
$form
.off("reset." + data_validation, onResetProxy)
.on("reset." + data_validation, onResetProxy)
.validate(this.options);
},
validate: function () { // a validation function that is called by unobtrusive Ajax
$form.validate();
return $form.valid();
}
};
$form.data(data_validation, result);
}
return result;
}
$jQval.unobtrusive = {
adapters: [],
parseElement: function (element, skipAttach) {
/// <summary>
/// Parses a single HTML element for unobtrusive validation attributes.
/// </summary>
/// <param name="element" domElement="true">The HTML element to be parsed.</param>
/// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
/// validation to the form. If parsing just this single element, you should specify true.
/// If parsing several elements, you should specify false, and manually attach the validation
/// to the form when you are finished. The default is false.</param>
var $element = $(element),
form = $element.parents("form")[0],
valInfo, rules, messages;
if (!form) { // Cannot do client-side validation without a form
return;
}
valInfo = validationInfo(form);
valInfo.options.rules[element.name] = rules = {};
valInfo.options.messages[element.name] = messages = {};
$.each(this.adapters, function () {
var prefix = "data-val-" + this.name,
message = $element.attr(prefix),
paramValues = {};
if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy)
prefix += "-";
$.each(this.params, function () {
paramValues[this] = $element.attr(prefix + this);
});
this.adapt({
element: element,
form: form,
message: message,
params: paramValues,
rules: rules,
messages: messages
});
}
});
$.extend(rules, { "__dummy__": true });
if (!skipAttach) {
valInfo.attachValidation();
}
},
parse: function (selector) {
/// <summary>
/// Parses all the HTML elements in the specified selector. It looks for input elements decorated
/// with the [data-val=true] attribute value and enables validation according to the data-val-*
/// attribute values.
/// </summary>
/// <param name="selector" type="String">Any valid jQuery selector.</param>
// $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one
// element with data-val=true
var $selector = $(selector),
$forms = $selector.parents()
.addBack()
.filter("form")
.add($selector.find("form"))
.has("[data-val=true]");
$selector.find("[data-val=true]").each(function () {
$jQval.unobtrusive.parseElement(this, true);
});
$forms.each(function () {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
}
};
adapters = $jQval.unobtrusive.adapters;
adapters.add = function (adapterName, params, fn) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="params" type="Array" optional="true">[Optional] An array of parameter names (strings) that will
/// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and
/// mmmm is the parameter name).</param>
/// <param name="fn" type="Function">The function to call, which adapts the values from the HTML
/// attributes into jQuery Validate rules and/or messages.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
if (!fn) { // Called with no params, just a function
fn = params;
params = [];
}
this.push({ name: adapterName, params: params, adapt: fn });
return this;
};
adapters.addBool = function (adapterName, ruleName) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation rule has no parameter values.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
/// of adapterName will be used instead.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, function (options) {
setValidationValues(options, ruleName || adapterName, true);
});
};
adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and
/// one for min-and-max). The HTML parameters are expected to be named -min and -max.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="minRuleName" type="String">The name of the jQuery Validate rule to be used when you only
/// have a minimum value.</param>
/// <param name="maxRuleName" type="String">The name of the jQuery Validate rule to be used when you only
/// have a maximum value.</param>
/// <param name="minMaxRuleName" type="String">The name of the jQuery Validate rule to be used when you
/// have both a minimum and maximum value.</param>
/// <param name="minAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
/// contains the minimum value. The default is "min".</param>
/// <param name="maxAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
/// contains the maximum value. The default is "max".</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) {
var min = options.params.min,
max = options.params.max;
if (min && max) {
setValidationValues(options, minMaxRuleName, [min, max]);
}
else if (min) {
setValidationValues(options, minRuleName, min);
}
else if (max) {
setValidationValues(options, maxRuleName, max);
}
});
};
adapters.addSingleVal = function (adapterName, attribute, ruleName) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation rule has a single value.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).</param>
/// <param name="attribute" type="String">[Optional] The name of the HTML attribute that contains the value.
/// The default is "val".</param>
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
/// of adapterName will be used instead.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, [attribute || "val"], function (options) {
setValidationValues(options, ruleName || adapterName, options.params[attribute]);
});
};
$jQval.addMethod("__dummy__", function (value, element, params) {
return true;
});
$jQval.addMethod("regex", function (value, element, params) {
var match;
if (this.optional(element)) {
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
$jQval.addMethod("nonalphamin", function (value, element, nonalphamin) {
var match;
if (nonalphamin) {
match = value.match(/\W/g);
match = match && match.length >= nonalphamin;
}
return match;
});
if ($jQval.methods.extension) {
adapters.addSingleVal("accept", "mimtype");
adapters.addSingleVal("extension", "extension");
} else {
// for backward compatibility, when the 'extension' validation method does not exist, such as with versions
// of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for
// validating the extension, and ignore mime-type validations as they are not supported.
adapters.addSingleVal("extension", "extension", "accept");
}
adapters.addSingleVal("regex", "pattern");
adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength");
adapters.add("equalto", ["other"], function (options) {
var prefix = getModelPrefix(options.element.name),
other = options.params.other,
fullOtherName = appendModelPrefix(other, prefix),
element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0];
setValidationValues(options, "equalTo", element);
});
adapters.add("required", function (options) {
// jQuery Validate equates "required" with "mandatory" for checkbox elements
if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
setValidationValues(options, "required", true);
}
});
adapters.add("remote", ["url", "type", "additionalfields"], function (options) {
var value = {
url: options.params.url,
type: options.params.type || "GET",
data: {}
},
prefix = getModelPrefix(options.element.name);
$.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {
var paramName = appendModelPrefix(fieldName, prefix);
value.data[paramName] = function () {
var field = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']");
// For checkboxes and radio buttons, only pick up values from checked fields.
if (field.is(":checkbox")) {
return field.filter(":checked").val() || field.filter(":hidden").val() || '';
}
else if (field.is(":radio")) {
return field.filter(":checked").val() || '';
}
return field.val();
};
});
setValidationValues(options, "remote", value);
});
adapters.add("password", ["min", "nonalphamin", "regex"], function (options) {
if (options.params.min) {
setValidationValues(options, "minlength", options.params.min);
}
if (options.params.nonalphamin) {
setValidationValues(options, "nonalphamin", options.params.nonalphamin);
}
if (options.params.regex) {
setValidationValues(options, "regex", options.params.regex);
}
});
adapters.add("fileextensions", ["extensions"], function (options) {
setValidationValues(options, "extension", options.params.extensions);
});
$(function () {
$jQval.unobtrusive.parse(document);
});
return $jQval.unobtrusive;
}));

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@
<script defer src="~/Content/fontawesome/all.min.js"></script>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="~/Scripts/jquery-3.4.1.min.js?v=1.1"></script>
<script src="~/Scripts/jquery-3.6.0.min.js"></script>
<script src="~/Scripts/umd/popper.min.js"></script>
<script src="~/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="~/Content/style.css">

View File

@@ -1,17 +1,17 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="All">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type=""/>
<filter type="" />
</add>
<add initializeData="logs\Traces.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="traceListener" traceOutputOptions="DateTime">
<filter type=""/>
<filter type="" />
</add>
</listeners>
</source>
@@ -30,109 +30,109 @@
</appender>-->
<appender name="DebugSQL" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<logger name="NHibernnate.SQL" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="DebugSQL"/>
<level value="DEBUG" />
<appender-ref ref="DebugSQL" />
</logger>
<root>
<priority value="INFO"/>
<appender-ref ref="DebugSQL"/>
<priority value="INFO" />
<appender-ref ref="DebugSQL" />
</root>
</log4net>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="ASPHibernateSession" type="BeWoPlanerMobil.Service.ASPHibernateSessionManager, BeWoPlanerMobil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="ASPHibernateSession" type="BeWoPlanerMobil.Service.ASPHibernateSessionManager, BeWoPlanerMobil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</modules>
<directoryBrowse enabled="true"/>
<directoryBrowse enabled="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="TRACEVerbHandler"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="SecurityBehavior">
<MultitenancyExtension/>
<SecurityExtension/>
<MultitenancyExtension />
<SecurityExtension />
</behavior>
<behavior name="SecurityAndSessionBehavior">
<!--wichtig: erst Mulittenancy dann session dann security!-->
<MultitenancyExtension/>
<HibernateSessionExtension/>
<SecurityExtension/>
<MultitenancyExtension />
<HibernateSessionExtension />
<SecurityExtension />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="returnFaults">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceThrottling maxConcurrentCalls="1000" maxConcurrentSessions="1000"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentCalls="1000" maxConcurrentSessions="1000" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="MultitenancyExtension" type="BeWo.Service.Multitenancy.MultitenancyBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="SecurityExtension" type="BeWo.Service.Security.SecurityBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="HibernateSessionExtension" type="BeWo.Service.UnitOfWork.HibernateSessionBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="MultitenancyExtension" type="BeWo.Service.Multitenancy.MultitenancyBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
<add name="SecurityExtension" type="BeWo.Service.Security.SecurityBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
<add name="HibernateSessionExtension" type="BeWo.Service.UnitOfWork.HibernateSessionBehaviorExtension, BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<bindings>
<basicHttpBinding>
<binding name="BeWoBasicEndpoint" closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None"/>
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
</binding>
<binding name="BeWoStreamingEndpoint" receiveTimeout="10:10:00" sendTimeout="10:01:00" maxBufferSize="65536" maxReceivedMessageSize="67108864" messageEncoding="Text" transferMode="StreamedRequest" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None"/>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
</binding>
<binding name="QueryServiceEndpoint" closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint binding="basicHttpBinding" bindingConfiguration="QueryServiceEndpoint" contract="QueryService.IQueryService" name="QueryServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoStreamingEndpoint" contract="BeWo.ServiceProxy.IStreamingService" name="StreamingServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IEmployeeService" name="EmployeeServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.ICustomerService" name="CustomerServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IUserService" name="UserServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IValueListService" name="ValueListServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IDownloadService" name="DownloadServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IResourceService" name="BeWoBasicEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IOperationsService" name="OperationsServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAccountingService" name="AccountingServiceEndpoint"/>
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAnalysisService" name="AnalysisServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IMailService" name="MailServiceEndpoint"/>
<endpoint binding="basicHttpBinding" bindingConfiguration="QueryServiceEndpoint" contract="QueryService.IQueryService" name="QueryServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoStreamingEndpoint" contract="BeWo.ServiceProxy.IStreamingService" name="StreamingServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IEmployeeService" name="EmployeeServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.ICustomerService" name="CustomerServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IUserService" name="UserServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IValueListService" name="ValueListServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IDownloadService" name="DownloadServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IResourceService" name="BeWoBasicEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IOperationsService" name="OperationsServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAccountingService" name="AccountingServiceEndpoint" />
<endpoint behaviorConfiguration="BeWoServiceBehavior" binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IAnalysisService" name="AnalysisServiceEndpoint" />
<endpoint binding="basicHttpBinding" bindingConfiguration="BeWoBasicEndpoint" contract="BeWo.ServiceProxy.IMailService" name="MailServiceEndpoint" />
</client>
</system.serviceModel>
<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="PreserveLoginUrl" value="true"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="MultitenancyPath" value="..\Host\Multitenancy\"/>
<add key="LicenseInfoUrl" value="https://support.bewoplaner.de/api/getlicensecount.php?k=[TENANT]"/>
<add key="LicenseOrderUrl" value="https://support.bewoplaner.de/lizenzbestellung/?k=[TENANT]"/>
<add key="LicenseCancellationUrl" value="https://support.bewoplaner.de/api/licencecancellation.php?k=[TENANT]"/>
<add key="ContractStateUrl" value="https://support.bewoplaner.de/api/getcontractstate.php?CustomerID=[TENANT]"/>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="MultitenancyPath" value="..\Host\Multitenancy\" />
<add key="LicenseInfoUrl" value="https://support.bewoplaner.de/api/getlicensecount.php?k=[TENANT]" />
<add key="LicenseOrderUrl" value="https://support.bewoplaner.de/lizenzbestellung/?k=[TENANT]" />
<add key="LicenseCancellationUrl" value="https://support.bewoplaner.de/api/licencecancellation.php?k=[TENANT]" />
<add key="ContractStateUrl" value="https://support.bewoplaner.de/api/getcontractstate.php?CustomerID=[TENANT]" />
<!--<add key="PluginPathtest" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\bin" />-->
<!-- Lyndon -->
<add key="PluginPath" value="C:\Users\lyndo\BeWo\Host\bin"/>
<add key="PluginPath" value="C:\Users\lyndo\BeWo\Host\bin" />
<!-- /Lyndon -->
</appSettings>
<!--
@@ -149,69 +149,69 @@
</httpModules>-->
<compilation debug="true" defaultLanguage="c#" targetFramework="4.7.2">
<assemblies>
<add assembly="BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add assembly="BeWo.Service, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
</assemblies>
</compilation>
<pages controlRenderingCompatibilityVersion="4.0">
<namespaces>
<add namespace="System.Web.Helpers"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.WebPages"/>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
<authentication mode="Forms">
<forms loginUrl="~/Login"/>
<forms loginUrl="~/Login" />
</authentication>
<sessionState timeout="20"/>
<sessionState timeout="20" />
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0"/>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0"/>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>
</configuration>

View File

@@ -2,7 +2,7 @@
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net472" />
<package id="EntityFramework" version="6.4.0" targetFramework="net472" />
<package id="jQuery" version="3.4.1" targetFramework="net472" />
<package id="jQuery" version="3.6.0" targetFramework="net472" />
<package id="jQuery.Validation" version="1.19.1" targetFramework="net472" />
<package id="Microsoft.AspNet.Mvc" version="5.2.7" targetFramework="net472" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net472" />

View File

@@ -143,6 +143,7 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@@ -4458,14 +4458,43 @@ namespace BeWo.Data.Access
return criteria.List<SchedulerAppointment>().ToList();
}
public List<SchedulerAppointment> LoadFilteredAllActiveAppointments(long employeeOid, DateTime start, DateTime end)
public List<SchedulerAppointment> LoadFilteredAllActiveAppointments(long employeeOid, DateTime start, DateTime end, List<long> customerOids)
{
var allEmployees = DAOFactory.GenericDAO.GetAllActive<Employee>();
//var allCustomers = DAOFactory
var appointments = LoadFilteredAppointments(
true,
employeeOid,
start, end,
new List<long>(),
customerOids,
new List<long>(),
false,
true,
false,
false,
false,
false);
//var appointments = LoadFilteredAppointments(true, employeeOid, start, end, )
return appointments.ToList();
}
return null;
public List<ServiceRecord> FindServiceRecordsForFlsAuslastungsauswertungByCustomerAndEmployees(long? customerOid, List<long> employeeOids, DateTime start, DateTime end, bool onlyBillableCategories)
{
var c = CreateCriteriaIsActive<ServiceRecord>().Add(Restrictions.Eq(nameof(ServiceRecord.CustomerOid), customerOid));
c.Add(Restrictions.In(nameof(ServiceRecord.EmployeeOid), employeeOids));
var betweenCriterion = CreateBetweenDateTimesCriterion(start, end, nameof(ServiceRecord.Start), nameof(ServiceRecord.End));
c.Add(betweenCriterion);
if(onlyBillableCategories)
{
c.CreateAlias(ServiceRecord.PropertyName_ServiceDescription, "sd", JoinType.InnerJoin)
.CreateAlias("sd." + ServiceDescription.PropertyName_ServiceCategory, "sc", JoinType.InnerJoin)
.Add(Restrictions.Eq("sc." + ServiceCategory.PropertyName_IsBillable, true));
}
return c.List<ServiceRecord>().ToList();
}
public IList<GeschenkterUrlaubstag> FindGeschenkteUrlaubstageByEmpOid(long empOid)

19
Data/App.config Normal file
View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v13.0"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
</configuration>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -32,6 +33,8 @@
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -83,6 +86,24 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lib\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -96,8 +117,29 @@
<HintPath>..\Lib\NHibernate.ByteCode.Castle.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
</Reference>
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core">
@@ -106,13 +148,31 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=1.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.ServiceModel">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
@@ -802,7 +862,20 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -26,6 +27,8 @@
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<Use64BitIISExpress />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -72,15 +75,73 @@
<Reference Include="DevExpress.XtraReports.v17.1.Web, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.CodeAnalysis, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
</Reference>
<Reference Include="NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lib\NHibernate.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=1.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
@@ -167,7 +228,6 @@
</Compile>
<Compile Include="BeWo.Master.cs">
<DependentUpon>BeWo.Master</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="BeWo.Master.designer.cs">
<DependentUpon>BeWo.Master</DependentUpon>
@@ -175,28 +235,24 @@
<Compile Include="ClientCallback.cs" />
<Compile Include="DocumentDownload.aspx.cs">
<DependentUpon>DocumentDownload.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="DocumentDownload.aspx.designer.cs">
<DependentUpon>DocumentDownload.aspx</DependentUpon>
</Compile>
<Compile Include="Download.aspx.cs">
<DependentUpon>Download.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Download.aspx.designer.cs">
<DependentUpon>Download.aspx</DependentUpon>
</Compile>
<Compile Include="DX.aspx.cs">
<DependentUpon>DX.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="DX.aspx.designer.cs">
<DependentUpon>DX.aspx</DependentUpon>
</Compile>
<Compile Include="Login.aspx.cs">
<DependentUpon>Login.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Login.aspx.designer.cs">
<DependentUpon>Login.aspx</DependentUpon>
@@ -204,28 +260,24 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ReportView.aspx.cs">
<DependentUpon>ReportView.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ReportView.aspx.designer.cs">
<DependentUpon>ReportView.aspx</DependentUpon>
</Compile>
<Compile Include="ResetPassword.aspx.cs">
<DependentUpon>ResetPassword.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ResetPassword.aspx.designer.cs">
<DependentUpon>ResetPassword.aspx</DependentUpon>
</Compile>
<Compile Include="ServiceRecordEditPage.aspx.cs">
<DependentUpon>ServiceRecordEditPage.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ServiceRecordEditPage.aspx.designer.cs">
<DependentUpon>ServiceRecordEditPage.aspx</DependentUpon>
</Compile>
<Compile Include="ServiceRecordPage.aspx.cs">
<DependentUpon>ServiceRecordPage.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="ServiceRecordPage.aspx.designer.cs">
<DependentUpon>ServiceRecordPage.aspx</DependentUpon>
@@ -272,6 +324,10 @@
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
@@ -304,4 +360,10 @@
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
</Target>
</Project>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040600</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040601</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040602</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040603</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040604</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040605</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040606</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040607</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040608</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1 @@
<?xml version="1.0"?><configuration><configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /></configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property><property name="connection.connection_string">Server=localhost;Password=root;User ID=root; Initial Catalog=2021040609</property><property name="dialect">NHibernate.Dialect.MySQLDialect</property><property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property><property name="hbm2ddl.keywords">none</property><property name="show_sql">true</property><!-- Bei true wird das SQL im Output Window angezeigt --><property name="format_sql">true</property><mapping assembly="BeWo.Data" /></session-factory></hibernate-configuration></configuration>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">
NHibernate.Driver.MySqlDataDriver
</property>
<property name="connection.connection_string">
Server=localhost;Password=root;User ID=root; Initial Catalog=4206942069
</property>
<property name="dialect">
NHibernate.Dialect.MySQLDialect
</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
<property name="hbm2ddl.keywords">none</property>
<property name="show_sql">true</property>
<!-- Bei true wird das SQL im Output Window angezeigt -->
<property name="format_sql">true</property>
<mapping assembly="BeWo.Data" />
</session-factory>
</hibernate-configuration>
</configuration>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">
NHibernate.Driver.MySqlDataDriver
</property>
<property name="connection.connection_string">
Server=localhost;Password=root;User ID=root; Initial Catalog=6969696969
</property>
<property name="dialect">
NHibernate.Dialect.MySQLDialect
</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
<property name="hbm2ddl.keywords">none</property>
<property name="show_sql">true</property> <!-- Bei true wird das SQL im Output Window angezeigt -->
<property name="format_sql">true</property>
<mapping assembly="BeWo.Data" />
</session-factory>
</hibernate-configuration>
</configuration>

View File

@@ -563,14 +563,22 @@ namespace Host
if (Request.Params["scgoals"] != null)
{
string scGoalOids = Request.Params["scgoals"].ToString();
var oids = scGoalOids.Split(',');
var alleRatingDCs = MapperFactory.RatingDC_Rating.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Rating>());
foreach (var oid in oids)
if (!string.IsNullOrWhiteSpace(scGoalOids))
{
foreach (var dc in alleRatingDCs)
var oids = scGoalOids.Split(',');
var alleRatingDCs =
MapperFactory.RatingDC_Rating.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Rating>());
foreach (var oid in oids)
{
if (long.Parse(oid) == dc.RatingOid)
scZiele.Add(dc);
long loid = 0;
if (Int64.TryParse(oid, out loid))
{
foreach (var dc in alleRatingDCs)
{
if (loid == dc.RatingOid)
scZiele.Add(dc);
}
}
}
}
}

View File

@@ -1,5 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClrHeapAllocationAnalyzer" version="3.0.0" targetFramework="net472" />
<package id="jQuery" version="1.6.4" targetFramework="net40" />
<package id="jquery.mobile" version="1.3.0" targetFramework="net40" />
<package id="Microsoft.CodeAnalysis" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="2.9.6" targetFramework="net472" developmentDependency="true" />
<package id="Microsoft.CodeAnalysis.Common" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.CSharp" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.VisualBasic" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="3.4.0" targetFramework="net472" />
<package id="Microsoft.CodeAnalysis.Workspaces.Common" version="3.4.0" targetFramework="net472" />
<package id="System.Buffers" version="4.4.0" targetFramework="net472" />
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net472" />
<package id="System.Composition" version="1.0.31" targetFramework="net472" />
<package id="System.Composition.AttributedModel" version="1.0.31" targetFramework="net472" />
<package id="System.Composition.Convention" version="1.0.31" targetFramework="net472" />
<package id="System.Composition.Hosting" version="1.0.31" targetFramework="net472" />
<package id="System.Composition.Runtime" version="1.0.31" targetFramework="net472" />
<package id="System.Composition.TypedParts" version="1.0.31" targetFramework="net472" />
<package id="System.Memory" version="4.5.3" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net472" />
<package id="System.Reflection.Metadata" version="1.6.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
<package id="System.Text.Encoding.CodePages" version="4.5.1" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.3" targetFramework="net472" />
</packages>

View File

@@ -18,4 +18,4 @@ CREATE TABLE `dokumentvorlage` (
`RTFText` mediumtext,
`Parent` bigint DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

View File

@@ -12,4 +12,4 @@ CREATE TABLE `vorlagentabelle` (
`SystemEntryID` int DEFAULT NULL,
`Tabellenname` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

View File

@@ -1,17 +1,17 @@
ALTER TABLE `bewodemo`.`dienstvertretung`
ALTER TABLE `dienstvertretung`
ADD COLUMN `Startzeit` VARCHAR(256) NULL DEFAULT NULL AFTER `Datum`;
ALTER TABLE `bewodemo`.`dienstvertretung`
ALTER TABLE `dienstvertretung`
ADD COLUMN `Endzeit` VARCHAR(256) NULL DEFAULT NULL AFTER `Startzeit`;
ALTER TABLE `bewodemo`.`diensteintrag`
ALTER TABLE `diensteintrag`
ADD COLUMN `Startzeit` VARCHAR(256) NULL DEFAULT NULL AFTER `Datum`;
ALTER TABLE `bewodemo`.`diensteintrag`
ALTER TABLE `diensteintrag`
ADD COLUMN `Endzeit` VARCHAR(256) NULL DEFAULT NULL AFTER `Startzeit`;
ALTER TABLE `bewodemo`.`diensteintrag`
ALTER TABLE `diensteintrag`
ADD COLUMN `DauerInStunden` DOUBLE NULL DEFAULT NULL AFTER `Endzeit`;
ALTER TABLE `bewodemo`.`dienstvertretung`
ALTER TABLE `dienstvertretung`
ADD COLUMN `DauerInStunden` DOUBLE NULL DEFAULT NULL AFTER `Endzeit`;

View File

@@ -17,4 +17,4 @@ CREATE TABLE `regelmaessigerdienst` (
`Endzeit` varchar(256) DEFAULT NULL,
`DauerInStunden` double DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

View File

@@ -0,0 +1,17 @@
INSERT INTO query(tid, type, title, notice, insts, version, isactive, reporttypename)
VALUES
(24, 0, 'Stundenübersicht Mitarbeiter', 'direct', NOW(), 1, 1, 'FLSAuswertung'),
(24, 0, 'Stundenübersicht Team', 'direct', NOW(), 1, 1, 'FLSAuswertung')
;
INSERT INTO parameter(queryoid, tid, name, type) VALUES
(x, 25, 'Mitarbeiter', 1), #mitarbeiter
(x, 25, 'Von_Bis', 5), #mitarbeiter
(y, 25, 'Team', 6), #team
(y, 25, 'Von_Bis', 5) #team
;
INSERT INTO parameter(queryoid, tid, name, type) VALUES
(x, 25, 'Intervall', 100), #mitarbeiter
(y, 25, 'Intervall', 100) #team
;

11
Model/GetNextBelegNr.txt Normal file
View File

@@ -0,0 +1,11 @@
DELIMITER $$
CREATE FUNCTION `GetNextBelegnr`(addToCount INT) RETURNS int(11)
BEGIN
DECLARE COUNT_FOUND INTEGER DEFAULT 1;
SELECT count INTO COUNT_FOUND FROM callcount WHERE OID = 1;
UPDATE callcount SET Count = Count + addToCount WHERE OID = 1;
RETURN COUNT_FOUND;
RETURN -1;
END$$
DELIMITER ;

View File

@@ -696,6 +696,13 @@ namespace BeWo.Report
public override XtraReport CreateSettlementReport(String dcId, long? invoiceBaseOid)
{
return CreateSettlementReport(dcId, invoiceBaseOid, false);
}
public virtual XtraReport CreateSettlementReport(String dcId, long? invoiceBaseOid, bool createAnhang)
{
XtraReport report = null;
Settlement2DC lSettlementDC;
long result;
@@ -719,21 +726,51 @@ namespace BeWo.Report
CostBearer2SupportConcept c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(lSettlementDC.CostBearer2SupportConceptOid.Value);
reportId = c2s.CostBearer.ID;
}
if (lSettlementDC.DifferentHourlyRateCount > 0)
{
IBeWoReport<SettlementRO> lSettlementReport = FindReportImp<SettlementRO>(reportId);
lSettlementReport.SetReportDataSource(SettlementRO.Create(lSettlementDC));
var ro = SettlementRO.Create(lSettlementDC);
lSettlementReport.SetReportDataSource(ro);
return lSettlementReport as XtraReport;
report = lSettlementReport as XtraReport;
}
else
{
IBeWoReport<Settlement2RO> lSettlementReport = FindReportImp<Settlement2RO>(reportId);
lSettlementReport.SetReportDataSource(Settlement2RO.Create(lSettlementDC));
report = lSettlementReport as XtraReport;
return lSettlementReport as XtraReport;
}
if (createAnhang)
{
if (report != null)
{
report.CreateDocument();
var anhang = CreateBudgetnachweisAnhang(lSettlementDC);
if (anhang != null)
{
anhang.CreateDocument();
report.Pages.AddRange(anhang.Pages);
}
}
}
return report;
}
protected virtual XtraReport CreateBudgetnachweisAnhang(Settlement2DC settlementDC)
{
var ro = BudgetnachweisAnhangRO.Create(settlementDC);
IBeWoReport<BudgetnachweisAnhangRO> anhang = FindReportImp<BudgetnachweisAnhangRO>();
anhang.SetReportDataSource(ro);
return anhang as XtraReport;
}
public override XtraReport CreateSupportConceptReport(IList<long> c2sOids, long? employeeOid, long? teamOid, int? expiredMonths, bool archivedSupportConcepts,

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
using System;
using System.Linq;
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
{
public partial class BudgetnachweisAnhang : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<BudgetnachweisAnhangRO>
{
public BudgetnachweisAnhang()
{
InitializeComponent();
}
public void SetReportDataSource(BudgetnachweisAnhangRO pRO)
{
if (!String.IsNullOrEmpty(pRO.CustomerDC.LastName))
{
//pRO.CustomerDC.LastName = pRO.CustomerDC.LastName.Replace("/", "").Replace("LWL Psych", "").Replace("LWL Sucht", "").Trim();
}
//if (pRO.Transaktionen != null)
//{
// pRO.Transaktionen = pRO.Transaktionen.OrderBy(o => o.Belegdatum).ToList();
//}
bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="xrLabel1.Text" xml:space="preserve">
<value>Über den Budgetnachweis werden auf Grundlage der Quittierungsbelege im nachstehenden Umfang folgende, im direkten Betreuungskontakt erbrachte Minuten zur Abrechnung beantragt (direkte Fachleistungsminuten = D-FLMin). Die Summe der D-FLMin wird in direkte Fachleistungsstunden (D-FLS) umgerechnet.</value>
</data>
</root>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -32,6 +33,8 @@
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -106,6 +109,24 @@
<Reference Include="DevExpress.XtraScheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.CodeAnalysis, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=3.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.3.4.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Microsoft.VisualBasic.Compatibility" />
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -122,6 +143,27 @@
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
</Reference>
<Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
@@ -130,9 +172,28 @@
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=1.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq">
@@ -162,261 +223,181 @@
<Compile Include="DefaultReports\BewertungsstatistikReport.designer.cs">
<DependentUpon>BewertungsstatistikReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\VorlageReport.cs">
<Compile Include="DefaultReports\BudgetnachweisAnhang.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\BudgetnachweisAnhang.Designer.cs">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\VorlageReport.cs" />
<Compile Include="DefaultReports\VorlageReport.Designer.cs">
<DependentUpon>VorlageReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\RosterReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\RosterReport.cs" />
<Compile Include="DefaultReports\RosterReport.Designer.cs">
<DependentUpon>RosterReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Abwesenheiten.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Abwesenheiten.cs" />
<Compile Include="DefaultReports\Abwesenheiten.designer.cs">
<DependentUpon>Abwesenheiten.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\AdditionalServiceBookingReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\AdditionalServiceBookingReport.cs" />
<Compile Include="DefaultReports\AdditionalServiceBookingReport.Designer.cs">
<DependentUpon>AdditionalServiceBookingReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\EmployeeKilometerauswertungsListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\EmployeeKilometerauswertungsListReport.cs" />
<Compile Include="DefaultReports\EmployeeKilometerauswertungsListReport.Designer.cs">
<DependentUpon>EmployeeKilometerauswertungsListReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\KilometerauswertungsListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\KilometerauswertungsListReport.cs" />
<Compile Include="DefaultReports\KilometerauswertungsListReport.Designer.cs">
<DependentUpon>KilometerauswertungsListReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\EmployeeKilometerauswertungsReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\EmployeeKilometerauswertungsReport.cs" />
<Compile Include="DefaultReports\EmployeeKilometerauswertungsReport.designer.cs">
<DependentUpon>EmployeeKilometerauswertungsReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\KilometerauswertungsReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\KilometerauswertungsReport.cs" />
<Compile Include="DefaultReports\KilometerauswertungsReport.designer.cs">
<DependentUpon>KilometerauswertungsReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterarbeitszeitkonto.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterarbeitszeitkonto.cs" />
<Compile Include="DefaultReports\Mitarbeiterarbeitszeitkonto.designer.cs">
<DependentUpon>Mitarbeiterarbeitszeitkonto.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\MitarbeiterstundenkontoJahr.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\MitarbeiterstundenkontoJahr.cs" />
<Compile Include="DefaultReports\MitarbeiterstundenkontoJahr.designer.cs">
<DependentUpon>MitarbeiterstundenkontoJahr.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\AbsenceReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\AbsenceReport.cs" />
<Compile Include="DefaultReports\AbsenceReport.Designer.cs">
<DependentUpon>AbsenceReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\SBDCharacteristicsReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\SBDCharacteristicsReport.cs" />
<Compile Include="DefaultReports\SBDCharacteristicsReport.Designer.cs">
<DependentUpon>SBDCharacteristicsReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\EmployeeDataReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\EmployeeDataReport.cs" />
<Compile Include="DefaultReports\EmployeeDataReport.Designer.cs">
<DependentUpon>EmployeeDataReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Finanzauswertung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Finanzauswertung.cs" />
<Compile Include="DefaultReports\Finanzauswertung.designer.cs">
<DependentUpon>Finanzauswertung.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Invoices\SbdLeistungsnachweisAbrechnung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Invoices\SbdLeistungsnachweisAbrechnung.cs" />
<Compile Include="DefaultReports\Invoices\SbdLeistungsnachweisAbrechnung.designer.cs">
<DependentUpon>SbdLeistungsnachweisAbrechnung.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Invoices\SbdRechnung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Invoices\SbdRechnung.cs" />
<Compile Include="DefaultReports\Invoices\SbdRechnung.Designer.cs">
<DependentUpon>SbdRechnung.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\KassenbelegReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\KassenbelegReport.cs" />
<Compile Include="DefaultReports\KassenbelegReport.Designer.cs">
<DependentUpon>KassenbelegReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\NotizenReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\NotizenReport.cs" />
<Compile Include="DefaultReports\NotizenReport.Designer.cs">
<DependentUpon>NotizenReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\KassenbuchReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\KassenbuchReport.cs" />
<Compile Include="DefaultReports\KassenbuchReport.Designer.cs">
<DependentUpon>KassenbuchReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\KalenderMonatsformatReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\KalenderMonatsformatReport.cs" />
<Compile Include="DefaultReports\KalenderMonatsformatReport.Designer.cs">
<DependentUpon>KalenderMonatsformatReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\JahresReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\JahresReport.cs" />
<Compile Include="DefaultReports\JahresReport.designer.cs">
<DependentUpon>JahresReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\LeistungsnachweisSbd.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\LeistungsnachweisSbd.cs" />
<Compile Include="DefaultReports\LeistungsnachweisSbd.designer.cs">
<DependentUpon>LeistungsnachweisSbd.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\MedikamentenverordnungslistenReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\MedikamentenverordnungslistenReport.cs" />
<Compile Include="DefaultReports\MedikamentenverordnungslistenReport.Designer.cs">
<DependentUpon>MedikamentenverordnungslistenReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\QuittierungsbelegMitDatum.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\QuittierungsbelegMitDatum.cs" />
<Compile Include="DefaultReports\QuittierungsbelegMitDatum.Designer.cs">
<DependentUpon>QuittierungsbelegMitDatum.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Quittierungsbeleg.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Quittierungsbeleg.cs" />
<Compile Include="DefaultReports\Quittierungsbeleg.Designer.cs">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Teamauslastung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Teamauslastung.cs" />
<Compile Include="DefaultReports\Teamauslastung.designer.cs">
<DependentUpon>Teamauslastung.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterauslastung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterauslastung.cs" />
<Compile Include="DefaultReports\Mitarbeiterauslastung.designer.cs">
<DependentUpon>Mitarbeiterauslastung.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Teamstundenkonto.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Teamstundenkonto.cs" />
<Compile Include="DefaultReports\Teamstundenkonto.designer.cs">
<DependentUpon>Teamstundenkonto.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\SettlementReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\SettlementReport.cs" />
<Compile Include="DefaultReports\SettlementReport.Designer.cs">
<DependentUpon>SettlementReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\CollectiveBillingReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\CollectiveBillingReport.cs" />
<Compile Include="DefaultReports\CollectiveBillingReport.Designer.cs">
<DependentUpon>CollectiveBillingReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\AssessmentSheetReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\AssessmentSheetReport.cs" />
<Compile Include="DefaultReports\AssessmentSheetReport.Designer.cs">
<DependentUpon>AssessmentSheetReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterstundenkonto.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\Mitarbeiterstundenkonto.cs" />
<Compile Include="DefaultReports\Mitarbeiterstundenkonto.designer.cs">
<DependentUpon>Mitarbeiterstundenkonto.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\SettlementReport2.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\SettlementReport2.cs" />
<Compile Include="DefaultReports\SettlementReport2.Designer.cs">
<DependentUpon>SettlementReport2.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\ServiceInvoiceReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\ServiceInvoiceReport.cs" />
<Compile Include="DefaultReports\ServiceInvoiceReport.Designer.cs">
<DependentUpon>ServiceInvoiceReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\InvoiceCustomerReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\InvoiceCustomerReport.cs" />
<Compile Include="DefaultReports\InvoiceCustomerReport.Designer.cs">
<DependentUpon>InvoiceCustomerReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\CustomerDataReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\CustomerDataReport.cs" />
<Compile Include="DefaultReports\CustomerDataReport.Designer.cs">
<DependentUpon>CustomerDataReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\FLSGroupReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\FLSGroupReport.cs" />
<Compile Include="DefaultReports\FLSGroupReport.Designer.cs">
<DependentUpon>FLSGroupReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\FLSListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\FLSListReport.cs" />
<Compile Include="DefaultReports\FLSListReport.Designer.cs">
<DependentUpon>FLSListReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\QueryListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\QueryListReport.cs" />
<Compile Include="DefaultReports\QueryListReport.Designer.cs">
<DependentUpon>QueryListReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\ServiceRecordListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\ServiceRecordListReport.cs" />
<Compile Include="DefaultReports\ServiceRecordListReport.Designer.cs">
<DependentUpon>ServiceRecordListReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\SupportConceptReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\SupportConceptReport.cs" />
<Compile Include="DefaultReports\SupportConceptReport.Designer.cs">
<DependentUpon>SupportConceptReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\DailyAppointmentReportKalender.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\DailyAppointmentReportKalender.cs" />
<Compile Include="DefaultReports\DailyAppointmentReportKalender.Designer.cs">
<DependentUpon>DailyAppointmentReportKalender.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReports\WeeklyAppointmentReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\WeeklyAppointmentReport.cs" />
<Compile Include="DefaultReports\WeeklyAppointmentReport.Designer.cs">
<DependentUpon>WeeklyAppointmentReport.cs</DependentUpon>
</Compile>
@@ -424,13 +405,13 @@
<Compile Include="AbstractBeWoReportObject.cs" />
<Compile Include="AbstractReportCreator.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DefaultReports\ServicesOverviewReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="DefaultReports\ServicesOverviewReport.cs" />
<Compile Include="DefaultReports\ServicesOverviewReport.Designer.cs">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</Compile>
<Compile Include="DefaultReportCreator.cs" />
<Compile Include="ReportObjects\BudgetnachweisAnhangRO.cs" />
<Compile Include="ReportObjects\FlsAuslastungsauswertungRO.cs" />
<Compile Include="ReportObjects\RosterRO.cs" />
<Compile Include="ReportObjects\AdditionalServiceBookingRO.cs" />
<Compile Include="ReportObjects\AbsenceRO.cs" />
@@ -476,6 +457,10 @@
<EmbeddedResource Include="DefaultReports\BewertungsstatistikReport.resx">
<DependentUpon>BewertungsstatistikReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DefaultReports\BudgetnachweisAnhang.resx">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="DefaultReports\VorlageReport.resx">
<DependentUpon>VorlageReport.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -654,6 +639,7 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\DataSources\BeWo.Report.DefaultReports.KalenderMonatsformatReport.datasource" />
<None Include="Properties\DataSources\BeWo.Report.ReportObjects.AdditionalServiceBookingRO.datasource" />
<None Include="Properties\DataSources\BeWo.Report.ReportObjects.AssessmentSheetRO.datasource" />
@@ -685,7 +671,17 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.2.9.6\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@@ -9,5 +9,6 @@
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
</Project>

View File

@@ -93,11 +93,11 @@ namespace BeWo.Report.ReportObjects
{
if (item.GoalEntry.ValueListEntryOid == ziel.ValueListEntryOid)
{
if(item.ServiceRecord.ServiceRecordOid == sr.Oid && item.GoalRatingOid == null && item.RatingType != null)
if(item.ServiceRecord.ServiceRecordOid == sr.Oid && item.GoalRatingOid == null && item.RatingType?.RatingId != null)
{
if(item.ServiceRecord.Start >= start && item.ServiceRecord.Start <= end)
{
detail.Note = (int)item.RatingType.Position;
detail.Note = item.RatingType.RatingId.Value;
anzahl++; // Zähler für Schnittberechnung
detail.MinutenInvestiert = sr.DurationMinutes;
detail.Datum = sr.Start;
@@ -118,12 +118,12 @@ namespace BeWo.Report.ReportObjects
}
foreach (var item in passendeZielBewertungen)
{
if (item.GoalRatingOid != null && item.GoalEntry.ValueListEntryOid == ziel.ValueListEntryOid && item.RatingType != null)
if (item.GoalRatingOid != null && item.GoalEntry.ValueListEntryOid == ziel.ValueListEntryOid && item.RatingType?.RatingId != null)
{
if (item.ServiceRecord.Start.Value.Day >= start.Value.Day && item.ServiceRecord.Start <= end)
{
var detail = new BewertungsstatistikZielDetail();
detail.Note = (int)item.RatingType.Position;
detail.Note = item.RatingType.RatingId.Value;
detail.Datum = item.ServiceRecord.Start;
anzahl++;
datensatz.Durchschnitt += detail.Note;

View File

@@ -0,0 +1,224 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace BeWo.Report.ReportObjects
{
public class BudgetnachweisAnhangRO : AbstractBeWoReportObject<BudgetnachweisAnhangRO>
{
public Settlement2DC SettlementDC { get; set; }
public SupportConceptCostBearerRelDC Costbearer2SupportConceptDC { get; set; }
public CustomerDC CustomerDC { get; set; }
public DateTime BewilligtStart { get; set; }
public DateTime BewilligtEnde { get; set; }
public List<Entgeltzeitraum> Entgeltzeitraeume { get; set; }
public List<BudgetnachweisMonatsZeile> MonatsZeilen { get; set; }
public decimal RateFactor { get; set; }
public decimal SummeFLMinuten { get; set; }
public decimal SummeFaktorMinuten { get; set; }
public decimal SummeGesamtMinuten { get; set; }
public decimal SummeFLStunden { get; set; }
public decimal SummeFaktorStunden { get; set; }
public decimal SummeGesamtStunden { get; set; }
public static BudgetnachweisAnhangRO Create(Settlement2DC dc)
{
var result = new BudgetnachweisAnhangRO();
CostBearer2SupportConcept cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(dc.CostBearer2SupportConceptOid.Value);
Customer customer = cb2sc.SupportConcept.Customer;
result.SettlementDC = dc;
result.Costbearer2SupportConceptDC = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(cb2sc);
result.CustomerDC = MapperFactory.CustomerDC_Customer.MapToNewDC(customer);
result.BewilligtStart = dc.AccountingPeriodStart.Value;
result.BewilligtEnde = dc.AccountingPeriodEnd.Value;
result.MonatsZeilen = new List<BudgetnachweisMonatsZeile>();
result.Entgeltzeitraeume = new List<Entgeltzeitraum>();
var crList = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(cb2sc.CostBearer.CostRatePeriods.Where(c => c.CostRateType == CostRatePeriodType.HourlyRate));
var crRfList = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(cb2sc.CostBearer.CostRatePeriods.Where(c => c.CostRateType == CostRatePeriodType.RateFactor));
var rf = crRfList.GetCostRatePeriodForDate(CostRatePeriodType.RateFactor, result.BewilligtEnde);
if (rf != null && rf.CostRateValue.HasValue)
{
result.RateFactor = rf.CostRateValue.Value;
}
foreach (var cr in crList)
{
if (!cr.EndDate.HasValue)
{
cr.EndDate = result.BewilligtEnde;
}
}
crList = crList.OrderBy(c => c.EndDate).ToList();
DateTime start = DateTime.MinValue;
int idx = 1;
foreach (var cr in crList)
{
if (!cr.StartDate.HasValue)
{
cr.StartDate = start;
}
if (cr.StartDate > DateTime.MinValue)
{
cr.StartDate = cr.StartDate.Value.AddDays(1);
}
if (cr.EndDate >= result.BewilligtStart && cr.StartDate <= result.BewilligtEnde)
{
var ez = new Entgeltzeitraum();
ez.Index = idx++;
ez.Start = cr.StartDate.Value;
ez.Ende = cr.EndDate.Value;
if (ez.Start == DateTime.MinValue)
{
ez.Start = result.BewilligtStart;
}
if (ez.Ende == DateTime.MaxValue)
{
ez.Ende = result.BewilligtEnde;
}
ez.CostRatePeriod = cr;
ez.ServiceRecords = new List<ServiceRecordDC>();
result.Entgeltzeitraeume.Add(ez);
}
start = cr.EndDate.Value;
}
var span = new DateTimeSpan();
span.StartDateTime = dc.AccountingPeriodStart.Value;
span.EndDateTime = dc.AccountingPeriodEnd.Value.AddDays(1).AddTicks(-1);
IList<ServiceRecord> serviceRecords = DAOFactory.SearchDAO.FindCustomerServiceRecords(customer.Oid.Value, span, null, null, false);
Dictionary<string, BudgetnachweisMonatsZeile> monat2Zeile = new Dictionary<string, BudgetnachweisMonatsZeile>();
DateTime monat = new DateTime(result.BewilligtStart.Year, result.BewilligtStart.Month, 1);
while (monat <= result.BewilligtEnde)
{
String key = String.Format("{0:MM.yyyy}", monat);
var zeile = new BudgetnachweisMonatsZeile();
zeile.ServiceRecords = new List<ServiceRecordDC>();
zeile.Monat = monat;
zeile.SummeMinuten = 0;
foreach (var e in result.Entgeltzeitraeume)
{
if (e.Start <= monat && monat <= e.Ende)
{
zeile.Entgeltzeitraum = e.Index;
}
}
monat = monat.AddMonths(1);
monat2Zeile.Add(key, zeile);
}
var groupBookingDict = new Dictionary<long, bool>();
foreach (var sr in serviceRecords)
{
if (sr.ServiceDescription.ServiceCategory.IsBillable && (!sr.GroupOid.HasValue || !groupBookingDict.ContainsKey(sr.GroupOid.Value)))
{
if (sr.GroupOid.HasValue)
{
groupBookingDict.Add(sr.GroupOid.Value, true);
}
var srDc = MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDC(sr);
String key = String.Format("{0:MM.yyyy}", sr.Start);
if (monat2Zeile.ContainsKey(key))
{
monat2Zeile[key].ServiceRecords.Add(srDc);
decimal minuten = sr.RoundedDuration;
monat2Zeile[key].SummeMinuten += minuten;
foreach (var e in result.Entgeltzeitraeume)
{
if (e.Start <= sr.Start.Value.Date && sr.Start.Value.Date <= e.Ende)
{
e.ServiceRecords.Add(srDc);
e.SummeFLMinuten += minuten;
}
}
}
}
}
result.MonatsZeilen.AddRange(monat2Zeile.Values.OrderBy(m => m.Monat));
foreach (var e in result.Entgeltzeitraeume)
{
e.SummeFaktorMinuten = (result.RateFactor / 100) * e.SummeFLMinuten;
e.SummeGesamtMinuten = e.SummeFaktorMinuten + e.SummeFLMinuten;
e.SummeFLStunden = e.SummeFLMinuten / 60;
e.SummeFaktorStunden = e.SummeFaktorMinuten / 60;
e.SummeGesamtStunden = e.SummeGesamtMinuten / 60;
result.SummeFLMinuten += e.SummeFLMinuten;
result.SummeFaktorMinuten += e.SummeFaktorMinuten;
result.SummeGesamtMinuten += e.SummeGesamtMinuten;
}
result.SummeFLStunden = result.SummeFLMinuten / 60;
result.SummeFaktorStunden = result.SummeFaktorMinuten / 60;
result.SummeGesamtStunden = result.SummeGesamtMinuten / 60;
return result;
}
}
public class BudgetnachweisMonatsZeile
{
public List<ServiceRecordDC> ServiceRecords { get; set; }
public DateTime Monat { get; set; }
public decimal? SummeMinuten { get; set; }
public int Entgeltzeitraum { get; set; }
}
public class Entgeltzeitraum
{
public List<ServiceRecordDC> ServiceRecords { get; set; }
public CostRatePeriodDC CostRatePeriod { get; set; }
public DateTime Start { get; set; }
public DateTime Ende { get; set; }
public decimal SummeFLMinuten { get; set; }
public decimal SummeFaktorMinuten { get; set; }
public decimal SummeGesamtMinuten { get; set; }
public decimal SummeFLStunden { get; set; }
public decimal SummeFaktorStunden { get; set; }
public decimal SummeGesamtStunden { get; set; }
public int Index { get; set; }
}
}

View File

@@ -0,0 +1,396 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.Extensions;
namespace BeWo.Report.ReportObjects
{
public class FlsAuslastungsauswertungRO : AbstractBeWoReportObject<FlsAuslastungsauswertungRO>
{
public FLSAuswertungstyp FlsAuswertungstyp { get; }
public string Auswertungszeitraum => $"{StartDate:dd.MM.yyyy} - {EndDate:dd.MM.yyyy}";
public Employee Employee { get; set; }
public string EmployeeName
{
get
{
var name = Employee?.Person?.LastNameFirstName ?? string.Empty;
var weeklyFls = Employee?.LastContract?.WeeklyFLS == null ? string.Empty : $"({Employee.LastContract.WeeklyFLS.Value})";
return $"{name} {weeklyFls}";
}
}
public Team Team { get; set; }
public string TeamName => Team?.Name ?? string.Empty;
public string TargetObjectDescription { get; }
public string TargetObjectName { get; set; }
public List<Customer2Values> Customer2Values { get; set; } = new List<Customer2Values>();
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public FlsAuslastungsauswertungRO(DateTime startDate, DateTime endDate, FLSAuswertungstyp flsAuswertungstyp)
{
StartDate = startDate;
EndDate = endDate;
FlsAuswertungstyp = flsAuswertungstyp;
}
public FlsAuslastungsauswertungRO(Employee employee, DateTime startDate, DateTime endDate, FLSAuswertungstyp flsAuswertungstyp)
{
Employee = employee;
TargetObjectDescription = "Mitarbeiter";
StartDate = startDate;
EndDate = endDate;
FlsAuswertungstyp = flsAuswertungstyp;
}
public FlsAuslastungsauswertungRO(Team team, DateTime startDate, DateTime endDate, FLSAuswertungstyp flsAuswertungstyp)
{
Team = team;
TargetObjectDescription = "Team";
StartDate = startDate;
EndDate = endDate;
FlsAuswertungstyp = flsAuswertungstyp;
}
public void UpdateTargetObjectName()
{
if(Employee != null)
{
TargetObjectName = $"{Employee.Person.LastNameFirstName}({GetVertraglicheArbeitszeit():0.00}) Mehr/Minderarbeit: {GetMehrMinderauslastung():0.00}";
}
else if(Team != null)
{
TargetObjectName = $"{Team.Name} Mehr/Minderarbeit: {GetMehrMinderauslastung():0.00}";
}
}
public Customer2Values GetCustomer2ValuesByCustomer(Customer customer)
{
return Customer2Values?.FirstOrDefault(customer2Values => customer2Values.Customer?.Equals(customer) ?? false);
}
public int GetMonthCount()
{
return StartDate.GetMonthCount(EndDate);
}
public int GetWeekCount()
{
return StartDate.GetWeekOfYearCount(EndDate);
}
public int GetStartWeekOfYear()
{
return StartDate.GetIso8601WeekOfYear();
}
public decimal GetMehrMinderauslastung()
{
decimal mehrMinderauslastung = 0;
foreach(var customer2Value in Customer2Values)
{
mehrMinderauslastung += customer2Value.SollSum + customer2Value.IstSum;
}
return mehrMinderauslastung;
}
public decimal GetVertraglicheArbeitszeit()
{
if(Employee != null)
{
var lastContract = Employee.LastContract;
if(lastContract?.WeeklyFLS != null)
{
return lastContract.WeeklyFLS.Value;
}
}
return 0M;
}
public Customer2Values this[long index]
{
get
{
if(Customer2Values == null)
{
Customer2Values = new List<Customer2Values>();
}
return Customer2Values.FirstOrDefault(f => { return f.Customer?.Oid == index; });
}
}
public decimal DiffSum
{
get
{
return Customer2Values.Sum(c2V => { return c2V.DiffSum; });
}
}
public decimal SollSum
{
get
{
return Customer2Values.Sum(c2V => { return c2V.SollSum; });
}
}
public string DiffSumInPercent
{
get
{
var dsip = SollSum == 0 ? 0M : DiffSum / SollSum * 100;
return string.Format(new CultureInfo("de-DE"), "{0:0.00}%", dsip);
}
}
}
public class Customer2Values
{
private readonly FLSAuswertungstyp _FlsAuswertungstyp;
public readonly Guid Id;
public string CustomerName => Customer?.Person?.LastNameFirstName;
public Customer Customer { get; set; }
public FlsValueObject Day1 { get; set; }
public FlsValueObject Day2 { get; set; }
public FlsValueObject Day3 { get; set; }
public FlsValueObject Day4 { get; set; }
public FlsValueObject Day5 { get; set; }
public FlsValueObject Day6 { get; set; }
public FlsValueObject Day7 { get; set; }
public FlsValueObject Day8 { get; set; }
public FlsValueObject Day9 { get; set; }
public FlsValueObject Day10 { get; set; }
public FlsValueObject Day11 { get; set; }
public FlsValueObject Day12 { get; set; }
public FlsValueObject Day13 { get; set; }
public FlsValueObject Day14 { get; set; }
public FlsValueObject Day15 { get; set; }
public FlsValueObject Day16 { get; set; }
public FlsValueObject Day17 { get; set; }
public FlsValueObject Day18 { get; set; }
public FlsValueObject Day19 { get; set; }
public FlsValueObject Day20 { get; set; }
public FlsValueObject Day21 { get; set; }
public FlsValueObject Day22 { get; set; }
public FlsValueObject Day23 { get; set; }
public FlsValueObject Day24 { get; set; }
public FlsValueObject Day25 { get; set; }
public FlsValueObject Day26 { get; set; }
public FlsValueObject Day27 { get; set; }
public FlsValueObject Day28 { get; set; }
public FlsValueObject Day29 { get; set; }
public FlsValueObject Day30 { get; set; }
public FlsValueObject Week1 { get; set; }
public FlsValueObject Week2 { get; set; }
public FlsValueObject Week3 { get; set; }
public FlsValueObject Week4 { get; set; }
public FlsValueObject Week5 { get; set; }
public FlsValueObject Week6 { get; set; }
public FlsValueObject Month1 { get; set; }
public FlsValueObject Month2 { get; set; }
public FlsValueObject Month3 { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public Customer2Values(Customer customer, FLSAuswertungstyp flsAuswertungstyp, DateTime startDate, DateTime endDate)
{
Customer = customer;
_FlsAuswertungstyp = flsAuswertungstyp;
StartDate = startDate;
EndDate = endDate;
Id = Guid.NewGuid();
}
public Customer2Values()
{
Id = Guid.NewGuid();
}
public void CalcDifferences()
{
int count;
string prefix;
var sollSum = 0M;
var istSum = 0M;
switch(_FlsAuswertungstyp)
{
case FLSAuswertungstyp.Daily:
count = 30;
prefix = "Day";
break;
case FLSAuswertungstyp.Weekly:
count = GetWeekCount();
prefix = "Week";
break;
case FLSAuswertungstyp.Monthly:
count = GetMonthCount();
prefix = "Month";
break;
default:
count = 30;
prefix = "Day";
break;
}
for(var i = 1; i <= count; i++)
{
var propertyName = $"{prefix}{i}";
var propertyInfo = GetType().GetProperty(propertyName);
if(propertyInfo != null)
{
var propertyValue = (FlsValueObject)propertyInfo.GetValue(this, null);
if(propertyValue != null)
{
sollSum += propertyValue.Soll;
istSum += propertyValue.Ist;
}
}
}
var diffSum = sollSum - istSum;
SollSum = sollSum;
IstSum = istSum;
DiffSum = diffSum;
DifferenzGanzerAbrechnungszeitraum = diffSum;
AuslastungNachEnddatumKunde = sollSum > 0 ? diffSum / sollSum * 100 : 0M;
DiffSumInPercent = AuslastungNachEnddatumKunde;
}
public decimal SollSum { get; set; }
public decimal IstSum { get; set; }
public decimal DiffSum { get; set; }
public decimal DiffSumInPercent { get; set; }
public decimal DifferenzGanzerAbrechnungszeitraum { get; set; }
public decimal AuslastungNachEnddatumKunde { get; set; }
public decimal RestlicheFlsProWoche { get; set; }
public void AddOrUpdateDay(string propertyName, decimal soll, decimal ist, string timeUnitString)
{
try
{
var propertyValue = (FlsValueObject) this.GetPropertyValue(propertyName);
if(propertyValue == null)
{
propertyValue = new FlsValueObject(soll, ist, timeUnitString);
this.SetPropertyValue(propertyName, propertyValue);
}
else
{
propertyValue.Soll += soll;
propertyValue.Ist += ist;
}
}
catch(Exception exception)
{
Debug.WriteLine(exception);
}
}
public FlsValueObject GetFlsValueObject(string prefix, int suffix)
{
try
{
var propertyInfo = GetType().GetProperty($"{prefix}{suffix}");
if(propertyInfo != null)
{
return (FlsValueObject) propertyInfo.GetValue(this, null);
}
}
catch(Exception exception)
{
Debug.WriteLine(exception);
}
return null;
}
public int GetMonthCount()
{
return StartDate.GetMonthCount(EndDate);
}
public int GetWeekCount()
{
return StartDate.GetWeekOfYearCount(EndDate);
}
public override bool Equals(object obj)
{
if(obj is Customer2Values customer2Values)
{
return Equals(Customer, customer2Values.Customer);
}
return false;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
public class FlsValueObject
{
public decimal Soll { get; set; }
public decimal Ist { get; set; }
public decimal DiffSollIst => Soll - Ist;
public string TimeUnit { get; set; }
public FlsValueObject(decimal soll, decimal ist, string timeUnit)
{
Soll = soll;
Ist = ist;
TimeUnit = timeUnit;
}
}
}

View File

@@ -314,7 +314,9 @@ namespace BeWo.Report.ReportObjects
public string NotBillableString { get; set; }
public CompactCustomerDC Customer { get; set; }
public string Notice { get; set; }
public CompactCustomerDC Customer { get; set; }
public CostBearer2SupportConcept CostBearer2SupportConcept { get; set; }
@@ -349,6 +351,7 @@ namespace BeWo.Report.ReportObjects
result.Claim = (pDC.Claim ?? 0m).ToString("c");
result.NotBillableString = pDC.NotBillableString;
result.Notice = pDC.Notice;
result.ServiceInvoiceItems = pDC.InvoiceItems.Select(ServiceInvoiceItemRO.Create).ToList();

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0"/>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup></configuration>

View File

@@ -120,6 +120,9 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -104,6 +104,9 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -107,6 +107,9 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -197,7 +197,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -141,6 +141,9 @@
<DependentUpon>SettlementReport.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -77,5 +77,8 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -114,5 +114,8 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -55,6 +55,8 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -166,6 +166,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -97,5 +97,8 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -100,6 +100,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -98,6 +98,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -126,6 +126,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -110,6 +110,9 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Some files were not shown because too many files have changed in this diff Show More