Merge branch 'master' into feature_rene_18_ai
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -417,3 +417,4 @@ FodyWeavers.xsd
|
||||
/ReportImp/RatPlusTat/CustomBudgetnachweisAnhangRO.cs
|
||||
/.claude/worktrees
|
||||
/.claude
|
||||
/CLAUDE.md
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<EnableSecurityDebugging>true</EnableSecurityDebugging>
|
||||
<TargetZone>Internet</TargetZone>
|
||||
<GenerateManifests>true</GenerateManifests>
|
||||
<SignManifests>false</SignManifests>
|
||||
<SignManifests>true</SignManifests>
|
||||
<ManifestKeyFile>
|
||||
</ManifestKeyFile>
|
||||
<ManifestCertificateThumbprint>8E3A8E81F1C6F67A1C6D239593544EA33D8AC6A7</ManifestCertificateThumbprint>
|
||||
@@ -43,12 +43,12 @@
|
||||
<TargetCulture>de-DE</TargetCulture>
|
||||
<ProductName>BeWoPlaner</ProductName>
|
||||
<PublisherName>ownSoft GmbH</PublisherName>
|
||||
<MinimumRequiredVersion>2.0.1.293</MinimumRequiredVersion>
|
||||
<MinimumRequiredVersion>2.0.1.297</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.htm</WebPage>
|
||||
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>294</ApplicationRevision>
|
||||
<ApplicationRevision>298</ApplicationRevision>
|
||||
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
@@ -222,6 +222,12 @@
|
||||
<Compile Include="View\Developer\DeveloperView.xaml.cs">
|
||||
<DependentUpon>DeveloperView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Wohneinheit\CustomerWohneinheitenView.xaml.cs">
|
||||
<DependentUpon>CustomerWohneinheitenView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Wohneinheit\CustomerWohneinheitBelegungEditPopup.xaml.cs">
|
||||
<DependentUpon>CustomerWohneinheitBelegungEditPopup.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Document\TeamFolderRightView.xaml.cs">
|
||||
<DependentUpon>TeamFolderRightView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -374,6 +380,14 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Wohneinheit\CustomerWohneinheitenView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Wohneinheit\CustomerWohneinheitBelegungEditPopup.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Document\TeamFolderRightView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace BeWo
|
||||
public static LoginControl LoginControl;
|
||||
public static MainControl MainControl;
|
||||
|
||||
public static string ShortVersion = "3.31";
|
||||
public static string ShortVersion = "3.32";
|
||||
public static string Version => BeWoAppInfo.BeWoAppVersion.ToString();
|
||||
public static int RenderTier = 0;
|
||||
|
||||
|
||||
@@ -15,12 +15,12 @@ namespace BeWo
|
||||
{
|
||||
var baseVersion = new Version(BeWoApp.ShortVersion);
|
||||
var stage = BeWoClientReleaseStage.Sandbox;
|
||||
var stageVersion = new Version("5.1.4");
|
||||
var stageVersion = new Version("5.1.6");
|
||||
var feature = BeWoClientFeature.AI;
|
||||
|
||||
#if !DEBUG
|
||||
//stage = BeWoClientReleaseStage.Release;
|
||||
//feature = BeWoClientFeature.None;
|
||||
stage = BeWoClientReleaseStage.Release;
|
||||
feature = BeWoClientFeature.None;
|
||||
#endif
|
||||
|
||||
BeWoAppVersion = new BeWoAppVersion(baseVersion, stage, stageVersion, feature);
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace BeWo.Converter
|
||||
if (value is null)
|
||||
return null;
|
||||
|
||||
var t = ((DelegateCommand)value).CanExecute(null);
|
||||
//var t = ((DelegateCommand)value).CanExecute(null);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,15 @@ namespace BeWo.Scheduler.Utils
|
||||
|
||||
public static CustomFieldStorage GetCustomFieldStorage(this Appointment appointment)
|
||||
{
|
||||
return appointment.CustomFields[nameof(CustomFieldStorage)] as CustomFieldStorage;
|
||||
try
|
||||
{
|
||||
return appointment.CustomFields[nameof(CustomFieldStorage)] as CustomFieldStorage;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
return new CustomFieldStorage();
|
||||
}
|
||||
|
||||
public static bool CF_IsTask(this Appointment appointment)
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
@@ -419,13 +420,11 @@ namespace BeWo.Scheduler.View
|
||||
|
||||
private DateTime? _SelectedAppointmentStartDate;
|
||||
|
||||
private readonly SchedulerAppointmentDC _SelectedAppointmentFromHomePanelView;
|
||||
private bool _IsComingFromHomeDragPanel;
|
||||
|
||||
private SchedulerAppointmentDC _SelectedAppointmentFromHomePanelView;
|
||||
|
||||
public NewSchedulerView(DateTime pIntervalStartDate, SchedulerAppointmentDC pAppointment)
|
||||
{
|
||||
_IsComingFromHomeDragPanel = true;
|
||||
|
||||
|
||||
_SelectedAppointmentFromHomePanelView = pAppointment;
|
||||
|
||||
_SelectedAppointmentStartDate = pIntervalStartDate;
|
||||
@@ -500,11 +499,14 @@ namespace BeWo.Scheduler.View
|
||||
|
||||
if(_IstErsterAufruf)
|
||||
{
|
||||
if(MainControl.HatNeueTermine && !_IsComingFromHomeDragPanel)
|
||||
if(MainControl.HatNeueTermine && _SelectedAppointmentFromHomePanelView == null)
|
||||
{
|
||||
FensterOeffnen();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
OpenAppointmentFromHomePanel();
|
||||
}
|
||||
_IstErsterAufruf = false;
|
||||
}
|
||||
});
|
||||
@@ -512,7 +514,7 @@ namespace BeWo.Scheduler.View
|
||||
|
||||
private void InitScheduler()
|
||||
{
|
||||
if(_IsComingFromHomeDragPanel && _SelectedAppointmentStartDate.HasValue)
|
||||
if(_SelectedAppointmentFromHomePanelView != null && _SelectedAppointmentStartDate.HasValue)
|
||||
{
|
||||
var monday = _SelectedAppointmentStartDate.Value.FirstDateOfWeek(_SelectedAppointmentStartDate.Value.GetIso8601WeekOfYear());
|
||||
|
||||
@@ -530,7 +532,7 @@ namespace BeWo.Scheduler.View
|
||||
Scheduler.DayView.AppointmentDisplayOptions.ShowReminder = true;
|
||||
Scheduler.DayView.ResourcesPerPage = 1;
|
||||
|
||||
Scheduler.WorkWeekView.ShowFullWeek = _IsComingFromHomeDragPanel && Scheduler.Start.DayOfWeek.Equals(DayOfWeek.Saturday) || Scheduler.Start.DayOfWeek.Equals(DayOfWeek.Sunday);
|
||||
Scheduler.WorkWeekView.ShowFullWeek = _SelectedAppointmentFromHomePanelView != null && (Scheduler.Start.DayOfWeek.Equals(DayOfWeek.Saturday) || Scheduler.Start.DayOfWeek.Equals(DayOfWeek.Sunday));
|
||||
Scheduler.WorkWeekView.ShowWorkTimeOnly = false;
|
||||
|
||||
Scheduler.WorkWeekView.NavigationButtonVisibility = NavigationButtonVisibility.Always;
|
||||
@@ -2250,41 +2252,6 @@ namespace BeWo.Scheduler.View
|
||||
Scheduler.Storage.RefreshData();
|
||||
Scheduler.Storage.RefreshUI();
|
||||
|
||||
if(_IsComingFromHomeDragPanel && _SelectedAppointmentFromHomePanelView != null)
|
||||
{
|
||||
var apps = Scheduler.ActiveView.GetAppointments().ToList();
|
||||
|
||||
var oid = _SelectedAppointmentFromHomePanelView.SchedulerAppointmentOid;
|
||||
Appointment appointmentToOpen;
|
||||
|
||||
if(oid != null)
|
||||
{
|
||||
appointmentToOpen = apps.FirstOrDefault(app =>
|
||||
{
|
||||
var oidValue = app.CF_SchedulerAppointmentOid();
|
||||
|
||||
return oidValue.HasValue && oidValue.Value == oid;
|
||||
});
|
||||
|
||||
|
||||
if(appointmentToOpen != null)
|
||||
{
|
||||
Scheduler.ShowEditAppointmentForm(appointmentToOpen);
|
||||
}
|
||||
}
|
||||
else if(_SelectedAppointmentFromHomePanelView.RecurrenceId != null && _SelectedAppointmentFromHomePanelView.RecurrenceIndex > 0)
|
||||
{
|
||||
appointmentToOpen = apps.FirstOrDefault(appointment => appointment.RecurrenceInfo.Id.ToString().Equals(_SelectedAppointmentFromHomePanelView.RecurrenceId));
|
||||
|
||||
if(appointmentToOpen != null)
|
||||
{
|
||||
Scheduler.ShowEditAppointmentForm(appointmentToOpen);
|
||||
}
|
||||
}
|
||||
|
||||
_IsComingFromHomeDragPanel = false;
|
||||
}
|
||||
|
||||
callback?.Invoke();
|
||||
});
|
||||
});
|
||||
@@ -2298,6 +2265,54 @@ namespace BeWo.Scheduler.View
|
||||
}
|
||||
});
|
||||
}
|
||||
public void OpenAppointmentFromHomePanel()
|
||||
{
|
||||
if (_SelectedAppointmentFromHomePanelView != null)
|
||||
{
|
||||
var apps = Scheduler.ActiveView.GetAppointments().ToList();
|
||||
|
||||
var oid = _SelectedAppointmentFromHomePanelView.SchedulerAppointmentOid;
|
||||
Appointment appointmentToOpen = null;
|
||||
|
||||
if (oid != null)
|
||||
{
|
||||
appointmentToOpen = apps.FirstOrDefault(app =>
|
||||
{
|
||||
var oidValue = app.CF_SchedulerAppointmentOid();
|
||||
|
||||
return oidValue.HasValue && oidValue.Value == oid;
|
||||
});
|
||||
|
||||
|
||||
//if(appointmentToOpenFormHomePanel != null)
|
||||
//{
|
||||
// Scheduler.ShowEditAppointmentForm(appointmentToOpenFormHomePanel);
|
||||
//}
|
||||
}
|
||||
else if (_SelectedAppointmentFromHomePanelView.RecurrenceId != null && _SelectedAppointmentFromHomePanelView.RecurrenceIndex > 0)
|
||||
{
|
||||
appointmentToOpen = apps.FirstOrDefault(appointment => appointment.RecurrenceInfo.Id.ToString().Equals(_SelectedAppointmentFromHomePanelView.RecurrenceId));
|
||||
|
||||
//if(appointmentToOpenFormHomePanel != null)
|
||||
//{
|
||||
// Scheduler.ShowEditAppointmentForm(appointmentToOpenFormHomePanel);
|
||||
//}
|
||||
}
|
||||
|
||||
if (appointmentToOpen != null)
|
||||
{
|
||||
Scheduler.ShowEditAppointmentForm(appointmentToOpen);
|
||||
|
||||
}
|
||||
_SelectedAppointmentFromHomePanelView = null;
|
||||
}
|
||||
|
||||
//while (_IsComingFromHomeDragPanel)
|
||||
//{
|
||||
//Thread.Sleep(100);
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
private void ExportButton_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
@@ -17,6 +17,22 @@ namespace BeWo.ServiceProxy
|
||||
public interface ICustomerService
|
||||
{
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/SetVertretungGewuenscht", ReplyAction="http://tempuri.org/ICustomerService/SetVertretungGewuenschtResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetVertretungGewuenschtBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetVertretungGewuenscht(long pCustomerOid, bool vertWunsch);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlich", ReplyAction="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlichResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlichBeWoFaultFau" +
|
||||
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetVertretungDringendErforderlich(long pCustomerOid, bool vertDringendEr);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeId", ReplyAction="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeIdResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomerEmployeeRelationsByEmployeeId(long empOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/SetBenutzerPasswortChatAppCode", ReplyAction="http://tempuri.org/ICustomerService/SetBenutzerPasswortChatAppCodeResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetBenutzerPasswortChatAppCodeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetBenutzerPasswortChatAppCode(long pCustomerOid, string benutzerName, string passwort);
|
||||
@@ -48,11 +64,27 @@ namespace BeWo.ServiceProxy
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionType", ReplyAction="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionTypeResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/ConvertToNewSubstitutionTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerPersonRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerPersonRelationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCostBearerDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactSupportConceptDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactPersonDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactWohnheimDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceTimeDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceReasonDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerPersonRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerPersonRelationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CostRatePeriodDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CostRatePeriodDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ValueListEntryDC))]
|
||||
@@ -113,7 +145,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerVermittlungArbeitDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVermittlungArbeitDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BeWoDataContract))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaAuftragsherkunft))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVermittlungBearbeitungsstatus))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaVerlauf))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaVermittlungsGrundlage))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerOrganisationRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerOrganisationRelationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.MedikamentenverordnungslisteDC>))]
|
||||
@@ -180,22 +215,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ImageDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ImageDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AppointmentCategoryDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCustomerDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactOrganisationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactSupportConceptDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCostBearerDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactCostBearerDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactSupportConceptDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactPersonDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTeamDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactWohnheimDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactTokenDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AbsenceReasonVisibilityType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Sex))]
|
||||
@@ -340,6 +359,18 @@ namespace BeWo.ServiceProxy
|
||||
"ultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.SupportConceptCostBearerRelDC GetSupportConceptCostBearerRelationById(long oid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDC", ReplyAction="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDCResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.Compact.CompactSupportConceptDC LoadCompactSupportConceptDC(long pOid, System.Nullable<long> currentEmployeeOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetCompactCustomerDC", ReplyAction="http://tempuri.org/ICustomerService/GetCompactCustomerDCResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetCompactCustomerDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.Compact.CompactCustomerDC GetCompactCustomerDC(long pOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomers", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomersResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCompactCustomers();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ServiceRecordOutOfSupportConcept", ReplyAction="http://tempuri.org/ICustomerService/ServiceRecordOutOfSupportConceptResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/ServiceRecordOutOfSupportConceptBeWoFaultFaul" +
|
||||
"t", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
@@ -696,22 +727,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetAbWelchenKrankheitsTagBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetAbWelchenKrankheitsTag(long pCustomerOid, int abWelcherKt);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/SetVertretungGewuenscht", ReplyAction="http://tempuri.org/ICustomerService/SetVertretungGewuenschtResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetVertretungGewuenschtBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetVertretungGewuenscht(long pCustomerOid, bool vertWunsch);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlich", ReplyAction="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlichResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/SetVertretungDringendErforderlichBeWoFaultFau" +
|
||||
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void SetVertretungDringendErforderlich(long pCustomerOid, bool vertDringendEr);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeId", ReplyAction="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeIdResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetActiveCompactCustomerEmployeeRelationsByEm" +
|
||||
"ployeeIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomerEmployeeRelationsByEmployeeId(long empOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ArchiveCustomer", ReplyAction="http://tempuri.org/ICustomerService/ArchiveCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/ArchiveCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
void ArchiveCustomer(long pOid, long pVersion);
|
||||
@@ -893,6 +908,14 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateWohnheimBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
long UpdateWohnheim(BS.Shared.DataContracts.WohnheimDC dc, System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC> employeeDCs);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateWohneinheitBelegungen", ReplyAction="http://tempuri.org/ICustomerService/UpdateWohneinheitBelegungenResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateWohneinheitBelegungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> UpdateWohneinheitBelegungen(System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> dcs);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/DeleteWohneinheitBelegungen", ReplyAction="http://tempuri.org/ICustomerService/DeleteWohneinheitBelegungenResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/DeleteWohneinheitBelegungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
bool DeleteWohneinheitBelegungen(System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> dcs);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/InsertNewWohnheim", ReplyAction="http://tempuri.org/ICustomerService/InsertNewWohnheimResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/InsertNewWohnheimBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
long InsertNewWohnheim(BS.Shared.DataContracts.WohnheimDC pWohnheimDC);
|
||||
@@ -901,6 +924,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadWohnheimBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.WohnheimDC LoadWohnheim(long pWohnheimOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/LoadWohneinheitenForCustomer", ReplyAction="http://tempuri.org/ICustomerService/LoadWohneinheitenForCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadWohneinheitenForCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> LoadWohneinheitenForCustomer(long customerOid, System.Nullable<System.DateTime> datum);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetCustomerWithPersonOid", ReplyAction="http://tempuri.org/ICustomerService/GetCustomerWithPersonOidResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetCustomerWithPersonOidBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.CustomerDC GetCustomerWithPersonOid(long pPersonOid);
|
||||
@@ -1062,18 +1089,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllCustomerGoals", ReplyAction="http://tempuri.org/ICustomerService/GetAllCustomerGoalsResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllCustomerGoalsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.ValueListEntryDC> GetAllCustomerGoals(long pCustomerOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDC", ReplyAction="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDCResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadCompactSupportConceptDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.Compact.CompactSupportConceptDC LoadCompactSupportConceptDC(long pOid, System.Nullable<long> currentEmployeeOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetCompactCustomerDC", ReplyAction="http://tempuri.org/ICustomerService/GetCompactCustomerDCResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetCompactCustomerDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
BS.Shared.DataContracts.Compact.CompactCustomerDC GetCompactCustomerDC(long pOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomers", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomersResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCompactCustomersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCompactCustomers();
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -1110,6 +1125,21 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
}
|
||||
|
||||
public void SetVertretungGewuenscht(long pCustomerOid, bool vertWunsch)
|
||||
{
|
||||
base.Channel.SetVertretungGewuenscht(pCustomerOid, vertWunsch);
|
||||
}
|
||||
|
||||
public void SetVertretungDringendErforderlich(long pCustomerOid, bool vertDringendEr)
|
||||
{
|
||||
base.Channel.SetVertretungDringendErforderlich(pCustomerOid, vertDringendEr);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomerEmployeeRelationsByEmployeeId(long empOid)
|
||||
{
|
||||
return base.Channel.GetActiveCompactCustomerEmployeeRelationsByEmployeeId(empOid);
|
||||
}
|
||||
|
||||
public void SetBenutzerPasswortChatAppCode(long pCustomerOid, string benutzerName, string passwort)
|
||||
{
|
||||
base.Channel.SetBenutzerPasswortChatAppCode(pCustomerOid, benutzerName, passwort);
|
||||
@@ -1210,6 +1240,21 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetSupportConceptCostBearerRelationById(oid);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.Compact.CompactSupportConceptDC LoadCompactSupportConceptDC(long pOid, System.Nullable<long> currentEmployeeOid)
|
||||
{
|
||||
return base.Channel.LoadCompactSupportConceptDC(pOid, currentEmployeeOid);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.Compact.CompactCustomerDC GetCompactCustomerDC(long pOid)
|
||||
{
|
||||
return base.Channel.GetCompactCustomerDC(pOid);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCompactCustomers()
|
||||
{
|
||||
return base.Channel.GetAllActiveCompactCustomers();
|
||||
}
|
||||
|
||||
public bool ServiceRecordOutOfSupportConcept(BS.Shared.DataContracts.SupportConceptDC pSupportConcept)
|
||||
{
|
||||
return base.Channel.ServiceRecordOutOfSupportConcept(pSupportConcept);
|
||||
@@ -1620,21 +1665,6 @@ namespace BeWo.ServiceProxy
|
||||
base.Channel.SetAbWelchenKrankheitsTag(pCustomerOid, abWelcherKt);
|
||||
}
|
||||
|
||||
public void SetVertretungGewuenscht(long pCustomerOid, bool vertWunsch)
|
||||
{
|
||||
base.Channel.SetVertretungGewuenscht(pCustomerOid, vertWunsch);
|
||||
}
|
||||
|
||||
public void SetVertretungDringendErforderlich(long pCustomerOid, bool vertDringendEr)
|
||||
{
|
||||
base.Channel.SetVertretungDringendErforderlich(pCustomerOid, vertDringendEr);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomerEmployeeRelationsByEmployeeId(long empOid)
|
||||
{
|
||||
return base.Channel.GetActiveCompactCustomerEmployeeRelationsByEmployeeId(empOid);
|
||||
}
|
||||
|
||||
public void ArchiveCustomer(long pOid, long pVersion)
|
||||
{
|
||||
base.Channel.ArchiveCustomer(pOid, pVersion);
|
||||
@@ -1840,6 +1870,16 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.UpdateWohnheim(dc, employeeDCs);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> UpdateWohneinheitBelegungen(System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> dcs)
|
||||
{
|
||||
return base.Channel.UpdateWohneinheitBelegungen(dcs);
|
||||
}
|
||||
|
||||
public bool DeleteWohneinheitBelegungen(System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> dcs)
|
||||
{
|
||||
return base.Channel.DeleteWohneinheitBelegungen(dcs);
|
||||
}
|
||||
|
||||
public long InsertNewWohnheim(BS.Shared.DataContracts.WohnheimDC pWohnheimDC)
|
||||
{
|
||||
return base.Channel.InsertNewWohnheim(pWohnheimDC);
|
||||
@@ -1850,6 +1890,11 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.LoadWohnheim(pWohnheimOid);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.WohneinheitBelegungDC> LoadWohneinheitenForCustomer(long customerOid, System.Nullable<System.DateTime> datum)
|
||||
{
|
||||
return base.Channel.LoadWohneinheitenForCustomer(customerOid, datum);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.CustomerDC GetCustomerWithPersonOid(long pPersonOid)
|
||||
{
|
||||
return base.Channel.GetCustomerWithPersonOid(pPersonOid);
|
||||
@@ -2044,20 +2089,5 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
return base.Channel.GetAllCustomerGoals(pCustomerOid);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.Compact.CompactSupportConceptDC LoadCompactSupportConceptDC(long pOid, System.Nullable<long> currentEmployeeOid)
|
||||
{
|
||||
return base.Channel.LoadCompactSupportConceptDC(pOid, currentEmployeeOid);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.Compact.CompactCustomerDC GetCompactCustomerDC(long pOid)
|
||||
{
|
||||
return base.Channel.GetCompactCustomerDC(pOid);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCompactCustomers()
|
||||
{
|
||||
return base.Channel.GetAllActiveCompactCustomers();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -584,7 +584,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerCostBearerRelationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerVermittlungArbeitDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVermittlungArbeitDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaAuftragsherkunft))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVermittlungBearbeitungsstatus))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaVerlauf))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerVgaVermittlungsGrundlage))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerOrganisationRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerOrganisationRelationDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerPersonRelationDC>))]
|
||||
|
||||
@@ -42,6 +42,12 @@
|
||||
TargetType="{x:Type dxe:TextEdit}">
|
||||
<Setter Property="Mask" Value="######0.00 $" />
|
||||
</Style>
|
||||
<Style
|
||||
x:Key="TextEditCurrencyNullable"
|
||||
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
|
||||
TargetType="{x:Type dxe:TextEdit}">
|
||||
<Setter Property="Mask" Value="#######.## $" />
|
||||
</Style>
|
||||
<Style
|
||||
x:Key="TextEditHours"
|
||||
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
|
||||
|
||||
@@ -198,6 +198,7 @@
|
||||
CornerRadius="0, 10, 10, 10">
|
||||
<Grid Margin="4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto" />
|
||||
<ColumnDefinition Width="auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
@@ -205,17 +206,15 @@
|
||||
<RowDefinition Height="auto" />
|
||||
<RowDefinition Height="auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<!--<Border BorderThickness="1" Grid.ColumnSpan="2" Grid.RowSpan="2" BorderBrush="Black"></Border>-->
|
||||
<!--<Border BorderThickness="1" Grid.ColumnSpan="1" Grid.RowSpan="1" BorderBrush="Black"></Border>-->
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="0,0,0,4"
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
FontSize="12"
|
||||
FontWeight="Medium"
|
||||
Foreground="{DynamicResource TextForegroundSecondary}"
|
||||
Style="{StaticResource TextBlockStyle}"
|
||||
Text="{Binding DurationSec, StringFormat=Nachgedacht für {0} Sekunden}">
|
||||
<TextBlock.ToolTip>
|
||||
<Grid Margin="0,4,0,4">
|
||||
@@ -246,6 +245,15 @@
|
||||
</Grid>
|
||||
</TextBlock.ToolTip>
|
||||
</TextBlock>
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Margin="9,0,0,3"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
FontSize="12"
|
||||
FontWeight="Bold"
|
||||
Text="⋮"
|
||||
Visibility="{Binding DataContext.AssistentCommands, RelativeSource={RelativeSource AncestorType=ItemsControl}, Converter={StaticResource CollectionCountToVisibilityConverter}}" />
|
||||
<!--<TextBlock
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="2"
|
||||
@@ -258,7 +266,7 @@
|
||||
Text="{Binding DurationSec, StringFormat=Nachgedacht für {0} Sekunden}" />-->
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="2"
|
||||
Grid.ColumnSpan="3"
|
||||
Margin="0,4,0,0"
|
||||
Padding="-3"
|
||||
VerticalAlignment="Center"
|
||||
@@ -319,7 +327,19 @@
|
||||
</ContextMenu>
|
||||
</Border.ContextMenu>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto" />
|
||||
<ColumnDefinition Width="auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBox Padding="12,8,12,8" Style="{StaticResource MessageTextBoxStyle}" />
|
||||
<!--<TextBlock Grid.Column="1" Text="⋮"
|
||||
Margin="3,8,12,8"
|
||||
VerticalAlignment="Top"
|
||||
HorizontalAlignment="Left"
|
||||
FontSize="12"
|
||||
FontWeight="Bold"/>-->
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
||||
@@ -4048,30 +4048,7 @@
|
||||
FontSize="14"
|
||||
Foreground="#FFD2D2D2"
|
||||
Text="{Binding Path=Teams}" />
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
Grid.Column="5"
|
||||
Margin="0,0,3,0"
|
||||
VerticalAlignment="Center"
|
||||
FontFamily="Microsoft Sans Serif"
|
||||
FontSize="12"
|
||||
Foreground="#FFD2D2D2">
|
||||
<TextBlock.Visibility>
|
||||
<Binding ConverterParameter="Employee" Path="IsDeleted">
|
||||
<Binding.Converter>
|
||||
<conv:AnonymizationRight2VisibilityConverter />
|
||||
</Binding.Converter>
|
||||
</Binding>
|
||||
</TextBlock.Visibility>
|
||||
<Hyperlink
|
||||
Click="Hyperlink_Employee_Anonymize_Click"
|
||||
Foreground="#FFF97E7B"
|
||||
Tag="{Binding}"
|
||||
TargetName="_NewWindow">
|
||||
Anonymisieren
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
|
||||
@@ -630,7 +630,7 @@
|
||||
FixedWidth="True"
|
||||
Header="Datum"
|
||||
SortOrder="Descending" />
|
||||
<dxg:GridColumn
|
||||
<!--<dxg:GridColumn
|
||||
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
|
||||
FieldName="Zahlungstyp"
|
||||
FixedWidth="True"
|
||||
@@ -638,12 +638,12 @@
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:ComboBoxEditSettings IsTextEditable="False" ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridColumn>-->
|
||||
<dxg:GridColumn
|
||||
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
|
||||
FieldName="Betrag"
|
||||
FieldName="BetragEinzahlung"
|
||||
FixedWidth="True"
|
||||
Header="Betrag">
|
||||
Header="Einzahlung">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings
|
||||
Mask="c"
|
||||
@@ -651,6 +651,30 @@
|
||||
MaskUseAsDisplayFormat="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
|
||||
FieldName="BetragAuszahlung"
|
||||
FixedWidth="True"
|
||||
Header="Auszahlung">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings
|
||||
Mask="c"
|
||||
MaskType="Numeric"
|
||||
MaskUseAsDisplayFormat="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="Transaktionskassenbestand"
|
||||
FixedWidth="True"
|
||||
Header="Saldo">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings
|
||||
Mask="c"
|
||||
MaskType="Numeric"
|
||||
MaskUseAsDisplayFormat="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
|
||||
FieldName="Belegnummer"
|
||||
@@ -660,16 +684,21 @@
|
||||
<dxe:TextEditSettings />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="InsUser"
|
||||
FixedWidth="True"
|
||||
Header="Angelegt von" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
|
||||
FieldName="Notice"
|
||||
Header="Notiz" />
|
||||
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="InsUser"
|
||||
FixedWidth="True"
|
||||
Header="Angelegt von" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="InsTs"
|
||||
EditSettings="{dxe:DateSettings DisplayFormat=dd.MM.yyyy HH:mm}"
|
||||
FixedWidth="True"
|
||||
Header="Angelegt am" />
|
||||
<dxg:GridColumn
|
||||
FieldName="X"
|
||||
Header="Drucken"
|
||||
@@ -699,7 +728,9 @@
|
||||
NavigationStyle="Cell"
|
||||
ShowGroupPanel="False"
|
||||
ShowGroupedColumns="False"
|
||||
ShowTotalSummary="False" />
|
||||
ShowTotalSummary="False"
|
||||
ShowingEditor="TableView_ShowingEditor"
|
||||
/>
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</GroupBox>
|
||||
|
||||
@@ -21,6 +21,7 @@ using BS.Shared.Translation;
|
||||
using DevExpress.Utils;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using DevExpress.XtraEditors.Filtering;
|
||||
|
||||
namespace BeWo.View
|
||||
{
|
||||
@@ -602,6 +603,23 @@ namespace BeWo.View
|
||||
BeWoApp.AppSettings.LastKassenSortOrder = SortComboBox.SelectedIndex;
|
||||
BeWoApp.SaveAppSettings();
|
||||
}
|
||||
|
||||
private void TableView_ShowingEditor(object sender, ShowingEditorEventArgs e)
|
||||
{
|
||||
var bvm = e.Row as BargeldtransaktionsVM;
|
||||
if (bvm != null)
|
||||
{
|
||||
if (e.Column.FieldName == "BetragAuszahlung" && bvm.Zahlungstyp.Enum == Zahlungstyp.Einzahlung)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
else if (e.Column.FieldName == "BetragEinzahlung" && bvm.Zahlungstyp.Enum == Zahlungstyp.Auszahlung)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class KassenSortOrderItem
|
||||
|
||||
@@ -215,11 +215,11 @@
|
||||
x:Name="comboBox_Auftragsherkunft"
|
||||
Grid.Row="9"
|
||||
Grid.Column="1"
|
||||
DisplayMemberPath="TypeDescription"
|
||||
HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, ElementName=root}"
|
||||
ItemsSource="{Binding Path=DataContext.Auftragsherkunfte, RelativeSource={RelativeSource AncestorType={x:Type GroupBox}, AncestorLevel=2, Mode=FindAncestor}}"
|
||||
ItemsSource="{Binding Path=CustomerVgaAuftragsherkunftTypes}"
|
||||
SelectedValue="{Binding Path=Auftragsherkunft, Mode=TwoWay}"
|
||||
Style="{StaticResource PrimaryNullItemComboBox}" />
|
||||
Style="{StaticResource EnumTranslationNullItemComboBox}" />
|
||||
|
||||
<Label
|
||||
Grid.Row="10"
|
||||
@@ -229,10 +229,12 @@
|
||||
x:Name="comboBox_Vermittlungsgrundlage"
|
||||
Grid.Row="10"
|
||||
Grid.Column="1"
|
||||
DisplayMemberPath="TypeDescription"
|
||||
MaxWidth="300"
|
||||
HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, ElementName=root}"
|
||||
ItemsSource="{Binding Path=DataContext.Vermittlungsgrundlagen, RelativeSource={RelativeSource AncestorType={x:Type GroupBox}, AncestorLevel=2, Mode=FindAncestor}}"
|
||||
SelectedValue="{Binding Path=Vermittlungsgrundlage, Mode=TwoWay}" />
|
||||
ItemsSource="{Binding Path=CustomerVgaVermittlungsGrundlageTypes}"
|
||||
SelectedValue="{Binding Path=Vermittlungsgrundlage, Mode=TwoWay}"
|
||||
Style="{StaticResource EnumTranslationNullItemComboBox}" />
|
||||
|
||||
<Label
|
||||
Grid.Row="11"
|
||||
@@ -263,7 +265,7 @@
|
||||
Grid.Column="1"
|
||||
EditValue="{Binding Path=Tagessatzhohe, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditCurrency}" />
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
|
||||
<Label
|
||||
Grid.Row="14"
|
||||
@@ -274,33 +276,42 @@
|
||||
Grid.Column="1"
|
||||
EditValue="{Binding Path=HoheDerGeldstrafe, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditCurrency}" />
|
||||
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
<Label
|
||||
Grid.Row="15"
|
||||
Grid.Column="0"
|
||||
Content="Zu leistende Arbeitsstunden" />
|
||||
Content="Höhe der Gerichtskosten" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="15"
|
||||
Grid.Column="1"
|
||||
EditValue="{Binding Path=Gerichtskosten, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
<Label
|
||||
Grid.Row="16"
|
||||
Grid.Column="0"
|
||||
Content="Zu leistende Arbeitsstunden" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="16"
|
||||
Grid.Column="1"
|
||||
EditValue="{Binding Path=ZuLeistendeArbeitsstunden, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditHours}" />
|
||||
<Label
|
||||
Grid.Row="16"
|
||||
Grid.Row="17"
|
||||
Grid.Column="0"
|
||||
Content="Frist" />
|
||||
<dxe:DateEdit
|
||||
Grid.Row="16"
|
||||
Grid.Row="17"
|
||||
Grid.Column="1"
|
||||
EditValue="{Binding Path=Frist, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"/>
|
||||
<Label
|
||||
Grid.Row="17"
|
||||
Grid.Row="18"
|
||||
Grid.Column="0"
|
||||
Content="Hinweis" />
|
||||
<TextBox
|
||||
Grid.Row="17"
|
||||
Grid.Row="18"
|
||||
Grid.Column="1"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Text="{Binding Path=Hinweis, UpdateSourceTrigger=PropertyChanged}" />
|
||||
@@ -324,7 +335,7 @@
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Grid.Column="2"
|
||||
Content="Bearbeitungsstatus" />
|
||||
Content="Fallstatus" />
|
||||
<uc:NullItemComboBox
|
||||
x:Name="combobox_bearbeitungsstatus"
|
||||
Grid.Row="1"
|
||||
@@ -353,11 +364,11 @@
|
||||
x:Name="comboBox_Verlauf"
|
||||
Grid.Row="3"
|
||||
Grid.Column="3"
|
||||
DisplayMemberPath="TypeDescription"
|
||||
HorizontalAlignment="Stretch"
|
||||
IsEnabled="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, ElementName=root}"
|
||||
ItemsSource="{Binding Path=DataContext.Verlaeufe, RelativeSource={RelativeSource AncestorType={x:Type GroupBox}, AncestorLevel=2, Mode=FindAncestor}}"
|
||||
ItemsSource="{Binding Path=CustomerVgaVerlaufTypes}"
|
||||
SelectedValue="{Binding Path=Verlauf, Mode=TwoWay}"
|
||||
Style="{StaticResource PrimaryNullItemComboBox}" />
|
||||
Style="{StaticResource EnumTranslationNullItemComboBox}" />
|
||||
<Label
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
@@ -379,43 +390,62 @@
|
||||
EditValue="{Binding Path=ErsparteHafttage, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditDays}" />
|
||||
|
||||
<Label
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Content="Anzahl der Raten" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="6"
|
||||
Grid.Column="3"
|
||||
EditValue="{Binding Path=AnzahlRaten, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
<Label
|
||||
Grid.Row="7"
|
||||
Grid.Column="2"
|
||||
Content="Höhe der Raten" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="7"
|
||||
Grid.Column="3"
|
||||
EditValue="{Binding Path=RatenHoehe, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
<Label
|
||||
Grid.Row="8"
|
||||
Grid.Column="2"
|
||||
Content="Geleistete Ratenzahlung" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="6"
|
||||
Grid.Row="8"
|
||||
Grid.Column="3"
|
||||
EditValue="{Binding Path=GeleisteteRatenzahlung, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditCurrency}" />
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
|
||||
<Label
|
||||
Grid.Row="7"
|
||||
Grid.Row="9"
|
||||
Grid.Column="2"
|
||||
Content="Geleistete Einmalzahlung" />
|
||||
<dxe:TextEdit
|
||||
Grid.Row="7"
|
||||
Grid.Row="9"
|
||||
Grid.Column="3"
|
||||
EditValue="{Binding Path=GeleisteteEinmalzahlung, UpdateSourceTrigger=PropertyChanged}"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Style="{StaticResource TextEditCurrency}" />
|
||||
Style="{StaticResource TextEditNumberDecimalNullable}" />
|
||||
<Label
|
||||
Grid.Row="8"
|
||||
Grid.Row="10"
|
||||
Grid.Column="2"
|
||||
Content="BWH" />
|
||||
<TextBox
|
||||
Grid.Row="8"
|
||||
Grid.Row="10"
|
||||
Grid.Column="3"
|
||||
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
|
||||
Text="{Binding Path=Bewaehrungshelfer, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="9"
|
||||
Grid.Row="11"
|
||||
Grid.Column="2"
|
||||
Content="Bemerkung" />
|
||||
<TextBox
|
||||
Grid.Row="9"
|
||||
Grid.Row="11"
|
||||
Grid.Column="3"
|
||||
Grid.RowSpan="9"
|
||||
Height="190"
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
IsEnabled="{Binding IsEditingMode}"
|
||||
IsEnabled="{Binding ViewModel.CanEdit}"
|
||||
Text="{Binding ViewModel.Title, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Label Grid.Row="1" Grid.Column="0">
|
||||
@@ -55,7 +55,7 @@
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="2"
|
||||
IsEnabled="{Binding IsEditingMode}"
|
||||
IsEnabled="{Binding ViewModel.CanEdit}"
|
||||
MaxLength="1024"
|
||||
Style="{StaticResource TextBoxNoticeLarge}"
|
||||
Text="{Binding ViewModel.Description, UpdateSourceTrigger=PropertyChanged}"
|
||||
@@ -77,7 +77,7 @@
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsChecked="{Binding ViewModel.IsPublic}"
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit, UpdateSourceTrigger=PropertyChanged}" />
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit}" />
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="6"
|
||||
|
||||
@@ -81,9 +81,9 @@
|
||||
<Label
|
||||
Grid.Row="2"
|
||||
Grid.Column="2"
|
||||
HorizontalAlignment="Center"
|
||||
FontSize="10"
|
||||
Foreground="DarkGray"
|
||||
HorizontalAlignment="Center"
|
||||
Visibility="{Binding ViewModel.IsPromptVisible, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}">
|
||||
nicht sichtbar
|
||||
</Label>
|
||||
@@ -99,13 +99,13 @@
|
||||
IsEnabled="False"
|
||||
SelectedCompactEmployeeDC="{Binding ViewModel.Creator}" />
|
||||
|
||||
<!--<Label Grid.Row="4" Grid.Column="0">Öffentlich</Label>
|
||||
<Label Grid.Row="4" Grid.Column="0">Öffentlich</Label>
|
||||
<dxe:CheckEdit
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsChecked="{Binding ViewModel.IsPublic}"
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit, UpdateSourceTrigger=PropertyChanged}" />-->
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit}" />
|
||||
|
||||
<Label Grid.Row="5" Grid.Column="0">Favorit</Label>
|
||||
<dxe:CheckEdit
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
<RowDefinition Height="auto" />
|
||||
<RowDefinition Height="auto" />
|
||||
<RowDefinition Height="auto" />
|
||||
<RowDefinition Height="auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="0">Name</Label>
|
||||
@@ -187,17 +188,17 @@
|
||||
IsEnabled="False"
|
||||
SelectedCompactEmployeeDC="{Binding ViewModel.Creator}" />
|
||||
|
||||
<!--<Label Grid.Row="4" Grid.Column="0">Öffentlich</Label>
|
||||
<Label Grid.Row="6" Grid.Column="0">Öffentlich</Label>
|
||||
<dxe:CheckEdit
|
||||
Grid.Row="4"
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsChecked="{Binding ViewModel.IsPublic}"
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit, UpdateSourceTrigger=PropertyChanged}" />-->
|
||||
IsEnabled="{Binding ViewModel.CanShareEdit}" />
|
||||
|
||||
<Label Grid.Row="6" Grid.Column="0">Favorit</Label>
|
||||
<Label Grid.Row="7" Grid.Column="0">Favorit</Label>
|
||||
<dxe:CheckEdit
|
||||
Grid.Row="6"
|
||||
Grid.Row="7"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsChecked="{Binding ViewModel.IsFavorite}"
|
||||
@@ -205,7 +206,7 @@
|
||||
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="7"
|
||||
Grid.Row="8"
|
||||
Grid.ColumnSpan="3"
|
||||
Margin="0,19,0,0"
|
||||
HorizontalAlignment="Right"
|
||||
|
||||
@@ -37,7 +37,10 @@ namespace BeWo.View.Detail.AI
|
||||
|
||||
ViewModel = viewmodel;
|
||||
|
||||
var viewmodel2 = new AiPromptbausteinSelectionComplexViewModel(ViewModel.ViewModel.ActionType, ViewModel.FolderListVM, false, false);
|
||||
var folder_dc = ViewModel.FolderListVM.CopyToDCList(true);
|
||||
var folder_vm = new AiPromptbausteinFolderListVM(folder_dc);
|
||||
|
||||
var viewmodel2 = new AiPromptbausteinSelectionComplexViewModel(ViewModel.ViewModel.ActionType, folder_vm, false, false);
|
||||
var control = new AiPromptbausteinComplexSelectionView(viewmodel2);
|
||||
|
||||
viewmodel2.ItemAccepted += (s, e) =>
|
||||
|
||||
@@ -995,9 +995,20 @@
|
||||
ToolTipService.InitialShowDelay="0"
|
||||
ToolTipService.ShowOnDisabled="True" />
|
||||
<Label
|
||||
x:Name="lblArchiviert"
|
||||
Grid.Row="7"
|
||||
Grid.Column="2"
|
||||
Content="{markup:Translate BG Nummer}" />
|
||||
<TextBox
|
||||
Grid.Row="7"
|
||||
Grid.Column="3"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Foreground="{Binding Path=BGNummer}"
|
||||
Text="{Binding Path=BGNummer, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<Label
|
||||
x:Name="lblArchiviert"
|
||||
Grid.Row="8"
|
||||
Grid.Column="2"
|
||||
Content="Archiviert" />
|
||||
|
||||
<Label
|
||||
@@ -1201,7 +1212,7 @@
|
||||
Text="{Binding Path=HealthInsurance, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<CheckBox
|
||||
x:Name="chkArchiviert"
|
||||
Grid.Row="7"
|
||||
Grid.Row="8"
|
||||
Grid.Column="3"
|
||||
Height="23"
|
||||
Margin="3,5,3,1"
|
||||
@@ -3743,144 +3754,11 @@
|
||||
<TabItem
|
||||
Name="tabitem_Bargeldverwaltung"
|
||||
Header="Bargeldverwaltung"
|
||||
Selector.Selected="Tabitem_Bargeldverwaltung_OnSelected">
|
||||
|
||||
<!--<Grid x:Name="BargeldverwaltungsGrid">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Grid.Column="0" Grid.Row="0" Orientation="Horizontal" Grid.ColumnSpan="2">
|
||||
<Label VerticalAlignment="Center">Kassenbestand</Label>
|
||||
<dxe:TextEdit MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" Height="23" Margin="3" EditMode="InplaceInactive"
|
||||
Width="100" EditValue="{Binding Path=Kassenbestand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" />
|
||||
|
||||
<Label VerticalAlignment="Center">Auszahlungsintervall</Label>
|
||||
<dxe:ComboBoxEdit VerticalAlignment="Center" Height="23" HorizontalAlignment="Left" Width="150" IsTextEditable="False" Margin="3,0,3,3" IsEnabled="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}"
|
||||
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Auszahlungsintervall}}"
|
||||
EditValue="{Binding Path=Auszahlungsintervall, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="3" Grid.Row="0" HorizontalAlignment="Right" Orientation="Horizontal">
|
||||
<uc:NullItemComboBox x:Name="KassenbuchMonatsCB" Margin="3">
|
||||
<ComboBoxItem>1</ComboBoxItem>
|
||||
<ComboBoxItem>2</ComboBoxItem>
|
||||
<ComboBoxItem>3</ComboBoxItem>
|
||||
<ComboBoxItem>4</ComboBoxItem>
|
||||
<ComboBoxItem>5</ComboBoxItem>
|
||||
<ComboBoxItem>6</ComboBoxItem>
|
||||
<ComboBoxItem>7</ComboBoxItem>
|
||||
<ComboBoxItem>8</ComboBoxItem>
|
||||
<ComboBoxItem>9</ComboBoxItem>
|
||||
<ComboBoxItem>10</ComboBoxItem>
|
||||
<ComboBoxItem>11</ComboBoxItem>
|
||||
<ComboBoxItem>12</ComboBoxItem>
|
||||
</uc:NullItemComboBox>
|
||||
<uc:NullItemComboBox x:Name="KassenbuchJahresCB" Margin="3" />
|
||||
<TextBlock Margin="3" FontSize="14" VerticalAlignment="Center" PreviewMouseLeftButtonDown="UIElement_OnPreviewMouseLeftButtonDown">
|
||||
<Hyperlink x:Name="LinkKassenbuchDrucken" TargetName="_NewWindow" Foreground="#FF2B508B">
|
||||
<Run Text="Kassenbuch Drucken" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<GroupBox x:Name="NeueZahlungsGroupBox" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" Style="{StaticResource ObjectEditGroupBox}" Header="Neue Zahlung">
|
||||
<Grid x:Name="NeueTransaktionsGrid">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid Grid.Column="0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Datum</Label>
|
||||
<dxe:DateEdit Grid.Column="1" Grid.Row="0" Width="100" MaskType="DateTimeAdvancingCaret" Height="23" Margin="3" EditValue="{val:ValidationBinding Path=Bargeldtransaktionsliste.NewVM.Zahlungsdatum, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Label Grid.Column="2" Grid.Row="0">Art</Label>
|
||||
<dxe:ComboBoxEdit Grid.Column="3" Grid.Row="0" Height="23" HorizontalAlignment="Left" Width="150" IsTextEditable="False" Margin="3,0,3,3"
|
||||
EditValue="{val:ValidationBinding Path=Bargeldtransaktionsliste.NewVM.Zahlungstyp, UpdateSourceTrigger=PropertyChanged}"
|
||||
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" />
|
||||
|
||||
<Label Grid.Column="4" Grid.Row="0">Betrag</Label>
|
||||
<dxe:TextEdit Grid.Column="5" Grid.Row="0" MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Height="23" Margin="3" Width="100"
|
||||
EditValue="{val:ValidationBinding Path=Bargeldtransaktionsliste.NewVM.Betrag, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Label Grid.Row="1" Grid.Column="0" Content="Notiz" />
|
||||
<TextBox Margin="3" Grid.Column="1" Grid.ColumnSpan="5" Grid.Row="1"
|
||||
Text="{Binding Path=Bargeldtransaktionsliste.NewVM.Notice, UpdateSourceTrigger=PropertyChanged}" Height="60"
|
||||
VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Left"
|
||||
ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Hidden" TextWrapping="Wrap" AcceptsReturn="True"
|
||||
AutoWordSelection="True" Language="de-DE" SpellCheck.IsEnabled="True" />
|
||||
|
||||
<Button Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="6" HorizontalAlignment="Right" Margin="3" Click="AddBargeldTransaktion">Hinzufügen</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4" Style="{StaticResource ObjectEditGroupBox}" Header="Ein- und Auszahlungen">
|
||||
<dxg:GridControl Name="grid_bargeldtransaktionen" ItemsSource="{Binding Path=Bargeldtransaktionsliste.VMList}" CustomColumnSort="Grid_Bargeldtransaktionen_OnCustomColumnSort">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Button Content="r" Click="button_bargeldtransaktionDeleteClick" FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center" />
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn Header="Datum" FieldName="Zahlungsdatum" EditSettings="{dxe:DateSettings DisplayFormat=d}" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}" />
|
||||
<dxg:GridColumn Header="Art" FieldName="Zahlungstyp" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:ComboBoxEditSettings ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" IsTextEditable="False" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
|
||||
<dxg:GridColumn Header="Betrag" FieldName="Betrag" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn Header="Notiz" FieldName="Notice" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type detail:CustomerView}}}"/>
|
||||
<dxg:GridColumn FieldName="X" Header="Drucken" ReadOnly="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock x:Name="textblock_link_pdfexport" VerticalAlignment="Center" Margin="3,0,0,0">
|
||||
<Hyperlink x:Name="LinkZahlungsbelegDrucken" Click="LinkZahlungsbelegDruckenClick" TargetName="_NewWindow"
|
||||
Foreground="#FF2B508B">
|
||||
<Run Text="Zahlungsbeleg Drucken" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</DataTemplate>
|
||||
</dxg:GridColumn.CellTemplate>
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView NavigationStyle="Cell" Margin="2 2 2 2" AutoWidth="True"
|
||||
ShowAutoFilterRow="False" ShowGroupPanel="False" ShowGroupedColumns="False"
|
||||
ShowTotalSummary="False" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</GroupBox>
|
||||
</Grid>-->
|
||||
</TabItem>
|
||||
|
||||
|
||||
Selector.Selected="Tabitem_Bargeldverwaltung_OnSelected" />
|
||||
<TabItem
|
||||
Name="tabitem_Wohnungsverwaltung"
|
||||
Header="{t:Translate Wohneinheiten}"
|
||||
Selector.Selected="Tabitem_Wohnungsverwaltung_OnSelected" />
|
||||
<TabItem
|
||||
Name="tabitem_chatservice"
|
||||
Header="ownChat"
|
||||
|
||||
@@ -55,6 +55,7 @@ using DevExpress.Mvvm;
|
||||
using System.Collections;
|
||||
using BeWo.Core.Commands;
|
||||
using BeWo.ViewModel.View.AI;
|
||||
using BeWo.View.Detail.Wohneinheit;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
@@ -249,7 +250,11 @@ namespace BeWo.View.Detail
|
||||
ButtonNeuAusAktuellerVerordnung.Visibility = Visibility.Collapsed;
|
||||
ButtonNeueMedikamentenverordnung.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.WohnheimView_Wohneinheit_Belegung_Manage))
|
||||
{
|
||||
tabitem_Wohnungsverwaltung.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
var l = new List<int>();
|
||||
for (var i = 9; i >= 0; i--)
|
||||
{
|
||||
@@ -1910,6 +1915,29 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
}
|
||||
|
||||
private void Tabitem_Wohnungsverwaltung_OnSelected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
if (ViewModel.IsNew)
|
||||
{
|
||||
MessageBox.Show("Bevor Sie Wohneinheiten zuordnen können, muss dieser Datensatz zuerst gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
//BargeldverwaltungsGrid.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// grid_bargeldtransaktionen.Columns[1].SortMode = ColumnSortMode.Custom;
|
||||
// grid_bargeldtransaktionen.SortBy(grid_bargeldtransaktionen.Columns[1]);
|
||||
//}
|
||||
|
||||
if (tabitem_Wohnungsverwaltung.Content == null)
|
||||
{
|
||||
var view = new CustomerWohneinheitenView(ViewModel.DataContract.CustomerOid.Value);
|
||||
|
||||
tabitem_Wohnungsverwaltung.Content = view;
|
||||
}
|
||||
}
|
||||
|
||||
private void popupedit_behinderungsarten_PopUpClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
PopupBehinderungsarten.IsOpen = true;
|
||||
|
||||
@@ -739,8 +739,8 @@
|
||||
Grid.Row="2"
|
||||
Grid.Column="3"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip="Postfachanschrift der Datenannahmestelle">
|
||||
Postfachanschrift
|
||||
ToolTip="Postfach- oder Großkundenanschrift der Datenannahmestelle">
|
||||
Postfach- / GK-Anschrift
|
||||
</Label>
|
||||
<TextBox
|
||||
x:Name="txt_postfachanschrift"
|
||||
@@ -753,8 +753,8 @@
|
||||
Grid.Row="3"
|
||||
Grid.Column="3"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip="Großkundenanschrift der Datenannahmestelle">
|
||||
Großkundenanschrift
|
||||
ToolTip="Papierannahmeanschrift für die Datenannahmestelle">
|
||||
Papierannahmeanschrift
|
||||
</Label>
|
||||
<TextBox
|
||||
x:Name="txt_grosskundenanschrift"
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
<DataTemplate x:Key="AppointmentTooltipContentTemplate" />
|
||||
|
||||
</localView:BeWoView.Resources>
|
||||
<Grid>
|
||||
<Grid x:Name="_RootGrid">
|
||||
<GroupBox Header="Abwesenheiten" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
|
||||
@@ -13,6 +13,8 @@ using DevExpress.XtraScheduler;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
// Claude - Task für async/await-Unterstützung (Hintergrundladen)
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
@@ -77,18 +79,37 @@ namespace BeWo.View.Detail.Report
|
||||
|
||||
public List<CompactTeamDC> SelectedTeams => FilterTeams.SelectedItems.Cast<CompactTeamDC>().ToList();
|
||||
|
||||
private void Button_Click(object sender, RoutedEventArgs e)
|
||||
// Claude - Servicaufrufe laufen asynchron im Hintergrund; WaitLayer2 zeigt Ladeindikator;
|
||||
// - Hauptfenster wird während des Ladens komplett deaktiviert (keine Interaktion möglich)
|
||||
private async void Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
UpdateFilter();
|
||||
|
||||
|
||||
SelectedMonth = _MonthPicker.SelectedMonth;
|
||||
SelectedYear = (int)_YearPicker.SelectedItem;
|
||||
|
||||
UrlaubsplanerRootObj = ServiceFacade.DoEmployeeServiceSync(s => s.BuildUrlaubsplanerRootObject(_SelectedFilter));
|
||||
var waitLayer = new WaitLayer2();
|
||||
_RootGrid.Children.Add(waitLayer);
|
||||
BeWoApp.CurrentBeWo.MainWindow.IsEnabled = false;
|
||||
|
||||
UpdateScheduler(false);
|
||||
ColorizeFeiertage();
|
||||
ApplyFeiertagCellStyle();
|
||||
try
|
||||
{
|
||||
var filter = _SelectedFilter;
|
||||
UrlaubsplanerRootObj = await Task.Run(() =>
|
||||
ServiceFacade.DoEmployeeServiceSync(s => s.BuildUrlaubsplanerRootObject(filter)));
|
||||
|
||||
var absenceOverview = await Task.Run(() =>
|
||||
ServiceFacade.DoEmployeeServiceSync(x => x.GetAbsenceOverview(filter)));
|
||||
|
||||
UpdateScheduler(false, absenceOverview);
|
||||
ColorizeFeiertage();
|
||||
ApplyFeiertagCellStyle();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_RootGrid.Children.Remove(waitLayer);
|
||||
BeWoApp.CurrentBeWo.MainWindow.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void ColorizeFeiertage()
|
||||
@@ -254,10 +275,14 @@ namespace BeWo.View.Detail.Report
|
||||
|
||||
}
|
||||
|
||||
public void UpdateScheduler(bool neuLaden)
|
||||
// Claude - optionaler Parameter absenceOverview: vorgeladene Daten aus Button_Click werden übergeben, um doppelten Serviceaufruf zu vermeiden
|
||||
public void UpdateScheduler(bool neuLaden, List<EmployeeDC> absenceOverview = null)
|
||||
{
|
||||
var absenceReasons = _AbsenceReasonDCs;
|
||||
var absenceOverview = ServiceFacade.DoEmployeeServiceSync(x => x.GetAbsenceOverview(_SelectedFilter));
|
||||
|
||||
if (absenceOverview == null)
|
||||
absenceOverview = ServiceFacade.DoEmployeeServiceSync(x => x.GetAbsenceOverview(_SelectedFilter));
|
||||
|
||||
_ListOfEmployee = absenceOverview;
|
||||
var start = new DateTime(_SelectedFilter.Year, _SelectedFilter.Month, 1);
|
||||
|
||||
|
||||
@@ -92,7 +92,15 @@ namespace BeWo.View.Detail
|
||||
MessageBox.Show("Bitte wählen Sie ein Teamleitung aus", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.ViewModel.IsOwnChatTeam)
|
||||
{
|
||||
var employees = ViewModel.OwnChatMember.Where(o => o.Person.PersonType == PersonType.Employee).ToList();
|
||||
if (employees.Count == 0)
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Bitte wählen Sie mindestens eine Mitarbeiterin oder einen Mitarbeiter aus"), "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var lDC = ViewModel.CommitToDataContract();
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
<dxg:GridColumn FieldName="ResturlaubVorjahr" Header="Resturlaub Vorjahr" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="VerfallenerResturlaub" Header="Davon verfallen" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="Urlaubsanspruch" Header="Urlaubsanspruch (Jahr)" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="GeschenkteUrlaubstage" Header="Geschenkte Urlaubstage" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageUrlaub" Header="Tage Urlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="Resturlaub" Header="Resturlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageKrankheit" Header="Tage Krankheit" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageUrlaub" Header="Tage Urlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="GeschenkteUrlaubstage" Header="Geschenkte Urlaubstage" Width="*" AllowEditing="False"/>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="false" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
@@ -56,10 +56,10 @@
|
||||
<dxg:GridColumn FieldName="ResturlaubVorjahr" Header="Resturlaub Vorjahr" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="VerfallenerResturlaub" Header="Davon verfallen" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="Urlaubsanspruch" Header="Urlaubsanspruch (Jahr)" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="GeschenkteUrlaubstage" Header="Geschenkte Urlaubstage" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageUrlaub" Header="Tage Urlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="Resturlaub" Header="Resturlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageKrankheit" Header="Tage Krankheit" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="TageUrlaub" Header="Tage Urlaub" Width="*" AllowEditing="False"/>
|
||||
<dxg:GridColumn FieldName="GeschenkteUrlaubstage" Header="Geschenkte Urlaubstage" Width="*" AllowEditing="False"/>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="false" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell"/>
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
<Popup
|
||||
x:Class="BeWo.View.Detail.Wohneinheit.CustomerWohneinheitBelegungEditPopup"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:local="clr-namespace:BeWo.View.Controls"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
|
||||
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
x:Name="root_Popup"
|
||||
Height="400"
|
||||
d:DataContext="{d:DesignInstance Type=viewmodel:WohneinheitBelegungVM}"
|
||||
Closed="root_Popup_Closed"
|
||||
Opened="Popup_Opened"
|
||||
Placement="MousePoint"
|
||||
StaysOpen="True"
|
||||
mc:Ignorable="d">
|
||||
<Popup.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Popup.Resources>
|
||||
<Border
|
||||
Padding="3"
|
||||
VerticalAlignment="Stretch"
|
||||
Background="White"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1">
|
||||
<GroupBox
|
||||
x:Name="groupbox_newBelegung"
|
||||
Header="Belegung erstellen"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="10" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="10" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="0" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto" />
|
||||
<ColumnDefinition Width="10" />
|
||||
<ColumnDefinition Width="*" MinWidth="200" />
|
||||
<ColumnDefinition Width="20" />
|
||||
<ColumnDefinition Width="auto" />
|
||||
<ColumnDefinition Width="10" />
|
||||
<ColumnDefinition Width="*" MinWidth="200" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="0" Content="{t:Translate Wohnprojekt}"/>
|
||||
|
||||
|
||||
<ComboBox
|
||||
x:Name="combobox_Wohnprojekt"
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Grid.ColumnSpan="5"
|
||||
SelectionChanged="WohnprojektComboBox_ItemSelected" />
|
||||
|
||||
<Label Grid.Row="1">
|
||||
Wohneinheit
|
||||
</Label>
|
||||
<ComboBox
|
||||
x:Name="combobox_Wohneinheit"
|
||||
Grid.Row="1"
|
||||
Grid.Column="2"
|
||||
Grid.ColumnSpan="5"
|
||||
Height="27"
|
||||
SelectionChanged="WohneinheitComboBox_ItemSelected"
|
||||
|
||||
/>
|
||||
|
||||
<Label Grid.Row="3">
|
||||
Beginn
|
||||
</Label>
|
||||
<dxe:DateEdit
|
||||
Grid.Row="3"
|
||||
Grid.Column="2"
|
||||
EditValue="{Binding Path=CurrentVM.StartDate, UpdateSourceTrigger=PropertyChanged}"
|
||||
ShowClearButton="False" />
|
||||
|
||||
<Label Grid.Row="3" Grid.Column="4">
|
||||
Ende
|
||||
</Label>
|
||||
<dxe:DateEdit
|
||||
Grid.Row="3"
|
||||
Grid.Column="6"
|
||||
EditValue="{Binding Path=CurrentVM.EndDate, UpdateSourceTrigger=PropertyChanged}"
|
||||
ShowClearButton="True" />
|
||||
|
||||
<Label Grid.Row="5" Content="Notiz" />
|
||||
<TextBox
|
||||
Grid.Row="5"
|
||||
Grid.Column="2"
|
||||
Grid.ColumnSpan="5"
|
||||
Style="{StaticResource TextBoxNoticeLarge}"
|
||||
Text="{Binding Path=CurrentVM.Kommentar, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<StackPanel
|
||||
Grid.Row="7"
|
||||
Grid.ColumnSpan="7"
|
||||
Margin="3"
|
||||
HorizontalAlignment="Right"
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
x:Name="btn_save"
|
||||
Margin="3"
|
||||
Click="Save_Button_Click"
|
||||
IsEnabled="{Binding Path=CurrentVM.CanSave, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
|
||||
Hinzufügen
|
||||
</Button>
|
||||
<Button
|
||||
x:Name="btn_cancel"
|
||||
Margin="3"
|
||||
Click="Cancel_Button_Click">
|
||||
Abbrechen
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Border>
|
||||
</Popup>
|
||||
@@ -0,0 +1,199 @@
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Translation;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using static DevExpress.Utils.Drawing.Helpers.NativeMethods;
|
||||
|
||||
namespace BeWo.View.Detail.Wohneinheit
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für CustomerWohneinheitBelegungEditPopup.xaml
|
||||
/// </summary>
|
||||
public partial class CustomerWohneinheitBelegungEditPopup : Popup
|
||||
{
|
||||
|
||||
List<CompactWohnheimDC> _Wohnheime = null;
|
||||
Dictionary<long, WohnheimDC> _WohnheidOid2Einheiten = new Dictionary<long, WohnheimDC>();
|
||||
|
||||
public WohneinheitBelegungListVM ViewModel
|
||||
{
|
||||
get { return DataContext as WohneinheitBelegungListVM; }
|
||||
}
|
||||
|
||||
public List<CompactWohnheimDC> Wohnheime
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Wohnheime;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AddMode { get; set; }
|
||||
public long CustomerOid { get; internal set; }
|
||||
|
||||
public CustomerWohneinheitBelegungEditPopup()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Save_Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//var doppelt = CheckDoppelbelegung(ViewModel.NewVM);
|
||||
//StaysOpen = false;
|
||||
//if (doppelt == null || MessageBox.Show(Translator.Translate(String.Format("Die ausgewählte Person wohnt zum angegebenen Zeitpunkt bereits in der Wohnung {0}.\r\n\r\nMöchten Sie trotzdem speichern?", doppelt.Wohneinheit)), "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
//{
|
||||
ViewModel.AddNewVMToList();
|
||||
|
||||
IsOpen = false;
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
private WohneinheitBelegungVM CheckDoppelbelegung(WohneinheitBelegungVM newVM)
|
||||
{
|
||||
foreach (var vm in ViewModel.VMList)
|
||||
{
|
||||
if (DateTimeUtils.IsOverlapping(vm.StartDate, vm.EndDate, newVM.StartDate, newVM.EndDate))
|
||||
{
|
||||
return vm;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void Cancel_Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.CloseNewVM();
|
||||
|
||||
IsOpen = false;
|
||||
}
|
||||
|
||||
private void Popup_Opened(object sender, EventArgs e)
|
||||
{
|
||||
if (_Wohnheime == null)
|
||||
{
|
||||
_Wohnheime = ServiceFacade.DoCustomerServiceSync(s => s.GetAllActiveWohnheimeCompact()).OrderBy(w => w.WohnheimName).ToList();
|
||||
}
|
||||
|
||||
var listvm = ViewModel;
|
||||
|
||||
AddMode = listvm.EditVM is null;
|
||||
|
||||
combobox_Wohnprojekt.ItemsSource = _Wohnheime;
|
||||
|
||||
if (AddMode)
|
||||
{
|
||||
btn_cancel.Visibility = Visibility.Visible;
|
||||
btn_save.Visibility = Visibility.Visible;
|
||||
StaysOpen = true;
|
||||
groupbox_newBelegung.Header = "Belegung erstellen";
|
||||
|
||||
combobox_Wohnprojekt.SelectedItem = null;
|
||||
combobox_Wohneinheit.SelectedItem = null;
|
||||
|
||||
if (listvm.CurrentVM.Customer == null)
|
||||
{
|
||||
listvm.CurrentVM.Customer = new CompactCustomerDC { CustomerOid = CustomerOid };
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
btn_cancel.Visibility = Visibility.Collapsed;
|
||||
btn_save.Visibility = Visibility.Collapsed;
|
||||
StaysOpen = false;
|
||||
groupbox_newBelegung.Header = "Belegung bearbeiten";
|
||||
|
||||
if (listvm.CurrentVM.Wohneinheit is object)
|
||||
{
|
||||
long wohnheimOid = listvm.CurrentVM.Wohneinheit.DataContract.WohnheimOid;
|
||||
long wohneinheitOid = listvm.CurrentVM.Wohneinheit.Oid.Value;
|
||||
combobox_Wohnprojekt.SelectedItem = _Wohnheime.FirstOrDefault(w => w.WohnheimOid == wohnheimOid);
|
||||
UpdateWohneinheitComboBox(wohneinheitOid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void root_Popup_Closed(object sender, EventArgs e)
|
||||
{
|
||||
var vmlist = ViewModel;
|
||||
var currentvm = vmlist.CurrentVM;
|
||||
|
||||
root_Popup.Focus();
|
||||
|
||||
if (currentvm is object)
|
||||
{
|
||||
if (AddMode)
|
||||
{
|
||||
vmlist.CloseNewVM();
|
||||
}
|
||||
else
|
||||
{
|
||||
vmlist.CloseEditVM();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void WohnprojektComboBox_ItemSelected(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
UpdateWohneinheitComboBox(null);
|
||||
}
|
||||
|
||||
private void UpdateWohneinheitComboBox(long? selectedWohneinheitOid)
|
||||
{
|
||||
var wohneim = combobox_Wohnprojekt.SelectedItem as CompactWohnheimDC;
|
||||
if (wohneim != null)
|
||||
{
|
||||
var wohnheimOid = wohneim.WohnheimOid;
|
||||
|
||||
if (!_WohnheidOid2Einheiten.ContainsKey(wohnheimOid))
|
||||
{
|
||||
var wh = ServiceFacade.DoCustomerServiceSync(s => s.LoadWohnheim(wohnheimOid));
|
||||
foreach (var item in wh.Wohneinheiten)
|
||||
{
|
||||
item.WohnheimOid = wh.WohnheimOid.Value;
|
||||
}
|
||||
_WohnheidOid2Einheiten.Add(wohnheimOid, wh);
|
||||
}
|
||||
var list = _WohnheidOid2Einheiten[wohnheimOid].Wohneinheiten;
|
||||
|
||||
var vmlist = new WohneinheitListVM(list);
|
||||
combobox_Wohneinheit.ItemsSource = vmlist.VMList;
|
||||
if (selectedWohneinheitOid.HasValue)
|
||||
{
|
||||
combobox_Wohneinheit.SelectedItem = vmlist.VMList.FirstOrDefault(w => w.Oid == selectedWohneinheitOid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void WohneinheitComboBox_ItemSelected(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
ViewModel.CurrentVM.SetNewWohneinheit(combobox_Wohneinheit.SelectedItem as WohneinheitVM);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
132
BeWo/View/Detail/Wohneinheit/CustomerWohneinheitenView.xaml
Normal file
132
BeWo/View/Detail/Wohneinheit/CustomerWohneinheitenView.xaml
Normal file
@@ -0,0 +1,132 @@
|
||||
<view:BeWoView
|
||||
x:Class="BeWo.View.Detail.Wohneinheit.CustomerWohneinheitenView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:controls="clr-namespace:BeWo.View.Controls"
|
||||
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:BeWo.View.Detail.Wohneinheit"
|
||||
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:validation="clr-namespace:BeWo.Validation"
|
||||
xmlns:view="clr-namespace:BeWo.View"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Focusable="True"
|
||||
mc:Ignorable="d">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox
|
||||
x:Name="groupbox_Wohneinheit_Buchung"
|
||||
Header="{t:Translate Wohnungsbelegung}"
|
||||
Style="{StaticResource ObjectEditGroupBox}"
|
||||
Visibility="Visible">
|
||||
<Grid Margin="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="26*" />
|
||||
<ColumnDefinition Width="29*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Button
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3"
|
||||
HorizontalAlignment="Left"
|
||||
Click="Button_NewBelegung_Click"
|
||||
Content="Belegung hinzufügen"
|
||||
Visibility="{Binding Path=PermissionWohneinheitBelegungManage, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
<dxg:GridControl
|
||||
x:Name="datagrid_belegung"
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="2"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
DataSource="{Binding VMList}">
|
||||
<dxg:GridColumn
|
||||
x:Name="ColumnButtons2"
|
||||
Width="Auto"
|
||||
AllowEditing="False"
|
||||
FieldName="ReportLink"
|
||||
Header=" "
|
||||
Visible="{Binding Path=PermissionWohneinheitBelegungManage}">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<StackPanel Margin="1" Orientation="Horizontal">
|
||||
<Button
|
||||
x:Name="btn_delete"
|
||||
Width="20"
|
||||
Height="18"
|
||||
Margin="1"
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
Click="btn_belegung_delete_Click"
|
||||
Content="r"
|
||||
FontFamily="Webdings"
|
||||
FontSize="11"
|
||||
Foreground="#FFFFFF"
|
||||
ToolTip="Löschen" />
|
||||
</StackPanel>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
</dxg:GridColumn>
|
||||
|
||||
<dxg:GridColumn
|
||||
Width="200"
|
||||
AllowEditing="False"
|
||||
FieldName="Wohneinheit.Wohnname"
|
||||
Header="Wohnungsname"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
Width="150"
|
||||
AllowEditing="False"
|
||||
FieldName="Wohneinheit.Zimmername"
|
||||
Header="Zimmername"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="StartDate"
|
||||
Header="Start"
|
||||
ReadOnly="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateEditSettings HorizontalContentAlignment="Right" DisplayFormat="d" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="EndDate"
|
||||
Header="Ende"
|
||||
ReadOnly="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateEditSettings HorizontalContentAlignment="Right" DisplayFormat="d" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
Width="*"
|
||||
MinWidth="50"
|
||||
AllowEditing="False"
|
||||
FieldName="Kommentar"
|
||||
Header="Kommentar" />
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView
|
||||
x:Name="datagridview2"
|
||||
BestFitMode="AllRows"
|
||||
BestFitModeOnSourceChange="AllRows"
|
||||
NavigationStyle="Cell"
|
||||
RowDoubleClick="datagridview2_RowDoubleClick" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<local:CustomerWohneinheitBelegungEditPopup Closed="popup_newBelegung_Closed" x:Name="popup_newBelegung" />
|
||||
</Grid>
|
||||
</view:BeWoView>
|
||||
361
BeWo/View/Detail/Wohneinheit/CustomerWohneinheitenView.xaml.cs
Normal file
361
BeWo/View/Detail/Wohneinheit/CustomerWohneinheitenView.xaml.cs
Normal file
@@ -0,0 +1,361 @@
|
||||
using BeWo.Annotations;
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.Validation;
|
||||
using BeWo.View.Controls;
|
||||
using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
using DevExpress.Utils;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using DevExpress.XtraEditors.Filtering;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace BeWo.View.Detail.Wohneinheit
|
||||
{
|
||||
public partial class CustomerWohneinheitenView
|
||||
{
|
||||
public WohneinheitBelegungVM NewWohneinheitBelegung { get; set; }
|
||||
|
||||
|
||||
private WohneinheitBelegungListVM _ViewModel;
|
||||
|
||||
private WohneinheitBelegungListVM ViewModel
|
||||
{
|
||||
get { return _ViewModel; }
|
||||
set
|
||||
{
|
||||
DataContext = value;
|
||||
_ViewModel = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private readonly long _customerOid;
|
||||
|
||||
public override bool IsDirty
|
||||
{
|
||||
get
|
||||
{
|
||||
return ViewModel != null && ViewModel.IsDirty;
|
||||
}
|
||||
}
|
||||
|
||||
public CustomerWohneinheitenView(long customerOid)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this._customerOid = customerOid;
|
||||
popup_newBelegung.CustomerOid = customerOid;
|
||||
|
||||
NewWohneinheitBelegung = new WohneinheitBelegungVM(new WohneinheitBelegungDC());
|
||||
|
||||
InitRights();
|
||||
|
||||
ReloadViewModel();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void InitRights()
|
||||
{
|
||||
bool editRight;
|
||||
DefaultBoolean editRightAsDefaultBoolean;
|
||||
bool deleteRight;
|
||||
bool createRight;
|
||||
|
||||
editRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.WohnheimView_Wohneinheit_Belegung_Manage) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll);
|
||||
editRightAsDefaultBoolean = (DefaultBoolean)(Convert.ToInt32((BeWoApp.LoggedOnUser.HasRight(UserRightType.WohnheimView_Wohneinheit_Belegung_Manage)) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll)) + 1);
|
||||
|
||||
deleteRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.WohnheimView_Wohneinheit_Belegung_Manage) || BeWoApp.LoggedOnUser.HasRight(UserRightType.DeleteAll);
|
||||
createRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.WohnheimView_Wohneinheit_Belegung_Manage) || BeWoApp.LoggedOnUser.HasRight(UserRightType.CreateAll);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ReloadViewModel()
|
||||
{
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.LoadWohneinheitenForCustomer(_customerOid, null), r => this.Dispatch(
|
||||
delegate
|
||||
{
|
||||
if (r.Any())
|
||||
{
|
||||
|
||||
ViewModel = new WohneinheitBelegungListVM(r);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ViewModel = new WohneinheitBelegungListVM(new List<WohneinheitBelegungDC>());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
private void ButtonBargeldtransaktionDeleteClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var btn = ((Button) sender);
|
||||
|
||||
var transaktion = ((BargeldtransaktionsVM) ((EditGridCellData) btn.Tag).RowData.Row);
|
||||
|
||||
if (MessageBox.Show("Möchten Sie den Eintrag wirklich löschen?", "Transaktion löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var cellEditor = ((CellEditor) btn.TemplatedParent).RowData.View;
|
||||
var selectedBargeldkasse = (BargeldkassenVM) cellEditor.DataControl.Tag;
|
||||
|
||||
var removingSuccessfull = selectedBargeldkasse.Bargeldtransaktionen.VMList.Remove(transaktion);
|
||||
selectedBargeldkasse.RecalculateTransaktionsbestaende();
|
||||
var kb = selectedBargeldkasse.Kassenbestand;
|
||||
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(selectedBargeldkasse.CommitToDataContract()), r => this.Dispatch(ReloadViewModel));
|
||||
}
|
||||
|
||||
|
||||
private void ButtonAddBargeldkasseClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
var neu = ViewModel.NewVM;
|
||||
//neu.ObjectOid = currentObjectOid;
|
||||
//neu.ObjectTid = currentObjectTid;
|
||||
//String name = neu.Kassenname;
|
||||
|
||||
//ServiceFacade.DoOperationsServiceAsync(s => s.InsertNewBargeldkasse(neu.CommitToDataContract()), r => this.Dispatch(delegate
|
||||
//{
|
||||
// popup_newBargeldkasse.IsOpen = false;
|
||||
|
||||
// ViewModel.NewVM = new BargeldkassenVM(new BargeldkassenDC());
|
||||
|
||||
// ReloadViewModel(true, name);
|
||||
//}));
|
||||
}
|
||||
private void ButtonAddBargeldtransaktionClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//if (!Validate(groupbox_newBargeldtransaktion))
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
//if (!NewBargeldtransaktion.Betrag.HasValue || NewBargeldtransaktion.Zahlungstyp == null)
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
//var transaktionsBetrag = NewBargeldtransaktion.Betrag * (NewBargeldtransaktion.Zahlungstyp.Enum == Zahlungstyp.Auszahlung ? -1 : 1);
|
||||
|
||||
//var latestTransactionDate = new DateTime(1, 1, 1);
|
||||
//foreach (var tVM in SelectedBargeldkasse.Bargeldtransaktionen.VMList.Where(tVM => tVM.Zahlungsdatum > latestTransactionDate && tVM.Zahlungsdatum != null))
|
||||
//{
|
||||
// latestTransactionDate = tVM.Zahlungsdatum.Value.GetShortDateTime();
|
||||
//}
|
||||
|
||||
//if (NewBargeldtransaktion.Zahlungsdatum <= latestTransactionDate)
|
||||
//{
|
||||
// var vorherigeTransaktion = SelectedBargeldkasse.Bargeldtransaktionen.VMList.OrderByDescending(o => o.Zahlungsdatum).FirstOrDefault(f => f.Zahlungsdatum <= NewBargeldtransaktion.Zahlungsdatum);
|
||||
// var liste = vorherigeTransaktion == null ?
|
||||
// SelectedBargeldkasse.Bargeldtransaktionen.VMList.OrderBy(o => o.Zahlungsdatum) :
|
||||
// SelectedBargeldkasse.Bargeldtransaktionen.VMList.Where(w => w.Zahlungsdatum > vorherigeTransaktion.Zahlungsdatum).OrderBy(o => o.Zahlungsdatum);
|
||||
|
||||
// NewBargeldtransaktion.Transaktionskassenbestand = (vorherigeTransaktion == null ? 0m : vorherigeTransaktion.Transaktionskassenbestand) + transaktionsBetrag;
|
||||
|
||||
// var tmp = NewBargeldtransaktion.Transaktionskassenbestand;
|
||||
|
||||
// foreach (var tvm in liste)
|
||||
// {
|
||||
// tvm.Transaktionskassenbestand = tmp + tvm.Betrag * (tvm.Zahlungstyp.Enum == Zahlungstyp.Auszahlung ? -1 : 1);
|
||||
// tmp = tvm.Transaktionskassenbestand != null ? tvm.Transaktionskassenbestand.Value : 0m;
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// NewBargeldtransaktion.Transaktionskassenbestand = SelectedBargeldkasse.Kassenbestand + transaktionsBetrag;
|
||||
//}
|
||||
|
||||
//SelectedBargeldkasse.Bargeldtransaktionen.NewVM = NewBargeldtransaktion;
|
||||
//SelectedBargeldkasse.Bargeldtransaktionen.AddNewVMToList();
|
||||
//var kb = SelectedBargeldkasse.Kassenbestand;
|
||||
|
||||
//NewBargeldtransaktion = new BargeldtransaktionsVM(new BargeldtransaktionDC());
|
||||
|
||||
//ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(SelectedBargeldkasse.CommitToDataContract()), r => this.Dispatch(delegate
|
||||
//{
|
||||
// popup_newBargeldtransaktion.IsOpen = false;
|
||||
|
||||
// NewBargeldtransaktion = new BargeldtransaktionsVM(new BargeldtransaktionDC());
|
||||
// SelectedBargeldkasse = null;
|
||||
|
||||
// OnPropertyChanged("NewBargeldtransaktion");
|
||||
// OnPropertyChanged("SelectedBargeldkasse");
|
||||
|
||||
// ReloadViewModel(false, null);
|
||||
//}));
|
||||
}
|
||||
|
||||
private void ButtonCancelAddBargeldtransaktionClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//NewBargeldtransaktion = new BargeldtransaktionsVM(new BargeldtransaktionDC());
|
||||
//SelectedBargeldkasse = null;
|
||||
|
||||
//OnPropertyChanged("NewBargeldtransaktion");
|
||||
//OnPropertyChanged("SelectedBargeldkasse");
|
||||
|
||||
//popup_newBargeldtransaktion.IsOpen = false;
|
||||
}
|
||||
|
||||
private void ButtonOpenAddBargeldtransaktionClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//var abc = ((Button) sender).Tag;
|
||||
|
||||
//if (abc != null)
|
||||
//{
|
||||
// var kasse = (BargeldkassenVM) abc;
|
||||
// SelectedBargeldkasse = kasse;
|
||||
// OnPropertyChanged("SelectedBargeldkasse");
|
||||
//}
|
||||
|
||||
//popup_newBargeldtransaktion.IsOpen = true;
|
||||
}
|
||||
|
||||
private void BtnDeleteBargeldkasseClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//var button = (Button) sender;
|
||||
//var selectedBargeldkasse = (BargeldkassenVM) button.Tag;
|
||||
|
||||
//var result = MessageBox.Show(string.Format("Möchten Sie die Bargeldkasse \"{0}\" wirklich löschen?", selectedBargeldkasse.Kassenname), "Bargeldkasse löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning);
|
||||
|
||||
//if (result == MessageBoxResult.No)
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
|
||||
//ViewModel.VMList.Remove(selectedBargeldkasse);
|
||||
|
||||
//ServiceFacade.DoOperationsServiceAsync(s => s.DeactivateBargeldkasse(selectedBargeldkasse.DataContract.BargeldkassenOid.Value, selectedBargeldkasse.DataContract.BargeldkassenVersion.Value), () => this.Dispatch(ReloadViewModelOhneSortierung));
|
||||
}
|
||||
|
||||
private void Button_NewBelegung_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (popup_newBelegung.IsOpen)
|
||||
return;
|
||||
|
||||
var success = AddBelegung();
|
||||
|
||||
if (success)
|
||||
popup_newBelegung.IsOpen = true;
|
||||
}
|
||||
|
||||
private void btn_belegung_delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var listvm = ViewModel;
|
||||
|
||||
if (listvm.EditVM is object)
|
||||
return;
|
||||
|
||||
var vm = datagrid_belegung.GetCurrentValue<WohneinheitBelegungVM>();
|
||||
|
||||
if (MessageBox.Show(Translator.Translate(String.Format("Sind Sie sicher, dass Sie die Belegung für die Wohneinheit {0} löschen möchten?", vm.Wohneinheit)), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
//_ = listvm.VMList.Remove(vm);
|
||||
ServiceFacade.DoCustomerServiceSync(s => s.DeleteWohneinheitBelegungen(new List<WohneinheitBelegungDC> { vm.CommitToDataContract() }));
|
||||
ReloadViewModel();
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
private void datagridview2_RowDoubleClick(object sender, RowDoubleClickEventArgs e)
|
||||
{
|
||||
if (popup_newBelegung.IsOpen)
|
||||
return;
|
||||
|
||||
var vm = datagrid_belegung.GetCurrentValue<WohneinheitBelegungVM>();
|
||||
|
||||
var success = EditBelegung(vm);
|
||||
|
||||
if (success)
|
||||
popup_newBelegung.IsOpen = true;
|
||||
}
|
||||
|
||||
public bool AddBelegung(object wohneinheit_oid = null, DateTime? start = null)
|
||||
{
|
||||
if (!ViewModel.PermissionWohneinheitBelegungManage)
|
||||
return false;
|
||||
|
||||
var beleg_list_vm = ViewModel;
|
||||
|
||||
var vm = beleg_list_vm.NewVM;
|
||||
|
||||
var today = DateTime.Today;
|
||||
var first_next_month = new DateTime(today.Year, today.Month, 1);
|
||||
|
||||
vm.StartDate = first_next_month;
|
||||
|
||||
if (wohneinheit_oid is long oid)
|
||||
{
|
||||
//xxxx vm.Wohneinheit = WohneinheitListVM.VMList.First(x => x.Oid == oid);
|
||||
}
|
||||
|
||||
if (start is DateTime startDate)
|
||||
{
|
||||
vm.StartDate = startDate;
|
||||
}
|
||||
|
||||
beleg_list_vm.CurrentVM = vm;
|
||||
|
||||
return true;
|
||||
}
|
||||
public bool EditBelegung(WohneinheitBelegungVM vm)
|
||||
{
|
||||
if (vm is null || !ViewModel.VMList.Contains(vm))
|
||||
return false;
|
||||
|
||||
if (!ViewModel.PermissionWohneinheitBelegungManage)
|
||||
return false;
|
||||
|
||||
ViewModel.EditVM = vm;
|
||||
ViewModel.CurrentVM = vm;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void popup_newBelegung_Closed(object sender, EventArgs e)
|
||||
{
|
||||
SaveWohneinheitBelegungen();
|
||||
}
|
||||
|
||||
private void SaveWohneinheitBelegungen()
|
||||
{
|
||||
var dcList = new List<WohneinheitBelegungDC>();
|
||||
|
||||
var dirtyList = ViewModel.VMList.Where(v => v.IsDirty).ToList();
|
||||
|
||||
foreach (var vm in dirtyList)
|
||||
{
|
||||
var dc = vm.CommitToDataContract();
|
||||
dc.Wohneinheit = vm.Wohneinheit?.DataContract;
|
||||
dc.Customer = new CompactCustomerDC { CustomerOid = _customerOid };
|
||||
dcList.Add(dc);
|
||||
}
|
||||
if (dcList.Count > 0)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceSync(s => s.UpdateWohneinheitBelegungen(dcList));
|
||||
ReloadViewModel();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,7 +37,7 @@
|
||||
<Button
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3"
|
||||
HorizontalAlignment="Right"
|
||||
HorizontalAlignment="Left"
|
||||
Click="Button_NewBelegung_Click"
|
||||
Content="Belegung hinzufügen"
|
||||
Visibility="{Binding Path=PermissionWohneinheitBelegungManage, Converter={StaticResource BoolVisibilityConverter}}" />
|
||||
@@ -75,12 +75,6 @@
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
Width="70"
|
||||
AllowEditing="False"
|
||||
FieldName="Oid"
|
||||
Header="Nr."
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
Width="200"
|
||||
AllowEditing="False"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel
|
||||
Grid.ColumnSpan="2"
|
||||
HorizontalAlignment="Right"
|
||||
HorizontalAlignment="Left"
|
||||
Orientation="Horizontal">
|
||||
<Button Click="Button_NewChildWohneinheit_Click">
|
||||
<Button.Visibility>
|
||||
|
||||
@@ -502,6 +502,7 @@
|
||||
Grid.ColumnSpan="3"
|
||||
Height="23"
|
||||
Margin="3,0,3,3"
|
||||
AllowNullInput="False"
|
||||
EditValue="{val:ValidationBinding Mode=TwoWay,
|
||||
Path=EditStartDate}"
|
||||
MaskType="DateTimeAdvancingCaret" />
|
||||
|
||||
@@ -3335,10 +3335,13 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel
|
||||
x:Name="PanelConversationButton"
|
||||
Margin="0"
|
||||
Margin="3,0"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Horizontal">
|
||||
<ai:AiChatButton x:Name="btn_ai_conv" DataContext="{Binding AiChatButtonConversationViewModel}">
|
||||
<ai:AiChatButton
|
||||
x:Name="btn_ai_conv"
|
||||
Margin="3,0"
|
||||
DataContext="{Binding AiChatButtonConversationViewModel}">
|
||||
<ai:AiChatButton.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style BasedOn="{StaticResource NavigationToolbarButtonStyle}" TargetType="{x:Type Button}" />
|
||||
|
||||
@@ -5088,9 +5088,12 @@ namespace BeWo.View.Detail.Zeiterfassung
|
||||
{
|
||||
var records = GetVisibleRecordVMs();
|
||||
var context = ViewModel.GetVisibleInformationReferences(records);
|
||||
var oid = supportConceptSelectionControl.SelectedItem.SupportConceptTreeNodeDC.SupportConcept.SupportConceptOid;
|
||||
var oid = supportConceptSelectionControl.SelectedItem.SupportConceptTreeNodeDC?.SupportConcept.SupportConceptOid;
|
||||
|
||||
var dc = new AiViewContextDC()
|
||||
if (!chkWithClient.IsChecked.Value)
|
||||
oid = null;
|
||||
|
||||
var dc = new AiViewContextDC()
|
||||
{
|
||||
Primary = oid,
|
||||
References = context
|
||||
|
||||
@@ -490,7 +490,7 @@ namespace BeWo.View.Document
|
||||
var filename = selectedFolder.Name;
|
||||
window.Close();
|
||||
|
||||
SaveRtfInBeWoFolder(defaultFolder, newRtfText, filename, objectTid, objectOid, folderSelectedAction);
|
||||
SaveRtfInBeWoFolder(selectedFolder, newRtfText, filename, objectTid, objectOid, folderSelectedAction);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -308,7 +308,8 @@ namespace BeWo.View
|
||||
BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll)) && sc2.StartDate.HasValue)
|
||||
{
|
||||
#if DEBUG
|
||||
MainControl.NavigateTo(new SchedulingMasterView(sc2.StartDate.Value, sc2) { ParentView = this });
|
||||
//MainControl.NavigateTo(new SchedulingMasterView(sc2.StartDate.Value, sc2) { ParentView = this });
|
||||
MainControl.NavigateTo(new SchedulerMasterView(sc2.StartDate.Value, sc2) { ParentView = this });
|
||||
#else
|
||||
MainControl.NavigateTo(new SchedulerMasterView(sc2.StartDate.Value, sc2) { ParentView = this });
|
||||
#endif
|
||||
|
||||
@@ -159,27 +159,6 @@
|
||||
Foreground="Black"
|
||||
Header="{markup:Translate Vermittlung}"
|
||||
Selected="Tabitem_Selected" />
|
||||
<dxa:AccordionItem
|
||||
Name="TabitemFalldaten"
|
||||
Foreground="Black"
|
||||
Header="{t:Translate Vermittlung gemeinnütziger Arbeit}">
|
||||
<dxa:AccordionItem
|
||||
Name="TabitemAuftragsherkunft"
|
||||
Foreground="Black"
|
||||
Header="{markup:Translate Auftragsherkunft}"
|
||||
Selected="Tabitem_Selected" />
|
||||
<dxa:AccordionItem
|
||||
Name="TabitemVermittlungsgrundlage"
|
||||
Foreground="Black"
|
||||
Header="{markup:Translate Vermittlungsgrundlage}"
|
||||
Selected="Tabitem_Selected" />
|
||||
<dxa:AccordionItem
|
||||
Name="TabitemVerlauf"
|
||||
Foreground="Black"
|
||||
Header="{markup:Translate Verlauf}"
|
||||
Selected="Tabitem_Selected" />
|
||||
</dxa:AccordionItem>
|
||||
|
||||
</dxa:AccordionItem>
|
||||
<dxa:AccordionItem Foreground="{StaticResource TabItemTextBrush}" Header="{t:Translate MitarbeiterPlural}">
|
||||
<dxa:AccordionItem
|
||||
|
||||
@@ -95,10 +95,6 @@ namespace BeWo.View.Master
|
||||
// TabitemOwnChatSettings.Visibility = Visibility.Collapsed;
|
||||
//}
|
||||
|
||||
if (!BeWoApp.AppSettings.ShowWohnhilfe)
|
||||
{
|
||||
TabitemFalldaten.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
TabitemSbd.Visibility = Visibility.Visible;
|
||||
@@ -553,18 +549,6 @@ namespace BeWo.View.Master
|
||||
VMFactory.CreateRatingTypeListVMAsync(r =>
|
||||
this.Dispatch(() => AddView(TabitemRatingTypes, new RatingTypeView(r))));
|
||||
return;
|
||||
case nameof(TabitemAuftragsherkunft):
|
||||
VMFactory.CreateValueListVMAsync(ValueListEntryType.Auftragsherkunft,
|
||||
r => this.Dispatch(() => AddView(TabitemAuftragsherkunft, new ValueListView(r))));
|
||||
return;
|
||||
case nameof(TabitemVermittlungsgrundlage):
|
||||
VMFactory.CreateValueListVMAsync(ValueListEntryType.Vermittlungsgrundlage,
|
||||
r => this.Dispatch(() => AddView(TabitemVermittlungsgrundlage, new ValueListView(r))));
|
||||
return;
|
||||
case nameof(TabitemVerlauf):
|
||||
VMFactory.CreateValueListVMAsync(ValueListEntryType.VgAVerlauf,
|
||||
r => this.Dispatch(() => AddView(TabitemVerlauf, new ValueListView(r))));
|
||||
return;
|
||||
case nameof(TabitemSozioTherapie):
|
||||
CheckMandatorVM(() => AddView(TabitemSozioTherapie, new SoziotherapieSettingsView(this)));
|
||||
return;
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
x:Name="listbox_messages"
|
||||
Grid.Row="1"
|
||||
Background="Transparent"
|
||||
ItemsSource="{Binding SelectedVM.Messages.VMList, Converter={StaticResource TestDebugConverter}}">
|
||||
ItemsSource="{Binding SelectedVM.Messages.VMList}">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate x:Name="messages_datatemplate" DataType="viewmodel:AiConversationMessageVM">
|
||||
<TextBlock Text="{Binding Json}" />
|
||||
|
||||
@@ -20,6 +20,8 @@ namespace BeWo.View.Master
|
||||
var scheduler = new NewSchedulerView(pIntervalStartDate, pAppointment);
|
||||
|
||||
grid_root.Children.Add(scheduler);
|
||||
|
||||
//scheduler.OpenAppointmentFromHomePanel();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,21 +119,7 @@
|
||||
Text="{Binding Path=MainAttendant}" />
|
||||
|
||||
<!-- Image x:Name="imgArchiv" Grid.Row="0" Grid.Column="2" Visibility="Collapsed" Grid.RowSpan="2" Source="..\Ressources\Icons\Archiv.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" / -->
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
Grid.Column="4"
|
||||
Margin="0,0,3,0"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding Path=IsDeleted, Converter={StaticResource AnonymizationRight2VisibilityConverter}, ConverterParameter=Customer}">
|
||||
<Hyperlink
|
||||
Click="Hyperlink_Anonymize_Click"
|
||||
Foreground="#FFF97E7B"
|
||||
Tag="{Binding}"
|
||||
TargetName="_NewWindow">
|
||||
Anonymisieren
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
using BeWo.Core;
|
||||
using BeWo.Core;
|
||||
using BeWo.Core.Commands;
|
||||
using BeWo.Core.Config;
|
||||
using BeWo.Core.Service;
|
||||
using BeWo.MultiLanguage;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.View.Detail;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BeWo.View.Navigation.Sorter;
|
||||
using BeWo.View.Windows;
|
||||
using BeWo.ViewModel;
|
||||
|
||||
using BeWo.ViewModel.View.AI;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BeWo.Core.Service;
|
||||
using BeWo.MultiLanguage;
|
||||
using BS.Shared.Translation;
|
||||
using Microsoft.Win32;
|
||||
using BeWo.View.Windows;
|
||||
using DevExpress.Mvvm;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using BeWo.Core.Commands;
|
||||
using BeWo.ViewModel.View.AI;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace BeWo.View.Navigation
|
||||
{
|
||||
@@ -41,6 +41,7 @@ namespace BeWo.View.Navigation
|
||||
//private readonly CheckBox chkShowOnlyTeamSCs;
|
||||
|
||||
private readonly ComboBox supportConceptFilterComboBox;
|
||||
private readonly ComboBoxEdit betreuungsartFilterComboBox;
|
||||
|
||||
private IEnumerable<IFilterableDC> objectList = null;
|
||||
private IEnumerable<IFilterableDC> recentList = null;
|
||||
@@ -186,6 +187,39 @@ namespace BeWo.View.Navigation
|
||||
this.mainNavigationView.sortPanel.Children.Insert(3, lbl);
|
||||
this.mainNavigationView.sortPanel.Children.Insert(4, this.supportConceptFilterComboBox);
|
||||
|
||||
betreuungsartFilterComboBox = new ComboBoxEdit();
|
||||
betreuungsartFilterComboBox.FontSize = 12;
|
||||
betreuungsartFilterComboBox.Margin = new Thickness(10, 0, 0, 0);
|
||||
betreuungsartFilterComboBox.Width = 180;
|
||||
betreuungsartFilterComboBox.IsTextEditable = false;
|
||||
betreuungsartFilterComboBox.NullText = Translator.Translate("Nach Betreuungsart filtern");
|
||||
betreuungsartFilterComboBox.ItemsSource = ServiceFacade.DoValueListServiceSync(s => s.GetAllValueListEntrysByType(ValueListEntryType.CustomerCareType));
|
||||
betreuungsartFilterComboBox.DisplayMember = "TypeDescription";
|
||||
betreuungsartFilterComboBox.StyleSettings = new CheckedComboBoxStyleSettings();
|
||||
betreuungsartFilterComboBox.EditValueChanged += BetreuungsartComboBox_EditValueChanged;
|
||||
|
||||
//< dxe:ComboBoxEdit x:Name = "checkedComboBox"
|
||||
// NullText = "Select categories"
|
||||
// IsTextEditable = "False"
|
||||
// ItemsSource = "{Binding Categories}"
|
||||
// EditValue = "{Binding SelectedCategories}"
|
||||
// DisplayMember = "CategoryName"
|
||||
// ShowCustomItems = "True" >
|
||||
// < dxe:ComboBoxEdit.StyleSettings >
|
||||
// < dxe:CheckedComboBoxStyleSettings />
|
||||
// </ dxe:ComboBoxEdit.StyleSettings >
|
||||
// </ dxe:ComboBoxEdit >
|
||||
|
||||
lbl = new TextBlock
|
||||
{
|
||||
Text = Translator.Translate("Betreuungsart:"),
|
||||
FontSize = 12,
|
||||
Margin = new Thickness(8, 2, -3, 0)
|
||||
};
|
||||
|
||||
mainNavigationView.sortPanel.Children.Insert(5, lbl);
|
||||
mainNavigationView.sortPanel.Children.Insert(6, betreuungsartFilterComboBox);
|
||||
|
||||
this.UpdateCustomFilter();
|
||||
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConceptView_Create))
|
||||
@@ -257,7 +291,12 @@ namespace BeWo.View.Navigation
|
||||
this.UpdateCustomFilter();
|
||||
}
|
||||
|
||||
private CustomFilter CreateNewCustomFilter()
|
||||
private void BetreuungsartComboBox_EditValueChanged(object sender, EditValueChangedEventArgs e)
|
||||
{
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
|
||||
private CustomFilter CreateNewCustomerFilter()
|
||||
{
|
||||
SupportConceptNavigationFilter filter = new SupportConceptNavigationFilter();
|
||||
if (this.supportConceptFilterComboBox.SelectedItem != null)
|
||||
@@ -274,6 +313,24 @@ namespace BeWo.View.Navigation
|
||||
return filter;
|
||||
}
|
||||
|
||||
|
||||
private CustomFilter CreateNewBetreuungsartFilter()
|
||||
{
|
||||
if (betreuungsartFilterComboBox.SelectedItems == null)
|
||||
return null;
|
||||
|
||||
var list = new List<ValueListEntryDC>();
|
||||
foreach (var item in betreuungsartFilterComboBox.SelectedItems)
|
||||
{
|
||||
list.Add(item as ValueListEntryDC);
|
||||
}
|
||||
|
||||
var filter = new ValueListFilter { SelectedValueListEntries = list, ValueListProperty = "CustomerCareTypes" };
|
||||
|
||||
return filter;
|
||||
}
|
||||
|
||||
|
||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ReloadData(false);
|
||||
@@ -283,7 +340,7 @@ namespace BeWo.View.Navigation
|
||||
|
||||
private void UpdateCustomFilter()
|
||||
{
|
||||
mainNavigationView.CustomFilters = new List<CustomFilter> { CreateNewCustomFilter() };
|
||||
mainNavigationView.CustomFilters = new List<CustomFilter> { CreateNewCustomerFilter(), CreateNewBetreuungsartFilter() };
|
||||
}
|
||||
|
||||
private bool mainNavigationView_ArchiveObject(IFilterableDC obj)
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.ComponentModel;
|
||||
using System.Windows.Media;
|
||||
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.View.Navigation.Filter;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace BeWo.View.Search
|
||||
@@ -25,6 +26,7 @@ namespace BeWo.View.Search
|
||||
}
|
||||
|
||||
public bool FetchReferenceNumbers { get; set; }
|
||||
public CustomerFilterEnum CustomerFilter { get; set; }
|
||||
|
||||
public bool OnlyOwnChat { get; set; }
|
||||
protected override void GetAll(Action<List<CompactCustomerDC>> pCallBack)
|
||||
|
||||
@@ -237,7 +237,10 @@ namespace BeWo.ViewModel
|
||||
|
||||
public bool CanShareEdit
|
||||
{
|
||||
get => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteinShare) && Creator?.EmployeeOid is long owner && owner == BeWoApp.CompactLoggedOnEmployee.EmployeeOid;
|
||||
get => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteinShare)
|
||||
&& Creator?.EmployeeOid is long owner
|
||||
&& owner == BeWoApp.CompactLoggedOnEmployee.EmployeeOid
|
||||
&& CanEdit;
|
||||
}
|
||||
|
||||
public AiPromptbausteinFolderVM Parent { get; set; }
|
||||
|
||||
@@ -126,6 +126,14 @@ namespace BeWo.ViewModel
|
||||
get => ShowPrompt && ShowPromptByTenant;
|
||||
}
|
||||
|
||||
public bool CanShareEdit
|
||||
{
|
||||
get => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteinShare)
|
||||
&& Creator?.EmployeeOid is long owner
|
||||
&& owner == BeWoApp.CompactLoggedOnEmployee.EmployeeOid
|
||||
&& CanEdit;
|
||||
}
|
||||
|
||||
public string FavoritenHeader => IsFavorite ? "Favorit entfernen" : "Favorit hinzufügen";
|
||||
|
||||
protected override void InitByDataContract(AiPromptbausteinPromptDC pDataContract)
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace BeWo.ViewModel
|
||||
|
||||
public bool CanEdit
|
||||
{
|
||||
get => _CanEdit;
|
||||
get => _CanEdit && BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteineEdit);
|
||||
set => SetProperty(ref _CanEdit, value, nameof(CanEdit), () => DataContract.CanEdit);
|
||||
}
|
||||
|
||||
@@ -94,6 +94,14 @@ namespace BeWo.ViewModel
|
||||
set => SetProperty(ref _Steps, value, nameof(Steps));
|
||||
}
|
||||
|
||||
public bool CanShareEdit
|
||||
{
|
||||
get => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteinShare)
|
||||
&& Creator?.EmployeeOid is long owner
|
||||
&& owner == BeWoApp.CompactLoggedOnEmployee.EmployeeOid
|
||||
&& CanEdit;
|
||||
}
|
||||
|
||||
public string FavoritenHeader => IsFavorite ? "Favorit entfernen" : "Favorit hinzufügen";
|
||||
|
||||
public override bool IsDirty => base.IsDirty || Steps.IsDirty;
|
||||
|
||||
@@ -156,6 +156,7 @@ namespace BeWo.ViewModel
|
||||
liste.DoForEach(f => f.Transaktionskassenbestand = 0);
|
||||
|
||||
var vorherige = liste.FirstOrDefault();
|
||||
vorherige.Transaktionskassenbestand = Anfangsbestand ?? 0;
|
||||
if (vorherige != null)
|
||||
{
|
||||
foreach (var transaktion in liste)
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace BeWo.ViewModel
|
||||
private EnumValue<Zahlungstyp> _Zahlungstyp;
|
||||
private DateTime? _Zahlungsdatum;
|
||||
private decimal? _Betrag;
|
||||
private decimal? _Transaktionskassenbestand;
|
||||
private decimal? _Transaktionskassenbestand;
|
||||
private string _Belegnummer;
|
||||
private string _Notice;
|
||||
|
||||
@@ -125,11 +125,84 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public String InsUser
|
||||
public bool DarfEinzahlungBearbeiten
|
||||
{
|
||||
get
|
||||
{
|
||||
return Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung;
|
||||
}
|
||||
}
|
||||
|
||||
public bool DarfAuszahlungBearbeiten
|
||||
{
|
||||
get
|
||||
{
|
||||
return Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung;
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? BetragEinzahlung
|
||||
{
|
||||
get {
|
||||
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung)
|
||||
{
|
||||
return _Betrag;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Einzahlung)
|
||||
{
|
||||
if (!AreDifferent(_Betrag, value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_Betrag = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Betrag, value), PropertyName_Betrag);
|
||||
FirePropertyChanged(PropertyName_Betrag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? BetragAuszahlung
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung)
|
||||
{
|
||||
return _Betrag;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (Zahlungstyp.Enum == BS.Shared.Zahlungstyp.Auszahlung)
|
||||
{
|
||||
if (!AreDifferent(_Betrag, value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_Betrag = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Betrag, value), PropertyName_Betrag);
|
||||
FirePropertyChanged(PropertyName_Betrag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String InsUser
|
||||
{
|
||||
get { return DataContract.InsUser; }
|
||||
}
|
||||
|
||||
public DateTime? InsTs
|
||||
{
|
||||
get { return DataContract.InsTs; }
|
||||
}
|
||||
|
||||
public decimal? Transaktionskassenbestand
|
||||
{
|
||||
get { return _Transaktionskassenbestand; }
|
||||
|
||||
@@ -230,8 +230,9 @@ namespace BeWo.ViewModel
|
||||
private String _HealthInsurance;
|
||||
private String _InsuranceNumber;
|
||||
private string _VersichertenStatus;
|
||||
private string _BGNummer;
|
||||
|
||||
private ActivationTypeId _ActivationType;
|
||||
private ActivationTypeId _ActivationType;
|
||||
private ArbeitszeitListVM _Arbeitszeiten;
|
||||
private DateTime? _AufenthaltGueltigBis;
|
||||
|
||||
@@ -283,9 +284,6 @@ namespace BeWo.ViewModel
|
||||
var possibleAufenthaltsStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.Aufenthaltsstatus);
|
||||
var possibleFamilyStatuse = pValueList.Where(vle => vle.Type == ValueListEntryType.RoleInFamily);
|
||||
var possibleEintragKategorien = pValueList.Where(vle => vle.Type == ValueListEntryType.NotizenKategorieCustomer);
|
||||
var possibleauftragsherkunfte = pValueList.Where(vle => vle.Type == ValueListEntryType.Auftragsherkunft);
|
||||
var possiblevermittlungsgrundlage = pValueList.Where(vle => vle.Type == ValueListEntryType.Vermittlungsgrundlage);
|
||||
var possibleVgaVerlaeufe = pValueList.Where(vle => vle.Type == ValueListEntryType.VgAVerlauf);
|
||||
var possibleEinkommenBeginnTypen = pValueList.Where(vle => vle.Type == ValueListEntryType.EinkommenBeginnType);
|
||||
var possibleEinkommenEndeTypen = pValueList.Where(vle => vle.Type == ValueListEntryType.EinkommenEndeType);
|
||||
var possibleFremdHilfeTypen = pValueList.Where(vle => vle.Type == ValueListEntryType.FremdHilfeType);
|
||||
@@ -313,12 +311,7 @@ namespace BeWo.ViewModel
|
||||
_SozBeziehungenTypen = new ObservableSortCollection<ValueListEntryDC>(possibleSozBeziehungenTypen, Comparer.ValueListEntryDCComparer);
|
||||
_ErstaufnahmeTypen = new ObservableSortCollection<ValueListEntryDC>(possibleErstaufnahmeTypen, Comparer.ValueListEntryDCComparer);
|
||||
_RegionTypen = new ObservableSortCollection<ValueListEntryDC>(possibleRegionTypen, Comparer.ValueListEntryDCComparer);
|
||||
var auftragsherkunfte = new ObservableSortCollection<ValueListEntryDC>(possibleauftragsherkunfte, Comparer.ValueListEntryDCComparer);
|
||||
var vermittlungsgrundlage = new ObservableSortCollection<ValueListEntryDC>(possiblevermittlungsgrundlage, Comparer.ValueListEntryDCComparer);
|
||||
var vgaVerlaeufe = new ObservableSortCollection<ValueListEntryDC>(possibleVgaVerlaeufe, Comparer.ValueListEntryDCComparer);
|
||||
|
||||
|
||||
_CustomerGemeinnutzigeArbeitListVM.InitValueListEntrys(auftragsherkunfte, vermittlungsgrundlage, vgaVerlaeufe);
|
||||
|
||||
|
||||
_MedArten = new BindingList<MedArtDC>(pPossibleMedArten);
|
||||
|
||||
@@ -1028,7 +1021,23 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(VersichertenStatus));
|
||||
}
|
||||
}
|
||||
public string Environment
|
||||
|
||||
public string BGNummer
|
||||
{
|
||||
get { return _BGNummer; }
|
||||
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_BGNummer, value))
|
||||
return;
|
||||
|
||||
_BGNummer = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.BGNummer, value), nameof(BGNummer));
|
||||
FirePropertyChanged(nameof(BGNummer));
|
||||
}
|
||||
}
|
||||
|
||||
public string Environment
|
||||
{
|
||||
get { return _Environment; }
|
||||
|
||||
@@ -2078,7 +2087,8 @@ namespace BeWo.ViewModel
|
||||
_HealthInsurance = pDataContract.HealthInsurance;
|
||||
_InsuranceNumber = pDataContract.InsuranceNumber;
|
||||
_VersichertenStatus = pDataContract.VersichertenStatus;
|
||||
_Hygienebelehrung = pDataContract.Hygienebelehrung;
|
||||
_BGNummer = pDataContract.BGNummer;
|
||||
_Hygienebelehrung = pDataContract.Hygienebelehrung;
|
||||
_Migrationshintergrund = pDataContract.Migrationshintergrund;
|
||||
_AufenthaltGueltigBis = pDataContract.AufenthaltGueltigBis;
|
||||
|
||||
@@ -2271,7 +2281,8 @@ namespace BeWo.ViewModel
|
||||
pDataContract.HealthInsurance = _HealthInsurance;
|
||||
pDataContract.InsuranceNumber = _InsuranceNumber?.Trim();
|
||||
pDataContract.VersichertenStatus = _VersichertenStatus?.Trim();
|
||||
pDataContract.Hygienebelehrung = _Hygienebelehrung;
|
||||
pDataContract.BGNummer = _BGNummer;
|
||||
pDataContract.Hygienebelehrung = _Hygienebelehrung;
|
||||
pDataContract.Migrationshintergrund = _Migrationshintergrund;
|
||||
pDataContract.SubstitutionNeed = _SubstitutionNeed;
|
||||
pDataContract.AufenthaltGueltigBis = _AufenthaltGueltigBis;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using DevExpress.Xpf.Docking.Platform;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -21,13 +22,12 @@ namespace BeWo.ViewModel
|
||||
private CompactOrganisationDC _Einsatzstelle;
|
||||
private CompactPersonDC _EinsatzstelleAnsprechpartner;
|
||||
private DateTime? _Auftragseingang;
|
||||
private ValueListEntryDC _Auftragsherkunft;
|
||||
private ObservableSortCollection<ValueListEntryDC> _Auftragsherkunfte;
|
||||
private ValueListEntryDC _Vermittlungsgrundlage;
|
||||
private ObservableSortCollection<ValueListEntryDC> _Vermittlungsgrundlagen;
|
||||
private CustomerVgaAuftragsherkunft? _Auftragsherkunft;
|
||||
private CustomerVgaVermittlungsGrundlage? _Vermittlungsgrundlage;
|
||||
private decimal? _Tagessatze;
|
||||
private decimal? _Tagessatzhohe;
|
||||
private decimal? _HoheDerGeldstrafe;
|
||||
private decimal? _Gerichtskosten;
|
||||
private decimal? _ZuLeistendeArbeitsstunden;
|
||||
private string _Hinweis;
|
||||
private DateTime? _Termin;
|
||||
@@ -36,10 +36,11 @@ namespace BeWo.ViewModel
|
||||
private string _Bewaehrungshelfer;
|
||||
private CustomerVermittlungBearbeitungsstatus? _CustomerVermittlungBearbeitungsstatus;
|
||||
private DateTime? _Auftragsruckgabe;
|
||||
private ObservableSortCollection<ValueListEntryDC> _Verlaeufe;
|
||||
private ValueListEntryDC _Verlauf;
|
||||
private CustomerVgaVerlauf? _Verlauf;
|
||||
private decimal? _AbgeleisteteStunden;
|
||||
private decimal? _ErsparteHafttage;
|
||||
private decimal? _AnzahlRaten;
|
||||
private decimal? _RatenHoehe;
|
||||
private decimal? _GeleisteteRatenzahlung;
|
||||
private string _Bemerkung;
|
||||
private decimal? _GeleisteteEinmalzahlung;
|
||||
@@ -213,7 +214,9 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(Auftragseingang));
|
||||
}
|
||||
}
|
||||
public ValueListEntryDC Auftragsherkunft
|
||||
|
||||
public IEnumerable<CustomerVgaAuftragsherkunft> CustomerVgaAuftragsherkunftTypes => Utils.GetAllEnumValues<CustomerVgaAuftragsherkunft>();
|
||||
public CustomerVgaAuftragsherkunft? Auftragsherkunft
|
||||
{
|
||||
get { return _Auftragsherkunft; }
|
||||
set
|
||||
@@ -226,7 +229,9 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(Auftragsherkunft));
|
||||
}
|
||||
}
|
||||
public ValueListEntryDC Vermittlungsgrundlage
|
||||
|
||||
public IEnumerable<CustomerVgaVermittlungsGrundlage> CustomerVgaVermittlungsGrundlageTypes => Utils.GetAllEnumValues<CustomerVgaVermittlungsGrundlage>();
|
||||
public CustomerVgaVermittlungsGrundlage? Vermittlungsgrundlage
|
||||
{
|
||||
get { return _Vermittlungsgrundlage; }
|
||||
set
|
||||
@@ -250,6 +255,7 @@ namespace BeWo.ViewModel
|
||||
_Tagessatze = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Tagessatze, value), nameof(Tagessatze));
|
||||
FirePropertyChanged(nameof(Tagessatze));
|
||||
UpdateHoheDerGeldstrafe();
|
||||
}
|
||||
}
|
||||
public decimal? Tagessatzhohe
|
||||
@@ -263,13 +269,36 @@ namespace BeWo.ViewModel
|
||||
_Tagessatzhohe = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Tagessatzhohe, value), nameof(Tagessatzhohe));
|
||||
FirePropertyChanged(nameof(Tagessatzhohe));
|
||||
UpdateHoheDerGeldstrafe();
|
||||
}
|
||||
}
|
||||
|
||||
private bool hoheDerGeldstrafeManuellGesetzt = false;
|
||||
private bool aufrufVonBerechnung = false;
|
||||
public void UpdateHoheDerGeldstrafe()
|
||||
{
|
||||
if (hoheDerGeldstrafeManuellGesetzt || !Tagessatze.HasValue || !Tagessatzhohe.HasValue)
|
||||
return;
|
||||
|
||||
aufrufVonBerechnung = true;
|
||||
HoheDerGeldstrafe = Tagessatze * Tagessatzhohe;
|
||||
aufrufVonBerechnung = false;
|
||||
|
||||
}
|
||||
|
||||
public decimal? HoheDerGeldstrafe
|
||||
{
|
||||
get { return _HoheDerGeldstrafe; }
|
||||
set
|
||||
{
|
||||
if (!value.HasValue || value.Value == 0)
|
||||
{
|
||||
hoheDerGeldstrafeManuellGesetzt = false;
|
||||
}
|
||||
else if (!aufrufVonBerechnung)
|
||||
{
|
||||
hoheDerGeldstrafeManuellGesetzt = true;
|
||||
}
|
||||
if (!AreDifferent(_HoheDerGeldstrafe, value))
|
||||
return;
|
||||
|
||||
@@ -278,6 +307,21 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(HoheDerGeldstrafe));
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? Gerichtskosten
|
||||
{
|
||||
get { return _Gerichtskosten; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_Gerichtskosten, value))
|
||||
return;
|
||||
|
||||
_Gerichtskosten = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Gerichtskosten, value), nameof(Gerichtskosten));
|
||||
FirePropertyChanged(nameof(Gerichtskosten));
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? ZuLeistendeArbeitsstunden
|
||||
{
|
||||
get { return _ZuLeistendeArbeitsstunden; }
|
||||
@@ -387,7 +431,9 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(Auftragsruckgabe));
|
||||
}
|
||||
}
|
||||
public ValueListEntryDC Verlauf
|
||||
|
||||
public IEnumerable<CustomerVgaVerlauf> CustomerVgaVerlaufTypes => Utils.GetAllEnumValues<CustomerVgaVerlauf>();
|
||||
public CustomerVgaVerlauf? Verlauf
|
||||
{
|
||||
get { return _Verlauf; }
|
||||
set
|
||||
@@ -439,6 +485,35 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(GeleisteteRatenzahlung));
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? AnzahlRaten
|
||||
{
|
||||
get { return _AnzahlRaten; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_AnzahlRaten, value))
|
||||
return;
|
||||
|
||||
_AnzahlRaten = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.AnzahlRaten, value), nameof(AnzahlRaten));
|
||||
FirePropertyChanged(nameof(AnzahlRaten));
|
||||
}
|
||||
}
|
||||
|
||||
public decimal? RatenHoehe
|
||||
{
|
||||
get { return _RatenHoehe; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_RatenHoehe, value))
|
||||
return;
|
||||
|
||||
_RatenHoehe = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.RatenHoehe, value), nameof(RatenHoehe));
|
||||
FirePropertyChanged(nameof(RatenHoehe));
|
||||
}
|
||||
}
|
||||
|
||||
public string Bemerkung
|
||||
{
|
||||
get { return _Bemerkung; }
|
||||
@@ -686,6 +761,7 @@ namespace BeWo.ViewModel
|
||||
_Tagessatze = pDataContract.Tagessatze;
|
||||
_Tagessatzhohe = pDataContract.Tagessatzhohe;
|
||||
_HoheDerGeldstrafe = pDataContract.HoheDerGeldstrafe;
|
||||
_Gerichtskosten = pDataContract.Gerichtskosten;
|
||||
_ZuLeistendeArbeitsstunden = pDataContract.ZuLeistendeArbeitsstunden;
|
||||
_Hinweis = pDataContract.Hinweis;
|
||||
_Termin = pDataContract.Termin;
|
||||
@@ -697,6 +773,8 @@ namespace BeWo.ViewModel
|
||||
_Verlauf = pDataContract.Verlauf;
|
||||
_AbgeleisteteStunden = pDataContract.AbgeleisteteStunden;
|
||||
_ErsparteHafttage = pDataContract.ErsparteHafttage;
|
||||
_AnzahlRaten = pDataContract.AnzahlRaten;
|
||||
_RatenHoehe = pDataContract.RatenHoehe;
|
||||
_GeleisteteRatenzahlung = pDataContract.GeleisteteRatenzahlung;
|
||||
_Bemerkung = pDataContract.Bemerkung;
|
||||
_GeleisteteEinmalzahlung = pDataContract.GeleisteteEinmalzahlung;
|
||||
@@ -722,12 +800,6 @@ namespace BeWo.ViewModel
|
||||
_EinsatzstelleAnsprechpartner = pDataContract.EinsatzstelleAnsprechpartner;
|
||||
}
|
||||
|
||||
internal void InitValueListEntrys(ObservableSortCollection<ValueListEntryDC> auftragsherkunfte, ObservableSortCollection<ValueListEntryDC> vermittlungsgrundlage, ObservableSortCollection<ValueListEntryDC> verlaeufe)
|
||||
{
|
||||
_Auftragsherkunfte = auftragsherkunfte;
|
||||
_Vermittlungsgrundlagen = vermittlungsgrundlage;
|
||||
_Verlaeufe = verlaeufe;
|
||||
}
|
||||
|
||||
protected override CustomerVermittlungArbeitDC MapToDataContract(CustomerVermittlungArbeitDC pDataContract, bool doCommit)
|
||||
{
|
||||
@@ -741,6 +813,7 @@ namespace BeWo.ViewModel
|
||||
pDataContract.Tagessatze = _Tagessatze;
|
||||
pDataContract.Tagessatzhohe = _Tagessatzhohe;
|
||||
pDataContract.HoheDerGeldstrafe = _HoheDerGeldstrafe;
|
||||
pDataContract.Gerichtskosten = _Gerichtskosten;
|
||||
pDataContract.ZuLeistendeArbeitsstunden = _ZuLeistendeArbeitsstunden;
|
||||
pDataContract.Hinweis = _Hinweis;
|
||||
pDataContract.Termin = _Termin;
|
||||
@@ -752,6 +825,8 @@ namespace BeWo.ViewModel
|
||||
pDataContract.Verlauf = _Verlauf;
|
||||
pDataContract.AbgeleisteteStunden = _AbgeleisteteStunden;
|
||||
pDataContract.ErsparteHafttage = _ErsparteHafttage;
|
||||
pDataContract.AnzahlRaten = _AnzahlRaten;
|
||||
pDataContract.RatenHoehe = _RatenHoehe;
|
||||
pDataContract.GeleisteteRatenzahlung = _GeleisteteRatenzahlung;
|
||||
pDataContract.Bemerkung = _Bemerkung;
|
||||
pDataContract.GeleisteteEinmalzahlung = _GeleisteteEinmalzahlung;
|
||||
|
||||
@@ -11,10 +11,7 @@ namespace BeWo.ViewModel.ListViewModel
|
||||
{
|
||||
public class CustomerVermittlungArbeitListVM : AbstractListVM<CustomerVermittlungArbeitDC, CustomerVermittlungArbeitVM>
|
||||
{
|
||||
private ObservableSortCollection<ValueListEntryDC> _Auftragsherkunfte;
|
||||
private ObservableSortCollection<ValueListEntryDC> _Vermittlungsgrundlagen;
|
||||
private ObservableSortCollection<ValueListEntryDC> _Verlaeufe;
|
||||
|
||||
|
||||
public CustomerVermittlungArbeitListVM(IEnumerable<CustomerVermittlungArbeitDC> arbeiten) : base(arbeiten)
|
||||
{
|
||||
AddVMCommand = new DelegateCommand(() => AddNewVMToListAndSelect(true), CanAddVM);
|
||||
@@ -26,54 +23,11 @@ namespace BeWo.ViewModel.ListViewModel
|
||||
// CopySelectedVMCommand = new DelegateCommand(CopySelectedWohnhilfe);
|
||||
}
|
||||
|
||||
public ObservableSortCollection<ValueListEntryDC> Auftragsherkunfte
|
||||
{
|
||||
get { return _Auftragsherkunfte; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(Auftragsherkunfte, value))
|
||||
return;
|
||||
|
||||
_Auftragsherkunfte = value;
|
||||
FirePropertyChanged(nameof(Auftragsherkunfte));
|
||||
}
|
||||
}
|
||||
public ObservableSortCollection<ValueListEntryDC> Vermittlungsgrundlagen
|
||||
{
|
||||
get { return _Vermittlungsgrundlagen; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(Vermittlungsgrundlagen, value))
|
||||
return;
|
||||
|
||||
_Vermittlungsgrundlagen = value;
|
||||
FirePropertyChanged(nameof(Vermittlungsgrundlagen));
|
||||
}
|
||||
}
|
||||
|
||||
public ObservableSortCollection<ValueListEntryDC> Verlaeufe
|
||||
{
|
||||
get { return _Verlaeufe; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(Verlaeufe, value))
|
||||
return;
|
||||
|
||||
_Vermittlungsgrundlagen = value;
|
||||
FirePropertyChanged(nameof(Verlaeufe));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool CanAddVM()
|
||||
{
|
||||
return BeWoApp.HasLoggedOnUserRight(BS.Shared.UserRightType.Customer_GemeinnutzigeArbeit_Manage); ;
|
||||
}
|
||||
|
||||
internal void InitValueListEntrys(ObservableSortCollection<ValueListEntryDC> auftragsherkunfte, ObservableSortCollection<ValueListEntryDC> vermittlungsgrundlage, ObservableSortCollection<ValueListEntryDC> verlaeufe)
|
||||
{
|
||||
_Auftragsherkunfte = auftragsherkunfte;
|
||||
_Vermittlungsgrundlagen = vermittlungsgrundlage;
|
||||
_Verlaeufe = verlaeufe;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,8 +101,8 @@ namespace BeWo.ViewModel
|
||||
private bool _GkvAusblenden;
|
||||
|
||||
private AddressVM _HausanschriftDatenannahmestelle;
|
||||
private AddressVM _PostfachanschriftDatenannahmestelle;
|
||||
private AddressVM _GrosskundenanschriftDatenannahmestelle;
|
||||
private AddressVM _PostfachGKanschriftDatenannahmestelle;
|
||||
private AddressVM _PapierannahmeanschriftDatenannahmestelle;
|
||||
|
||||
public OrganisationVM()
|
||||
{
|
||||
@@ -424,8 +424,8 @@ namespace BeWo.ViewModel
|
||||
|| (_ArbeitszeitListe != null && _ArbeitszeitListe.IsDirty)
|
||||
|| (_Feiertage != null && _Feiertage.IsDirty)
|
||||
|| (HausanschriftDatenannahmestelle?.IsDirty ?? false)
|
||||
|| (PostfachanschriftDatenannahmestelle?.IsDirty ?? false)
|
||||
|| (GrosskundenanschriftDatenannahmestelle?.IsDirty ?? false);
|
||||
|| (PostfachGKanschriftDatenannahmestelle?.IsDirty ?? false)
|
||||
|| (PapierannahmeanschriftDatenannahmestelle?.IsDirty ?? false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -863,22 +863,22 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(HausanschriftDatenannahmestelle));
|
||||
}
|
||||
}
|
||||
public AddressVM PostfachanschriftDatenannahmestelle
|
||||
public AddressVM PostfachGKanschriftDatenannahmestelle
|
||||
{
|
||||
get => _PostfachanschriftDatenannahmestelle;
|
||||
get => _PostfachGKanschriftDatenannahmestelle;
|
||||
set
|
||||
{
|
||||
_PostfachanschriftDatenannahmestelle = value;
|
||||
FirePropertyChanged(nameof(PostfachanschriftDatenannahmestelle));
|
||||
_PostfachGKanschriftDatenannahmestelle = value;
|
||||
FirePropertyChanged(nameof(PostfachGKanschriftDatenannahmestelle));
|
||||
}
|
||||
}
|
||||
public AddressVM GrosskundenanschriftDatenannahmestelle
|
||||
public AddressVM PapierannahmeanschriftDatenannahmestelle
|
||||
{
|
||||
get => _GrosskundenanschriftDatenannahmestelle;
|
||||
get => _PapierannahmeanschriftDatenannahmestelle;
|
||||
set
|
||||
{
|
||||
_GrosskundenanschriftDatenannahmestelle = value;
|
||||
FirePropertyChanged(nameof(GrosskundenanschriftDatenannahmestelle));
|
||||
_PapierannahmeanschriftDatenannahmestelle = value;
|
||||
FirePropertyChanged(nameof(PapierannahmeanschriftDatenannahmestelle));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1002,11 +1002,11 @@ namespace BeWo.ViewModel
|
||||
? new AddressVM(dc)
|
||||
: new AddressVM();
|
||||
|
||||
PostfachanschriftDatenannahmestelle = pDataContract.PostfachanschriftDatenannahmestelle is AddressDC dc2
|
||||
PostfachGKanschriftDatenannahmestelle = pDataContract.PostfachGKanschriftDatenannahmestelle is AddressDC dc2
|
||||
? new AddressVM(dc2)
|
||||
: new AddressVM();
|
||||
|
||||
GrosskundenanschriftDatenannahmestelle = pDataContract.GrosskundenanschriftDatenannahmestelle is AddressDC dc3
|
||||
PapierannahmeanschriftDatenannahmestelle = pDataContract.PapierannahmeanschriftDatenannahmestelle is AddressDC dc3
|
||||
? new AddressVM(dc3)
|
||||
: new AddressVM();
|
||||
|
||||
@@ -1105,15 +1105,15 @@ namespace BeWo.ViewModel
|
||||
else
|
||||
pDataContract.HausanschriftDatenannahmestelle = null;
|
||||
|
||||
if (PostfachanschriftDatenannahmestelle is object)
|
||||
pDataContract.PostfachanschriftDatenannahmestelle = PostfachanschriftDatenannahmestelle.CommitToDataContract();
|
||||
if (PostfachGKanschriftDatenannahmestelle is object)
|
||||
pDataContract.PostfachGKanschriftDatenannahmestelle = PostfachGKanschriftDatenannahmestelle.CommitToDataContract();
|
||||
else
|
||||
pDataContract.PostfachanschriftDatenannahmestelle = null;
|
||||
pDataContract.PostfachGKanschriftDatenannahmestelle = null;
|
||||
|
||||
if (GrosskundenanschriftDatenannahmestelle is object)
|
||||
pDataContract.GrosskundenanschriftDatenannahmestelle = GrosskundenanschriftDatenannahmestelle.CommitToDataContract();
|
||||
if (PapierannahmeanschriftDatenannahmestelle is object)
|
||||
pDataContract.PapierannahmeanschriftDatenannahmestelle = PapierannahmeanschriftDatenannahmestelle.CommitToDataContract();
|
||||
else
|
||||
pDataContract.GrosskundenanschriftDatenannahmestelle = null;
|
||||
pDataContract.PapierannahmeanschriftDatenannahmestelle = null;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
@@ -1132,11 +1132,11 @@ namespace BeWo.ViewModel
|
||||
HausanschriftDatenannahmestelle.UpdateByDataContract(response.Hausanschrift);
|
||||
FirePropertyChanged(nameof(HausanschriftDatenannahmestelle));
|
||||
|
||||
PostfachanschriftDatenannahmestelle.UpdateByDataContract(response.Postfachanschrift);
|
||||
FirePropertyChanged(nameof(PostfachanschriftDatenannahmestelle));
|
||||
PostfachGKanschriftDatenannahmestelle.UpdateByDataContract(response.PostfachGKanschrift);
|
||||
FirePropertyChanged(nameof(PostfachGKanschriftDatenannahmestelle));
|
||||
|
||||
GrosskundenanschriftDatenannahmestelle.UpdateByDataContract(response.Grosskundenanschrift);
|
||||
FirePropertyChanged(nameof(GrosskundenanschriftDatenannahmestelle));
|
||||
PapierannahmeanschriftDatenannahmestelle.UpdateByDataContract(response.Papierannahmeanschrift);
|
||||
FirePropertyChanged(nameof(PapierannahmeanschriftDatenannahmestelle));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -715,8 +715,6 @@ namespace BeWo.ViewModel
|
||||
ValueListEntryType.Aufenthaltsstatus,
|
||||
ValueListEntryType.RoleInFamily,
|
||||
ValueListEntryType.NotizenKategorieCustomer,
|
||||
ValueListEntryType.Auftragsherkunft,
|
||||
ValueListEntryType.Vermittlungsgrundlage,
|
||||
ValueListEntryType.EinkommenBeginnType,
|
||||
ValueListEntryType.EinkommenEndeType,
|
||||
ValueListEntryType.FremdHilfeType,
|
||||
@@ -724,7 +722,6 @@ namespace BeWo.ViewModel
|
||||
ValueListEntryType.SozBeziehungenType,
|
||||
ValueListEntryType.ErstaufnahmeType,
|
||||
ValueListEntryType.RegionType,
|
||||
ValueListEntryType.VgAVerlauf
|
||||
};
|
||||
|
||||
ServiceFacade.DoValueListServiceAsync(
|
||||
@@ -936,8 +933,6 @@ namespace BeWo.ViewModel
|
||||
{
|
||||
var list = ServiceFacade.DoAiEnhancedServiceSnyc(s => s.GetAiConversations(actionType, reference_oid));
|
||||
|
||||
list.Reverse();
|
||||
|
||||
return new AiConversationListVM(list);
|
||||
}
|
||||
|
||||
|
||||
@@ -254,6 +254,8 @@ namespace BeWo.ViewModel.View.AI
|
||||
|
||||
conv.Messages.VMList.Add(new AiConversationMessageVM(messages[1]));
|
||||
|
||||
conv.Updated = DateTime.Now;
|
||||
|
||||
FinishSending();
|
||||
},
|
||||
(exception) =>
|
||||
@@ -305,6 +307,8 @@ namespace BeWo.ViewModel.View.AI
|
||||
{
|
||||
MessageInput = string.Empty;
|
||||
|
||||
ReloadConversations(ListVM.VMList);
|
||||
|
||||
EndSending();
|
||||
|
||||
SendNewMessageSuccess?.Invoke(this, EventArgs.Empty);
|
||||
@@ -355,7 +359,24 @@ namespace BeWo.ViewModel.View.AI
|
||||
|
||||
var list = VMFactory.CreateAiConversationListVM(ui_context, reference);
|
||||
|
||||
ListVM.VMList.MakeEqualTo(list.VMList);
|
||||
ReloadConversations(list.VMList);
|
||||
}
|
||||
private void ReloadConversations(IEnumerable<AiConversationVM> aiConversations)
|
||||
{
|
||||
if(aiConversations is null)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(aiConversations));
|
||||
}
|
||||
|
||||
var sorted = aiConversations.OrderByDescending(vm => vm.Updated).ToList();
|
||||
|
||||
var t0 = ListVM.SelectedVM;
|
||||
ListVM.VMList.UpdateBy(sorted);
|
||||
|
||||
if(ListVM.VMList.Contains(t0))
|
||||
ListVM.SelectedVM = t0;
|
||||
|
||||
ListVM.VMList.ResetBindings();
|
||||
}
|
||||
|
||||
private void OpenSetting()
|
||||
@@ -538,6 +559,8 @@ namespace BeWo.ViewModel.View.AI
|
||||
ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.ExecuteAiConversationWithPrompt(cb.Oid.Value, ViewContext, prompt.DataContract.Oid.Value),
|
||||
cb2 =>
|
||||
{
|
||||
vm.Updated = DateTime.Now;
|
||||
|
||||
FinishSending();
|
||||
|
||||
ServiceFacade.EndManuelWaiting();
|
||||
@@ -592,8 +615,12 @@ namespace BeWo.ViewModel.View.AI
|
||||
|
||||
private void ExecuteChain(AiPromptbausteinRoutineVM routine, int step, Action<Exception> error)
|
||||
{
|
||||
var conv = ListVM.SelectedVM;
|
||||
|
||||
if (step >= routine.Steps.Count)
|
||||
{
|
||||
conv.Updated = DateTime.Now;
|
||||
|
||||
FinishSending();
|
||||
|
||||
ServiceFacade.EndManuelWaiting();
|
||||
@@ -601,8 +628,6 @@ namespace BeWo.ViewModel.View.AI
|
||||
return;
|
||||
}
|
||||
|
||||
var conv = ListVM.SelectedVM;
|
||||
|
||||
var custom_viewContext = new AiViewContextDC
|
||||
{
|
||||
References = ViewContext.References,
|
||||
|
||||
@@ -55,10 +55,25 @@ namespace BeWo.ViewModel
|
||||
if (_Wohneinheit is object)
|
||||
_Wohneinheit.PropertyChanged += FirePropertyChanged;
|
||||
|
||||
|
||||
FirePropertyChanged(nameof(Wohneinheit));
|
||||
FirePropertyChanged(nameof(CanSave));
|
||||
}
|
||||
}
|
||||
|
||||
public void SetNewWohneinheit(WohneinheitVM wh)
|
||||
{
|
||||
if (wh != null && Wohneinheit != null)
|
||||
{
|
||||
if (Wohneinheit.Oid != wh.Oid)
|
||||
{
|
||||
StoreDirtyInformation(true, nameof(Wohneinheit));
|
||||
}
|
||||
}
|
||||
|
||||
this.Wohneinheit = wh;
|
||||
|
||||
}
|
||||
public CompactCustomerDC Customer
|
||||
{
|
||||
get { return _Customer; }
|
||||
@@ -86,7 +101,7 @@ namespace BeWo.ViewModel
|
||||
|
||||
if (EndDate.HasValue && EndDate.Value < StartDate)
|
||||
{
|
||||
EndDate = new DateTime(StartDate.Year, 12, 31);
|
||||
EndDate = value.Date;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -105,15 +120,7 @@ namespace BeWo.ViewModel
|
||||
|
||||
if (value.HasValue && value.Value < StartDate)
|
||||
{
|
||||
var new_start = new DateTime(value.Value.Year, value.Value.Month, 1);
|
||||
|
||||
if(value == new_start)
|
||||
new_start = new DateTime(value.Value.Year, 1, 1);
|
||||
|
||||
if(value == new_start)
|
||||
new_start = new DateTime(value.Value.Year - 1, 1, 1);
|
||||
|
||||
StartDate = new_start;
|
||||
StartDate = value.Value.Date;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -167,6 +174,11 @@ namespace BeWo.ViewModel
|
||||
_EndDate = pDataContract.EndDate;
|
||||
_Kommentar = pDataContract.Kommentar;
|
||||
_StartDate = pDataContract.StartDate;
|
||||
|
||||
if (pDataContract.Wohneinheit != null)
|
||||
{
|
||||
_Wohneinheit = new WohneinheitVM(pDataContract.Wohneinheit);
|
||||
}
|
||||
}
|
||||
protected override WohneinheitBelegungDC MapToDataContract(WohneinheitBelegungDC pDataContract, bool doCommit)
|
||||
{
|
||||
|
||||
@@ -992,6 +992,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebensBruecke", "ReportImp\
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AryaSteffensHeviaTherapie", "ReportImp\AryaSteffensHeviaTherapie\AryaSteffensHeviaTherapie.csproj", "{E23C4943-8677-40DA-A45F-1322D1AD2443}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonjaZoeller", "ReportImp\SonjaZoeller\SonjaZoeller.csproj", "{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JusinaJugendhilfe", "ReportImp\JusinaJugendhilfe\JusinaJugendhilfe.csproj", "{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HwHilfswerkInklusionUndTeilhabe", "ReportImp\HwHilfswerkInklusionUndTeilhabe\HwHilfswerkInklusionUndTeilhabe.csproj", "{A65F19C6-A523-4566-8855-9141B9435B95}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasAichachFriedberg", "ReportImp\CaritasAichachFriedberg\CaritasAichachFriedberg.csproj", "{279D4AEA-239C-4A2C-91DE-735EB7A72F96}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerspektiveAnitaNelles", "ReportImp\PerspektiveAnitaNelles\PerspektiveAnitaNelles.csproj", "{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|.NET = Debug|.NET
|
||||
@@ -12162,6 +12172,126 @@ Global
|
||||
{E23C4943-8677-40DA-A45F-1322D1AD2443}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{E23C4943-8677-40DA-A45F-1322D1AD2443}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{E23C4943-8677-40DA-A45F-1322D1AD2443}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|.NET.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.DebugRemote|x86.Build.0 = Debug|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA}.Release|x86.Build.0 = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|.NET.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.DebugRemote|x86.Build.0 = Debug|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|.NET.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.DebugRemote|x86.Build.0 = Debug|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95}.Release|x86.Build.0 = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|.NET.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.DebugRemote|x86.Build.0 = Debug|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|.NET.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.DebugRemote|x86.Build.0 = Debug|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -12652,6 +12782,11 @@ Global
|
||||
{4D48D376-DCAE-4E22-82E3-36692B0FAE29} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{E0B2DAB1-3926-408F-95E5-3CDD54B3421C} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{E23C4943-8677-40DA-A45F-1322D1AD2443} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{B202DD74-4CA3-4A48-A8FB-A7B0E090DDAA} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{7005F526-E0FE-49F8-86D5-90F2DAC51E3B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{A65F19C6-A523-4566-8855-9141B9435B95} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{279D4AEA-239C-4A2C-91DE-735EB7A72F96} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
{D80E7BBD-F017-4FBB-B3D3-5AD9F43C418D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
<Compile Include="App_Start\RouteConfig.cs" />
|
||||
<Compile Include="App_Start\WebApiConfig.cs" />
|
||||
<Compile Include="Controllers\AbstractBaseController.cs" />
|
||||
<Compile Include="Controllers\SystemController.cs" />
|
||||
<Compile Include="Controllers\ChatController.cs" />
|
||||
<Compile Include="Controllers\CustomerController.cs" />
|
||||
<Compile Include="Controllers\DevToolsController.cs" />
|
||||
@@ -726,6 +727,8 @@
|
||||
<Content Include="Views\DevExpressScheduler\NotificationPopupContent.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\NotificationsPopupContent.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomEmployeeSelectPartial.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomCustomerSelectPartial.cshtml" />
|
||||
<Content Include="Views\DevExpressScheduler\CustomResourceSelectPartial.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="packages.config" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
|
||||
@@ -73,70 +73,70 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
private static bool convertInProgress = false;
|
||||
|
||||
public ActionResult UpdateFiles(String list, String pwd)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (convertInProgress)
|
||||
{
|
||||
return this.Content("Schon gestartet");
|
||||
}
|
||||
convertInProgress = true;
|
||||
//list = "7000000000";
|
||||
//pwd = "34vteWVTwegvn9wz4vn9";
|
||||
if (pwd == "34vteWVTwegvn9wz4vn9")
|
||||
{
|
||||
String[] nummern = list.Split(',');
|
||||
//public ActionResult UpdateFiles(String list, String pwd)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// if (convertInProgress)
|
||||
// {
|
||||
// return this.Content("Schon gestartet");
|
||||
// }
|
||||
// convertInProgress = true;
|
||||
// //list = "7000000000";
|
||||
// //pwd = "34vteWVTwegvn9wz4vn9";
|
||||
// if (pwd == "34vteWVTwegvn9wz4vn9")
|
||||
// {
|
||||
// String[] nummern = list.Split(',');
|
||||
|
||||
foreach (var knr in nummern)
|
||||
{
|
||||
// foreach (var knr in nummern)
|
||||
// {
|
||||
|
||||
|
||||
System.Web.HttpContext.Current.Items.Remove("hibernateSession");
|
||||
// System.Web.HttpContext.Current.Items.Remove("hibernateSession");
|
||||
|
||||
MobileSessionFacade.Tenant = knr;
|
||||
// MobileSessionFacade.Tenant = knr;
|
||||
|
||||
var isKundennummerVorhanden = ASPHibernateSessionManager.ConfigureHibernateSessionForWebService();
|
||||
// var isKundennummerVorhanden = ASPHibernateSessionManager.ConfigureHibernateSessionForWebService();
|
||||
|
||||
if (isKundennummerVorhanden)
|
||||
{
|
||||
Log.Debug($"Start UpdateFiles for {knr} -----------------------------------------------------------------------------------------------------------------------");
|
||||
// if (isKundennummerVorhanden)
|
||||
// {
|
||||
// Log.Debug($"Start UpdateFiles for {knr} -----------------------------------------------------------------------------------------------------------------------");
|
||||
|
||||
//var filePath = GetFilePath(12345678);
|
||||
// //var filePath = GetFilePath(12345678);
|
||||
|
||||
//Log.Debug($"File Path = {filePath}");
|
||||
// //Log.Debug($"File Path = {filePath}");
|
||||
|
||||
SaveAllFilesToDisk(knr);
|
||||
// SaveAllFilesToDisk(knr);
|
||||
|
||||
Log.Debug($"Finished UpdateFiles for {knr} -----------------------------------------------------------------------------------------------------------------------");
|
||||
//var os = new OperationsServiceImp();
|
||||
//os.SaveAllFilesToDisk();
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Debug($"Kundennummer {knr} nicht vorhanden");
|
||||
// Log.Debug($"Finished UpdateFiles for {knr} -----------------------------------------------------------------------------------------------------------------------");
|
||||
// //var os = new OperationsServiceImp();
|
||||
// //os.SaveAllFilesToDisk();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Log.Debug($"Kundennummer {knr} nicht vorhanden");
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
convertInProgress = false;
|
||||
return this.Content("Erfolgreich 4");
|
||||
}
|
||||
// convertInProgress = false;
|
||||
// return this.Content("Erfolgreich 4");
|
||||
// }
|
||||
|
||||
convertInProgress = false;
|
||||
return this.Content("Nicht authorisiert");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
convertInProgress = false;
|
||||
return this.Content("ERROR " + ex.Message);
|
||||
// throw(BeWo.Service.Core.Utils.ThrowBeWoFaultException(e));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// convertInProgress = false;
|
||||
// return this.Content("Nicht authorisiert");
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// convertInProgress = false;
|
||||
// return this.Content("ERROR " + ex.Message);
|
||||
// // throw(BeWo.Service.Core.Utils.ThrowBeWoFaultException(e));
|
||||
// return null;
|
||||
// }
|
||||
//}
|
||||
|
||||
private void SaveAllFilesToDisk(String knr)
|
||||
{
|
||||
|
||||
@@ -454,6 +454,17 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return Logout();
|
||||
}
|
||||
|
||||
long personOid = 0;
|
||||
long customerOid = 0;
|
||||
if (formCollection["PersonOid"] != null)
|
||||
{
|
||||
Int64.TryParse(formCollection["PersonOid"], out personOid);
|
||||
}
|
||||
if (formCollection["CustomerOid"] != null)
|
||||
{
|
||||
Int64.TryParse(formCollection["CustomerOid"], out customerOid);
|
||||
}
|
||||
|
||||
var firstname = formCollection["vorname"]?.RemoveUppercaseEsszett();
|
||||
var lastname = formCollection["nachname"]?.RemoveUppercaseEsszett();
|
||||
var alias = formCollection["alias"]?.RemoveUppercaseEsszett();
|
||||
@@ -483,6 +494,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var customer = Model.SelectedCustomer;
|
||||
|
||||
if (customer.CustomerOid != customerOid)
|
||||
{
|
||||
Log.Info(String.Format("Fehler in UpdateCustomer: Die Oid vom SelectedCustomer stimmt nicht mit der CustomerOid aus der FormCollection überein: {0} != {1}", customer.CustomerOid, customerOid));
|
||||
throw new System.Exception("Es ist leider ein Fehler aufgetreten! Die IDs der Klienten stimmen nicht überein!");
|
||||
}
|
||||
if(customer is null)
|
||||
{
|
||||
return RedirectToActionPermanent("Customer");
|
||||
|
||||
@@ -89,6 +89,13 @@ namespace BeWoPlanerMobil.Controllers
|
||||
AppointmentModel.PossibleEmployees = EmployeeService.GetAllAuthorizedCompactEmployees();
|
||||
AppointmentModel.PossibleCustomers = CustomerService.GetAllAuthorizedCompactCustomers();
|
||||
AppointmentModel.PossibleResources = KalenderService.GetAllResources();
|
||||
|
||||
AppointmentModel.ResourceCategories2Resources = new Dictionary<ValueListEntryDC, List<ResourceDC>>();
|
||||
|
||||
foreach(var resource in AppointmentModel.PossibleResources)
|
||||
{
|
||||
AppointmentModel.ResourceCategories2Resources.AddOrUpdateValueInDictionary(resource.ResourceCategory, resource);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitViewModel()
|
||||
@@ -349,13 +356,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
appointment.CustomerList = AppointmentModel.SelectedCustomers;
|
||||
appointment.ResourceList = AppointmentModel.SelectedResources;
|
||||
|
||||
appointment.EmployeeList = new List<Employee2SchedulerAppointmentDC>();
|
||||
|
||||
foreach(var selectedEmployee in AppointmentModel.SelectedEmployees ?? new List<CompactEmployeeDC>())
|
||||
{
|
||||
appointment.EmployeeList.Add(new Employee2SchedulerAppointmentDC { Employee = selectedEmployee });
|
||||
}
|
||||
appointment.EmployeeList = AppointmentModel.SelectedEmployee2SchedulerAppointments;
|
||||
|
||||
appointment.Originator = Model.LoggedInUser.Employee;
|
||||
|
||||
@@ -398,41 +399,41 @@ namespace BeWoPlanerMobil.Controllers
|
||||
ReloadAppointments();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult CustomerMultiSelectPartial(string value)
|
||||
{
|
||||
var selectedCustomerOids = GridLookupExtension.GetSelectedValues<long?>("CustomerGridLookup") ?? Array.Empty<long?>();
|
||||
//[HttpPost]
|
||||
//public ActionResult CustomerMultiSelectPartial(string value)
|
||||
//{
|
||||
// var selectedCustomerOids = GridLookupExtension.GetSelectedValues<long?>("CustomerGridLookup") ?? Array.Empty<long?>();
|
||||
|
||||
AppointmentModel.SelectedCustomerOids = selectedCustomerOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
// AppointmentModel.SelectedCustomerOids = selectedCustomerOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
|
||||
return PartialView("CustomerMultiSelectPartial", AppointmentModel);
|
||||
}
|
||||
// return PartialView("CustomerMultiSelectPartial", AppointmentModel);
|
||||
//}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult ResourceGridLookupPartial(string value)
|
||||
{
|
||||
var selectedResourceOids = GridLookupExtension.GetSelectedValues<long?>("ResourceGridLookup") ?? Array.Empty<long?>();
|
||||
//[HttpPost]
|
||||
//public ActionResult ResourceGridLookupPartial(string value)
|
||||
//{
|
||||
// var selectedResourceOids = GridLookupExtension.GetSelectedValues<long?>("ResourceGridLookup") ?? Array.Empty<long?>();
|
||||
|
||||
AppointmentModel.SelectedResourceOids = selectedResourceOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
// AppointmentModel.SelectedResourceOids = selectedResourceOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
|
||||
return PartialView("ResourceMultiSelectPartial", AppointmentModel);
|
||||
}
|
||||
// return PartialView("ResourceMultiSelectPartial", AppointmentModel);
|
||||
//}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult EmployeeGridLookupPartial(string value)
|
||||
{
|
||||
/*
|
||||
* Im AppointmentModel müssen die PossibleEmployees bleiben, denn daraus wählt man die Mitarbeiter, die noch nicht mit dem Termin
|
||||
* verknüpft sind und es müssen - zumindest beim Bearbeiten - die bereits mit dem Termin verbundenen Mitarbeiter-zu-Termin-Relationen
|
||||
* zwischengespeichert werden.
|
||||
*
|
||||
*/
|
||||
var selectedEmployeeOids = GridLookupExtension.GetSelectedValues<long?>("EmployeeGridLookup") ?? Array.Empty<long?>();
|
||||
//[HttpPost]
|
||||
//public ActionResult EmployeeGridLookupPartial(string value)
|
||||
//{
|
||||
// /*
|
||||
// * Im AppointmentModel müssen die PossibleEmployees bleiben, denn daraus wählt man die Mitarbeiter, die noch nicht mit dem Termin
|
||||
// * verknüpft sind und es müssen - zumindest beim Bearbeiten - die bereits mit dem Termin verbundenen Mitarbeiter-zu-Termin-Relationen
|
||||
// * zwischengespeichert werden.
|
||||
// *
|
||||
// */
|
||||
// var selectedEmployeeOids = GridLookupExtension.GetSelectedValues<long?>("EmployeeGridLookup") ?? Array.Empty<long?>();
|
||||
|
||||
AppointmentModel.SelectedEmployeeOids = selectedEmployeeOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
// AppointmentModel.SelectedEmployeeOids = selectedEmployeeOids.Where(oid => oid.HasValue).Select(oid => oid.Value).ToList();
|
||||
|
||||
return PartialView("EmployeeMultiSelectPartial", AppointmentModel);
|
||||
}
|
||||
// return PartialView("EmployeeMultiSelectPartial", AppointmentModel);
|
||||
//}
|
||||
|
||||
[Authorize]
|
||||
public string SelectActiveViewType(string viewTypeName)
|
||||
@@ -654,7 +655,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult UpdateEmployeeSelection(long[] selectedOids)
|
||||
public ActionResult UpdateEmployeeFilterSelection(long[] selectedOids)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
@@ -676,7 +677,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult UpdateCustomerSelection(long[] selectedOids)
|
||||
public ActionResult UpdateCustomerFilterSelection(long[] selectedOids)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
@@ -698,7 +699,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult UpdateResourceSelection(long[] selectedOids)
|
||||
public ActionResult UpdateResourceFilterSelection(long[] selectedOids)
|
||||
{
|
||||
if(Model is null)
|
||||
{
|
||||
@@ -860,5 +861,83 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
return PartialView("SchedulerPagePartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string GetEmployeePageCount()
|
||||
{
|
||||
return JsonConvert.SerializeObject(new EditFormInfo(AppointmentModel.EmployeePageCount, AppointmentModel.EmployeePageLimit));
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string GetCustomerPageCount()
|
||||
{
|
||||
return JsonConvert.SerializeObject(new EditFormInfo(AppointmentModel.CustomerPageCount, AppointmentModel.CustomerPageLimit));
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string GetResourcePageCount()
|
||||
{
|
||||
return JsonConvert.SerializeObject(new EditFormInfo(AppointmentModel.ResourcePageCount, AppointmentModel.ResourcePageLimit));
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string UpdateAppointmentEmployeeSelection(string selectedOids)
|
||||
{
|
||||
if(selectedOids is null)
|
||||
{
|
||||
selectedOids = string.Empty;
|
||||
}
|
||||
|
||||
var selectedEmployeeOids = selectedOids.Length == 0 ? new List<long>() : selectedOids.Split(',').Select(long.Parse).ToList();
|
||||
|
||||
AppointmentModel.SelectedEmployee2SchedulerAppointments = new List<Employee2SchedulerAppointmentDC>();
|
||||
|
||||
var employees = AppointmentModel.PossibleEmployees.Where(possibleEmployee => selectedEmployeeOids.Contains(possibleEmployee.EmployeeOid)).ToList();
|
||||
|
||||
foreach(var employee in employees)
|
||||
{
|
||||
AppointmentModel.SelectedEmployee2SchedulerAppointments.Add(new Employee2SchedulerAppointmentDC { Employee = employee });
|
||||
}
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string UpdateAppointmentCustomerSelection(string selectedOids)
|
||||
{
|
||||
if(selectedOids is null)
|
||||
{
|
||||
selectedOids = string.Empty;
|
||||
}
|
||||
|
||||
AppointmentModel.SelectedCustomerOids = selectedOids.Length == 0 ? new List<long>() : selectedOids.Split(',').Select(long.Parse).ToList();
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string UpdateAppointmentResourceSelection(string selectedOids)
|
||||
{
|
||||
if(selectedOids is null)
|
||||
{
|
||||
selectedOids = string.Empty;
|
||||
}
|
||||
|
||||
AppointmentModel.SelectedResourceOids = selectedOids.Length == 0 ? new List<long>() : selectedOids.Split(',').Select(long.Parse).ToList();
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
}
|
||||
|
||||
public class EditFormInfo
|
||||
{
|
||||
public int PageCount { get; }
|
||||
public int PageLimit { get; }
|
||||
|
||||
public EditFormInfo(int pageCount, int pageLimit)
|
||||
{
|
||||
PageCount = pageCount;
|
||||
PageLimit = pageLimit;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using Antlr.Runtime.Tree;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.AI;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
@@ -14,6 +13,7 @@ using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Services;
|
||||
using DevExpress.Utils.Extensions;
|
||||
using DevExpress.XtraScheduler;
|
||||
using DevExpress.XtraScheduler.Compatibility;
|
||||
using Newtonsoft.Json;
|
||||
@@ -28,6 +28,7 @@ using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
using System.Windows.Forms;
|
||||
using NHibernate;
|
||||
using static BeWoPlanerMobil.Util.MobileUtils;
|
||||
using static BS.Shared.ServiceRecordValidationResult;
|
||||
using FormCollection = System.Web.Mvc.FormCollection;
|
||||
@@ -184,6 +185,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
//Einfachbuchung
|
||||
|
||||
var allCostBearerRelationsSingleBooking = new List<MokSupportConceptListObject> {
|
||||
new MokSupportConceptListObject(-1, -1, false, false, false, false)
|
||||
{
|
||||
@@ -193,7 +195,10 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
NameAndDateOfBirth = "Ohne Hilfeplan"
|
||||
}};
|
||||
|
||||
if (Model.IsInEditingMode && Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid.Value > 0)
|
||||
{
|
||||
allCostBearerRelationsSingleBooking.RemoveAt(allCostBearerRelationsSingleBooking.Count - 1); // Verhindert, dass man Klienten Buchungen ausversehen zu Buchungen ohne Hilfeplan machen kann.
|
||||
}
|
||||
var allCostBearerRelationsMultiBooking = new List<MokSupportConceptListObject>();
|
||||
|
||||
|
||||
@@ -302,9 +307,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(Model.IsInEditingMode && Model.SelectedServiceRecordOid.HasValue)
|
||||
@@ -346,7 +349,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.ShowServiceRecordInsertedOn = !UserSettingsUtils.GetSettingValueAsBool(Model.Mandator.Settings, SettingsKeys.HideServiceRecordInsertedByAndInsertedOn);
|
||||
|
||||
Model.ShowSignature = UserSettingsUtils.GetSettingValueAsBool(Model.Mandator.Settings, SettingsKeys.ShowSignature) && Model.HasRightToProvideSingleSignature;
|
||||
|
||||
|
||||
Model.ShowDistanceField = UserSettingsUtils.GetSettingValueAsBool(Model.Mandator.Settings, SettingsKeys.ShowDistanceFields);
|
||||
|
||||
var settingsValue = GetSettingValue(Model.Mandator.Settings, SettingsKeys.IsServiceRecordNoticeMandatory);
|
||||
@@ -578,16 +581,29 @@ namespace BeWoPlanerMobil.Controllers
|
||||
public ServiceRecordDC GetServiceRecordDC(long serviceRecordOid, bool getCompact)
|
||||
{
|
||||
ServiceRecordDC dc = null;
|
||||
if (_Model != null)
|
||||
|
||||
if(_Model != null)
|
||||
{
|
||||
dc = _Model.FindServiceRecord(serviceRecordOid);
|
||||
}
|
||||
if (dc == null)
|
||||
|
||||
if(dc is null)
|
||||
{
|
||||
var sr = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(serviceRecordOid);
|
||||
if (getCompact)
|
||||
|
||||
try
|
||||
{
|
||||
dc = new ServiceRecordDC()
|
||||
NHibernateUtil.Initialize(sr);
|
||||
}
|
||||
catch(ObjectNotFoundException exception)
|
||||
{
|
||||
TempData[TempDataConstants.ErrorAlertPopupMessage] = "Der ausgewählte Eintrag wurde in der Zwischenzeit gelöscht. Bearbeiten nicht möglich.";
|
||||
return null;
|
||||
}
|
||||
|
||||
if(getCompact)
|
||||
{
|
||||
dc = new ServiceRecordDC
|
||||
{
|
||||
Betrag = sr.Betrag,
|
||||
CostBearer2SupportConceptOid = sr.CostBearer2SupportConceptOid,
|
||||
@@ -616,8 +632,10 @@ namespace BeWoPlanerMobil.Controllers
|
||||
ServiceRecordOid = sr.Oid,
|
||||
Start = sr.Start
|
||||
};
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
dc = MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDC(sr);
|
||||
}
|
||||
|
||||
@@ -1530,28 +1548,32 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
if(false == Model.IsInEditingMode)
|
||||
{
|
||||
if(Model.NewServiceRecord.CostBearer != null && Model.ShowSignature && (Model.NewServiceRecord.ServiceDescription.Category.IsBillable || Model.NewServiceRecord.ServiceDescription.Category.BillableAmount > 0m || Model.NewServiceRecord.ServiceDescription.BillableAmount > 0m))
|
||||
//if(Model.NewServiceRecord.CostBearer != null && Model.ShowSignature && (Model.NewServiceRecord.ServiceDescription.Category.IsBillable || Model.NewServiceRecord.ServiceDescription.Category.BillableAmount > 0m || Model.NewServiceRecord.ServiceDescription.BillableAmount > 0m))
|
||||
//{
|
||||
var dummystats = new SupportConceptStatisticsDC();
|
||||
dummystats.PeriodStatistics = new List<SupportConceptPeriodStatisticsDC>();
|
||||
var valRes = OperationsService.ValidateServiceRecord(Model.NewServiceRecord, dummystats, 0, null, null);
|
||||
|
||||
|
||||
var doppelt = valRes.Count > 0 && valRes.FirstOrDefault(v => v.ResultType == DoppelterEintrag) != null;
|
||||
|
||||
if(!doppelt)
|
||||
{
|
||||
var valRes = OperationsService.ValidateServiceRecord(Model.NewServiceRecord, null, 0, null, null);
|
||||
var doppelt = valRes.Count > 0 && valRes.FirstOrDefault(v => v.ResultType == DoppelterEintrag) != null;
|
||||
var oidList = OperationsService.InsertNewServiceRecords(new List<ServiceRecordDC> { Model.NewServiceRecord });
|
||||
|
||||
if(!doppelt)
|
||||
Model.LastCreatedServiceRecordOid = oidList[0];
|
||||
|
||||
if(Model.IsAllowedToCreateSignature(Model.NewServiceRecord))
|
||||
{
|
||||
var oidList = OperationsService.InsertNewServiceRecords(new List<ServiceRecordDC> { Model.NewServiceRecord });
|
||||
|
||||
Model.LastCreatedServiceRecordOid = oidList[0];
|
||||
|
||||
|
||||
if(Model.IsAllowedToCreateSignature(Model.NewServiceRecord))
|
||||
if(Model.NewServiceRecord.CostBearer != null && Model.ShowSignature && (Model.NewServiceRecord.ServiceDescription.Category.IsBillable || Model.NewServiceRecord.ServiceDescription.Category.BillableAmount > 0m || Model.NewServiceRecord.ServiceDescription.BillableAmount > 0m))
|
||||
{
|
||||
if(Model.NewServiceRecord.CostBearer != null && Model.ShowSignature && (Model.NewServiceRecord.ServiceDescription.Category.IsBillable || Model.NewServiceRecord.ServiceDescription.Category.BillableAmount > 0m || Model.NewServiceRecord.ServiceDescription.BillableAmount > 0m))
|
||||
{
|
||||
TempData[TempDataConstants.ShowSignatureSuggestionPopup] = true;
|
||||
}
|
||||
TempData[TempDataConstants.ShowSignatureSuggestionPopup] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
|
||||
// Es wird ein Termin aus dem Kalender in die Zeiterfassung übertragen
|
||||
if(appointmentPrototype is object)
|
||||
{
|
||||
var serviceRecord = OperationsService.GetServiceRecordById(Model.LastCreatedServiceRecordOid);
|
||||
@@ -1594,7 +1616,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.NewServiceRecord = new ServiceRecordDC();
|
||||
}
|
||||
catch (Exception e)
|
||||
catch(Exception e)
|
||||
{
|
||||
Log.Error(e.Message, e);
|
||||
}
|
||||
|
||||
@@ -1332,11 +1332,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var oids = quittierungsbelegItems.Select(s => s.ServiceRecordOid).ToList();
|
||||
|
||||
var hasCustomerSignature = srOids.All(a => serviceRecordOidsWithSignature.ContainsValueAtKey(SignatureType.Customer, a));
|
||||
var hasCustomerSignature = oids.All(a => serviceRecordOidsWithSignature.ContainsValueAtKey(SignatureType.Customer, a));
|
||||
|
||||
var employeeSignatureState2 = GetSignatureState(srOids, serviceRecordOidsWithSignature, SignatureType.Employee);
|
||||
var employeeSignatureState2 = GetSignatureState(oids, serviceRecordOidsWithSignature, SignatureType.Employee);
|
||||
|
||||
var customerSignatureState = GetSignatureState(srOids, serviceRecordOidsWithSignature, SignatureType.Customer);
|
||||
var customerSignatureState = GetSignatureState(oids, serviceRecordOidsWithSignature, SignatureType.Customer);
|
||||
|
||||
var customerSignatureOid = hasCustomerSignature ? customerSignatures.FirstOrDefault(cs => cs.ServiceRecords.All(a => a.Customer.CustomerOid.Equals(reportObject.CustomerOid) && a.ServiceRecordOid.HasValue && serviceRecordOidsWithSignature[SignatureType.Customer].Contains(a.ServiceRecordOid.Value)))?.ConfirmationReceiptSignatureOid : null;
|
||||
var sigs = customerSignatures.Where(cs => cs.ServiceRecords.All(a => a.Customer.CustomerOid.Equals(reportObject.CustomerOid) && a.ServiceRecordOid.HasValue && serviceRecordOidsWithSignature[SignatureType.Customer].Contains(a.ServiceRecordOid.Value))).ToList();
|
||||
|
||||
81
BeWoPlanerMobil/Controllers/SystemController.cs
Normal file
81
BeWoPlanerMobil/Controllers/SystemController.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.AI;
|
||||
using BeWo.Service.ServiceImplementations;
|
||||
using BeWoPlanerMobil.Service;
|
||||
using BS.Shared;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.ServiceModel.Syndication;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml;
|
||||
|
||||
namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
public class SystemController : Controller
|
||||
{
|
||||
protected static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public string Index()
|
||||
{
|
||||
return "Das ist die <b>Default</b> Aktion... Sie haben hier nix verloren;-)";
|
||||
}
|
||||
|
||||
|
||||
|
||||
[System.Web.Http.HttpPost]
|
||||
public JsonResult GetLicenseCount(string k)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
var apikey = Request["API-KEY"];
|
||||
|
||||
#if DEBUG
|
||||
k = "demo"; // Test mit Autismus Köln Bonn
|
||||
apikey = "SfTexuvxVGhNNyASiy43AnWa97VDcDsULyRTfxuWNC3YbNyLhzk48O7Hfzs7PNiy";
|
||||
#endif
|
||||
if (k == null)
|
||||
{
|
||||
return Json("99", JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
MobileSessionFacade.Tenant = k;
|
||||
|
||||
var isKundennummerVorhanden = ASPHibernateSessionManager.ConfigureHibernateSessionForWebService();
|
||||
|
||||
if (isKundennummerVorhanden)
|
||||
{
|
||||
//var operationsServiceImp = new OperationsServiceImp();
|
||||
|
||||
//var mandator = operationsServiceImp.GetMandator2(false);
|
||||
|
||||
//if (mandator.Apikey == apikey)
|
||||
//{
|
||||
|
||||
Response.AddHeader("Content-Type", "application/json"); //; charset=utf8
|
||||
|
||||
|
||||
var employees = DAOFactory.GenericDAO.GetAllActive<Employee>();
|
||||
var appUser = DAOFactory.GenericDAO.GetAllActive<ApplicationUser>();
|
||||
|
||||
|
||||
return Json(new { success = true, employee_count = employees.Count, user_count = appUser.Count }, JsonRequestBehavior.AllowGet);
|
||||
//}
|
||||
}
|
||||
|
||||
return Json(new { success = false }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return Json(new { success = false, message = "Error: " + ex.Message }, JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
@@ -30,64 +31,16 @@ namespace BeWoPlanerMobil.Models
|
||||
public string CompletedNotice { get; set; }
|
||||
public string CompletedUser { get; set; }
|
||||
public string TaskDescription { get; set; }
|
||||
|
||||
public List<CompactCustomerDC> SelectedCustomers
|
||||
{
|
||||
get
|
||||
{
|
||||
return SelectedCustomerOids is null ?
|
||||
null :
|
||||
PossibleCustomers.Where(customer => SelectedCustomerOids.Contains(customer.CustomerOid)).ToList();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SelectedCustomerOids = value?.Select(customer => customer.CustomerOid).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public List<ResourceDC> SelectedResources
|
||||
{
|
||||
get
|
||||
{
|
||||
return SelectedResourceOids is null ?
|
||||
null :
|
||||
PossibleResources.Where(resource => resource.ResourceOid.HasValue && SelectedResourceOids.Contains(resource.ResourceOid.Value)).ToList();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SelectedResourceOids = value?.Where(resource => resource.ResourceOid.HasValue).Select(resource => resource.ResourceOid.Value).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasServiceRecordEntry { get; set; }
|
||||
public List<ServiceRecordDC> ServiceRecordList { get; set; }
|
||||
|
||||
public List<CompactCustomerDC> PossibleCustomers { get; set; }
|
||||
public List<ResourceDC> PossibleResources { get; set; }
|
||||
|
||||
|
||||
public List<long> SelectedCustomerOids
|
||||
{
|
||||
get => AppointmentSessionModel.SelectedCustomerOids;
|
||||
set => AppointmentSessionModel.SelectedCustomerOids = value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<long> SelectedResourceOids
|
||||
{
|
||||
get => AppointmentSessionModel.SelectedResourceOids;
|
||||
set => AppointmentSessionModel.SelectedResourceOids = value;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Mitarbeiter */
|
||||
#region Mitarbeiter
|
||||
public List<CompactEmployeeDC> PossibleEmployees { get; set; }
|
||||
|
||||
public int EmployeePageLimit => 10;
|
||||
|
||||
public int EmployeePageCount => (PossibleEmployees?.Count ?? 0) / EmployeePageLimit;
|
||||
|
||||
public List<Employee2SchedulerAppointmentDC> SelectedEmployee2SchedulerAppointments { get; set; }
|
||||
|
||||
public List<CompactEmployeeDC> SelectedEmployees { get; set; }
|
||||
@@ -103,12 +56,64 @@ namespace BeWoPlanerMobil.Models
|
||||
get => AppointmentSessionModel.SelectedEmployees2Appointments;
|
||||
set => AppointmentSessionModel.SelectedEmployees2Appointments = value;
|
||||
}
|
||||
/* /Mitarbeiter */
|
||||
#endregion
|
||||
|
||||
#region Klienten
|
||||
public List<CompactCustomerDC> PossibleCustomers { get; set; }
|
||||
|
||||
public int CustomerPageLimit => 10;
|
||||
|
||||
public int CustomerPageCount => (PossibleCustomers?.Count ?? 0) / CustomerPageLimit;
|
||||
|
||||
public List<CompactCustomerDC> SelectedCustomers
|
||||
{
|
||||
get
|
||||
{
|
||||
return SelectedCustomerOids is null ? null : PossibleCustomers.Where(customer => SelectedCustomerOids.Contains(customer.CustomerOid)).ToList();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SelectedCustomerOids = value?.Select(customer => customer.CustomerOid).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public List<long> SelectedCustomerOids
|
||||
{
|
||||
get => AppointmentSessionModel.SelectedCustomerOids;
|
||||
set => AppointmentSessionModel.SelectedCustomerOids = value;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Ressourcen
|
||||
public Dictionary<ValueListEntryDC, List<ResourceDC>> ResourceCategories2Resources { get; set; }
|
||||
public List<ResourceDC> PossibleResources { get; set; }
|
||||
|
||||
public int ResourcePageLimit => 10;
|
||||
|
||||
public int ResourcePageCount => (ResourceCategories2Resources?.Keys?.Count ?? 0) / ResourcePageLimit;
|
||||
|
||||
public List<ResourceDC> SelectedResources
|
||||
{
|
||||
get
|
||||
{
|
||||
return SelectedResourceOids is null ?
|
||||
null :
|
||||
PossibleResources.Where(resource => resource.ResourceOid.HasValue && SelectedResourceOids.Contains(resource.ResourceOid.Value)).ToList();
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SelectedResourceOids = value?.Where(resource => resource.ResourceOid.HasValue).Select(resource => resource.ResourceOid.Value).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public List<long> SelectedResourceOids
|
||||
{
|
||||
get => AppointmentSessionModel.SelectedResourceOids;
|
||||
set => AppointmentSessionModel.SelectedResourceOids = value;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
public AppointmentModel()
|
||||
@@ -122,6 +127,13 @@ namespace BeWoPlanerMobil.Models
|
||||
PossibleResources = possibleResources;
|
||||
PossibleEmployees = possibleEmployees;
|
||||
|
||||
ResourceCategories2Resources = new Dictionary<ValueListEntryDC, List<ResourceDC>>();
|
||||
|
||||
foreach(var resource in PossibleResources)
|
||||
{
|
||||
ResourceCategories2Resources.AddOrUpdateValueInDictionary(resource.ResourceCategory, resource);
|
||||
}
|
||||
|
||||
SessionModel = new AppointmentSessionModel();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,20 +4,20 @@ namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
public class AppointmentSessionModel : BaseSessionModel
|
||||
{
|
||||
public List<long> SelectedCustomerOids { get; set; }
|
||||
public List<long> SelectedEmployeeOids { get; set; }
|
||||
public List<long> SelectedCustomerOids { get; set; }
|
||||
public List<long> SelectedResourceOids { get; set; }
|
||||
|
||||
public List<long> SelectedEmployees2Appointments { get; set; }
|
||||
public List<long> SelectedEmployees2Appointments { get; set; } = new List<long>();
|
||||
|
||||
public override void ResetValues()
|
||||
{
|
||||
base.ResetValues();
|
||||
|
||||
SelectedCustomerOids = null;
|
||||
SelectedEmployeeOids = null;
|
||||
SelectedResourceOids = null;
|
||||
SelectedEmployees2Appointments = null;
|
||||
SelectedCustomerOids = new List<long>();
|
||||
SelectedEmployeeOids = new List<long>();
|
||||
SelectedResourceOids = new List<long>();
|
||||
SelectedEmployees2Appointments = new List<long>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,29 +103,6 @@ namespace BeWoPlanerMobil.Models
|
||||
public List<CompactCustomerDC> SelectedCustomersForFiltering { get; set; }
|
||||
public List<ResourceDC> SelectedResourcesForFiltering { get; set; }
|
||||
|
||||
public List<CompactEmployeeDC> SelectedEmployeesForIntervalFinder { get; set; }
|
||||
public List<CompactCustomerDC> SelectedCustomersForIntervalFinder { get; set; }
|
||||
public List<ResourceDC> SelectedResourcesForIntervalFinder { get; set; }
|
||||
|
||||
|
||||
|
||||
public List<long> SelectedEmployeeOidsForIntervalFinder
|
||||
{
|
||||
get => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForIntervalFinder;
|
||||
set => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForIntervalFinder = value;
|
||||
}
|
||||
|
||||
public List<long> SelectedCustomerOidsForIntervalFinder
|
||||
{
|
||||
get => DevExpressSchedulerSessionModel.SelectedCustomerOidsForIntervalFinder;
|
||||
set => DevExpressSchedulerSessionModel.SelectedCustomerOidsForIntervalFinder = value;
|
||||
}
|
||||
|
||||
public List<long> SelectedResourceOidsForIntervalFinder
|
||||
{
|
||||
get => DevExpressSchedulerSessionModel.SelectedResourceOidsForIntervalFinder;
|
||||
set => DevExpressSchedulerSessionModel.SelectedResourceOidsForIntervalFinder = value;
|
||||
}
|
||||
|
||||
public bool ShowTasks
|
||||
{
|
||||
|
||||
@@ -14,10 +14,6 @@ namespace BeWoPlanerMobil.Models
|
||||
public List<long> SelectedCustomerOidsForFiltering { get; set; }
|
||||
public List<long> SelectedResourceOidsForFiltering { get; set; }
|
||||
|
||||
public List<long> SelectedEmployeeOidsForIntervalFinder { get; set; }
|
||||
public List<long> SelectedCustomerOidsForIntervalFinder { get; set; }
|
||||
public List<long> SelectedResourceOidsForIntervalFinder { get; set; }
|
||||
|
||||
public List<long> OpenAppointmentOids { get; set; }
|
||||
public long? AppointmentOid2Answer { get; set; }
|
||||
|
||||
@@ -44,10 +40,6 @@ namespace BeWoPlanerMobil.Models
|
||||
SelectedCustomerOidsForFiltering = new List<long>();
|
||||
SelectedResourceOidsForFiltering = new List<long>();
|
||||
|
||||
SelectedEmployeeOidsForIntervalFinder = new List<long>();
|
||||
SelectedCustomerOidsForIntervalFinder = new List<long>();
|
||||
SelectedResourceOidsForIntervalFinder = new List<long>();
|
||||
|
||||
OpenAppointmentOids = new List<long>();
|
||||
|
||||
ShowTasks = false;
|
||||
|
||||
@@ -144,7 +144,7 @@ namespace BeWoPlanerMobil.Service
|
||||
|
||||
private static bool ShouldConfigureHibernateSession(HttpApplication context)
|
||||
{
|
||||
if(context.Request.FilePath.IndexOf("/Chat/", StringComparison.InvariantCulture) >= 0)
|
||||
if(context.Request.FilePath.IndexOf("/Chat/", StringComparison.InvariantCulture) >= 0 || context.Request.FilePath.IndexOf("/System/", StringComparison.InvariantCulture) >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ namespace BeWoPlanerMobil.Util
|
||||
{
|
||||
public class JsonCustomer
|
||||
{
|
||||
public long PersonOid { get; set; }
|
||||
public long CustomerOid { get; set; }
|
||||
public string Vorname { get; set; }
|
||||
public string Nachname { get; set; }
|
||||
|
||||
@@ -116,6 +118,8 @@ namespace BeWoPlanerMobil.Util
|
||||
!string.IsNullOrWhiteSpace(SchwebiAusstAmt);
|
||||
|
||||
ICD10Diagnosen = icd10Diagnosen;
|
||||
PersonOid = customer.PersonOid ?? 0;
|
||||
CustomerOid = customer.CustomerOid ?? 0;
|
||||
Vorname = customer.FirstName;
|
||||
Nachname = customer.LastName;
|
||||
Alias = customer.CustomerAlias;
|
||||
|
||||
@@ -185,10 +185,13 @@
|
||||
</div>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-details-collapsible")" id="customer-details-collapsible">
|
||||
<div class="card-body py-0">
|
||||
@using(Html.BeginForm("UpdateCustomer", "Customer", FormMethod.Post, new { id = "stammdaten-form", @class = "needs-validation", novalidate = "novalidate" }))
|
||||
@using (Html.BeginForm("UpdateCustomer", "Customer", FormMethod.Post, new { id = "stammdaten-form", @class = "needs-validation", novalidate = "novalidate" }))
|
||||
{
|
||||
var inputDisabled = !Model.HasRightToEditCustomers ? "disabled" : string.Empty;
|
||||
|
||||
<input type="hidden" id="PersonOid" name="PersonOid" value="@Model.SelectedJsonCustomer.PersonOid" />
|
||||
<input type="hidden" id="CustomerOid" name="CustomerOid" value="@Model.SelectedJsonCustomer.CustomerOid" />
|
||||
|
||||
<div class="row" id="stammdaten-container">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6 col-xl-6 mt-2 px-1">
|
||||
<div class="card">
|
||||
@@ -196,6 +199,7 @@
|
||||
<div class="card-title text-bewo-customer-card-header">
|
||||
Eigenschaften
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group w-100 mt-1 my-0">
|
||||
<div class="input-group">
|
||||
@@ -518,7 +522,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(Model.HasRightToEditCustomers)
|
||||
@if (Model.HasRightToEditCustomers)
|
||||
{
|
||||
<div class="col-12 mb-2 px-1 mt-2">
|
||||
<button type="submit" class="btn btn-primary float-right w-100 m-0" onclick="showSpinner()">Speichern</button>
|
||||
@@ -1068,7 +1072,7 @@
|
||||
</div>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "customer-betreuung-collapsible")" , id="customer-betreuung-collapsible">
|
||||
<div class="card-body p-1">
|
||||
<div id="betreuungscontainer">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3" id="betreuungscontainer">
|
||||
@Html.Partial("CustomerBetreuungPartial", Model)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,111 +10,93 @@
|
||||
|
||||
@if(hasRelatedEmployees && Model.SelectedCustomer != null)
|
||||
{
|
||||
<div class="card w-100 h-100">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header" id="chevron-customer-betreuung-list"></i>
|
||||
</div>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
|
||||
Betreuung
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "collapse-customer-betreuung-list")" id="collapse-customer-betreuung-list">
|
||||
<div class="card-body p-1">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3">
|
||||
@foreach(var relation in Model.SelectedCustomer.RelatedEmployees)
|
||||
{
|
||||
var start = relation.StartDate.HasValue ? $"{relation.StartDate.Value:dd.MM.yyyy}" : "";
|
||||
var end = relation.EndDate.HasValue ? $"{relation.EndDate.Value:dd.MM.yyyy}" : "";
|
||||
foreach(var relation in Model.SelectedCustomer.RelatedEmployees)
|
||||
{
|
||||
var start = relation.StartDate.HasValue ? $"{relation.StartDate.Value:dd.MM.yyyy}" : "";
|
||||
var end = relation.EndDate.HasValue ? $"{relation.EndDate.Value:dd.MM.yyyy}" : "";
|
||||
|
||||
var relationRole = relation.RelationRole?.DisplayName ?? string.Empty;
|
||||
var relationRole = relation.RelationRole?.DisplayName ?? string.Empty;
|
||||
|
||||
<div class="col mb-3">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Betreuer:</td>
|
||||
<td class="text-right align-text-top">@relation.Employee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Rolle:</td>
|
||||
<td class="text-right align-text-top">@relationRole</td>
|
||||
</tr>
|
||||
@if(!string.IsNullOrWhiteSpace(start))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Startdatum:</td>
|
||||
<td class="text-right align-text-top">@start</td>
|
||||
</tr>
|
||||
}
|
||||
@if(!string.IsNullOrWhiteSpace(end))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Enddatum:</td>
|
||||
<td class="text-right align-text-top">@end</td>
|
||||
</tr>
|
||||
}
|
||||
@if(!string.IsNullOrWhiteSpace(relation.Notice))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top pr-1">Erläuterung:</td>
|
||||
<td class="text-justify align-text-top">@relation.Notice</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="col mb-3">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Betreuer:</td>
|
||||
<td class="text-right align-text-top">@relation.Employee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Rolle:</td>
|
||||
<td class="text-right align-text-top">@relationRole</td>
|
||||
</tr>
|
||||
@if(!string.IsNullOrWhiteSpace(start))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Startdatum:</td>
|
||||
<td class="text-right align-text-top">@start</td>
|
||||
</tr>
|
||||
}
|
||||
@if(!string.IsNullOrWhiteSpace(end))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top">Enddatum:</td>
|
||||
<td class="text-right align-text-top">@end</td>
|
||||
</tr>
|
||||
}
|
||||
@if(!string.IsNullOrWhiteSpace(relation.Notice))
|
||||
{
|
||||
<tr>
|
||||
<td class="text-secondary align-text-top pr-1">Erläuterung:</td>
|
||||
<td class="text-justify align-text-top">@relation.Notice</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@*Teams*@
|
||||
@if(hasRelatedTeams && Model.SelectedCustomer != null)
|
||||
{
|
||||
<div class="card w-100 h-100 mt-3">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header" id="chevron-customer-betreuung-teams"></i>
|
||||
<div class="card w-100 h-100 mt-3">
|
||||
<div class="card-header" onclick="cardHeaderClick2(this)">
|
||||
<div class="d-inline-flex">
|
||||
<i class="fas fa-chevron-down h-100 text-bewo-customer-card-header" id="chevron-customer-betreuung-teams"></i>
|
||||
</div>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
|
||||
Teams
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-inline d-inline-flex text-bewo-customer-card-header h-100">
|
||||
<button type="button" class="btn btn-link text-bewo-customer-card-header" style="font-size: 20px;">
|
||||
Teams
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "collapse-customer-betreuung-teams")" id="collapse-customer-betreuung-teams">
|
||||
<div class="card-body">
|
||||
@foreach(var teamRelation in Model.SelectedCustomer.RelatedTeams)
|
||||
{
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4">
|
||||
<div class="col mb-0">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-secondary">Team:</td>
|
||||
<td class="text-right">@teamRelation.Team.Name</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, "collapse-customer-betreuung-teams")" id="collapse-customer-betreuung-teams">
|
||||
<div class="card-body">
|
||||
@foreach(var teamRelation in Model.SelectedCustomer.RelatedTeams)
|
||||
{
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4">
|
||||
<div class="col mb-0">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<table class="w-100">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-secondary">Team:</td>
|
||||
<td class="text-right">@teamRelation.Team.Name</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
showSpinner();
|
||||
$("#customer-input-container").load(
|
||||
"@Url.Action("UpdateCustomerSelection")",
|
||||
"@Url.Action("UpdateCustomerFilterSelection")",
|
||||
{ selectedOids: selectedCustomerOids },
|
||||
() => {
|
||||
scheduler.Refresh();
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
logInfo3(`Es wurden ${selectedEmployeeOids.length} Mitarbeiter ausgewählt.`);
|
||||
|
||||
$("#employee-input-container").load(
|
||||
"@Url.Action("UpdateEmployeeSelection", "DevExpressScheduler")",
|
||||
"@Url.Action("UpdateEmployeeFilterSelection", "DevExpressScheduler")",
|
||||
{
|
||||
selectedOids: selectedEmployeeOids
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
showSpinner();
|
||||
$("#resource-input-container").load(
|
||||
"@Url.Action("UpdateResourceSelection")",
|
||||
"@Url.Action("UpdateResourceFilterSelection")",
|
||||
{
|
||||
selectedOids: selectedResourceOids
|
||||
},
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
@{
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
|
||||
}
|
||||
|
||||
<style type="text/css">
|
||||
@@ -18,6 +19,52 @@
|
||||
@using(Html.BeginForm())
|
||||
{
|
||||
<table id="abc-table">
|
||||
@* Betreff *@
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DevExpress().Label(
|
||||
settings =>
|
||||
{
|
||||
settings.AssociatedControlName = nameof(SchedulerAppointmentDC.Subject);
|
||||
settings.Text = "Betreff:";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).GetHtml()
|
||||
</td>
|
||||
<td colspan="3" style="width: 100%; padding: .25em;">
|
||||
@Html.DevExpress().TextBox(
|
||||
settings =>
|
||||
{
|
||||
settings.Name = nameof(SchedulerAppointmentDC.Subject);
|
||||
settings.ShowModelErrors = true;
|
||||
settings.Properties.ValidationSettings.Display = Display.Dynamic;
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).Bind(Model.Subject).GetHtml()
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Ort *@
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DevExpress().Label(
|
||||
settings =>
|
||||
{
|
||||
settings.AssociatedControlName = nameof(SchedulerAppointmentDC.Location);
|
||||
settings.Text = "Ort:";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).GetHtml()
|
||||
</td>
|
||||
<td colspan="3" style="width: 100%; padding: .25em;">
|
||||
@Html.DevExpress().TextBox(
|
||||
settings =>
|
||||
{
|
||||
settings.Name = nameof(SchedulerAppointmentDC.Location);
|
||||
settings.ShowModelErrors = true;
|
||||
settings.Properties.ValidationSettings.Display = Display.Dynamic;
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).Bind(Model.Location).GetHtml()
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Start *@
|
||||
<tr>
|
||||
<td style="white-space: nowrap;">
|
||||
@@ -111,90 +158,24 @@
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Mitarbeiter, Klienten, Ressourcen *@
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
@Html.Partial("EmployeeMultiSelectPartial")
|
||||
</td>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
@Html.Partial("CustomerMultiSelectPartial")
|
||||
</td>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
@Html.Partial("ResourceMultiSelectPartial")
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<table>
|
||||
<table class="w-100">
|
||||
<tr>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
@Html.Partial("CustomEmployeeSelectPartial", Model)
|
||||
</td>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
|
||||
@Html.Partial("CustomCustomerSelectPartial", Model)
|
||||
</td>
|
||||
<td style="width: 33%; padding: .25em;">
|
||||
|
||||
@Html.Partial("CustomResourceSelectPartial", Model)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Betreff *@
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DevExpress().Label(
|
||||
settings =>
|
||||
{
|
||||
settings.AssociatedControlName = nameof(SchedulerAppointmentDC.Subject);
|
||||
settings.Text = "Betreff:";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).GetHtml()
|
||||
</td>
|
||||
<td colspan="3" style="width: 100%; padding: .25em;">
|
||||
@Html.DevExpress().TextBox(
|
||||
settings =>
|
||||
{
|
||||
settings.Name = nameof(SchedulerAppointmentDC.Subject);
|
||||
settings.ShowModelErrors = true;
|
||||
settings.Properties.ValidationSettings.Display = Display.Dynamic;
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).Bind(Model.Subject).GetHtml()
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Ort *@
|
||||
<tr>
|
||||
<td>
|
||||
@Html.DevExpress().Label(
|
||||
settings =>
|
||||
{
|
||||
settings.AssociatedControlName = nameof(SchedulerAppointmentDC.Location);
|
||||
settings.Text = "Ort:";
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).GetHtml()
|
||||
</td>
|
||||
<td colspan="3" style="width: 100%; padding: .25em;">
|
||||
@Html.DevExpress().TextBox(
|
||||
settings =>
|
||||
{
|
||||
settings.Name = nameof(SchedulerAppointmentDC.Location);
|
||||
settings.ShowModelErrors = true;
|
||||
settings.Properties.ValidationSettings.Display = Display.Dynamic;
|
||||
settings.Width = Unit.Percentage(100);
|
||||
}).Bind(Model.Location).GetHtml()
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@* Notiz *@
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
@using BS.Shared.Extensions
|
||||
@model BeWoPlanerMobil.Models.AppointmentModel
|
||||
|
||||
@{
|
||||
var areAllSelected = Model.SelectedCustomerOids.AreListEqual(Model.PossibleCustomers.Select(customer => customer.CustomerOid).ToList());
|
||||
|
||||
var allChecked = areAllSelected ? "checked" : string.Empty;
|
||||
}
|
||||
|
||||
<div class="dropdown w-100" id="customers-dropdown">
|
||||
<button class="btn btn-bewo-customers dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Klienten <span class="badge badge-light">@Model.SelectedCustomerOids.Count</span>
|
||||
</button>
|
||||
<div class="dropdown-menu" onclick="event.stopPropagation();">
|
||||
<div class="dropdown-item py-1 px-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="checkbox" @allChecked onclick="selectAllEmployeeCustomerResource('cus')" id="apt-cus-select-all">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" id="cus-drop-search-input" placeholder="Suchen ..." oninput="onNewSearchInput('cus')">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-outline-secondary" onclick="resetNewSearch('cus')">
|
||||
<span class="fas fa-times-circle"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div id="dropdown-cus-itm-container">
|
||||
@for(var i = 0; i < Model.PossibleCustomers.Count; i++)
|
||||
{
|
||||
var customer = Model.PossibleCustomers[i];
|
||||
var isChecked = Model.SelectedCustomerOids.Contains(customer.CustomerOid) ? "checked" : string.Empty;
|
||||
|
||||
var dNone = i / Model.CustomerPageLimit + 1 != 1 ? " d-none" : string.Empty;
|
||||
|
||||
<div class="dropdown-item w-100 @dNone" id="dropdown-item-@i">
|
||||
<form class="form-inline justify-content-between">
|
||||
<div class="form-group form-check">
|
||||
<input class="form-check-input" type="checkbox" id="apt-edit-cus-@customer.CustomerOid" @isChecked onclick="updateEmployeeCustomerResourceSelection('cus')" />
|
||||
<label for="apt-edit-cus-@customer.CustomerOid" class="form-check-label">
|
||||
@customer.DetailDescription
|
||||
</label>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="dropdown-divider" id="apt-cus-pag-divider"></div>
|
||||
<div class="dropdown-item" id="apt-cus-pag-dropdow-item">
|
||||
<nav id="apt-cus-pag-nav">
|
||||
<ul class="pagination justify-content-center" id="apt-cus-pagination">
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,80 +1,100 @@
|
||||
@using BS.Shared
|
||||
@using BS.Shared.Core.Utilities
|
||||
@using BS.Shared.Extensions
|
||||
@model BeWoPlanerMobil.Models.AppointmentModel
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
li {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
@functions
|
||||
{
|
||||
string GetParticipationColor(ParticipationAnswer participationAnswer)
|
||||
{
|
||||
var background = "";
|
||||
static string GetParticipationColor(ParticipationAnswer participationAnswer)
|
||||
{
|
||||
var background = "";
|
||||
|
||||
switch(participationAnswer)
|
||||
{
|
||||
case ParticipationAnswer.Zusage:
|
||||
background = "#48D44E";
|
||||
break;
|
||||
case ParticipationAnswer.Vorbehalt:
|
||||
background = "#B927D9";
|
||||
break;
|
||||
case ParticipationAnswer.Absage:
|
||||
background = "#AB0030";
|
||||
break;
|
||||
}
|
||||
switch(participationAnswer)
|
||||
{
|
||||
case ParticipationAnswer.Zusage:
|
||||
background = "#48D44E";
|
||||
break;
|
||||
case ParticipationAnswer.Vorbehalt:
|
||||
background = "#B927D9";
|
||||
break;
|
||||
case ParticipationAnswer.Absage:
|
||||
background = "#AB0030";
|
||||
break;
|
||||
}
|
||||
|
||||
return background;
|
||||
}
|
||||
return background;
|
||||
}
|
||||
}
|
||||
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-bewo-employee dropdown-toggle" type="button" data-toggle="dropdown">
|
||||
Mitarbeiter
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#">Action</a>
|
||||
<a class="dropdown-item" href="#">Another action</a>
|
||||
<a class="dropdown-item" href="#">Something else here</a>
|
||||
@{
|
||||
var areAllSelected = Model.SelectedEmployee2SchedulerAppointments.Select(x => x.Employee.EmployeeOid).ToList().AreListEqual(Model.PossibleEmployees.Select(employee => employee.EmployeeOid).ToList());
|
||||
|
||||
@foreach(var employee in Model.PossibleEmployees)
|
||||
{
|
||||
var isChecked = Model.SelectedEmployeeOids.Contains(employee.EmployeeOid) ? "checked" : string.Empty;
|
||||
var employee2Appointment = Model.SelectedEmployee2SchedulerAppointments.FirstOrDefault(e2A => e2A.Employee.EmployeeOid.Equals(employee.EmployeeOid));
|
||||
var allChecked = areAllSelected ? "checked" : string.Empty;
|
||||
}
|
||||
|
||||
var background = "";
|
||||
<div class="dropdown w-100" id="employees-dropdown">
|
||||
<button class="btn btn-bewo-employee dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Mitarbeiter <span class="badge badge-light">@Model.SelectedEmployee2SchedulerAppointments.Count</span>
|
||||
</button>
|
||||
<div class="dropdown-menu" onclick="event.stopPropagation();">
|
||||
<div class="dropdown-item py-1 px-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="checkbox" @allChecked onclick="selectAllEmployeeCustomerResource('emp')" id="apt-emp-select-all">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" id="emp-drop-search-input" placeholder="Suchen ..." oninput="onNewSearchInput('emp')">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-outline-secondary" onclick="resetNewSearch('emp')">
|
||||
<span class="fas fa-times-circle"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div id="dropdown-emp-itm-container">
|
||||
@for(var i = 0; i < Model.PossibleEmployees.Count; i++)
|
||||
{
|
||||
var employee = Model.PossibleEmployees[i];
|
||||
var isChecked = Model.SelectedEmployeeOids.Contains(employee.EmployeeOid) ? "checked" : string.Empty;
|
||||
var employee2Appointment = Model.SelectedEmployee2SchedulerAppointments.FirstOrDefault(e2A => e2A.Employee.EmployeeOid.Equals(employee.EmployeeOid));
|
||||
|
||||
if(employee2Appointment != null)
|
||||
{
|
||||
background = GetParticipationColor(employee2Appointment.ParticipationAnswer);
|
||||
}
|
||||
var background = employee2Appointment is null ? string.Empty : GetParticipationColor(employee2Appointment.ParticipationAnswer);
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
var x = WebUtils.CheckColorString(employee.EmployeeColor) ? "" : string.Empty;
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
var dNone = i / Model.EmployeePageLimit + 1 != 1 ? " d-none" : string.Empty;
|
||||
|
||||
<div class="dropdown-item w-100 @dNone" id="dropdown-item-@i">
|
||||
<form class="form-inline justify-content-between">
|
||||
<div class="form-group form-check">
|
||||
<input class="form-check-input" type="checkbox" id="apt-edit-emp-@employee.EmployeeOid" @isChecked onclick="updateEmployeeCustomerResourceSelection('emp')" />
|
||||
<label for="apt-edit-emp-@employee.EmployeeOid" class="form-check-label">
|
||||
@employee.DetailDescription
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a class="dropdown-item" href="#">@employee.DetailDescription</a>
|
||||
<form class="form-inline">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" @isChecked id="apt-edit-emp-@employee.EmployeeOid" />
|
||||
<label class="form-check-label" for="apt-edit-emp-@employee.EmployeeOid">@employee.DetailDescription</label>
|
||||
</div>
|
||||
</form>
|
||||
/*
|
||||
*<form class="form-inline">
|
||||
<div class="form-group form-check">
|
||||
<input type="checkbox" class="form-check-input" id="only-my-own-appointments-cb2" @isOnlyOwnAptsChecked onclick="filterAppointments()">
|
||||
<label class="form-check-label" for="only-my-own-appointments-cb2">Nur meine Termine</label>
|
||||
</div>
|
||||
</form>
|
||||
*/
|
||||
}
|
||||
</div>
|
||||
@if(WebUtils.CheckColorString(employee.EmployeeColor))
|
||||
{
|
||||
<div class="float-right" style="width: 10px; height: 10px; background-color: @employee.EmployeeColor; border: 1px solid @employee.EmployeeColor; border-radius: 3px;"></div>
|
||||
}
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="dropdown-divider" id="apt-emp-pag-divider"></div>
|
||||
<div class="dropdown-item" id="apt-emp-pag-dropdow-item">
|
||||
<nav id="apt-emp-pag-nav">
|
||||
<ul class="pagination justify-content-center" id="apt-emp-pagination">
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,128 @@
|
||||
@using BS.Shared.Core.Utilities
|
||||
@using BeWoPlanerMobil.Util
|
||||
@model BeWoPlanerMobil.Models.AppointmentModel
|
||||
|
||||
@{
|
||||
var j = 0;
|
||||
|
||||
var areAllSelected = true;
|
||||
|
||||
foreach(var category2Resources in Model.ResourceCategories2Resources)
|
||||
{
|
||||
var resourceOids = category2Resources.Value.Select(resource => resource.ResourceOid.Value).ToList();
|
||||
|
||||
if(false == resourceOids.All(oid => Model.SelectedResourceOids.Contains(oid)))
|
||||
{
|
||||
areAllSelected = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var checkedValue = areAllSelected ? "checked" : string.Empty;
|
||||
}
|
||||
|
||||
<div class="dropdown w-100" id="resources-dropdown">
|
||||
<button class="btn btn-bewo-resource dropdown-toggle w-100" type="button" data-toggle="dropdown">
|
||||
Ressourcen <span class="badge badge-light">@Model.SelectedResourceOids.Count</span>
|
||||
</button>
|
||||
<div class="dropdown-menu" onclick="event.stopPropagation();">
|
||||
<div class="dropdown-item py-1 px-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text">
|
||||
<input type="checkbox" @checkedValue onclick="selectAllEmployeeCustomerResource('res')" id="apt-res-select-all">
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" class="form-control" id="res-drop-search-input" placeholder="Suchen ..." oninput="onNewResourceSeachInput()">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-outline-secondary" onclick="resetNewResourceSearch()">
|
||||
<span class="fas fa-times-circle"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-divider py-0 px-2"></div>
|
||||
<div id="dropdown-res-itm-container">
|
||||
@{
|
||||
foreach(var category2Resources in Model.ResourceCategories2Resources)
|
||||
{
|
||||
var category = category2Resources.Key;
|
||||
var resources = category2Resources.Value;
|
||||
|
||||
var dNone = j / Model.ResourcePageLimit + 1 != 1 ? " d-none" : string.Empty;
|
||||
|
||||
<div class="dropdown-item w-100 py-0 px-2 @dNone" id="dropdown-item-@j">
|
||||
<div class="card mb-1 category-card" id="res-cat-@category.ValueListEntryOid">
|
||||
<div class="card-header tree-card-header px-2 py-1" onclick="categoryCardHeaderClick('collapsable-res-cat-@category.ValueListEntryOid')">
|
||||
<div class="d-flex align-items-center m-0">
|
||||
<h6 class="mr-auto mb-0">@category.DisplayName</h6>
|
||||
<div class="btn-group" role="group">
|
||||
<span class="fas fa-chevron-down text-primary"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, $"collapsable-res-cat-{category.ValueListEntryOid}")" id="collapsable-res-cat-@category.ValueListEntryOid">
|
||||
<div class="card-body resource-list px-2 py-1">
|
||||
@foreach(var resource in resources)
|
||||
{
|
||||
var isChecked = resource.ResourceOid.HasValue && Model.SelectedResourceOids.Contains(resource.ResourceOid.Value) ? "checked" : string.Empty;
|
||||
|
||||
<form class="form-inline justify-content-between">
|
||||
<div class="form-group form-check">
|
||||
<input class="form-check-input" type="checkbox" id="apt-edit-res-@resource.ResourceOid.Value" @isChecked onclick="updateEmployeeCustomerResourceSelection('res')"/>
|
||||
<label for="apt-edit-res-@resource.ResourceOid.Value" class="form-check-label">
|
||||
@resource.DetailDescription
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if(WebUtils.CheckColorString(resource.Color))
|
||||
{
|
||||
<div class="float-right" style="width: 10px; height: 10px; background-color: @resource.Color; border: 1px solid @resource.Color; border-radius: 3px;"></div>
|
||||
}
|
||||
</form>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
j++;
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div class="dropdown-divider" id="apt-res-pag-divider"></div>
|
||||
<div class="dropdown-item" id="apt-res-pag-dropdow-item">
|
||||
<nav id="apt-res-pag-nav">
|
||||
<ul class="pagination justify-content-center" id="apt-res-pagination">
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@* ToDo: Mit den Kategorien wie im alten Kalendermodul bauen!
|
||||
@for(var i = 0; i < Model.PossibleResources.Count; i++)
|
||||
{
|
||||
var resource = Model.PossibleResources[i];
|
||||
var isChecked = resource.ResourceOid.HasValue && Model.SelectedResourceOids.Contains(resource.ResourceOid.Value) ? "checked" : string.Empty;
|
||||
|
||||
var dNone = i / Model.ResourcePageLimit + 1 != 1 ? " d-none" : string.Empty;
|
||||
|
||||
<div class="dropdown-item w-100 @dNone" id="dropdown-item-@i">
|
||||
<form class="form-inline justify-content-between">
|
||||
<div class="form-group form-check">
|
||||
<input class="form-check-input" type="checkbox" id="apt-edit-res-@resource.ResourceOid.Value" @isChecked onclick="updateEmployeeCustomerResourceSelection('res')"/>
|
||||
<label for="apt-edit-res-@resource.ResourceOid.Value" class="form-check-label">
|
||||
@resource.DetailDescription
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if(WebUtils.CheckColorString(resource.Color))
|
||||
{
|
||||
<div class="float-right" style="width: 10px; height: 10px; background-color: @resource.Color; border: 1px solid @resource.Color; border-radius: 3px;"></div>
|
||||
}
|
||||
</form>
|
||||
</div>
|
||||
}*@
|
||||
@@ -22,6 +22,20 @@
|
||||
|
||||
const vw = $(window).width();
|
||||
|
||||
if(editFormPopup.outerWidth() !== undefined) {
|
||||
$.get("@Url.Action("GetEmployeePageCount")", function(editFormInfo) {
|
||||
pageCountCallback(editFormInfo, "emp");
|
||||
});
|
||||
|
||||
$.get("@Url.Action("GetCustomerPageCount")", function(editFormInfo) {
|
||||
pageCountCallback(editFormInfo, "cus");
|
||||
});
|
||||
|
||||
$.get("@Url.Action("GetResourcePageCount")", function(editFormInfo) {
|
||||
pageCountCallback(editFormInfo, "res");
|
||||
});
|
||||
}
|
||||
|
||||
if(editFormPopup.outerWidth() !== undefined && vw < 678) {
|
||||
const newWidth = vw * .95;
|
||||
|
||||
@@ -51,6 +65,31 @@
|
||||
}
|
||||
}
|
||||
|
||||
function pageCountCallback(editFormInfo, prefix) {
|
||||
const info = JSON.parse(editFormInfo);
|
||||
const items = $(`#dropdown-${prefix}-itm-container .dropdown-item`);
|
||||
|
||||
switch(prefix) {
|
||||
case "emp":
|
||||
aptEmpSelPageCount = info.PageCount;
|
||||
aptEmpSelPageLimit = info.PageLimit;
|
||||
aptEmpSelItems = items;
|
||||
break;
|
||||
case "cus":
|
||||
aptCusSelPageCount = info.PageCount;
|
||||
aptCusSelPageLimit = info.PageLimit;
|
||||
aptCusSelItems = items;
|
||||
break;
|
||||
case "res":
|
||||
aptResSelPageCount = info.PageCount;
|
||||
aptResSelPageLimit = info.PageLimit;
|
||||
aptResSelItems = items;
|
||||
break;
|
||||
}
|
||||
|
||||
window.buildPagination(1, 5, 1, prefix);
|
||||
}
|
||||
|
||||
function OnAppointmentFormSave(s, e) {
|
||||
if(IsValidAppointment()) {
|
||||
scheduler.AppointmentFormSave();
|
||||
@@ -68,6 +107,7 @@
|
||||
CustomerGridLookup.HideDropDown();
|
||||
}
|
||||
|
||||
// ToDo: Löschen
|
||||
function CloseEmployeeGridLookup() {
|
||||
EmployeeGridLookup.ConfirmCurrentSelection();
|
||||
EmployeeGridLookup.HideDropDown();
|
||||
@@ -117,7 +157,7 @@
|
||||
}
|
||||
|
||||
function OnAppointmentMenuPopup(s, e) {
|
||||
const id = scheduler.GetSelectedAppointmentIds()[0];
|
||||
const id = scheduler.GetSelectedAppointmentIds()[0];
|
||||
const selectedAppointment = scheduler.GetAppointmentById(id);
|
||||
|
||||
for(let i = 0; i < e.item.items.length; i++) {
|
||||
@@ -125,14 +165,14 @@
|
||||
|
||||
switch(currentItem.name) {
|
||||
case "ToServiceRecord":
|
||||
if(id === undefined || selectedAppointment.IsAbsenceTime || selectedAppointment.IsTask) {
|
||||
currentItem.SetVisible(false);
|
||||
if(id === undefined || selectedAppointment.IsAbsenceTime || selectedAppointment.IsTask) {
|
||||
currentItem.SetVisible(false);
|
||||
}
|
||||
|
||||
break;
|
||||
case "ConfirmApt":
|
||||
if(id === undefined || selectedAppointment.CanConfirm === false) {
|
||||
currentItem.SetVisible(false);
|
||||
currentItem.SetVisible(false);
|
||||
}
|
||||
break;
|
||||
case "MaybeApt":
|
||||
@@ -174,8 +214,8 @@
|
||||
|
||||
scheduler.PerformCallback({
|
||||
apptID: "",
|
||||
actionId: "FilterAppointments",
|
||||
args: [selectedBoxes]
|
||||
actionId: "FilterAppointments",
|
||||
args: [selectedBoxes]
|
||||
});
|
||||
}
|
||||
|
||||
@@ -189,15 +229,15 @@
|
||||
|
||||
switch(filterType) {
|
||||
case "employee":
|
||||
url = "@Url.Action("UpdateEmployeeSelection")";
|
||||
url = "@Url.Action("UpdateEmployeeFilterSelection")";
|
||||
getSelectedCountUrl = "@Url.Action("GetSelectedEmployeesForAptFlt")";
|
||||
break;
|
||||
case "customer":
|
||||
url = "@Url.Action("UpdateCustomerSelection")";
|
||||
url = "@Url.Action("UpdateCustomerFilterSelection")";
|
||||
getSelectedCountUrl = "@Url.Action("GetSelectedCustomersForAptFlt")";
|
||||
break;
|
||||
case "resource":
|
||||
url = "@Url.Action("UpdateResourceSelection")";
|
||||
url = "@Url.Action("UpdateResourceFilterSelection")";
|
||||
getSelectedCountUrl = "@Url.Action("GetSelectedResourcesForAptFlt")";
|
||||
break;
|
||||
}
|
||||
@@ -216,12 +256,304 @@
|
||||
}
|
||||
|
||||
function performReload() {
|
||||
$("#scheduler-notification-container").load("@Url.Action("GetNotifications")");
|
||||
$("#scheduler-notification-container").load("@Url.Action("GetNotifications")");
|
||||
}
|
||||
|
||||
function reloadScheduler() {
|
||||
scheduler.PerformCallback({ apptID: "", actionId: "Reload", args: null }, () => { performReload(); hideSpinner(); });
|
||||
}
|
||||
|
||||
@* CustomECRSelectionPartial *@
|
||||
function onNewSearchInput(prefix) {
|
||||
var searchText = $(`#${prefix}-drop-search-input`).val();
|
||||
|
||||
const menuItems = $(`#dropdown-${prefix}-itm-container .dropdown-item`);
|
||||
|
||||
if(searchText === null || searchText === undefined || searchText.length === 0) {
|
||||
menuItems.show();
|
||||
return;
|
||||
}
|
||||
|
||||
menuItems.hide();
|
||||
|
||||
$.each(menuItems,
|
||||
function(index, item) {
|
||||
const itemText = $(item).text().toLowerCase();
|
||||
|
||||
if(itemText.includes(searchText.toLowerCase())) {
|
||||
$(item).show();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function resetNewSearch(prefix) {
|
||||
$(`#${prefix}-drop-search-input`).val("");
|
||||
|
||||
buildPagination(1, 5, 1, prefix);
|
||||
showPage(1, prefix);
|
||||
|
||||
const e = window.event;
|
||||
e.cancelBubble = true;
|
||||
|
||||
if(e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
var aptEmpSelPageCount = 0;
|
||||
var aptEmpSelItems = [];
|
||||
var aptEmpSelCurrentPage = 1;
|
||||
var aptEmpSelPageLimit = 0;
|
||||
|
||||
var aptCusSelPageCount = 0;
|
||||
var aptCusSelItems = [];
|
||||
var aptCusSelCurrentPage = 1;
|
||||
var aptCusSelPageLimit = 0;
|
||||
|
||||
var aptResSelPageCount = 0;
|
||||
var aptResSelItems = [];
|
||||
var aptResSelCurrentPage = 1;
|
||||
var aptResSelPageLimit = 0;
|
||||
|
||||
function buildPagination(firstShownButton, lastShownButton, activeButton, prefix) {
|
||||
const pagination = $(`#apt-${prefix}-pagination`);
|
||||
pagination.empty();
|
||||
|
||||
var pageCount = 1;
|
||||
var currentPage = 1;
|
||||
|
||||
switch(prefix) {
|
||||
case "emp":
|
||||
pageCount = aptEmpSelPageCount;
|
||||
currentPage = aptEmpSelCurrentPage;
|
||||
break;
|
||||
case "cus":
|
||||
pageCount = aptCusSelPageCount;
|
||||
currentPage = aptCusSelCurrentPage;
|
||||
break;
|
||||
case "res":
|
||||
pageCount = aptResSelPageCount;
|
||||
currentPage = aptResSelCurrentPage;
|
||||
break;
|
||||
}
|
||||
|
||||
if(prefix === "res") {
|
||||
logInfo2(`Es gibt ${pageCount} Seiten für die Ressourcen`);
|
||||
}
|
||||
|
||||
if(pageCount <= 1) {
|
||||
$(`#apt-${prefix}-pag-divider, #apt-${prefix}-pag-dropdow-item`).hide();
|
||||
return;
|
||||
}
|
||||
|
||||
$(`#apt-${prefix}-pag-divider, #apt-${prefix}-pag-dropdow-item`).show();
|
||||
|
||||
var limit = lastShownButton;
|
||||
|
||||
if(pageCount < limit) {
|
||||
limit = pageCount;
|
||||
}
|
||||
|
||||
const firstPageLiClass = firstShownButton === 1 ? "page-item disabled" : "page-igem";
|
||||
const lastPageLiClass = lastShownButton === pageCount ? "page-item disabled" : "page-igem";
|
||||
|
||||
const prevPageLiClass = activeButton === 1 ? "page-item disabled" : "page-item";
|
||||
const nextPageLiClass = activeButton === pageCount ? "page-item disabled" : "page-igem";
|
||||
|
||||
$(`<li class="${firstPageLiClass}" id="first-page-li"><button type="button" class="page-link" tabeindex="-1" onclick="showPage(${1}, '${prefix}')"><span class="fas fa-angle-double-left"></span></button></li>`).appendTo(pagination);
|
||||
$(`<li class="${prevPageLiClass}" id="prev-page-li"><button type="button" class="page-link" tabeindex="-1" onclick="showPage(${currentPage - 1}, '${prefix}')"><span class="fas fa-angle-left"></span></button></li>`).appendTo(pagination);
|
||||
|
||||
for(let i = firstShownButton; i <= limit; i++) {
|
||||
$(`<li class="page-item ${(i === activeButton ? "active" : "")}"><button class="page-link" tabindex="-1" type="button" onclick="showPage(${i}, '${prefix}')">${i}</button></li>`).appendTo(pagination);
|
||||
}
|
||||
|
||||
$(`<li class="${nextPageLiClass}" id="next-page-li"><button type="button" class="page-link" tabeindex="-1" onclick="showPage(${currentPage + 1}, '${prefix}')"><span class="fas fa-angle-right"></span></button></li>`).appendTo(pagination);
|
||||
$(`<li class="${lastPageLiClass}" id="last-page-li"><button type="button" class="page-link" tabeindex="-1" onclick="showPage(${pageCount}, '${prefix}')"><span class="fas fa-angle-double-right"></span></button></li>`).appendTo(pagination);
|
||||
}
|
||||
|
||||
function showPage(page, prefix) {
|
||||
var pageCount = 1;
|
||||
var items = [];
|
||||
|
||||
switch(prefix) {
|
||||
case "emp":
|
||||
pageCount = aptEmpSelPageCount;
|
||||
items = aptEmpSelItems;
|
||||
break;
|
||||
case "cus":
|
||||
pageCount = aptCusSelPageCount;
|
||||
items = aptCusSelItems;
|
||||
break;
|
||||
case "res":
|
||||
pageCount = aptResSelPageCount;
|
||||
items = aptResSelItems;
|
||||
break;
|
||||
}
|
||||
|
||||
const total = (items.length / 10) | 0;
|
||||
const currentPage = Math.max(1, Math.min(page, total));
|
||||
|
||||
switch(prefix) {
|
||||
case "emp":
|
||||
aptEmpSelCurrentPage = currentPage;
|
||||
break;
|
||||
case "cus":
|
||||
aptCusSelCurrentPage = currentPage;
|
||||
break;
|
||||
case "res":
|
||||
aptResSelCurrentPage = currentPage;
|
||||
break;
|
||||
}
|
||||
|
||||
const start = (currentPage - 1) * 10;
|
||||
const end = currentPage * 10;
|
||||
|
||||
items.hide();
|
||||
|
||||
$.each(items.slice(start, end), function(index, item) {
|
||||
$(item).removeClass("d-none");
|
||||
$(item).show();
|
||||
});
|
||||
|
||||
const last = Math.min(pageCount, currentPage + 2);
|
||||
const first = Math.max(1, last - 4);
|
||||
|
||||
buildPagination(first, last, currentPage, prefix);
|
||||
}
|
||||
|
||||
function updateEmployeeCustomerResourceSelection(prefix) {
|
||||
const checkedBoxes = $(`#dropdown-${prefix}-itm-container input[type=checkbox]:checked`);
|
||||
|
||||
var url = "";
|
||||
|
||||
switch(prefix) {
|
||||
case "emp":
|
||||
url = "@Url.Action("UpdateAppointmentEmployeeSelection")";
|
||||
break;
|
||||
case "cus":
|
||||
url = "@Url.Action("UpdateAppointmentCustomerSelection")";
|
||||
break;
|
||||
case "res":
|
||||
url = "@Url.Action("UpdateAppointmentResourceSelection")";
|
||||
break;
|
||||
}
|
||||
|
||||
var selectedOids = [];
|
||||
|
||||
checkedBoxes.each(function() {
|
||||
const id = $(this).prop("id");
|
||||
|
||||
const employeeOid = id.split("-")[3];
|
||||
|
||||
selectedOids.push(employeeOid.toString());
|
||||
});
|
||||
|
||||
showSpinner();
|
||||
$.get(
|
||||
url,
|
||||
{ selectedOids: selectedOids.join(", ") },
|
||||
function() {
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function selectAllEmployeeCustomerResource(prefix) {
|
||||
const isChecked = $(`#apt-${prefix}-select-all`).prop("checked");
|
||||
|
||||
$(`#dropdown-${prefix}-itm-container input[type=checkbox]`).prop("checked", isChecked);
|
||||
|
||||
updateEmployeeCustomerResourceSelection(prefix);
|
||||
}
|
||||
|
||||
function categoryCardHeaderClick(collapsibleId) {
|
||||
const collapsible = $(`#${collapsibleId}`);
|
||||
|
||||
if(collapsible.length === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
collapsible.collapse("toggle");
|
||||
|
||||
const e = window.event;
|
||||
e.cancelBubble = true;
|
||||
|
||||
if(e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
function onNewResourceSeachInput() {
|
||||
var searchText = $(`#res-drop-search-input`).val().toLowerCase();
|
||||
|
||||
const category2Resources = $(`#dropdown-res-itm-container .dropdown-item`);
|
||||
const collapse = $(`#dropdown-res-itm-container .dropdown-item .collapse`);
|
||||
|
||||
if(searchText === null || searchText === undefined || searchText.length === 0) {
|
||||
showAllResources();
|
||||
return;
|
||||
}
|
||||
|
||||
category2Resources.hide();
|
||||
|
||||
$.each(category2Resources,
|
||||
function(index, item) {
|
||||
const categoryName = $(item).find("h6").text().toLowerCase();
|
||||
|
||||
if(categoryName.includes(searchText)) {
|
||||
$(item).show();
|
||||
}
|
||||
|
||||
const resources = $(item).find("form");
|
||||
|
||||
resources.hide();
|
||||
|
||||
$.each(resources, function(resourceIndex, resourceItem) {
|
||||
const itemText = $(resourceItem).text().toLowerCase();
|
||||
|
||||
if(itemText.includes(searchText)) {
|
||||
$(resourceItem).show();
|
||||
$(item).show();
|
||||
collapse.collapse("show");
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function resetNewResourceSearch() {
|
||||
$(`#res-drop-search-input`).val("");
|
||||
|
||||
showAllResources();
|
||||
|
||||
buildPagination(1, 5, 1, "res");
|
||||
showPage(1, "res");
|
||||
|
||||
const e = window.event;
|
||||
e.cancelBubble = true;
|
||||
|
||||
if(e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
function showAllResources() {
|
||||
const category2Resources = $(`#dropdown-res-itm-container .dropdown-item`);
|
||||
const collapse = $(`#dropdown-res-itm-container .dropdown-item .collapse`);
|
||||
|
||||
$.each(category2Resources, function(cardIndex, card) {
|
||||
$(card).show();
|
||||
|
||||
const resources = $(item).find("form");
|
||||
|
||||
$.each(resources, function(formIndex, form) {
|
||||
$(form).show();
|
||||
});
|
||||
});
|
||||
|
||||
collapse.collapse("show");
|
||||
}
|
||||
@* /CustomECRSelectionPartial *@
|
||||
</script>
|
||||
|
||||
<div class="dropdown">
|
||||
|
||||
@@ -253,6 +253,8 @@
|
||||
SelectedEmployee2SchedulerAppointments = employees2Appointment,
|
||||
SelectedCustomers = customerList,
|
||||
SelectedResources = resourceList,
|
||||
SelectedCustomerOids = customerList?.Select(customer => customer.CustomerOid)?.ToList() ?? new List<long>(),
|
||||
SelectedResourceOids = resourceList?.Select(resource => resource.ResourceOid.Value)?.ToList() ?? new List<long>(),
|
||||
SelectedEmployeeOids = employees2Appointment.Select(employee2Appointment => employee2Appointment.Employee.EmployeeOid).ToList(),
|
||||
CompletedNotice = container.Appointment.CustomFields["CompletedNotice"]?.ToString(),
|
||||
CompletedUser = container.Appointment.CustomFields["CompletedUser"]?.ToString(),
|
||||
|
||||
@@ -514,7 +514,7 @@
|
||||
}
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<span class="logoff-countdown m-0 p-0">Version 3.31</span>
|
||||
<span class="logoff-countdown m-0 p-0">Version 3.32</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -239,6 +239,31 @@ namespace Dakota.Logic
|
||||
info.VersichtertenWohnort = infoParameter.Customer.Town;
|
||||
info.VersichtertenLanderkennung = null;
|
||||
|
||||
info.Verordnungsdatum = infoParameter.Customer.Medikamentenverordnungslisten
|
||||
?.FirstOrDefault(l => l.Gueltig)
|
||||
?.Medikamentenverordnungen
|
||||
?.Where(m => m.Verordnungsdatum.HasValue)
|
||||
?.Max(m => m.Verordnungsdatum);
|
||||
|
||||
// TODO: Verordnungsdatum, Genehmigungskennzeichen und DatumGenehmigung am Customer speichern und hier auslesen
|
||||
if (info.Verordnungsdatum is null)
|
||||
info.Verordnungsdatum = new DateTime(2025, 6, 30);
|
||||
info.Genehmigungskennzeichen = infoParameter.Customer.InsuranceNumber;
|
||||
info.DatumDerGenehmigung = new DateTime(2025, 6, 30);
|
||||
info.ArtDerGenehmigung = SchlüsselArtDerGenehmigung.HkpGenehmigungImEinzelfall;
|
||||
|
||||
if (infoParameter.Customer.ICD10DiagnosisCodes?.Any() is true)
|
||||
{
|
||||
foreach (var code in infoParameter.Customer.ICD10DiagnosisCodes)
|
||||
{
|
||||
info.DakotaInfoDiagnosen.Add(new InfoBlockDiagnosen
|
||||
{
|
||||
Diagnoseschlüssel = code,
|
||||
Diagnosetext = infoParameter.Customer.ICD10Diagnosis
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -256,6 +281,8 @@ namespace Dakota.Logic
|
||||
{
|
||||
if (leistungserbringergruppe.Substring(0, 2).Equals("99"))
|
||||
info.Abrechnungscode = "69";
|
||||
else if (leistungserbringergruppe.Substring(0, 2).Equals("30"))
|
||||
info.Abrechnungscode = "31";
|
||||
else
|
||||
info.Abrechnungscode = leistungserbringergruppe.Substring(0, 2);
|
||||
info.Tarifkennzeichen = leistungserbringergruppe.Substring(2, 5);
|
||||
@@ -272,6 +299,8 @@ namespace Dakota.Logic
|
||||
info.AnzahlMenge = infoParameter.InvoiceItem.UnitCount.Value;
|
||||
info.EinzelbetragAbrechnungsposition = infoParameter.InvoiceItem.AmountPerUnit.Value;
|
||||
info.DatumDerLeistungserbringung = infoParameter.InvoiceItem.ItemPeriodStart.Value;
|
||||
info.Uhrzeit = infoParameter.InvoiceItem.ServiceRecord?.Start;
|
||||
info.UhrzeitBis = infoParameter.InvoiceItem.ServiceRecord?.End;
|
||||
|
||||
info.BetragZuzahlung = 0;
|
||||
|
||||
|
||||
@@ -70,17 +70,18 @@ namespace Dakota.Logic
|
||||
IKKrankenkasse = search.Item3
|
||||
};
|
||||
|
||||
AddressDC grosskundenanschrift = null;
|
||||
foreach (var seg_ans in nachricht.SemgenteANS)
|
||||
{
|
||||
var address = GetAddress(seg_ans);
|
||||
|
||||
if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Grosskundenanschrift)
|
||||
{
|
||||
sum.Grosskundenanschrift = address;
|
||||
grosskundenanschrift = address;
|
||||
}
|
||||
else if(seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Postfachanschrift)
|
||||
{
|
||||
sum.Postfachanschrift = address;
|
||||
sum.PostfachGKanschrift = address;
|
||||
}
|
||||
else if(seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Hausanschrift)
|
||||
{
|
||||
@@ -94,6 +95,51 @@ namespace Dakota.Logic
|
||||
}
|
||||
}
|
||||
|
||||
if (sum.PostfachGKanschrift == null && grosskundenanschrift != null)
|
||||
sum.PostfachGKanschrift = grosskundenanschrift;
|
||||
|
||||
AddressDC hausanschriftPapierannahmestelle = null;
|
||||
AddressDC postfachanschriftPapierannahmestelle = null;
|
||||
AddressDC grosskundenanschriftPapierannahmestelle = null;
|
||||
|
||||
var papierIK = GetPapierIK(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen);
|
||||
if (papierIK is object && dict.ContainsKey(papierIK))
|
||||
{
|
||||
var papierNachricht = dict[papierIK];
|
||||
|
||||
foreach (var seg_ans in papierNachricht.SemgenteANS)
|
||||
{
|
||||
var address = GetAddress(seg_ans);
|
||||
|
||||
if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Grosskundenanschrift)
|
||||
{
|
||||
grosskundenanschriftPapierannahmestelle = address;
|
||||
}
|
||||
else if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Postfachanschrift)
|
||||
{
|
||||
postfachanschriftPapierannahmestelle = address;
|
||||
}
|
||||
else if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Hausanschrift)
|
||||
{
|
||||
hausanschriftPapierannahmestelle = address;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
if (hausanschriftPapierannahmestelle != null)
|
||||
sum.Papierannahmeanschrift = hausanschriftPapierannahmestelle;
|
||||
else if (postfachanschriftPapierannahmestelle != null)
|
||||
sum.Papierannahmeanschrift = postfachanschriftPapierannahmestelle;
|
||||
else if (grosskundenanschriftPapierannahmestelle != null)
|
||||
sum.Papierannahmeanschrift = grosskundenanschriftPapierannahmestelle;
|
||||
|
||||
if (sum.Papierannahmeanschrift != null)
|
||||
sum.Papierannahmeanschrift.AddressLine1 = clear(papierNachricht.SegmentIDK.Kurzbezeichnung);
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
@@ -169,6 +215,62 @@ namespace Dakota.Logic
|
||||
return new Tuple<string, string, string>(vkg.IKVerknüpfungspartners, kostentrager, ikkrankenkasse);
|
||||
}
|
||||
|
||||
private string GetPapierIK(Dictionary<string, NachrichtKTD> dict, string ikkrankenkasse, string abrechnungscode, string tarifkennzeichen, string kostentrager = null)
|
||||
{
|
||||
if (kostentrager is null)
|
||||
kostentrager = ikkrankenkasse;
|
||||
|
||||
var search = dict.SingleOrDefault(kv => kv.Key == kostentrager).Value;
|
||||
|
||||
if (search is null)
|
||||
return null;
|
||||
|
||||
var verweis = search.SegmentVKG.FirstOrDefault(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.Kostentrager);
|
||||
|
||||
// Hat Verweis auf weiteren Kostenträger gefunden
|
||||
if (verweis is object && verweis.IKVerknüpfungspartners != kostentrager)
|
||||
return GetPapierIK(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen, verweis.IKVerknüpfungspartners);
|
||||
|
||||
var papierannahmestellen = search.SegmentVKG
|
||||
.Where(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.PapierAnnahmestelle)
|
||||
.ToList();
|
||||
|
||||
if (papierannahmestellen is null || !papierannahmestellen.Any())
|
||||
return null;
|
||||
|
||||
if (papierannahmestellen.Count() == 1)
|
||||
return papierannahmestellen.First().IKVerknüpfungspartners;
|
||||
|
||||
// Abrechnungscode
|
||||
var filtered = papierannahmestellen
|
||||
.Where(x => x.Abrechnungscode == abrechnungscode)
|
||||
.ToList();
|
||||
|
||||
if (filtered.Count() == 1)
|
||||
return filtered.First().IKVerknüpfungspartners;
|
||||
|
||||
// Tarifkennzeichen
|
||||
var filtered_2 = filtered
|
||||
.Where(x => x.Tarifkennzeichen == tarifkennzeichen)
|
||||
.ToList();
|
||||
|
||||
if (filtered_2.Count() == 1)
|
||||
return filtered_2.First().IKVerknüpfungspartners;
|
||||
|
||||
var filter_list = filtered_2;
|
||||
|
||||
if (!filter_list.Any())
|
||||
filter_list = filtered;
|
||||
|
||||
if (!filter_list.Any())
|
||||
filter_list = papierannahmestellen;
|
||||
|
||||
if (filter_list.Count() == 1)
|
||||
return filter_list.First().IKVerknüpfungspartners;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private AddressDC GetAddress(SegmentKTDANS segment)
|
||||
{
|
||||
var address = new AddressDC();
|
||||
|
||||
@@ -14,5 +14,8 @@ namespace Dakota.Models.Schlüssels
|
||||
public SchlüsselArtDerGenehmigung(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselArtDerGenehmigung BereichSonstigeGenehmigungImEinzelfall => new SchlüsselArtDerGenehmigung("N1");
|
||||
|
||||
/// <summary>Häusliche Krankenpflege (SLLA: C) - Genehmigung im Einzelfall</summary>
|
||||
public static SchlüsselArtDerGenehmigung HkpGenehmigungImEinzelfall => new SchlüsselArtDerGenehmigung("C1");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,23 +80,25 @@ namespace BeWo.Data.Access
|
||||
return x.Count > 0 ? DAOFactory.GenericDAO.GetByID<Wohnheim>(x.First()) : null;
|
||||
}
|
||||
|
||||
public virtual IList<WohneinheitBelegung> FindWohneinheitBelegungForCustomer(long customerOid, DateTime datum)
|
||||
public virtual IList<WohneinheitBelegung> FindWohneinheitBelegungForCustomer(long customerOid, DateTime? datum)
|
||||
{
|
||||
var criteria = CreateCriteriaIsActive<WohneinheitBelegung>()
|
||||
.Add(Restrictions.Eq(WohneinheitBelegung.PropertyName_Customer, customerOid))
|
||||
.Add(
|
||||
.Add(Restrictions.Eq(WohneinheitBelegung.PropertyName_Customer, customerOid));
|
||||
if (datum.HasValue)
|
||||
{
|
||||
criteria.Add(
|
||||
Restrictions.Or(
|
||||
Restrictions.And(
|
||||
Restrictions.Le(WohneinheitBelegung.PropertyName_StartDate, datum.Date),
|
||||
Restrictions.Ge(WohneinheitBelegung.PropertyName_EndDate, datum.Date)
|
||||
Restrictions.Le(WohneinheitBelegung.PropertyName_StartDate, datum.Value.Date),
|
||||
Restrictions.Ge(WohneinheitBelegung.PropertyName_EndDate, datum.Value.Date)
|
||||
),
|
||||
Restrictions.And(
|
||||
Restrictions.Le(WohneinheitBelegung.PropertyName_StartDate, datum.Date),
|
||||
Restrictions.Le(WohneinheitBelegung.PropertyName_StartDate, datum.Value.Date),
|
||||
Restrictions.IsNull(WohneinheitBelegung.PropertyName_EndDate)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
return criteria.List<WohneinheitBelegung>();
|
||||
}
|
||||
|
||||
@@ -2808,7 +2810,17 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
|
||||
return criteria.List<TextModule>();
|
||||
}
|
||||
|
||||
public IEnumerable<AiPromptbausteinFolder> GetOwnActiveRootAiPromptbausteineFolders(AiActionType? aiActionType = null)
|
||||
public void GetOwnActiveRootTree(AiActionType aiActionType,
|
||||
out IEnumerable<AiPromptbausteinFolder> folders,
|
||||
out IEnumerable<AiPromptbausteinPrompt> prompts,
|
||||
out IEnumerable<AiPromptbausteinRoutine> routines)
|
||||
{
|
||||
folders = GetOwnActiveRootAiPromptbausteineFolders(aiActionType);
|
||||
prompts = GetOwnActiveRootAiPromptbausteinePrompts(aiActionType);
|
||||
routines = GetOwnActiveRootAiPromptbausteineRoutines(aiActionType);
|
||||
}
|
||||
|
||||
private IEnumerable<AiPromptbausteinFolder> GetOwnActiveRootAiPromptbausteineFolders(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
@@ -2820,7 +2832,7 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
|
||||
return criteria.List<AiPromptbausteinFolder>();
|
||||
}
|
||||
|
||||
public IEnumerable<AiPromptbausteinPrompt> GetOwnActiveRootAiPromptbausteinePrompts(AiActionType? aiActionType = null)
|
||||
private IEnumerable<AiPromptbausteinPrompt> GetOwnActiveRootAiPromptbausteinePrompts(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
@@ -2839,7 +2851,7 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
|
||||
return criteria.List<AiPromptbausteinPrompt>();
|
||||
}
|
||||
|
||||
public IEnumerable<AiPromptbausteinRoutine> GetOwnActiveRootAiPromptbausteineRoutines(AiActionType? aiActionType = null)
|
||||
private IEnumerable<AiPromptbausteinRoutine> GetOwnActiveRootAiPromptbausteineRoutines(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
@@ -2858,19 +2870,67 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
|
||||
return criteria.List<AiPromptbausteinRoutine>();
|
||||
}
|
||||
|
||||
public IEnumerable<AiPromptbausteinFolder> GetPublicActiveRootAiPromptbausteineFolders(AiActionType? aiActionType = null)
|
||||
public void GetPublicActiveRootTree(AiActionType aiActionType,
|
||||
out IEnumerable<AiPromptbausteinFolder> folders,
|
||||
out IEnumerable<AiPromptbausteinPrompt> prompts,
|
||||
out IEnumerable<AiPromptbausteinRoutine> routines)
|
||||
{
|
||||
folders = GetPublicActiveRootAiPromptbausteineFolders(aiActionType);
|
||||
prompts = GetPublicActiveRootAiPromptbausteinePrompts(aiActionType);
|
||||
routines = GetPublicActiveRootAiPromptbausteineRoutines(aiActionType);
|
||||
}
|
||||
|
||||
private IEnumerable<AiPromptbausteinFolder> GetPublicActiveRootAiPromptbausteineFolders(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
|
||||
var criteria = GetAiPromptbausteineFolderRoot(aiActionType);
|
||||
|
||||
criteria.Add(Restrictions.Eq(nameof(AiPromptbausteinFolder.IsPublic), true));
|
||||
criteria.Add(Restrictions.Not(Restrictions.Eq(nameof(AiPromptbausteinFolder.CreatorOid), emp_oid)));
|
||||
|
||||
return criteria.List<AiPromptbausteinFolder>();
|
||||
}
|
||||
|
||||
private IEnumerable<AiPromptbausteinPrompt> GetPublicActiveRootAiPromptbausteinePrompts(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
|
||||
var criteria = CreateCriteriaIsActive<AiPromptbausteinPrompt>();
|
||||
|
||||
criteria.Add(Restrictions.IsNull(nameof(AiPromptbausteinPrompt.ParentFolderOid)));
|
||||
|
||||
if (aiActionType is AiActionType actionType)
|
||||
{
|
||||
criteria.Add(Restrictions.Eq(nameof(AiPromptbausteinPrompt.ActionType), actionType));
|
||||
}
|
||||
|
||||
criteria.Add(Restrictions.Not(Restrictions.Eq(nameof(AiPromptbausteinPrompt.CreatorOid), emp_oid)));
|
||||
criteria.Add(Restrictions.Eq(nameof(AiPromptbausteinPrompt.IsOwnsoftPrompt), false));
|
||||
|
||||
return criteria.List<AiPromptbausteinPrompt>();
|
||||
}
|
||||
|
||||
private IEnumerable<AiPromptbausteinRoutine> GetPublicActiveRootAiPromptbausteineRoutines(AiActionType? aiActionType = null)
|
||||
{
|
||||
var emp = UserRightHelper.GetLoggedInEmployee();
|
||||
var emp_oid = emp.Oid;
|
||||
|
||||
var criteria = CreateCriteriaIsActive<AiPromptbausteinRoutine>();
|
||||
|
||||
criteria.Add(Restrictions.IsNull(nameof(AiPromptbausteinRoutine.ParentFolderOid)));
|
||||
|
||||
if (aiActionType is AiActionType actionType)
|
||||
{
|
||||
criteria.Add(Restrictions.Eq(nameof(AiPromptbausteinRoutine.ActionType), actionType));
|
||||
}
|
||||
|
||||
criteria.Add(Restrictions.Not(Restrictions.Eq(nameof(AiPromptbausteinRoutine.CreatorOid), emp_oid)));
|
||||
|
||||
return criteria.List<AiPromptbausteinRoutine>();
|
||||
}
|
||||
|
||||
private ICriteria GetAiPromptbausteineFolderRoot(AiActionType? aiActionType = null)
|
||||
{
|
||||
var criteria = CreateCriteriaIsActive<AiPromptbausteinFolder>();
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using System.Diagnostics;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
[DebuggerDisplay("{CostBearer.Organisation.Name} - {SupportConcept.Customer.Person.FirstName} {SupportConcept.Customer.Person.LastName}")]
|
||||
public class CostBearer2SupportConcept : BeWoEntityBase
|
||||
{
|
||||
// public static string PropertyName_HourlyRate = "HourlyRate";
|
||||
|
||||
@@ -887,7 +887,8 @@ namespace BeWo.Data.Entities
|
||||
public virtual string Verhalten { get; set; }
|
||||
public virtual string Betreuungsbedarf { get; set; }
|
||||
public virtual string BemerkungenSbd { get; set; }
|
||||
public virtual string TeamSimpleString
|
||||
public virtual string BGNummer { get; set; }
|
||||
public virtual string TeamSimpleString
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
@@ -23,12 +23,13 @@ namespace BeWo.Data.Entities
|
||||
public virtual string AktenzeichenGericht { get; set; }
|
||||
public virtual string EigenesAktenzeichen { get; set; }
|
||||
public virtual DateTime? Auftragseingang { get; set; }
|
||||
public virtual ValueListEntry Auftragsherkunft { get; set; }
|
||||
public virtual ValueListEntry Vermittlungsgrundlage { get; set; }
|
||||
public virtual CustomerVgaAuftragsherkunft? Auftragsherkunft { get; set; }
|
||||
public virtual CustomerVgaVermittlungsGrundlage? Vermittlungsgrundlage { get; set; }
|
||||
public virtual decimal? Tagessatze { get; set; }
|
||||
public virtual decimal? Tagessatzhohe { get; set; }
|
||||
public virtual decimal? HoheDerGeldstrafe { get; set; }
|
||||
public virtual decimal? ZuLeistendeArbeitsstunden { get; set; }
|
||||
public virtual decimal? Gerichtskosten { get; set; }
|
||||
public virtual decimal? ZuLeistendeArbeitsstunden { get; set; }
|
||||
public virtual string Hinweis { get; set; }
|
||||
public virtual DateTime? Termin { get; set; }
|
||||
public virtual DateTime? Frist { get; set; }
|
||||
@@ -36,11 +37,13 @@ namespace BeWo.Data.Entities
|
||||
public virtual string Bewaehrungshelfer { get; set; }
|
||||
public virtual CustomerVermittlungBearbeitungsstatus? CustomerVermittlungBearbeitungsstatus { get; set; }
|
||||
public virtual DateTime? Auftragsruckgabe { get; set; }
|
||||
public virtual ValueListEntry Verlauf { get; set; }
|
||||
public virtual CustomerVgaVerlauf? Verlauf { get; set; }
|
||||
public virtual decimal? AbgeleisteteStunden { get; set; }
|
||||
public virtual decimal? ErsparteHafttage { get; set; }
|
||||
public virtual decimal? GeleisteteRatenzahlung { get; set; }
|
||||
public virtual string Bemerkung { get; set; }
|
||||
public virtual decimal? AnzahlRaten { get; set; }
|
||||
public virtual decimal? RatenHoehe { get; set; }
|
||||
public virtual string Bemerkung { get; set; }
|
||||
public virtual decimal? GeleisteteEinmalzahlung { get; set; }
|
||||
|
||||
public virtual bool GrundArbeitsunfahig { get; set; }
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<property name="Verhalten" type="String" />
|
||||
<property name="Betreuungsbedarf" type="String" />
|
||||
<property name="BemerkungenSbd" type="String" />
|
||||
|
||||
<property name="BGNummer" type="String" />
|
||||
<bag name="MerkzeichenListe" table="merkzeichen2customer" generic="true" cascade="all" batch-size="250" lazy="false">
|
||||
<key column="CustomerOid" />
|
||||
<element column="Merkzeichen" type="BS.Shared.Merkzeichen, BS.Shared" />
|
||||
|
||||
@@ -19,11 +19,12 @@
|
||||
<property name="AktenzeichenGericht"/>
|
||||
<property name="EigenesAktenzeichen"/>
|
||||
<property name="Auftragseingang"/>
|
||||
<many-to-one name="Auftragsherkunft" column="Auftragsherkunft" class="BeWo.Data.Entities.ValueListEntry, BeWo.Data" cascade="none" />
|
||||
<many-to-one name="Vermittlungsgrundlage" column="Vermittlungsgrundlage" class="BeWo.Data.Entities.ValueListEntry, BeWo.Data" cascade="none" />
|
||||
<property name="Auftragsherkunft" column="Auftragsherkunft" type="BS.Shared.DataContracts.CustomerVgaAuftragsherkunft, BS.Shared" />
|
||||
<property name="Vermittlungsgrundlage" column="Vermittlungsgrundlage" type="BS.Shared.DataContracts.CustomerVgaVermittlungsGrundlage, BS.Shared" />
|
||||
<property name="Tagessatze"/>
|
||||
<property name="Tagessatzhohe"/>
|
||||
<property name="HoheDerGeldstrafe"/>
|
||||
<property name="Gerichtskosten"/>
|
||||
<property name="ZuLeistendeArbeitsstunden"/>
|
||||
<property name="Hinweis"/>
|
||||
<property name="Termin"/>
|
||||
@@ -32,10 +33,12 @@
|
||||
<property name="Bewaehrungshelfer"/>
|
||||
<property name="CustomerVermittlungBearbeitungsstatus" type="BS.Shared.DataContracts.CustomerVermittlungBearbeitungsstatus, BS.Shared" />
|
||||
<property name="Auftragsruckgabe"/>
|
||||
<many-to-one name="Verlauf" column="Verlauf" class="BeWo.Data.Entities.ValueListEntry, BeWo.Data" cascade="none" />
|
||||
<property name="Verlauf" column="Verlauf" type="BS.Shared.DataContracts.CustomerVgaVerlauf, BS.Shared" />
|
||||
<property name="AbgeleisteteStunden"/>
|
||||
<property name="ErsparteHafttage"/>
|
||||
<property name="GeleisteteRatenzahlung"/>
|
||||
<property name="AnzahlRaten"/>
|
||||
<property name="RatenHoehe"/>
|
||||
<property name="GeleisteteRatenzahlung"/>
|
||||
<property name="Bemerkung"/>
|
||||
<property name="GeleisteteEinmalzahlung"/>
|
||||
<property name="GrundArbeitsunfahig"/>
|
||||
|
||||
@@ -191,7 +191,9 @@ namespace BeWo.Data.Security
|
||||
return "3.29";
|
||||
if (isRightVersion330(r))
|
||||
return "3.30";
|
||||
return BASE_VERSION;
|
||||
if (isRightVersion331(r))
|
||||
return "3.31";
|
||||
return BASE_VERSION;
|
||||
}
|
||||
|
||||
private static bool isRightVersion322(UserRightType r)
|
||||
@@ -240,5 +242,15 @@ namespace BeWo.Data.Security
|
||||
|| r == UserRightType.AiVoiceView;
|
||||
}
|
||||
|
||||
}
|
||||
private static bool isRightVersion331(UserRightType r)
|
||||
{
|
||||
return r == UserRightType.VorlagenEditAll
|
||||
|| r == UserRightType.VorlagenEditOwnTeams
|
||||
|| r == UserRightType.VorlagenViewAll
|
||||
|| r == UserRightType.VorlagenViewOwnTeams
|
||||
|| r == UserRightType.Customer_CreateMedication
|
||||
|| r == UserRightType.Customer_DeleteMedication;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,8 +212,8 @@ namespace Host
|
||||
response.IKKrankenkasse = resolved.IKKrankenkasse;
|
||||
response.BezDatenannahmestelle = resolved.BezDatenannahmestelle;
|
||||
response.Hausanschrift = resolved.Hausanschrift;
|
||||
response.Postfachanschrift = resolved.Postfachanschrift;
|
||||
response.Grosskundenanschrift = resolved.Grosskundenanschrift;
|
||||
response.PostfachGKanschrift = resolved.PostfachGKanschrift;
|
||||
response.Papierannahmeanschrift = resolved.Papierannahmeanschrift;
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
|
||||
@@ -13,4 +13,5 @@
|
||||
<add key="OpenrouteServiceApiKey" value="" />
|
||||
<add key="GoogleDistanceMatrixApiKey" value="" />
|
||||
<add key="GkvSecretKey" value="" />
|
||||
<add key="AppStatusApiKey" value="" />
|
||||
</appSettings>
|
||||
@@ -2,7 +2,7 @@ INSERT INTO `.executedscripts`
|
||||
VALUES ('Changes_2026-04-20 AiPromptroutine 2', CURDATE());
|
||||
|
||||
ALTER TABLE `aipromptroutine`
|
||||
RENAME TO `aipromptbauteinroutine` ;
|
||||
RENAME TO `aipromptbausteinroutine` ;
|
||||
|
||||
ALTER TABLE `aipromptroutinestep`
|
||||
RENAME TO `aipromptbausteinroutinestep` ;
|
||||
@@ -0,0 +1,13 @@
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN Gerichtskosten decimal(18,10) NULL DEFAULT NULL;
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN AnzahlRaten decimal(18,10) NULL DEFAULT NULL;
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN RatenHoehe decimal(18,10) NULL DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `Customer` ADD COLUMN BGNummer VARCHAR(256) NULL DEFAULT NULL;
|
||||
|
||||
|
||||
ALTER TABLE `customervermittlungarbeit`
|
||||
DROP FOREIGN KEY `FK_CUSTOMERVERMITTLUNGARBEIT_VERMITTLUNGSGRUNDLAGE`,
|
||||
DROP FOREIGN KEY `FK_CUSTOMERVERMITTLUNGARBEIT_AUFTRAGSHERKUNFT`;
|
||||
ALTER TABLE `customervermittlungarbeit`
|
||||
DROP INDEX `FK_CUSTOMERVERMITTLUNGARBEIT_VERMITTLUNGSGRUNDLAGE` ,
|
||||
DROP INDEX `FK_CUSTOMERVERMITTLUNGARBEIT_AUFTRAGSHERKUNFT` ;
|
||||
10
Model/Changes_2026-06-18 AiModel default updaten.txt
Normal file
10
Model/Changes_2026-06-18 AiModel default updaten.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
INSERT INTO `.executedscripts`
|
||||
VALUES ('Changes_2026-06-18 AiModel default updaten', CURDATE());
|
||||
|
||||
UPDATE `aiconfig` SET `SelectedModelOid` = (
|
||||
SELECT Oid
|
||||
FROM aimodel
|
||||
WHERE ModelName = "gemma3_12b_max_context:latest"
|
||||
AND ModelSource = 2
|
||||
AND IsActive=1)
|
||||
WHERE (`Oid` = '1');
|
||||
@@ -1356,18 +1356,6 @@ PRIMARY KEY (`Oid`),
|
||||
CONSTRAINT `FK_CUSTOMERVERMITTLUNGARBEIT_CUSTOMER` FOREIGN KEY (`CustomerOid`) REFERENCES `customer` (`Oid`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
|
||||
|
||||
ALTER TABLE `customervermittlungarbeit`
|
||||
ADD CONSTRAINT `FK_CUSTOMERVERMITTLUNGARBEIT_AUFTRAGSHERKUNFT`
|
||||
FOREIGN KEY (`Auftragsherkunft`)
|
||||
REFERENCES `valuelistentry` (`Oid`)
|
||||
ON DELETE SET NULL
|
||||
ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `FK_CUSTOMERVERMITTLUNGARBEIT_VERMITTLUNGSGRUNDLAGE`
|
||||
FOREIGN KEY (`Vermittlungsgrundlage`)
|
||||
REFERENCES `valuelistentry` (`Oid`)
|
||||
ON DELETE SET NULL
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
|
||||
ALTER TABLE `organisation`
|
||||
ADD COLUMN `BezDatenannahmestelle` VARCHAR(4096) NULL DEFAULT NULL AFTER `IKDatenannahmestelle`;
|
||||
@@ -2037,4 +2025,121 @@ CREATE TABLE `aiusersetting` (
|
||||
`AutoStartRecording` tinyint DEFAULT NULL,
|
||||
PRIMARY KEY (`Oid`),
|
||||
CONSTRAINT `FK_AIUSERSETTINGUSEROID_APPLICATIONUSER` FOREIGN KEY (`ApplicationUserOid`) REFERENCES `applicationuser` (`Oid`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
||||
|
||||
CREATE TABLE `aipromptbausteinroutinestep` (
|
||||
`Oid` bigint NOT NULL AUTO_INCREMENT,
|
||||
`InsTs` datetime DEFAULT NULL,
|
||||
`InsUser` varchar(256) DEFAULT NULL,
|
||||
`Notice` varchar(1024) DEFAULT NULL,
|
||||
`Tid` int DEFAULT NULL,
|
||||
`UdpUser` varchar(256) DEFAULT NULL,
|
||||
`Version` bigint DEFAULT NULL,
|
||||
`IsActive` tinyint DEFAULT NULL,
|
||||
`SystemEntryID` int DEFAULT NULL,
|
||||
`Position` int,
|
||||
`PromptReferenceOid` bigint DEFAULT NULL,
|
||||
`PromptReferenceVersion` bigint,
|
||||
PRIMARY KEY (`Oid`),
|
||||
CONSTRAINT `FK_AIPROMPTROUTINESTEP_PROMPT` FOREIGN KEY (`PromptReferenceOid`) REFERENCES `aipromptbausteinprompt` (`Oid`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
|
||||
|
||||
CREATE TABLE `aipromptbausteinroutine` (
|
||||
`Oid` bigint NOT NULL AUTO_INCREMENT,
|
||||
`InsTs` datetime DEFAULT NULL,
|
||||
`InsUser` varchar(256) DEFAULT NULL,
|
||||
`Notice` varchar(1024) DEFAULT NULL,
|
||||
`Tid` int DEFAULT NULL,
|
||||
`UdpUser` varchar(256) DEFAULT NULL,
|
||||
`Version` bigint DEFAULT NULL,
|
||||
`IsActive` tinyint DEFAULT NULL,
|
||||
`SystemEntryID` int DEFAULT NULL,
|
||||
`Title` varchar(255),
|
||||
`Description` varchar(255),
|
||||
`ParentFolderOid` bigint DEFAULT NULL,
|
||||
`CreatorOid` bigint,
|
||||
`IsPublic` tinyint,
|
||||
`Position` int,
|
||||
`IsFavorite` tinyint,
|
||||
`ActionType` int,
|
||||
PRIMARY KEY (`Oid`),
|
||||
CONSTRAINT `FK_AIPROMPTROUTINE_EMPLOYEE` FOREIGN KEY (`CreatorOid`) REFERENCES `employee` (`Oid`),
|
||||
CONSTRAINT `FK_AIPROMPTROUTINE_PARENT` FOREIGN KEY (`ParentFolderOid`) REFERENCES `aipromptbausteinfolder` (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
|
||||
|
||||
|
||||
CREATE TABLE `teamfolderright` (
|
||||
`Oid` bigint NOT NULL AUTO_INCREMENT,
|
||||
`InsTs` datetime DEFAULT NULL,
|
||||
`InsUser` varchar(256) DEFAULT NULL,
|
||||
`Notice` varchar(1024) DEFAULT NULL,
|
||||
`Tid` int DEFAULT NULL,
|
||||
`UdpUser` varchar(256) DEFAULT NULL,
|
||||
`UpdTs` datetime DEFAULT NULL,
|
||||
`Version` bigint DEFAULT NULL,
|
||||
`IsActive` tinyint DEFAULT NULL,
|
||||
`SystemEntryID` int DEFAULT NULL,
|
||||
`TeamOid` bigint DEFAULT NULL,
|
||||
`BeWoFolderOid` bigint DEFAULT NULL,
|
||||
`AllowEdit` bigint DEFAULT NULL,
|
||||
`AllowView` bigint DEFAULT NULL,
|
||||
PRIMARY KEY (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
|
||||
|
||||
|
||||
ALTER TABLE `aiconversationmessage`
|
||||
CHANGE COLUMN `Message` `Message` LONGTEXT NULL DEFAULT NULL ;
|
||||
|
||||
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN Gerichtskosten decimal(18,10) NULL DEFAULT NULL;
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN AnzahlRaten decimal(18,10) NULL DEFAULT NULL;
|
||||
ALTER TABLE `CustomerVermittlungArbeit` ADD COLUMN RatenHoehe decimal(18,10) NULL DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `Customer` ADD COLUMN BGNummer VARCHAR(256) NULL DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `customervermittlungarbeit`
|
||||
DROP FOREIGN KEY `FK_CUSTOMERVERMITTLUNGARBEIT_VERMITTLUNGSGRUNDLAGE`,
|
||||
DROP FOREIGN KEY `FK_CUSTOMERVERMITTLUNGARBEIT_AUFTRAGSHERKUNFT`;
|
||||
ALTER TABLE `customervermittlungarbeit`
|
||||
DROP INDEX `FK_CUSTOMERVERMITTLUNGARBEIT_VERMITTLUNGSGRUNDLAGE` ,
|
||||
DROP INDEX `FK_CUSTOMERVERMITTLUNGARBEIT_AUFTRAGSHERKUNFT` ;
|
||||
|
||||
|
||||
ALTER TABLE `aipromptbausteinroutine`
|
||||
ADD COLUMN `RoutineType` INT NULL DEFAULT NULL AFTER `ActionType`;
|
||||
|
||||
UPDATE `aipromptbausteinprompt` SET `IsOwnsoftPrompt` = '0' WHERE (`PromptId` IS NULL) AND OID > 0;
|
||||
|
||||
UPDATE `aipromptbausteinprompt` SET `IsOwnsoftPrompt` = '1' WHERE (`PromptId` IS NOT NULL) AND OID > 0;
|
||||
|
||||
|
||||
ALTER TABLE `aiconversation`
|
||||
CHANGE COLUMN `UIContext` `ActionType` INT NULL DEFAULT NULL ;
|
||||
|
||||
UPDATE `aiconversation`
|
||||
SET ActionType = 1 WHERE OID > 0;
|
||||
|
||||
|
||||
CREATE TABLE `aipromptbausteinroutine2empfavorite` (
|
||||
`AiPromptbausteinRoutineOid` bigint NOT NULL,
|
||||
`EmployeeOid` bigint NOT NULL,
|
||||
PRIMARY KEY (`AiPromptbausteinRoutineOid`,`EmployeeOid`),
|
||||
CONSTRAINT `FK_AIPROMPTBAUSTEINROUTINE2EMPFAV_AIPROMPT` FOREIGN KEY (`AiPromptbausteinRoutineOid`) REFERENCES `aipromptbausteinroutine` (`Oid`),
|
||||
CONSTRAINT `FK_AIPROMPTBAUSTEINROUTINE2EMPFAV_APPUSER` FOREIGN KEY (`EmployeeOid`) REFERENCES `employee` (`Oid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
ALTER TABLE `aipromptbausteinroutinestep`
|
||||
ADD COLUMN `RoutineOid` BIGINT NULL AFTER `PromptReferenceVersion`,
|
||||
ADD INDEX `FK_AIPROMPTROUTINESTEP_ROUTINE_idx` (`RoutineOid` ASC);
|
||||
|
||||
|
||||
ALTER TABLE `aipromptbausteinroutinestep`
|
||||
ADD CONSTRAINT `FK_AIPROMPTROUTINESTEP_ROUTINE`
|
||||
FOREIGN KEY (`RoutineOid`)
|
||||
REFERENCES `aipromptbausteinroutine` (`Oid`)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE `aipromptbausteinroutine`
|
||||
DROP COLUMN `IsFavorite`;
|
||||
@@ -0,0 +1,91 @@
|
||||
SELECT
|
||||
p.LastName as 'Nachname',
|
||||
p.Firstname as 'Vorname',
|
||||
c2s.ApprovedStartDate as 'Bewilligt von',
|
||||
c2s.ApprovedEndDate as 'Bewilligt bis',
|
||||
scat.Name as 'Kategorie',
|
||||
Date_Format(sr.StartDate, '%d.%m.%Y') as 'Datum',
|
||||
IF (Date_Format(sr.StartDate, '%s') <> '00', '', Date_Format(sr.StartDate, '%H:%i')) as 'von',
|
||||
IF (Date_Format(sr.StartDate, '%s') <> '00', '', Date_Format(Date_Add(sr.StartDate, INTERVAL sr.Roundedduration MINUTE), '%H:%i')) as 'bis',
|
||||
Round(sr.Roundedduration, 0) as 'Minuten',
|
||||
sr.InsUser as 'Angelegt von',
|
||||
DATE_FORMAT(sr.InsTs, '%d.%m.%Y %H:%i') as 'Angelegt am',
|
||||
(select CONCAT(emp1p.`FirstName`, ' ', emp1p.`LastName`) from employee emp1 join `person` emp1p on emp1p.`Oid` = emp1.`PersonOid` where emp1.`Oid` in (select employeeoid from `employee2customer` e2c1 join `valuelistentry2object` vl2o on e2c1.`Oid` = vl2o.`ObjectOid` join `valuelistentry` vle on vl2o.`ValueListEntryOid` = vle.`Oid` where e2c1.`CustomerOid` = c.`Oid` and vle.`SystemEntryID` = 3) LIMIT 1) as 'Hauptbetreuung',
|
||||
(select t.`Name` from team t where t.`Oid` in (select teamoid from `team2customer` t2c where t2c.`CustomerOid` = c.`Oid`) LIMIT 1) as 'Team'
|
||||
FROM servicerecord sr
|
||||
join costbearer2supportconcept c2s on sr.costbearer2supportconceptoid = c2s.oid
|
||||
join supportconcept sc on c2s.supportconceptoid = sc.oid
|
||||
join customer c on sc.customeroid = c.oid
|
||||
join person p on c.personoid = p.oid
|
||||
join servicedescription sd on sd.oid = sr.servicedescriptionoid
|
||||
join servicecategory scat on scat.oid = sd.servicecategoryoid
|
||||
LEFT JOIN (
|
||||
-- direkt unterschriebene SRs
|
||||
SELECT crs2s.servicerecordoid as signed_oid
|
||||
FROM confirmationreceiptsignature2servicerecord crs2s
|
||||
JOIN confirmationreceiptsignature crs ON crs2s.confirmationreceiptsignatureoid = crs.oid
|
||||
WHERE crs.employeeoid IS NULL AND crs.customeroid IS NOT NULL
|
||||
UNION
|
||||
-- SRs, deren Gruppen-Partner unterschrieben ist
|
||||
SELECT sr_other.oid as signed_oid
|
||||
FROM servicerecord sr_other
|
||||
JOIN servicerecord sr_signed ON sr_signed.GroupOid = sr_other.GroupOid
|
||||
AND sr_other.GroupOid IS NOT NULL
|
||||
JOIN confirmationreceiptsignature2servicerecord crs2s ON sr_signed.oid = crs2s.servicerecordoid
|
||||
JOIN confirmationreceiptsignature crs ON crs2s.confirmationreceiptsignatureoid = crs.oid
|
||||
WHERE crs.employeeoid IS NULL AND crs.customeroid IS NOT NULL
|
||||
) signed_records ON signed_records.signed_oid = sr.oid
|
||||
WHERE signed_records.signed_oid IS NULL
|
||||
AND scat.billable = true
|
||||
AND sr.startdate >= ':Von' AND sr.startdate < ':bis'
|
||||
ORDER BY p.Lastname, sr.startdate
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`SQL`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`) VALUES (4712,24,0,'Einträge ohne Monatsunterschrift des Klienten','SELECT
|
||||
p.LastName as 'Nachname',
|
||||
p.Firstname as 'Vorname',
|
||||
c2s.ApprovedStartDate as 'Bewilligt von',
|
||||
c2s.ApprovedEndDate as 'Bewilligt bis',
|
||||
scat.Name as 'Kategorie',
|
||||
Date_Format(sr.StartDate, '%d.%m.%Y') as 'Datum',
|
||||
IF (Date_Format(sr.StartDate, '%s') <> '00', '', Date_Format(sr.StartDate, '%H:%i')) as 'von',
|
||||
IF (Date_Format(sr.StartDate, '%s') <> '00', '', Date_Format(Date_Add(sr.StartDate, INTERVAL sr.Roundedduration MINUTE), '%H:%i')) as 'bis',
|
||||
Round(sr.Roundedduration, 0) as 'Minuten',
|
||||
sr.InsUser as 'Angelegt von',
|
||||
DATE_FORMAT(sr.InsTs, '%d.%m.%Y %H:%i') as 'Angelegt am',
|
||||
(select CONCAT(emp1p.`FirstName`, ' ', emp1p.`LastName`) from employee emp1 join `person` emp1p on emp1p.`Oid` = emp1.`PersonOid` where emp1.`Oid` in (select employeeoid from `employee2customer` e2c1 join `valuelistentry2object` vl2o on e2c1.`Oid` = vl2o.`ObjectOid` join `valuelistentry` vle on vl2o.`ValueListEntryOid` = vle.`Oid` where e2c1.`CustomerOid` = c.`Oid` and vle.`SystemEntryID` = 3) LIMIT 1) as 'Hauptbetreuung',
|
||||
(select t.`Name` from team t where t.`Oid` in (select teamoid from `team2customer` t2c where t2c.`CustomerOid` = c.`Oid`) LIMIT 1) as 'Team'
|
||||
FROM servicerecord sr
|
||||
join costbearer2supportconcept c2s on sr.costbearer2supportconceptoid = c2s.oid
|
||||
join supportconcept sc on c2s.supportconceptoid = sc.oid
|
||||
join customer c on sc.customeroid = c.oid
|
||||
join person p on c.personoid = p.oid
|
||||
join servicedescription sd on sd.oid = sr.servicedescriptionoid
|
||||
join servicecategory scat on scat.oid = sd.servicecategoryoid
|
||||
LEFT JOIN (
|
||||
-- direkt unterschriebene SRs
|
||||
SELECT crs2s.servicerecordoid as signed_oid
|
||||
FROM confirmationreceiptsignature2servicerecord crs2s
|
||||
JOIN confirmationreceiptsignature crs ON crs2s.confirmationreceiptsignatureoid = crs.oid
|
||||
WHERE crs.employeeoid IS NULL AND crs.customeroid IS NOT NULL
|
||||
UNION
|
||||
-- SRs, deren Gruppen-Partner unterschrieben ist
|
||||
SELECT sr_other.oid as signed_oid
|
||||
FROM servicerecord sr_other
|
||||
JOIN servicerecord sr_signed ON sr_signed.GroupOid = sr_other.GroupOid
|
||||
AND sr_other.GroupOid IS NOT NULL
|
||||
JOIN confirmationreceiptsignature2servicerecord crs2s ON sr_signed.oid = crs2s.servicerecordoid
|
||||
JOIN confirmationreceiptsignature crs ON crs2s.confirmationreceiptsignatureoid = crs.oid
|
||||
WHERE crs.employeeoid IS NULL AND crs.customeroid IS NOT NULL
|
||||
) signed_records ON signed_records.signed_oid = sr.oid
|
||||
WHERE signed_records.signed_oid IS NULL
|
||||
AND scat.billable = true
|
||||
AND sr.startdate >= ':Von' AND sr.startdate < ':bis'
|
||||
ORDER BY p.Lastname, sr.startdate',NULL,NULL,NULL,NULL,1,1,NULL,'1',NULL,NULL,NULL);
|
||||
INSERT INTO `parameter` (`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`DefaultValue`) VALUES (4712,25,'Von_bis',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'aktueller Monat');
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user