Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts: # Service/Invoicing/SettlementInvoiceCreation.cs # Shared/Shared.csproj
This commit is contained in:
@@ -962,7 +962,6 @@
|
||||
<DependentUpon>BSLogoControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Converter\AnonymizationRight2VisibilityConverter.cs" />
|
||||
<Compile Include="Converter\AppSettingsConverter.cs" />
|
||||
<Compile Include="Converter\BooleanOrVisibilityMultiConverter.cs" />
|
||||
<Compile Include="Converter\BooleanAndVisibilityMultiConverter.cs" />
|
||||
<Compile Include="Converter\BoolNullCheckConverter.cs" />
|
||||
@@ -994,7 +993,8 @@
|
||||
<Compile Include="Converter\Rights2DefaultBooleanConverter.cs" />
|
||||
<Compile Include="Converter\StringLengthVisibilityConverter.cs" />
|
||||
<Compile Include="Converter\StringLengthVisibilityMultiConverter.cs" />
|
||||
<Compile Include="Converter\UserRightType2BoolConverter.cs" />
|
||||
<Compile Include="Converter\TooltipTextConverter.cs" />
|
||||
<Compile Include="Converter\UserPermission2BoolConverter.cs" />
|
||||
<Compile Include="Converter\ValueConverterGroup.cs" />
|
||||
<Compile Include="Core\AutoLockUI.cs" />
|
||||
<Compile Include="Core\BeWoUtils.cs" />
|
||||
@@ -1180,6 +1180,7 @@
|
||||
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
|
||||
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
|
||||
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
|
||||
<Compile Include="ViewModel\BaseVM.cs" />
|
||||
<Compile Include="ViewModel\CustomerVermittlungArbeitVM.cs" />
|
||||
<Compile Include="ViewModel\ListViewModel\AbstractListVM.cs" />
|
||||
<Compile Include="ViewModel\ListViewModel\CustomerVermittlungArbeitListVM.cs" />
|
||||
@@ -2800,7 +2801,7 @@
|
||||
<Name>Controls</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
|
||||
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
|
||||
<Name>Shared</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
||||
@@ -73,15 +73,6 @@
|
||||
<conv:BoolEnabledToTabitemBackgroundConverter />
|
||||
</conv:ValueConverterGroup>
|
||||
<conv:BoolToParameterReturnConverter x:Key="IsNewToTooltip" />
|
||||
<conv:UserRightType2BoolConverter x:Key="UserRightType2Enabled" />
|
||||
<conv:ValueConverterGroup x:Key="UserRightType2NotEnabled">
|
||||
<conv:UserRightType2BoolConverter />
|
||||
<conv:BoolReverseConverter />
|
||||
</conv:ValueConverterGroup>
|
||||
<conv:ValueConverterGroup x:Key="UserRightType2Visible">
|
||||
<conv:UserRightType2BoolConverter />
|
||||
<conv:BoolVisibilityConverter />
|
||||
</conv:ValueConverterGroup>
|
||||
<conv:IndividualGoalMassnahmeUncheckPreventConverter x:Key="IndividualGoalMassnahmeUncheckPreventConverter" />
|
||||
<conv:Rights2DefaultBooleanConverter x:Key="Rights2DefaultBooleanConverter" />
|
||||
<conv:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter" />
|
||||
@@ -90,9 +81,15 @@
|
||||
<conv:GkvState2StringConverter x:Key="GkvState2StringConverter" />
|
||||
<conv:RadioBoolToIntConverter x:Key="RadioBoolToIntConverter" />
|
||||
<conv:EnumTranslationConverter x:Key="EnumTranslationConverter" />
|
||||
<conv:AppSettingsConverter x:Key="AppSettingsConverter" />
|
||||
<conv:ValueConverterGroup x:Key="AppSettings2Visible">
|
||||
<conv:AppSettingsConverter />
|
||||
<conv:TooltipTextConverter x:Key="TooltipTextConverter" />
|
||||
|
||||
<conv:UserPermission2BoolConverter x:Key="UserPermission2BoolConverter" />
|
||||
<conv:ValueConverterGroup x:Key="UserPermission2ReverseBoolConverter">
|
||||
<conv:UserPermission2BoolConverter />
|
||||
<conv:BoolReverseConverter />
|
||||
</conv:ValueConverterGroup>
|
||||
<conv:ValueConverterGroup x:Key="UserPermission2VisibleConverter">
|
||||
<conv:UserPermission2BoolConverter />
|
||||
<conv:BoolVisibilityCollapsedConverter />
|
||||
</conv:ValueConverterGroup>
|
||||
|
||||
|
||||
@@ -605,6 +605,8 @@ namespace BeWo
|
||||
AppSettings.ShowWorktime = true;
|
||||
AppSettings.ShowPersehImport = true;
|
||||
AppSettings.ShowWohnhilfe = true;
|
||||
//AppSettings.AllowGkvAbrechnung = true;
|
||||
//AppSettings.AllowGkvAbrechnung = false;
|
||||
//showInfoButtonInCalender = true;
|
||||
#endif
|
||||
|
||||
@@ -654,7 +656,7 @@ namespace BeWo
|
||||
{
|
||||
String url = "";
|
||||
#if DEBUG
|
||||
url = String.Format("http://localhost:3777/Host");
|
||||
//url = String.Format("http://localhost:3777/Host");
|
||||
//return new Uri("https://app5.bewoplaner.de/service");
|
||||
//url = String.Format("app1.bewoplaner.de/service");
|
||||
#endif
|
||||
|
||||
@@ -18,18 +18,19 @@ namespace BeWo.Converter
|
||||
if (state is null)
|
||||
return null;
|
||||
|
||||
switch (state.Value)
|
||||
{
|
||||
case GkvState.NoSend: return "Erstellt";
|
||||
case GkvState.Waiting: return "Gesendet";
|
||||
case GkvState.Waiting4Urbelege: return "Urbelege per Post";
|
||||
case GkvState.Error: return "Fehler";
|
||||
case GkvState.ErrorFatal: return "Fataler Fehler";
|
||||
case GkvState.Paid: return "Bezahlt";
|
||||
case GkvState.OldAndNoFeedback: return "Keine Antwort";
|
||||
}
|
||||
switch (state.Value)
|
||||
{
|
||||
case GkvState.NoSend: return "Erstellt";
|
||||
case GkvState.ErrorSoft: return "Fehler";
|
||||
case GkvState.ErrorFatal: return "Fataler Fehler";
|
||||
case GkvState.Paid: return "Bezahlt";
|
||||
case GkvState.WaitingForDakota: return "Warte auf Übertragung";
|
||||
case GkvState.WaitingForKrankenkasse: return "Warte auf Gkv";
|
||||
case GkvState.WaitingForKrankenkasseTooLong: return "Keine Antwort von Gkv";
|
||||
case GkvState.WaitingForUrbelege: return "Sende Urbelege";
|
||||
}
|
||||
|
||||
return state.ToString();
|
||||
return state.ToString();
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using BeWo.ViewModel;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
@@ -8,7 +9,10 @@ namespace BeWo.Converter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return value;
|
||||
if (value is null)
|
||||
return null;
|
||||
|
||||
return "Test";
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
|
||||
40
BeWo/Converter/TooltipTextConverter.cs
Normal file
40
BeWo/Converter/TooltipTextConverter.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using BeWo.ViewModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace BeWo.Converter
|
||||
{
|
||||
public class TooltipTextConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if(value is GkvAbrechnungVM gkv)
|
||||
{
|
||||
if (parameter is string s)
|
||||
{
|
||||
if (s == "Send")
|
||||
{
|
||||
return gkv.SendTooltip;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (value is InvoiceBaseVM invoice)
|
||||
{
|
||||
return invoice.IsGkvValidError;
|
||||
}
|
||||
|
||||
return "xxx";
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using BeWo.Core.Config;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -10,17 +10,22 @@ using System.Windows.Data;
|
||||
|
||||
namespace BeWo.Converter
|
||||
{
|
||||
public class AppSettingsConverter : IValueConverter
|
||||
public class UserPermission2BoolConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (parameter == null)
|
||||
return false;
|
||||
|
||||
if(parameter is string setting)
|
||||
if (value is UserRightType type)
|
||||
{
|
||||
return BeWoApp.HasLoggedOnUserRight(type);
|
||||
}
|
||||
|
||||
if (parameter is UserRightType type2)
|
||||
{
|
||||
return BeWoApp.HasLoggedOnUserRight(type2);
|
||||
}
|
||||
|
||||
if (parameter is string setting && !string.IsNullOrWhiteSpace(setting))
|
||||
{
|
||||
// Kann gerne erweitert werden
|
||||
// Achtung! Verwende bei Parameter SettingsKeys
|
||||
if (setting == SettingsKeys.AllowGkvAbrechnung)
|
||||
return BeWoApp.AppSettings.AllowGkvAbrechnung;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
using BS.Shared;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace BeWo.Converter
|
||||
{
|
||||
public class UserRightType2BoolConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is UserRightType type)
|
||||
{
|
||||
return BeWoApp.HasLoggedOnUserRight(type);
|
||||
}
|
||||
|
||||
if (parameter is UserRightType type2)
|
||||
{
|
||||
return BeWoApp.HasLoggedOnUserRight(type2);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,9 +32,12 @@ namespace BeWo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public DebugConfigMode DebugConfigMode { get; set; }
|
||||
|
||||
public static string Username { get; set; } = "m1";
|
||||
public static string Password { get; set; } = "bewobewo";
|
||||
public static string Profilename { get; set; } = "5000000000";
|
||||
|
||||
public bool AutoLogin { get; set; }
|
||||
public UIContext? SelectView { get; set; }
|
||||
/// <summary>
|
||||
|
||||
@@ -31,6 +31,7 @@ using BeWo.View;
|
||||
using BeWo.View.Detail;
|
||||
using BS.Shared.Translation;
|
||||
using Path = System.IO.Path;
|
||||
using System.Linq;
|
||||
|
||||
namespace BeWo
|
||||
{
|
||||
@@ -198,6 +199,11 @@ namespace BeWo
|
||||
{
|
||||
#if DEBUG
|
||||
//selectedProfile = ReadSelectedProfile();
|
||||
|
||||
if (DebugConfig.CurrentConfig is DebugConfig current && !string.IsNullOrWhiteSpace(DebugConfig.Profilename))
|
||||
{
|
||||
selectedProfile = ProfileList.FirstOrDefault(x => x.Name == DebugConfig.Profilename);
|
||||
}
|
||||
#else
|
||||
selectedProfile = ReadSelectedProfile();
|
||||
#endif
|
||||
@@ -712,9 +718,18 @@ namespace BeWo
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
if (DebugConfig.CurrentConfig is object && DebugConfig.CurrentConfig.AutoLogin)
|
||||
|
||||
|
||||
if (DebugConfig.CurrentConfig is DebugConfig current)
|
||||
{
|
||||
button_login_Click(this, new RoutedEventArgs());
|
||||
if (!string.IsNullOrWhiteSpace(DebugConfig.Username))
|
||||
TextBox_Username.Text = DebugConfig.Username;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(DebugConfig.Password))
|
||||
PasswordBox_Password.Password = DebugConfig.Password;
|
||||
|
||||
if (current.AutoLogin)
|
||||
button_login_Click(this, new RoutedEventArgs());
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -957,7 +972,7 @@ namespace BeWo
|
||||
{
|
||||
return s.IsUserValid(tempUsername, lPassword, lPin);
|
||||
}
|
||||
catch (Exception)
|
||||
catch (Exception e)
|
||||
{
|
||||
return UserValidationResult.UnkownError;
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ namespace BeWo
|
||||
Grid.SetRowSpan(_WaitLayer, 3);
|
||||
grid_main.Children.Add(_WaitLayer);
|
||||
Panel.SetZIndex(_WaitLayer, int.MaxValue);
|
||||
_WaitLayer.RefreshUI();
|
||||
//_WaitLayer.RefreshUI();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
BeWo/Ressources/Icons/ownsoft_logo.png
Normal file
BIN
BeWo/Ressources/Icons/ownsoft_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -1385,6 +1385,10 @@ namespace BeWo.ServiceProxy
|
||||
public interface ICustomerService
|
||||
{
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungen", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungenResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC> GetAllActiveWohnheimbuchungen();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetWohnheimbuchung", ReplyAction="http://tempuri.org/ICustomerService/GetWohnheimbuchungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetWohnheimbuchungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.WohnheimbuchungDC GetWohnheimbuchung(long oid);
|
||||
@@ -1789,6 +1793,7 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnhilfe.Staatsangehorigkeit))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<object>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, System.Collections.Generic.List<long>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC))]
|
||||
@@ -1855,7 +1860,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.MedArtDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DarreichungsformDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DepotRhythmusDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceReasonDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimCustomerRelationDC>))]
|
||||
@@ -2094,17 +2098,21 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferFehlerlevel))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferResultType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.DateTime>))]
|
||||
@@ -2170,6 +2178,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ImportSupportConceptBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.ImportSupportConceptResultDC ImportSupportConcept(BS.Shared.DataContracts.HilfeplanImportDC hidc);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomer", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimes", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes);
|
||||
@@ -2438,10 +2450,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveWohnheimeCompactBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactWohnheimDC> GetAllActiveWohnheimeCompact();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungen", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungenResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveWohnheimbuchungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC> GetAllActiveWohnheimbuchungen();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ArchiveCustomer", ReplyAction="http://tempuri.org/ICustomerService/ArchiveCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ArchiveCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void ArchiveCustomer(long pOid, long pVersion);
|
||||
@@ -2596,6 +2604,11 @@ namespace BeWo.ServiceProxy
|
||||
"WoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC> GetAllActiveAndArchivedOrganisationsCompact();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllGkvValidOrganisationsCompact", ReplyAction="http://tempuri.org/ICustomerService/GetAllGkvValidOrganisationsCompactResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllGkvValidOrganisationsCompactBeWoFaultFa" +
|
||||
"ult", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC> GetAllGkvValidOrganisationsCompact();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ArchiveWohnheim", ReplyAction="http://tempuri.org/ICustomerService/ArchiveWohnheimResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ArchiveWohnheimBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void ArchiveWohnheim(long pOid, long pVersion);
|
||||
@@ -2713,10 +2726,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/AllowSavingCustomer", ReplyAction="http://tempuri.org/ICustomerService/AllowSavingCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/AllowSavingCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
string AllowSavingCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomer", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -2753,6 +2762,11 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC> GetAllActiveWohnheimbuchungen()
|
||||
{
|
||||
return base.Channel.GetAllActiveWohnheimbuchungen();
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.WohnheimbuchungDC GetWohnheimbuchung(long oid)
|
||||
{
|
||||
return base.Channel.GetWohnheimbuchung(oid);
|
||||
@@ -3048,6 +3062,11 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.ImportSupportConcept(hidc);
|
||||
}
|
||||
|
||||
public long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC)
|
||||
{
|
||||
return base.Channel.UpdateCustomer(pCustomerDC);
|
||||
}
|
||||
|
||||
public void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes)
|
||||
{
|
||||
base.Channel.UpdateCustomersAbsenceTimes(pCustomerOid, pAbsenceTimes);
|
||||
@@ -3363,11 +3382,6 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetAllActiveWohnheimeCompact();
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC> GetAllActiveWohnheimbuchungen()
|
||||
{
|
||||
return base.Channel.GetAllActiveWohnheimbuchungen();
|
||||
}
|
||||
|
||||
public void ArchiveCustomer(long pOid, long pVersion)
|
||||
{
|
||||
base.Channel.ArchiveCustomer(pOid, pVersion);
|
||||
@@ -3543,6 +3557,11 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetAllActiveAndArchivedOrganisationsCompact();
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC> GetAllGkvValidOrganisationsCompact()
|
||||
{
|
||||
return base.Channel.GetAllGkvValidOrganisationsCompact();
|
||||
}
|
||||
|
||||
public void ArchiveWohnheim(long pOid, long pVersion)
|
||||
{
|
||||
base.Channel.ArchiveWohnheim(pOid, pVersion);
|
||||
@@ -3682,11 +3701,6 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
return base.Channel.AllowSavingCustomer(pCustomerDC);
|
||||
}
|
||||
|
||||
public long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC)
|
||||
{
|
||||
return base.Channel.UpdateCustomer(pCustomerDC);
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -6022,6 +6036,7 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnhilfe.Staatsangehorigkeit))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<object>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, System.Collections.Generic.List<long>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimbuchungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Wohnheimbuchung2Costbearer2SupportConceptRelationDC))]
|
||||
@@ -6088,7 +6103,6 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.MedArtDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DarreichungsformDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DepotRhythmusDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimbuchungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceReasonDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimCustomerRelationDC>))]
|
||||
@@ -6327,17 +6341,21 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferFehlerlevel))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.GkvTransferResultType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvTransferProtokollDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.DateTime>))]
|
||||
@@ -9589,6 +9607,12 @@ namespace BeWo.ServiceProxy
|
||||
"ault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBasesForCostBearerAndId(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate, long costBearerOid, string invoiceId);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetInvoiceBasesForCostBearerAndIdAndIsUsed", ReplyAction="http://tempuri.org/IAccountingService/GetInvoiceBasesForCostBearerAndIdAndIsUsedR" +
|
||||
"esponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetInvoiceBasesForCostBearerAndIdAndIsUsedB" +
|
||||
"eWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBasesForCostBearerAndIdAndIsUsed(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate, long costBearerOid, string invoiceId);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomer", ReplyAction="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomerResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomerBeWoFaultF" +
|
||||
"ault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
@@ -9707,7 +9731,7 @@ namespace BeWo.ServiceProxy
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungRequestDC request);
|
||||
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC request);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/UpdateGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/UpdateGkvAbrechnungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/UpdateGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
@@ -9720,6 +9744,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/SendNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/SendNewGkvAbrechnungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/SendNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendResponseDC SendNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendRequestDC req);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/SendGetIKRequest", ReplyAction="http://tempuri.org/IAccountingService/SendGetIKRequestResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/SendGetIKRequestBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC SendGetIKRequest(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC req);
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -9796,6 +9824,11 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetInvoiceBasesForCostBearerAndId(startDate, endDate, costBearerOid, invoiceId);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBasesForCostBearerAndIdAndIsUsed(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate, long costBearerOid, string invoiceId)
|
||||
{
|
||||
return base.Channel.GetInvoiceBasesForCostBearerAndIdAndIsUsed(startDate, endDate, costBearerOid, invoiceId);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetGeneralInvoiceBasesForCustomer(long customerOid)
|
||||
{
|
||||
return base.Channel.GetGeneralInvoiceBasesForCustomer(customerOid);
|
||||
@@ -9926,7 +9959,7 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetFilteredGkvAbrechnungen(gkvAbrechnungViewFilter);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungRequestDC request)
|
||||
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC request)
|
||||
{
|
||||
return base.Channel.CreateNewGkvAbrechnung(request);
|
||||
}
|
||||
@@ -9945,6 +9978,11 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
return base.Channel.SendNewGkvAbrechnung(req);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC SendGetIKRequest(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC req)
|
||||
{
|
||||
return base.Channel.SendGetIKRequest(req);
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
|
||||
@@ -136,4 +136,18 @@
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="HideDisabledButtonSmall"
|
||||
BasedOn="{StaticResource HideDisabledButton}"
|
||||
TargetType="{x:Type Button}">
|
||||
<Setter Property="Height" Value="21" />
|
||||
</Style>
|
||||
|
||||
<Style
|
||||
x:Key="PrimaryButtonSmall"
|
||||
BasedOn="{StaticResource PrimaryButton}"
|
||||
TargetType="{x:Type Button}">
|
||||
<Setter Property="Height" Value="21" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
@@ -40,5 +40,4 @@
|
||||
<Style BasedOn="{StaticResource BaseRadioButton}" TargetType="RadioButton" />
|
||||
<Style BasedOn="{StaticResource TextBoxBase}" TargetType="TextBox" />
|
||||
<Style BasedOn="{StaticResource BaseTextEdit}" TargetType="dxe:TextEdit" />
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -58,7 +58,7 @@
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsReadOnly="True"
|
||||
IsEnabled="False"
|
||||
Text="{Binding GkvAbrechnungOid}" />
|
||||
<Label
|
||||
Grid.Row="5"
|
||||
@@ -69,7 +69,7 @@
|
||||
Grid.Row="5"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsReadOnly="True"
|
||||
IsEnabled="False"
|
||||
Text="{Binding AbrechnungsZeitraumStart}" />
|
||||
<Label
|
||||
Grid.Row="6"
|
||||
@@ -80,7 +80,7 @@
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsReadOnly="True"
|
||||
IsEnabled="False"
|
||||
Text="{Binding AbrechnungsZeitraumEnde}" />
|
||||
<Label
|
||||
Grid.Row="9"
|
||||
@@ -91,7 +91,7 @@
|
||||
Grid.Row="9"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsReadOnly="True"
|
||||
IsEnabled="False"
|
||||
Text="{Binding ErstelltAm}" />
|
||||
<Label
|
||||
Grid.Row="10"
|
||||
@@ -103,6 +103,7 @@
|
||||
Grid.Row="10"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsEnabled="False"
|
||||
Orientation="Horizontal">
|
||||
<RadioButton
|
||||
Margin="3"
|
||||
@@ -157,7 +158,7 @@
|
||||
Grid.Row="15"
|
||||
Grid.Column="2"
|
||||
Margin="3"
|
||||
IsReadOnly="True"
|
||||
IsEnabled="False"
|
||||
Text="{Binding Betrag, StringFormat={}{0:0.00 €}}" />
|
||||
<!--<TextBox Grid.Row="15" Grid.Column="2" Margin="3" IsReadOnly="True" Text="{Binding Bezahlt}"/>-->
|
||||
<Label
|
||||
@@ -290,7 +291,7 @@
|
||||
AllowEditing="False"
|
||||
FieldName="IsPaid"
|
||||
Header="Bezahlt"
|
||||
ReadOnly="True" />
|
||||
IsEnabledBinding="{Binding Source=false}" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView
|
||||
@@ -403,19 +404,19 @@
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="SentSuccess"
|
||||
Header="Dakota Übertragen"
|
||||
ReadOnly="True" />
|
||||
FieldName="SentApp8Success"
|
||||
Header="Sent App 8"
|
||||
IsEnabledBinding="{Binding Source=false}" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="Fehlertitel"
|
||||
Header="Fehlertitel"
|
||||
ReadOnly="True" />
|
||||
FieldName="SentDakotaSuccess"
|
||||
Header="Sent Dakota"
|
||||
IsEnabledBinding="{Binding Source=false}" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="Fehlerdatum"
|
||||
Header="Fehlerdatum"
|
||||
Header="Ergebnisdatum"
|
||||
ReadOnly="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings
|
||||
@@ -424,17 +425,22 @@
|
||||
MaskType="DateTime" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="ResultType"
|
||||
Header="Ergebnis"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="Fehlertitel"
|
||||
Header="Fehlertitel"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
MinWidth="200"
|
||||
AllowEditing="False"
|
||||
FieldName="Fehlernachricht"
|
||||
Header="Fehlernachricht"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="Fehlerlevel"
|
||||
Header="Fehlerlevel"
|
||||
ReadOnly="True" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView
|
||||
|
||||
@@ -2,30 +2,23 @@
|
||||
x:Class="BeWo.View.Detail.Accounting.GkvAbrechnungOverview"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
|
||||
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:proxy="clr-namespace:BeWo.ServiceProxy"
|
||||
xmlns:r="clr-namespace:BeWo.Security"
|
||||
xmlns:s="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Focusable="True">
|
||||
|
||||
<Grid>
|
||||
<Grid Loaded="BeWoView_Loaded">
|
||||
<GroupBox
|
||||
x:Name="groupbox_editArea"
|
||||
Grid.Row="0"
|
||||
Margin="0"
|
||||
Padding="0"
|
||||
Header="GKV-Abrechnungen"
|
||||
Style="{DynamicResource ObjectEditGroupBox}">
|
||||
|
||||
@@ -65,9 +58,16 @@
|
||||
x:Name="radioFilterByAccountingDate"
|
||||
Click="radioFilterByInvoiceDate_Click"
|
||||
Content="Nach Abrechnungszeitraum filtern"
|
||||
ToolTip="Filtert die angezeigten GKV-Abrechnungen nach ihrem Abrechnungszeitraum. Es werden alle Abrechnungen angezeigt, die den ausgewählten Monat bzw. Jahr beinhalten." />
|
||||
ToolTip="Filtert die angezeigten GKV-Abrechnungen nach ihrem Abrechnungszeitraum. Es werden alle Abrechnungen angezeigt, die den ausgewählten Monat bzw. das ausgewählte Jahr beinhalten." />
|
||||
</StackPanel>
|
||||
<Grid Grid.Column="2">
|
||||
<Grid.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="auto" />
|
||||
@@ -82,7 +82,7 @@
|
||||
Click="NewButton_OnClick"
|
||||
Content="Neue Abrechnung"
|
||||
ToolTip="Neue GKV-Abrechnung erstellen"
|
||||
Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Create}}" />
|
||||
Visibility="{Binding Path=Itself, Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Create}}" />
|
||||
<Button
|
||||
x:Name="button_reload"
|
||||
Grid.Column="1"
|
||||
@@ -103,7 +103,14 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
DataSource="{Binding VMList}"
|
||||
Visibility="Collapsed">
|
||||
Visibility="Visible">
|
||||
<dxg:GridControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</dxg:GridControl.Resources>
|
||||
<dxg:GridControl.Effect>
|
||||
<DropShadowEffect Color="#FFC7D9E2" />
|
||||
</dxg:GridControl.Effect>
|
||||
@@ -123,7 +130,9 @@
|
||||
Header=" ">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<ControlTemplate.Resources />
|
||||
<StackPanel Margin="1" Orientation="Horizontal">
|
||||
<StackPanel.Resources />
|
||||
<Button
|
||||
x:Name="btn_details"
|
||||
Width="20"
|
||||
@@ -147,12 +156,14 @@
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
Click="btn_send_Click"
|
||||
Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Send}}"
|
||||
Content="*"
|
||||
FontFamily="Wingdings"
|
||||
FontSize="11"
|
||||
Foreground="#ffffff"
|
||||
ToolTip="Senden" />
|
||||
IsEnabled="{Binding Row.IsReady2Send}"
|
||||
ToolTip="{Binding Row, Converter={StaticResource TooltipTextConverter}, ConverterParameter=Send}"
|
||||
ToolTipService.ShowOnDisabled="True"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Send}}" />
|
||||
<Button
|
||||
x:Name="btn_delete"
|
||||
Width="20"
|
||||
@@ -161,12 +172,12 @@
|
||||
Padding="0"
|
||||
VerticalAlignment="Center"
|
||||
Click="btn_delete_Click"
|
||||
Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Delete}}"
|
||||
Content="r"
|
||||
FontFamily="Webdings"
|
||||
FontSize="11"
|
||||
Foreground="#FF0000"
|
||||
ToolTip="Löschen" />
|
||||
ToolTip="Löschen"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Delete}}" />
|
||||
</StackPanel>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
DownloadLinkEngine = new DownloadLinkEngine();
|
||||
|
||||
_Viewmodel = new GkvAbrechnungListVM();
|
||||
_Viewmodel.VMList.ListChanged += (s, e) => gridView.BestFitColumns();
|
||||
|
||||
DataContext = _Viewmodel;
|
||||
|
||||
@@ -53,10 +54,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
_NewGkvAbrechnungPopUpView.CreateButtonClicked += NewGkvAbrechnungPopUpViewCreateButtonClicked;
|
||||
|
||||
_Viewmodel.DateTimeSpanFilter = yearMonthFilter.FilterSpan;
|
||||
|
||||
CheckRights();
|
||||
|
||||
RefreshGkvAbrechnungenList();
|
||||
}
|
||||
|
||||
public DownloadLinkEngine DownloadLinkEngine { get; set; }
|
||||
@@ -64,20 +61,32 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private bool ShowAllInvoices => _Viewmodel.DateTimeSpanFilter is null;
|
||||
|
||||
private void CheckRights()
|
||||
{
|
||||
|
||||
}
|
||||
private void RefreshGkvAbrechnungenList()
|
||||
{
|
||||
var test = datagrid_gkvAbrechnungen;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList);
|
||||
}
|
||||
|
||||
private void UpdateGkvAbrechnungList(IList<GkvAbrechnungDC> dcList)
|
||||
{
|
||||
this.Dispatcher.BeginInvoke(
|
||||
DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
_Viewmodel.UpdateList(dcList);
|
||||
|
||||
if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
|
||||
datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
|
||||
|
||||
UpdateDataGridFilter();
|
||||
});
|
||||
}
|
||||
|
||||
private void UpdateDataGridFilter()
|
||||
{
|
||||
datagrid_gkvAbrechnungen.FixedFilter = null;
|
||||
|
||||
|
||||
if (ShowAllInvoices)
|
||||
{
|
||||
datagrid_gkvAbrechnungen.FixedFilter = null;
|
||||
@@ -103,25 +112,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.AbrechnungsZeitraumStart <= filter_start && filter_ende <= gkv.AbrechnungsZeitraumEnde));
|
||||
}
|
||||
}
|
||||
|
||||
gridView.BestFitColumns();
|
||||
}
|
||||
|
||||
private void UpdateGkvAbrechnungList(IList<GkvAbrechnungDC> dcList)
|
||||
{
|
||||
this.Dispatcher.BeginInvoke(
|
||||
DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
_Viewmodel.UpdateList(dcList);
|
||||
|
||||
if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
|
||||
datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
|
||||
|
||||
UpdateDataGridFilter();
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void NewGkvAbrechnungPopUpViewCancelButtonClicked(object sender, EventArgs e)
|
||||
@@ -130,27 +120,32 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
private void NewGkvAbrechnungPopUpViewCreateButtonClicked(object sender, EventArgs<GkvAbrechnungDC> e)
|
||||
{
|
||||
var checked_invoice_bases = _NewGkvAbrechnungPopUpView.ViewModel.InvoiceBases.Where(x => x.IsChecked).Select(x => x.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
var checked_invoice_bases = _NewGkvAbrechnungPopUpView.ViewModel.InvoiceBases.Where(x => x.IsChecked);
|
||||
|
||||
if (checked_invoice_bases.Count == 0)
|
||||
{
|
||||
#if DEBUG
|
||||
if (MessageBox.Show("Sie haben keine Rechnung hinzugefügt. Wollen Sie fortfahren?", "GKV-Abrechnung erstellen", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
|
||||
return;
|
||||
#else
|
||||
MessageBox.Show("Sie haben keine Rechnung hinzugefügt.", "GKV-Abrechnung erstellen", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
// MessageBox.Show("Sie haben keine Rechnung hinzugefügt.", "GKV-Abrechnung erstellen", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
if (!checked_invoice_bases.Any())
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
var already_used_invoices = checked_invoice_bases.Where(x => x.IsAlreadyInActiveGkvAbrechnung.Value);
|
||||
if (already_used_invoices.Any())
|
||||
{
|
||||
var txt = "Sie haben eine oder mehrere Rechnungen ausgewählt, welche bereits in einer anderen aktiven GKV-Abrechnung enthalten sind. Möchten Sie fortfahren?";
|
||||
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OKCancel);
|
||||
|
||||
if (result != MessageBoxResult.OK)
|
||||
return;
|
||||
}
|
||||
|
||||
MainControl.CloseCurrentPopUp();
|
||||
|
||||
var gkv_abrechnung = e.Data;
|
||||
var gkv_filter = new GkvAbrechnungRequestDC(gkv_abrechnung);
|
||||
var gkv_filter = new GkvAbrechnungCreateRequestDC
|
||||
{
|
||||
GkvAbrechnungDC = gkv_abrechnung,
|
||||
SelectedInvoiceBases = checked_invoice_bases.Select(x => x.DataContract.InvoiceBaseOid.Value).ToList()
|
||||
};
|
||||
|
||||
gkv_filter.SelectedInvoiceBases = checked_invoice_bases;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.CreateNewGkvAbrechnung(gkv_filter),
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.CreateNewGkvAbrechnung(gkv_filter),
|
||||
cb => Dispatcher.BeginInvoke(DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
@@ -160,7 +155,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
else
|
||||
{
|
||||
BeWoWindowBuilder.ShowErrorMessageBox(cb.Error);
|
||||
BeWoWindowBuilder.ShowErrorMessageBox(cb.Message);
|
||||
}
|
||||
}));
|
||||
}
|
||||
@@ -196,8 +191,14 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
if (vm.IsDirty)
|
||||
{
|
||||
var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(vm.CommitToDataContract()));
|
||||
vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
var dc_in = vm.CommitToDataContract();
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.UpdateByDataContract(dc_out);
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,39 +206,11 @@ namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
|
||||
|
||||
var dc = vm.CommitToDataContract();
|
||||
|
||||
var state = dc.GetState();
|
||||
|
||||
var can_send = false;
|
||||
|
||||
can_send |= state == GkvState.NoSend;
|
||||
can_send |= state == GkvState.Error;
|
||||
#if DEBUG
|
||||
can_send |= state == GkvState.ErrorFatal;
|
||||
#endif
|
||||
|
||||
if (!can_send)
|
||||
{
|
||||
string error;
|
||||
if (state == GkvState.Waiting)
|
||||
error = "Es wurde bereits übertragen ohne direkte Fehler.";
|
||||
else if (state == GkvState.ErrorFatal)
|
||||
error = "GKV-Abrechnung enthält schwere Fehler. Erstellen Sie die Rechnung erneut.";
|
||||
else if (state == GkvState.Paid)
|
||||
error = "GKV-Abrechnung ist bereits als bezahlt markiert.";
|
||||
else if (state == GkvState.OldAndNoFeedback)
|
||||
error = "GKV-Abrechnung ist älter als 28 Tage und als nicht bezahlt markiert. Wenden Sie sich bitte an Ihre Krankenkasse";
|
||||
else
|
||||
error = "def";
|
||||
|
||||
MessageBox.Show(error, "Übertragung nicht möglich");
|
||||
return;
|
||||
}
|
||||
var state = vm.GetState();
|
||||
|
||||
string text = "Sind Sie sicher, dass Sie die gewählte GKV-Abrechnung senden möchten?";
|
||||
|
||||
if (state == GkvState.Error)
|
||||
if (state == GkvState.ErrorSoft)
|
||||
text = "Die gewählte GKV-Abrechnung wurde nicht erfolgreich an die Krankenkasse übertragen. Möchten Sie sie erneut senden?";
|
||||
|
||||
if (MessageBox.Show(text, "GKV-Abrechnung senden", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
@@ -318,12 +291,12 @@ namespace BeWo.View.Detail.Accounting
|
||||
if (gkvAbrechnungVM is null)
|
||||
return;
|
||||
|
||||
if (GkvAbrechnungVM.GetState(gkvAbrechnungVM) == GkvState.OldAndNoFeedback)
|
||||
if (gkvAbrechnungVM.GkvState == GkvState.WaitingForKrankenkasseTooLong)
|
||||
{
|
||||
e.Result = Brushes.Orange;
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (GkvAbrechnungVM.GetState(gkvAbrechnungVM) == GkvState.Waiting4Urbelege)
|
||||
else if (gkvAbrechnungVM.GkvState == GkvState.WaitingForUrbelege)
|
||||
{
|
||||
e.Result = Brushes.Green;
|
||||
e.Handled = true;
|
||||
@@ -342,11 +315,10 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
dc_in.Bezahlt = b;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb =>
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion;
|
||||
vm.Bezahlt = cb.Bezahlt;
|
||||
vm.UpdateByDataContract(dc_out);
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
@@ -357,26 +329,24 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
dc_in.UrbelegeGesendet = b;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb =>
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion;
|
||||
vm.UrbelegeGesendet = cb.UrbelegeGesendet;
|
||||
vm.UpdateByDataContract(dc_out);
|
||||
});
|
||||
}, false);
|
||||
|
||||
//var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(dc_in));
|
||||
|
||||
//vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
//vm.UrbelegeGesendet = dc.UrbelegeGesendet;
|
||||
}
|
||||
|
||||
private void SaveNoticeChange(GkvAbrechnungVM vm, string notice)
|
||||
{
|
||||
var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(vm.CommitToDataContract()));
|
||||
var dc_in = vm.CommitToDataContract();
|
||||
|
||||
vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
vm.Notice = dc.Notice;
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
|
||||
{
|
||||
Dispatcher.Invoke(() => {
|
||||
vm.UpdateByDataContract(dc_out);
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
|
||||
private void gridView_CellValueChanged_1(object sender, CellValueChangedEventArgs e)
|
||||
@@ -389,5 +359,12 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void BeWoView_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
_Viewmodel.FirePropertyChangedItself();
|
||||
|
||||
RefreshGkvAbrechnungenList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,48 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.NewGkvAbrechnungPopUpView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:localViewModel="clr-namespace:BeWo.ViewModel" xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
|
||||
xmlns:val="clr-namespace:BeWo.Validation" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" Height="Auto" Width="Auto"
|
||||
HorizontalAlignment="Stretch" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:r="clr-namespace:BeWo.Security"
|
||||
VerticalAlignment="Stretch" Focusable="True"
|
||||
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic" xmlns:localSearchView="clr-namespace:BeWo.View.Search">
|
||||
<localView:BeWoView
|
||||
x:Class="BeWo.View.Detail.Accounting.NewGkvAbrechnungPopUpView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
|
||||
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:r="clr-namespace:BeWo.Security"
|
||||
xmlns:s="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Focusable="True">
|
||||
<GroupBox Width="1100" Style="{StaticResource PopUpWindowStyle}">
|
||||
<GroupBox.Header>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,0,0">
|
||||
<Image Source="..\..\..\Ressources\Icons\CoinsDisabled.png" Height="28" />
|
||||
<TextBox Margin="10,4,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}"
|
||||
FontSize="20" BorderBrush="{x:Null}" VerticalAlignment="Stretch" BorderThickness="0,0,0,0"
|
||||
Padding="0,0,0,0" />
|
||||
<StackPanel
|
||||
Margin="0,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Horizontal">
|
||||
<Image Height="28" Source="..\..\..\Ressources\Icons\CoinsDisabled.png" />
|
||||
<TextBox
|
||||
Margin="10,4,0,0"
|
||||
Padding="0,0,0,0"
|
||||
VerticalAlignment="Stretch"
|
||||
Background="{x:Null}"
|
||||
BorderBrush="{x:Null}"
|
||||
BorderThickness="0,0,0,0"
|
||||
FontSize="20"
|
||||
Foreground="{DynamicResource MainGroupBoxForegroundBrush}" />
|
||||
</StackPanel>
|
||||
</GroupBox.Header>
|
||||
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
|
||||
<GroupBox Margin="10" Header="GKV-Abrechnung erstellen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
Margin="10"
|
||||
Header="GKV-Abrechnung erstellen"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -52,68 +74,231 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Content="Rechnungszeitraum von" Grid.Row="0" Grid.Column="0" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" BorderThickness="1" Height="23" Margin="3" Grid.Row="0" Grid.Column="1" EditValue="{val:ValidationBinding Path=AbrechnungsZeitraumStart}" EditValueChanged="DateEdit_EditValueChanged"/>
|
||||
<Label Content="Rechnungszeitraum bis" Grid.Row="1" Grid.Column="0" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" BorderThickness="1" Height="23" Margin="3" Grid.Row="1" Grid.Column="1" EditValue="{val:ValidationBinding Path=AbrechnungsZeitraumEnde}" EditValueChanged="DateEdit2_EditValueChanged"/>
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Content="Rechnungszeitraum von" />
|
||||
<dxe:DateEdit
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="0,3,3,3"
|
||||
BorderThickness="1"
|
||||
EditValue="{val:ValidationBinding Path=AbrechnungsZeitraumStart}"
|
||||
EditValueChanged="DateEdit_EditValueChanged"
|
||||
MaskType="DateTimeAdvancingCaret" />
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Content="Rechnungszeitraum bis" />
|
||||
<dxe:DateEdit
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="0,3,3,3"
|
||||
BorderThickness="1"
|
||||
EditValue="{val:ValidationBinding Path=AbrechnungsZeitraumEnde}"
|
||||
EditValueChanged="DateEdit2_EditValueChanged"
|
||||
MaskType="DateTimeAdvancingCaret" />
|
||||
<!--<Label Content="Annahmestelle" Grid.Row="0" Grid.Column="2" />
|
||||
<uc:PopUpEdit IsReadOnly="True"
|
||||
x:Name="popupedit_DatenannahmestelleSearch"
|
||||
Grid.Column="3" Margin="3" Height="23" Grid.Row="0"
|
||||
DeleteButtonVisibility="Collapsed"
|
||||
PopUpClick="popupedit_DatenannahmestelleSearch_PopUpClick" />-->
|
||||
<Label Content="Organisation" Grid.Row="0" Grid.Column="2" />
|
||||
<uc:PopUpEdit IsReadOnly="True"
|
||||
x:Name="popupedit_GkvSearch"
|
||||
Grid.Column="3" Margin="3" Height="23" Grid.Row="0"
|
||||
DeleteButtonVisibility="Collapsed"
|
||||
PopUpClick="popupedit_GkvSearch_PopUpClick" />
|
||||
<Label Content="Bemerkung" Grid.Row="0" Grid.Column="4" />
|
||||
<TextBox Grid.Row="0" Grid.Column="5" Grid.RowSpan="2" Margin="3" AcceptsReturn="True" TextWrapping="Wrap" Height="50" Text="{Binding Notice}" />
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Margin="3,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip="Gesetzliche Krankenversicherung">
|
||||
GKV:
|
||||
</Label>
|
||||
<uc:PopUpEdit
|
||||
x:Name="popupedit_GkvSearch"
|
||||
Grid.Row="0"
|
||||
Grid.Column="3"
|
||||
Height="23"
|
||||
Margin="0,3,3,3"
|
||||
DeleteButtonVisibility="Collapsed"
|
||||
IsReadOnly="True"
|
||||
PopUpClick="popupedit_GkvSearch_PopUpClick" />
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
Margin="3,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Content="Bemerkung:" />
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Grid.RowSpan="2"
|
||||
Grid.Column="5"
|
||||
Height="50"
|
||||
Margin="0,3,3,3"
|
||||
AcceptsReturn="True"
|
||||
Text="{Binding Notice}"
|
||||
TextWrapping="Wrap" />
|
||||
</Grid>
|
||||
|
||||
<dxg:GridControl x:Name="grid_newInvoices" DataSource="{Binding InvoiceBases}" Margin="3" Grid.Row="1" Grid.ColumnSpan="2" MinHeight="200">
|
||||
<dxg:GridControl
|
||||
x:Name="grid_newInvoices"
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="2"
|
||||
MinHeight="200"
|
||||
Margin="3"
|
||||
DataSource="{Binding InvoiceBases}">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn x:Name="ColumnChecked" FieldName="IsChecked" Header=" " MinWidth="30"></dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TypeString" Header="Art der Rechnung" Width="150" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceNumber" Header="Nummer" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceDate" Header="Datum" EditSettings="{dxe:DateSettings DisplayFormat=d}" MinWidth="70" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="CustomerName" Header="{markup:Translate Klient/in}" Width="100" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="AccountingPeriodString" SortFieldName="AccountingPeriodStart" Header="Zeitraum" Width="100" />
|
||||
<dxg:GridColumn
|
||||
x:Name="ColumnChecked"
|
||||
MinWidth="30"
|
||||
CellToolTipBinding="{Binding Converter={StaticResource TooltipTextConverter}}"
|
||||
FieldName="IsChecked"
|
||||
Header=" "
|
||||
IsEnabledBinding="{Binding IsGkvValid}">
|
||||
<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="{x:Type dxg:LightweightCellEditor}">
|
||||
|
||||
<Setter Property="ToolTipService.ShowOnDisabled" Value="True" />
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
Width="150"
|
||||
AllowEditing="False"
|
||||
FieldName="TypeString"
|
||||
Header="Art der Rechnung"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
AllowEditing="False"
|
||||
FieldName="InvoiceNumber"
|
||||
Header="Nummer"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
MinWidth="70"
|
||||
AllowEditing="False"
|
||||
EditSettings="{dxe:DateSettings DisplayFormat=d}"
|
||||
FieldName="InvoiceDate"
|
||||
Header="Datum"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="CustomerName"
|
||||
Header="{markup:Translate Klient/in}"
|
||||
ReadOnly="True" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="AccountingPeriodString"
|
||||
Header="Zeitraum"
|
||||
ReadOnly="True"
|
||||
SortFieldName="AccountingPeriodStart" />
|
||||
<!--<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="RecipientString" Header="{markup:Translate EmpfängerSingular}" />-->
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TotalAmount" Header="Betrag" MinWidth="70">
|
||||
<dxg:GridColumn
|
||||
MinWidth="70"
|
||||
AllowEditing="False"
|
||||
FieldName="TotalAmount"
|
||||
Header="Betrag"
|
||||
ReadOnly="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings DisplayFormat="c" Mask="c" MaskType="Numeric"></dxe:TextEditSettings>
|
||||
<dxe:TextEditSettings
|
||||
DisplayFormat="c"
|
||||
Mask="c"
|
||||
MaskType="Numeric" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Notice" Header="Bemerkung" MinWidth="200" >
|
||||
<dxg:GridColumn
|
||||
MinWidth="200"
|
||||
AllowEditing="False"
|
||||
FieldName="Notice"
|
||||
Header="Bemerkung"
|
||||
ReadOnly="True">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings TextWrapping="Wrap" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="PaidColumn" FieldName="IsPaid" Header="Bezahlt" ReadOnly="True"></dxg:GridColumn>
|
||||
<dxg:GridColumn
|
||||
x:Name="PaidColumn"
|
||||
FieldName="IsPaid"
|
||||
Header="Bezahlt"
|
||||
IsEnabledBinding="{Binding Source=false}" />
|
||||
<dxg:GridColumn
|
||||
x:Name="AlreadyInActiveGkvAbrechnungColumn"
|
||||
FieldName="IsAlreadyInActiveGkvAbrechnung"
|
||||
Header="Bereits enthalten"
|
||||
IsEnabledBinding="{Binding Source=false}" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View >
|
||||
<dxg:TableView x:Name="gridView" ShowGroupPanel="False" CellValueChanging="TableView_CellValueChanging"/>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView
|
||||
x:Name="gridView"
|
||||
CellValueChanging="TableView_CellValueChanging"
|
||||
EnableImmediatePosting="True"
|
||||
ShowGroupPanel="False" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2">
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_checkAllLeistungen" Click="button_checkAll_Click"
|
||||
HorizontalAlignment="Left">Alle auswählen</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_uncheckAllLeistungen" Click="button_uncheckAll_Click"
|
||||
HorizontalAlignment="Left">Alle abwählen</Button>
|
||||
<StackPanel
|
||||
Grid.Row="2"
|
||||
Grid.ColumnSpan="2"
|
||||
HorizontalAlignment="Left"
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
Name="button_checkAllLeistungen"
|
||||
Margin="10,3,0,0"
|
||||
HorizontalAlignment="Left"
|
||||
Click="button_checkAll_Click">
|
||||
Alle auswählen
|
||||
</Button>
|
||||
<Button
|
||||
Name="button_uncheckAllLeistungen"
|
||||
Margin="10,3,0,0"
|
||||
HorizontalAlignment="Left"
|
||||
Click="button_uncheckAll_Click">
|
||||
Alle abwählen
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2">
|
||||
<Button Content="Erstellen" x:Name="btn_create" Click="btn_create_Click" Padding="5 0" Margin="3" />
|
||||
<Button Content="Abbrechen" x:Name="btn_cancel" Click="btn_cancel_Click" Margin="3" Padding="5 0" />
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="2"
|
||||
Grid.ColumnSpan="2"
|
||||
HorizontalAlignment="Right"
|
||||
Orientation="Horizontal">
|
||||
<StackPanel.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</StackPanel.Resources>
|
||||
<Button
|
||||
x:Name="btn_create"
|
||||
Margin="3"
|
||||
Padding="5,0"
|
||||
Click="btn_create_Click"
|
||||
Content="Erstellen"
|
||||
IsEnabled="{Binding IsReady2Create}"
|
||||
Style="{StaticResource PrimaryButton}" />
|
||||
<Button
|
||||
x:Name="btn_cancel"
|
||||
Margin="3"
|
||||
Padding="5,0"
|
||||
Click="btn_cancel_Click"
|
||||
Content="Abbrechen"
|
||||
Style="{StaticResource PrimaryButton}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<Popup Margin="10" x:Name="popup_organisation" StaysOpen="False" Placement="MousePoint" Width="370" Height="250" Closed="popup_Closed" Opened="popup_Opened">
|
||||
<localSearchView:OrganisationSearchView SearchMode="All" x:Name="gkvsearchview" />
|
||||
<Popup
|
||||
x:Name="popup_organisation"
|
||||
Width="370"
|
||||
Height="250"
|
||||
Margin="10"
|
||||
Closed="popup_Closed"
|
||||
Opened="popup_Opened"
|
||||
Placement="MousePoint"
|
||||
StaysOpen="False">
|
||||
<localSearchView:OrganisationSearchView x:Name="gkvsearchview" SearchMode="OnlyValid" />
|
||||
</Popup>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
@@ -16,268 +16,272 @@ using DevExpress.Xpf.Grid;
|
||||
|
||||
namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
public partial class NewGkvAbrechnungPopUpView : BeWoView
|
||||
{
|
||||
private long? _LoadedInvoiceBaseOid;
|
||||
public partial class NewGkvAbrechnungPopUpView : BeWoView
|
||||
{
|
||||
private long? _LoadedInvoiceBaseOid;
|
||||
|
||||
private List<InvoiceBaseDC> _InvoiceBaseDCs;
|
||||
private List<InvoiceBaseDC> _InvoiceBaseDCs;
|
||||
|
||||
private List<string> _InvoiceNumbers;
|
||||
private List<string> _InvoiceNumbers;
|
||||
|
||||
private GkvAbrechnungVM _Viewmodel;
|
||||
private GkvAbrechnungVM _Viewmodel;
|
||||
|
||||
public event EventHandler<EventArgs<GkvAbrechnungDC>> CreateButtonClicked;
|
||||
public event EventHandler<EventArgs<GkvAbrechnungDC>> CreateButtonClicked;
|
||||
|
||||
public event EventHandler CancelButtonClicked;
|
||||
public event EventHandler CancelButtonClicked;
|
||||
|
||||
public NewGkvAbrechnungPopUpView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
public NewGkvAbrechnungPopUpView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close,
|
||||
(s, e) =>
|
||||
{
|
||||
this._InvoiceBaseDCs?.Clear();
|
||||
if (CancelButtonClicked != null)
|
||||
CancelButtonClicked.Invoke(s, e);
|
||||
}));
|
||||
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close,
|
||||
(s, e) =>
|
||||
{
|
||||
this._InvoiceBaseDCs?.Clear();
|
||||
if (CancelButtonClicked != null)
|
||||
CancelButtonClicked.Invoke(s, e);
|
||||
}));
|
||||
|
||||
this.grid_newInvoices.View.Loaded += (s, e) => ((TableView)this.grid_newInvoices.View).BestFitColumns();
|
||||
}
|
||||
this.grid_newInvoices.View.Loaded += (s, e) => ((TableView)this.grid_newInvoices.View).BestFitColumns();
|
||||
}
|
||||
|
||||
|
||||
public GkvAbrechnungVM ViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Viewmodel;
|
||||
}
|
||||
public GkvAbrechnungVM ViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Viewmodel;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.DataContext = value;
|
||||
this._Viewmodel = value;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
this.DataContext = value;
|
||||
this._Viewmodel = value;
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime FilterStart
|
||||
{
|
||||
get => ViewModel.AbrechnungsZeitraumStart.Value;
|
||||
set => ViewModel.AbrechnungsZeitraumStart = value;
|
||||
}
|
||||
public DateTime FilterEnde
|
||||
{
|
||||
get => ViewModel.AbrechnungsZeitraumEnde.Value;
|
||||
set => ViewModel.AbrechnungsZeitraumEnde = value;
|
||||
}
|
||||
public DateTime FilterStart
|
||||
{
|
||||
get => ViewModel.AbrechnungsZeitraumStart.Value;
|
||||
set => ViewModel.AbrechnungsZeitraumStart = value;
|
||||
}
|
||||
public DateTime FilterEnde
|
||||
{
|
||||
get => ViewModel.AbrechnungsZeitraumEnde.Value;
|
||||
set => ViewModel.AbrechnungsZeitraumEnde = value;
|
||||
}
|
||||
|
||||
public List<InvoiceBaseDC> InvoiceBaseDcs
|
||||
{
|
||||
set
|
||||
{
|
||||
this._InvoiceNumbers = value.Select(i => i.InvoiceNumber).ToList();
|
||||
this._InvoiceBaseDCs = new List<InvoiceBaseDC>(value);
|
||||
this.grid_newInvoices.ItemsSource = this._InvoiceBaseDCs;
|
||||
}
|
||||
}
|
||||
public List<InvoiceBaseDC> InvoiceBaseDcs
|
||||
{
|
||||
set
|
||||
{
|
||||
this._InvoiceNumbers = value.Select(i => i.InvoiceNumber).ToList();
|
||||
this._InvoiceBaseDCs = new List<InvoiceBaseDC>(value);
|
||||
this.grid_newInvoices.ItemsSource = this._InvoiceBaseDCs;
|
||||
}
|
||||
}
|
||||
|
||||
private void Fire()
|
||||
{
|
||||
if (this.CreateButtonClicked != null)
|
||||
{
|
||||
if (_InvoiceBaseDCs == null)
|
||||
_InvoiceBaseDCs = new List<InvoiceBaseDC>();
|
||||
private void Fire()
|
||||
{
|
||||
if (this.CreateButtonClicked != null)
|
||||
{
|
||||
if (_InvoiceBaseDCs == null)
|
||||
_InvoiceBaseDCs = new List<InvoiceBaseDC>();
|
||||
|
||||
for (int i = 0; i < _InvoiceBaseDCs.Count; i++)
|
||||
{
|
||||
_InvoiceBaseDCs[i].InvoiceNumber = this._InvoiceNumbers[i];
|
||||
}
|
||||
for (int i = 0; i < _InvoiceBaseDCs.Count; i++)
|
||||
{
|
||||
_InvoiceBaseDCs[i].InvoiceNumber = this._InvoiceNumbers[i];
|
||||
}
|
||||
|
||||
var gkvAbrechnung = ViewModel.CommitToDataContract();
|
||||
var gkvAbrechnung = ViewModel.CommitToDataContract();
|
||||
|
||||
this.CreateButtonClicked(this, new EventArgs<GkvAbrechnungDC>(gkvAbrechnung));
|
||||
}
|
||||
}
|
||||
public void Clear()
|
||||
{
|
||||
_LoadedInvoiceBaseOid = null;
|
||||
popupedit_GkvSearch.Text = string.Empty;
|
||||
popupedit_GkvSearch.Focus();
|
||||
}
|
||||
this.CreateButtonClicked(this, new EventArgs<GkvAbrechnungDC>(gkvAbrechnung));
|
||||
}
|
||||
}
|
||||
public void Clear()
|
||||
{
|
||||
_LoadedInvoiceBaseOid = null;
|
||||
popupedit_GkvSearch.Text = string.Empty;
|
||||
popupedit_GkvSearch.Focus();
|
||||
}
|
||||
|
||||
private void btn_cancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ViewModel.InvoiceBases != null)
|
||||
ViewModel.InvoiceBases.Clear();
|
||||
this.CancelButtonClicked(this, e);
|
||||
}
|
||||
private void btn_create_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.Fire();
|
||||
}
|
||||
private void btn_cancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ViewModel.InvoiceBases != null)
|
||||
ViewModel.InvoiceBases.Clear();
|
||||
this.CancelButtonClicked(this, e);
|
||||
}
|
||||
private void btn_create_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.Fire();
|
||||
}
|
||||
|
||||
private void TableView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
var si = e.Row as InvoiceBaseDC;
|
||||
if (e.Column.FieldName.Contains("NeuErstellen") && ((bool)e.Value))
|
||||
{
|
||||
if (si.DiffErstellen)
|
||||
{
|
||||
si.DiffErstellen = false;
|
||||
grid_newInvoices.RefreshData();
|
||||
}
|
||||
}
|
||||
else if (e.Column.FieldName.Contains("DiffErstellen") && ((bool)e.Value))
|
||||
{
|
||||
if (si.NeuErstellen)
|
||||
{
|
||||
si.NeuErstellen = false;
|
||||
grid_newInvoices.RefreshData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void popupedit_GkvSearch_PopUpClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
gkvsearchview.ItemSelected += gkvsearchview_OrganisationSelected;
|
||||
popup_organisation.IsOpen = true;
|
||||
}
|
||||
private void gkvsearchview_OrganisationSelected(object sender, EventArgs<CompactOrganisationDC> e)
|
||||
{
|
||||
popup_organisation.IsOpen = false;
|
||||
gkvsearchview.ItemSelected -= gkvsearchview_OrganisationSelected;
|
||||
private void TableView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
var si = e.Row as InvoiceBaseDC;
|
||||
if (e.Column.FieldName.Contains("NeuErstellen") && ((bool)e.Value))
|
||||
{
|
||||
if (si.DiffErstellen)
|
||||
{
|
||||
si.DiffErstellen = false;
|
||||
grid_newInvoices.RefreshData();
|
||||
}
|
||||
}
|
||||
else if (e.Column.FieldName.Contains("DiffErstellen") && ((bool)e.Value))
|
||||
{
|
||||
if (si.NeuErstellen)
|
||||
{
|
||||
si.NeuErstellen = false;
|
||||
grid_newInvoices.RefreshData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
popupedit_GkvSearch.Text = e.Data.ToString();
|
||||
popupedit_GkvSearch.Focus();
|
||||
private void popupedit_GkvSearch_PopUpClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
gkvsearchview.ItemSelected += gkvsearchview_OrganisationSelected;
|
||||
popup_organisation.IsOpen = true;
|
||||
}
|
||||
private void gkvsearchview_OrganisationSelected(object sender, EventArgs<CompactOrganisationDC> e)
|
||||
{
|
||||
popup_organisation.IsOpen = false;
|
||||
gkvsearchview.ItemSelected -= gkvsearchview_OrganisationSelected;
|
||||
|
||||
RefreshInvoiceBases(e.Data.OrganisationOid);
|
||||
}
|
||||
popupedit_GkvSearch.Text = e.Data.ToString();
|
||||
popupedit_GkvSearch.Focus();
|
||||
|
||||
private void RefreshInvoiceBases() => RefreshInvoiceBases(_LoadedInvoiceBaseOid);
|
||||
private void RefreshInvoiceBases(DateTime? start, DateTime? ende) => RefreshInvoiceBases(_LoadedInvoiceBaseOid, start ?? FilterStart, ende ?? FilterEnde);
|
||||
private void RefreshInvoiceBases(long? costOid) => RefreshInvoiceBases(costOid, FilterStart, FilterEnde);
|
||||
private void RefreshInvoiceBases(long? costOid, DateTime? start, DateTime? ende)
|
||||
{
|
||||
if (costOid != null && start != null && ende != null && ende >= start)
|
||||
{
|
||||
_LoadedInvoiceBaseOid = costOid;
|
||||
RefreshInvoiceBases(e.Data.OrganisationOid);
|
||||
}
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBasesForCostBearerAndId(start, ende, (long)costOid, "RechnungSoziotherapie"), UpdateInvoiceList);
|
||||
}
|
||||
}
|
||||
private void RefreshInvoiceBases() => RefreshInvoiceBases(_LoadedInvoiceBaseOid);
|
||||
private void RefreshInvoiceBases(DateTime? start, DateTime? ende) => RefreshInvoiceBases(_LoadedInvoiceBaseOid, start ?? FilterStart, ende ?? FilterEnde);
|
||||
private void RefreshInvoiceBases(long? costOid) => RefreshInvoiceBases(costOid, FilterStart, FilterEnde);
|
||||
private void RefreshInvoiceBases(long? costOid, DateTime? start, DateTime? ende)
|
||||
{
|
||||
if (costOid != null && start != null && ende != null && ende >= start)
|
||||
{
|
||||
_LoadedInvoiceBaseOid = costOid;
|
||||
|
||||
private void UpdateInvoiceList(IList<InvoiceBaseDC> dcList)
|
||||
{
|
||||
this.Dispatcher.BeginInvoke(
|
||||
DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
BindingList <InvoiceBaseVM> invoiceBaseVMs = new BindingList<InvoiceBaseVM>();
|
||||
foreach (var invoiceBaseDC in dcList)
|
||||
{
|
||||
InvoiceBaseVM invoiceBaseVM = new InvoiceBaseVM(invoiceBaseDC);
|
||||
invoiceBaseVM.IsChecked = false;
|
||||
invoiceBaseVMs.Add(invoiceBaseVM);
|
||||
}
|
||||
ViewModel.InvoiceBases = invoiceBaseVMs;
|
||||
grid_newInvoices.ItemsSource = ViewModel.InvoiceBases;
|
||||
this.gridView.BestFitColumns();
|
||||
});
|
||||
}
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBasesForCostBearerAndIdAndIsUsed(start, ende, (long)costOid, "RechnungSoziotherapie"), UpdateInvoiceList);
|
||||
}
|
||||
}
|
||||
|
||||
private void popupedit_DatenannahmestelleSearch_PopUpClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// tbd
|
||||
}
|
||||
private void UpdateInvoiceList(IList<InvoiceBaseDC> dcList)
|
||||
{
|
||||
this.Dispatcher.BeginInvoke(
|
||||
DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
BindingList<InvoiceBaseVM> invoiceBaseVMs = new BindingList<InvoiceBaseVM>();
|
||||
foreach (var invoiceBaseDC in dcList)
|
||||
{
|
||||
InvoiceBaseVM invoiceBaseVM = new InvoiceBaseVM(invoiceBaseDC);
|
||||
invoiceBaseVM.IsChecked = false;
|
||||
invoiceBaseVMs.Add(invoiceBaseVM);
|
||||
}
|
||||
ViewModel.InvoiceBases = invoiceBaseVMs;
|
||||
ViewModel.InvoiceBases.ListChanged += (s, e) => ViewModel.FirePropertyIsReady2CreateChanged();
|
||||
grid_newInvoices.ItemsSource = ViewModel.InvoiceBases;
|
||||
this.gridView.BestFitColumns();
|
||||
});
|
||||
}
|
||||
|
||||
private void button_checkAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = true;
|
||||
}
|
||||
}
|
||||
private void button_uncheckAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = false;
|
||||
}
|
||||
}
|
||||
private void popupedit_DatenannahmestelleSearch_PopUpClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// tbd
|
||||
}
|
||||
|
||||
private void button_checkAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleAndValidVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = true;
|
||||
}
|
||||
}
|
||||
private void button_uncheckAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleAndValidVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private IList<InvoiceBaseVM> GetVisibleVMs()
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
private IList<InvoiceBaseVM> GetVisibleAndValidVMs()
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
|
||||
var items = grid_newInvoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
var items = grid_newInvoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
if (grid_newInvoices.IsRowVisible(i))
|
||||
{
|
||||
var vm = grid_newInvoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (items is null)
|
||||
return list;
|
||||
|
||||
return list;
|
||||
}
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
if (!grid_newInvoices.IsRowVisible(i))
|
||||
continue;
|
||||
|
||||
private void DateEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
if (_Viewmodel is null)
|
||||
return;
|
||||
var vm = grid_newInvoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm is null)
|
||||
continue;
|
||||
|
||||
if (FilterStart == (DateTime)e.NewValue)
|
||||
return;
|
||||
if (!vm.IsGkvValid)
|
||||
continue;
|
||||
|
||||
// Von
|
||||
FilterStart = (DateTime)e.NewValue;
|
||||
list.Add(vm);
|
||||
}
|
||||
|
||||
if(FilterEnde < FilterStart)
|
||||
{
|
||||
FilterEnde = new DateTime(FilterStart.Year, FilterStart.Month, 1).AddMonths(1).AddTicks(-1);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
if(FilterEnde.Year != FilterStart.Year)
|
||||
{
|
||||
FilterEnde = new DateTime(FilterStart.Year, FilterStart.Month, 1).AddMonths(1).AddTicks(-1);
|
||||
}
|
||||
private void DateEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
if (_Viewmodel is null)
|
||||
return;
|
||||
|
||||
RefreshInvoiceBases();
|
||||
}
|
||||
if (FilterStart == (DateTime)e.NewValue)
|
||||
return;
|
||||
|
||||
private void DateEdit2_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
if (_Viewmodel is null)
|
||||
return;
|
||||
// Von
|
||||
FilterStart = (DateTime)e.NewValue;
|
||||
|
||||
if (FilterEnde == (DateTime)e.NewValue)
|
||||
return;
|
||||
if (FilterEnde < FilterStart)
|
||||
{
|
||||
FilterEnde = new DateTime(FilterStart.Year, FilterStart.Month, 1).AddMonths(1).AddTicks(-1);
|
||||
}
|
||||
|
||||
// Bis
|
||||
FilterEnde = (DateTime)e.NewValue;
|
||||
if (FilterEnde.Year != FilterStart.Year)
|
||||
{
|
||||
FilterEnde = new DateTime(FilterStart.Year, FilterStart.Month, 1).AddMonths(1).AddTicks(-1);
|
||||
}
|
||||
|
||||
if (FilterEnde < FilterStart)
|
||||
{
|
||||
FilterStart = new DateTime(FilterEnde.Year, 1, 1);
|
||||
}
|
||||
RefreshInvoiceBases();
|
||||
}
|
||||
|
||||
if (FilterEnde.Year != FilterStart.Year)
|
||||
{
|
||||
FilterStart = new DateTime(FilterEnde.Year, FilterEnde.Month, 1);
|
||||
}
|
||||
private void DateEdit2_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
||||
{
|
||||
if (_Viewmodel is null)
|
||||
return;
|
||||
|
||||
RefreshInvoiceBases();
|
||||
}
|
||||
}
|
||||
if (FilterEnde == (DateTime)e.NewValue)
|
||||
return;
|
||||
|
||||
// Bis
|
||||
FilterEnde = (DateTime)e.NewValue;
|
||||
|
||||
if (FilterEnde < FilterStart)
|
||||
{
|
||||
FilterStart = new DateTime(FilterEnde.Year, 1, 1);
|
||||
}
|
||||
|
||||
if (FilterEnde.Year != FilterStart.Year)
|
||||
{
|
||||
FilterStart = new DateTime(FilterEnde.Year, FilterEnde.Month, 1);
|
||||
}
|
||||
|
||||
RefreshInvoiceBases();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,16 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.MandatorView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Focusable="True">
|
||||
<localView:BeWoView
|
||||
x:Class="BeWo.View.Detail.MandatorView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Focusable="True">
|
||||
<Grid x:Name="root">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -24,13 +28,40 @@
|
||||
<ColumnDefinition Width="*" MaxWidth="420" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Name</Label>
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center">
|
||||
Name
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">IK Nummer (Leistungserbringer)</Label>
|
||||
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center">
|
||||
IK Nummer (Leistungserbringer)
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<GroupBox Margin="3 20 3 3" Grid.Row="2" Grid.ColumnSpan="2" Header="Adresse" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
Grid.Row="2"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="Adresse"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -42,18 +73,56 @@
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Strasse</Label>
|
||||
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">Postleitzahl</Label>
|
||||
<Label Grid.Column="0" Grid.Row="2" Margin="3" VerticalAlignment="Center">Ort</Label>
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center">
|
||||
Strasse
|
||||
</Label>
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center">
|
||||
Postleitzahl
|
||||
</Label>
|
||||
<Label
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center">
|
||||
Ort
|
||||
</Label>
|
||||
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="3 20 3 3" Grid.Row="3" Grid.ColumnSpan="2" Header="Einstellungen" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
Grid.Row="3"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="Einstellungen"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid x:Name="EinstellungenGrid">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -72,31 +141,82 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
|
||||
Zeit in Minuten bis der BeWoPlaner nach Inaktivität gesperrt wird
|
||||
<TextBlock
|
||||
Grid.Row="3"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
TextWrapping="Wrap">
|
||||
Zeit in Minuten bis der BeWoPlaner nach Inaktivität gesperrt wird
|
||||
</TextBlock>
|
||||
<dxe:SpinEdit x:Name="LockUITimeSpinEdit" IsFloatValue="False" MinValue="0" MaxValue="999"
|
||||
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23"
|
||||
EditValue="{Binding Path=TimeUntilUILock, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="LockUITimeSpinEdit"
|
||||
Grid.Row="3"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=TimeUntilUILock, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="999"
|
||||
MinValue="0" />
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="4" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
TextWrapping="Wrap">
|
||||
Zeit in Minuten bis die Session in der Mobilversion abläuft
|
||||
</TextBlock>
|
||||
<dxe:SpinEdit x:Name="MoKSessionTimeoutSpinEdit" IsFloatValue="False" MinValue="20" MaxValue="60"
|
||||
Grid.Column="1" Grid.Row="4" Margin="3,5,3,5" Height="23"
|
||||
EditValue="{Binding Path=MoKSessionTimeout, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="MoKSessionTimeoutSpinEdit"
|
||||
Grid.Row="4"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=MoKSessionTimeout, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="60"
|
||||
MinValue="20" />
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="5" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Monate\, ab der eine Warnung für auslaufende Hilfepläne angezeigt wird}"/>
|
||||
<dxe:SpinEdit x:Name="helpplan" IsFloatValue="False" MinValue="0" MaxValue="999"
|
||||
Grid.Column="1" Grid.Row="5" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=HilfeplanAuslaufAuswahl, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<TextBlock
|
||||
Grid.Row="5"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Anzahl Monate\, ab der eine Warnung für auslaufende Hilfepläne angezeigt wird}"
|
||||
TextWrapping="Wrap" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="helpplan"
|
||||
Grid.Row="5"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=HilfeplanAuslaufAuswahl, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="999"
|
||||
MinValue="0" />
|
||||
|
||||
<CheckBox Margin="3,5,3,5" Content="Passwortsicherheit aktivieren" IsChecked="{Binding Path=IsPasswordSecurityActiv}" Grid.ColumnSpan="2" Grid.Row="7" />
|
||||
<CheckBox
|
||||
Grid.Row="7"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="Passwortsicherheit aktivieren"
|
||||
IsChecked="{Binding Path=IsPasswordSecurityActiv}" />
|
||||
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="3 20 3 3" Grid.Row="4" Grid.ColumnSpan="2" Header="{markup:Translate Zeiterfassung}" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
Grid.Row="4"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="{markup:Translate Zeiterfassung}"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -116,40 +236,149 @@
|
||||
<ColumnDefinition Width="50" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<CheckBox Grid.Row="0" Margin="3,5,3,5" Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}" IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" Grid.ColumnSpan="2"></CheckBox>
|
||||
<CheckBox
|
||||
Grid.Row="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}"
|
||||
IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" />
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="1" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Tage des Folgemonats\, nach denen die Zeiterfassungseinträge des vergangenen Monats nicht mehr verändert werden oder neue Zeiterfassungseinträge angelegt werden dürfen (0 für unbegrenzt).}"/>
|
||||
<dxe:SpinEdit IsFloatValue="False" MinValue="0" Grid.Column="1" Grid.Row="1" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=MaxDaysEditServiceRecordsAllowed, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<TextBlock
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Anzahl Tage des Folgemonats\, nach denen die Zeiterfassungseinträge des vergangenen Monats nicht mehr verändert werden oder neue Zeiterfassungseinträge angelegt werden dürfen (0 für unbegrenzt).}"
|
||||
TextWrapping="Wrap" />
|
||||
<dxe:SpinEdit
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=MaxDaysEditServiceRecordsAllowed, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MinValue="0" />
|
||||
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="2" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Tage\, in der die Zeiterfassung erfolgen muss (0 für unbegrenzt)}"/>
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Schwellwert in %\, ab der das Restbudget in der Zeiterfassung rot markiert wird}"/>
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Anzahl Tage\, in der die Zeiterfassung erfolgen muss (0 für unbegrenzt)}"
|
||||
TextWrapping="Wrap" />
|
||||
<TextBlock
|
||||
Grid.Row="3"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Schwellwert in %\, ab der das Restbudget in der Zeiterfassung rot markiert wird}"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<dxe:SpinEdit x:Name="AnzTageZeiterfassErfolgt" IsFloatValue="False" MinValue="0" MaxValue="999"
|
||||
Grid.Column="1" Grid.Row="2" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=AnzTageZeiterfassErfolgt, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="AnzTageZeiterfassErfolgt"
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=AnzTageZeiterfassErfolgt, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="999"
|
||||
MinValue="0" />
|
||||
|
||||
<dxe:SpinEdit x:Name="ZeiterfassungsSchwellwert" IsFloatValue="False" MinValue="0" MaxValue="100" Value="80"
|
||||
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=ZeiterfassungsSchwellwert, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="ZeiterfassungsSchwellwert"
|
||||
Grid.Row="3"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=ZeiterfassungsSchwellwert, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="100"
|
||||
MinValue="0"
|
||||
Value="80" />
|
||||
|
||||
|
||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="4" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Zeiteinheit der Dauer}"/>
|
||||
<ComboBox x:Name="ComboZeiteinheit" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="160,5,3,5" Height="23" SelectionChanged="ComboZeiteinheit_SelectionChanged"/>
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Zeiteinheit der Dauer}"
|
||||
TextWrapping="Wrap" />
|
||||
<ComboBox
|
||||
x:Name="ComboZeiteinheit"
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Height="23"
|
||||
Margin="160,5,3,5"
|
||||
SelectionChanged="ComboZeiteinheit_SelectionChanged" />
|
||||
|
||||
|
||||
|
||||
<CheckBox Margin="3,5,3,5" Content="{markup:Translate Enddatum anzeigen}" IsChecked="{Binding Path=IsEndDateVisible}" Grid.ColumnSpan="2" Grid.Row="6" />
|
||||
<CheckBox
|
||||
Grid.Row="6"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Enddatum anzeigen}"
|
||||
IsChecked="{Binding Path=IsEndDateVisible}" />
|
||||
|
||||
<CheckBox x:Name="EnableArbeitszeiterfassung" Margin="3,20,3,5" Content="{markup:Translate Arbeitszeit mit BeWoPlaner erfassen}" IsChecked="{Binding Path=EnableArbeitszeiterfassung}" Grid.ColumnSpan="2" Grid.Row="7" />
|
||||
<CheckBox x:Name="EnableAutomaticPauses" Margin="3,5,3,5" Content="{markup:Translate Automatischer Pausenabzug}" IsChecked="{Binding Path=EnableAutomaticPauses}" Grid.ColumnSpan="2" Grid.Row="8" />
|
||||
<CheckBox x:Name="EnableRestTimeWarning" Margin="3,5,3,5" Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}" IsChecked="{Binding Path=EnableRestTimeWarning}" Grid.ColumnSpan="2" Grid.Row="9" />
|
||||
<CheckBox
|
||||
x:Name="EnableArbeitszeiterfassung"
|
||||
Grid.Row="7"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,5"
|
||||
Content="{markup:Translate Arbeitszeit mit BeWoPlaner erfassen}"
|
||||
IsChecked="{Binding Path=EnableArbeitszeiterfassung}" />
|
||||
<CheckBox
|
||||
x:Name="EnableAutomaticPauses"
|
||||
Grid.Row="8"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Automatischer Pausenabzug}"
|
||||
IsChecked="{Binding Path=EnableAutomaticPauses}" />
|
||||
<CheckBox
|
||||
x:Name="EnableRestTimeWarning"
|
||||
Grid.Row="9"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}"
|
||||
IsChecked="{Binding Path=EnableRestTimeWarning}" />
|
||||
|
||||
<TextBlock x:Name="TextBlockShowWarning" Foreground="Black" Grid.Column="0" Grid.Row="10" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Stunden\, ab der eine Warnung angezeigt wird}"/>
|
||||
<dxe:SpinEdit x:Name="SpinEditShowWarning" IsFloatValue="False" Value="10" MinValue="0" Grid.Column="1" Grid.Row="10" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=MaxWorkTimeHoursBeforeWarning, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<TextBlock
|
||||
x:Name="TextBlockShowWarning"
|
||||
Grid.Row="10"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Anzahl Stunden\, ab der eine Warnung angezeigt wird}"
|
||||
TextWrapping="Wrap" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="SpinEditShowWarning"
|
||||
Grid.Row="10"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=MaxWorkTimeHoursBeforeWarning, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MinValue="0"
|
||||
Value="10" />
|
||||
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="3 20 3 3" Grid.Row="5" Grid.ColumnSpan="2" Header="Rechnungsnummer" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
Grid.Row="5"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="Rechnungsnummer"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -162,38 +391,100 @@
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
|
||||
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding InvoiceNumber.Use}" />
|
||||
<Label
|
||||
Margin="3"
|
||||
VerticalAlignment="Center"
|
||||
Content="Automatische Rechnungsnummer verwenden" />
|
||||
<dxe:CheckEdit
|
||||
Grid.Column="1"
|
||||
Width="200"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
IsChecked="{Binding InvoiceNumber.Use}" />
|
||||
|
||||
<Label x:Name="lblSchema" Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
|
||||
<TextBox x:Name="txtSchema" Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding InvoiceNumber.Pattern}" />
|
||||
<Label
|
||||
x:Name="lblSchema"
|
||||
Grid.Row="1"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center"
|
||||
Content="Schema" />
|
||||
<TextBox
|
||||
x:Name="txtSchema"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Width="200"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
Text="{Binding InvoiceNumber.Pattern}" />
|
||||
|
||||
<Label x:Name="lblNumber" Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
|
||||
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False" MaxValue="999999999"
|
||||
Height="23" Width="200" EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
|
||||
<Label
|
||||
x:Name="lblNumber"
|
||||
Grid.Row="2"
|
||||
Margin="3"
|
||||
VerticalAlignment="Center"
|
||||
Content="Aktuelle Nummer" />
|
||||
<dxe:SpinEdit
|
||||
Name="spinedit_number"
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Width="200"
|
||||
Height="23"
|
||||
EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="999999999" />
|
||||
|
||||
<dxg:GridControl x:Name="GridControlInvoiceNumbers" Margin="0,10,0,0" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" ItemsSource="{Binding InvoiceNumberList}">
|
||||
<dxg:GridControl
|
||||
x:Name="GridControlInvoiceNumbers"
|
||||
Grid.Row="3"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="0,10,0,0"
|
||||
ItemsSource="{Binding InvoiceNumberList}">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Name" Header="Name" Width="100" SortOrder="Ascending" SortIndex="0" AllowEditing="False">
|
||||
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Pattern" Header="Schema" Width="100">
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="CurrentNumber" Header="Aktuelle Nummer" Width="100">
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
AllowEditing="False"
|
||||
FieldName="Name"
|
||||
Header="Name"
|
||||
SortIndex="0"
|
||||
SortOrder="Ascending" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
FieldName="Pattern"
|
||||
Header="Schema" />
|
||||
<dxg:GridColumn
|
||||
Width="100"
|
||||
FieldName="CurrentNumber"
|
||||
Header="Aktuelle Nummer">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings DisplayFormat="0" Mask="########0" MaskType="Numeric"></dxe:TextEditSettings>
|
||||
<dxe:TextEditSettings
|
||||
DisplayFormat="0"
|
||||
Mask="########0"
|
||||
MaskType="Numeric" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
<dxg:TableView
|
||||
AutoWidth="true"
|
||||
NavigationStyle="Cell"
|
||||
ShowGroupPanel="False"
|
||||
ShowGroupedColumns="false"
|
||||
ShowTotalSummary="False" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox x:Name="groupBoxSozio" Margin="3 20 3 3" Grid.Row="6" Grid.ColumnSpan="2" Header="Soziotherapie" Style="{StaticResource ObjectEditGroupBox}" Visibility="Collapsed">
|
||||
<!--Kann frei genutzt werden-->
|
||||
<GroupBox
|
||||
x:Name="groupBoxSozio"
|
||||
Grid.Row="6"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="Soziotherapie"
|
||||
Style="{StaticResource ObjectEditGroupBox}"
|
||||
Visibility="Collapsed">
|
||||
<!-- Kann frei genutzt werden -->
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -205,7 +496,13 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Margin="3 20 3 3" x:Name="GroupOwnChatSettings" Grid.Row="7" Grid.ColumnSpan="2" Header="{markup:Translate ownChat Einstellungen}" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<GroupBox
|
||||
x:Name="GroupOwnChatSettings"
|
||||
Grid.Row="7"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,3"
|
||||
Header="{markup:Translate ownChat Einstellungen}"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
@@ -214,10 +511,17 @@
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock VerticalAlignment="Center" Margin="8,10,0,0" FontSize="12" Foreground="{DynamicResource MainGroupBoxForegroundBrush}">
|
||||
<Hyperlink x:Name="HyperlinkOwnChatSettings" TargetName="_NewWindow" Click="Hyperlink_ShowOwnChatSettings_Click">
|
||||
<TextBlock
|
||||
Margin="8,10,0,0"
|
||||
VerticalAlignment="Center"
|
||||
FontSize="12"
|
||||
Foreground="{DynamicResource MainGroupBoxForegroundBrush}">
|
||||
<Hyperlink
|
||||
x:Name="HyperlinkOwnChatSettings"
|
||||
Click="Hyperlink_ShowOwnChatSettings_Click"
|
||||
TargetName="_NewWindow">
|
||||
<Hyperlink.Inlines>
|
||||
<Run Text="{markup:Translate ownChat Einstellungen öffnen}"/>
|
||||
<Run Text="{markup:Translate ownChat Einstellungen öffnen}" />
|
||||
</Hyperlink.Inlines>
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
x:Class="BeWo.View.Detail.OrganisationView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
@@ -9,7 +10,7 @@
|
||||
xmlns:search="clr-namespace:BeWo.View.Search"
|
||||
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:val="clr-namespace:BeWo.Validation" xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -579,6 +580,8 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -591,102 +594,124 @@
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center">
|
||||
IK Krankenkasse
|
||||
</Label>
|
||||
<TextBox
|
||||
IK Krankenkasse
|
||||
</Label>
|
||||
<DockPanel
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKKrankenkasse, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
HorizontalAlignment="Stretch">
|
||||
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKKrankenkasse, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</DockPanel>
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center">
|
||||
IK Kostenträger
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKKostentrager, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center">
|
||||
IK Datenannahmestelle
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="3"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding Converter={StaticResource AppSettings2Visible}, ConverterParameter=AllowGkvAbrechnung}"
|
||||
ToolTip="Bezeichnung Datenannahmestelle">
|
||||
Bez. Datenannahmeste...
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="3"
|
||||
Grid.Column="1"
|
||||
Visibility="{Binding Converter={StaticResource AppSettings2Visible}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}"
|
||||
Text="{Binding Path=BezDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip="Abrechnungscode + Tarifkennzeichen. Zum Beispiel: 6901000">
|
||||
Leistungserbringergruppe
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="4"
|
||||
Leistungserbringergruppe
|
||||
</Label>
|
||||
<Button
|
||||
x:Name="btn_ik"
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
Click="IKNumber_Button_Click"
|
||||
IsEnabled="{Binding IsIKNumberValid}"
|
||||
Style="{StaticResource PrimaryButtonSmall}"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
|
||||
Weitere IK's ermitteln
|
||||
</Button>
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=Leistungserbringergruppe, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
<Label
|
||||
Grid.Row="3"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center">
|
||||
IK Kostenträger
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="3"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKKostentrager, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center">
|
||||
IK Datenannahmestelle
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="4"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=IKDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label
|
||||
Grid.Row="5"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding Converter={StaticResource AppSettings2Visible}, ConverterParameter=AllowGkvAbrechnung}">
|
||||
Verfahrensstufe
|
||||
</Label>
|
||||
<StackPanel
|
||||
ToolTip="Bezeichnung Datenannahmestelle"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
|
||||
Bez. Datenannahmeste...
|
||||
</Label>
|
||||
<TextBox
|
||||
Grid.Row="5"
|
||||
Grid.Column="1"
|
||||
Text="{Binding Path=BezDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}" />
|
||||
<Label
|
||||
Grid.Row="6"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
|
||||
Echtverfahren
|
||||
</Label>
|
||||
<CheckBox
|
||||
Grid.Row="6"
|
||||
Grid.Column="1"
|
||||
IsChecked="{Binding Echtverfahren}"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}" />
|
||||
<Label
|
||||
x:Name="label_verfahrensstufe"
|
||||
Grid.Row="7"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
|
||||
Verfahrensstufe
|
||||
</Label>
|
||||
<StackPanel
|
||||
x:Name="radiobuttons_verfahrensstufe"
|
||||
Grid.Row="7"
|
||||
Grid.Column="1"
|
||||
Orientation="Horizontal"
|
||||
Visibility="{Binding Converter={StaticResource AppSettings2Visible}, ConverterParameter=AllowGkvAbrechnung}">
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=0}">Test</RadioButton>
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=1}">Erprobung</RadioButton>
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=2}">Echt</RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<Grid Grid.Row="3" Grid.ColumnSpan="4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Content="Notizen" />
|
||||
<TextBox
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Height="Auto"
|
||||
Margin="3"
|
||||
AcceptsReturn="True"
|
||||
MaxLength="1000"
|
||||
Text="{Binding Path=Notice, UpdateSourceTrigger=PropertyChanged}"
|
||||
TextWrapping="Wrap"
|
||||
VerticalScrollBarVisibility="Visible" />
|
||||
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=0}">Test</RadioButton>
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=1}">Erprobung</RadioButton>
|
||||
<RadioButton GroupName="a" IsChecked="{Binding Path=VerfahrensstufeInt, Converter={StaticResource RadioBoolToIntConverter}, ConverterParameter=2}">Echt</RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox
|
||||
Grid.Row="3"
|
||||
Grid.ColumnSpan="4"
|
||||
Margin="0,8,0,0"
|
||||
Header="Notizen"
|
||||
Style="{StaticResource ObjectEditGroupBox}">
|
||||
<TextBox
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Height="Auto"
|
||||
Margin="3"
|
||||
AcceptsReturn="True"
|
||||
MaxLength="1000"
|
||||
Text="{Binding Path=Notice, UpdateSourceTrigger=PropertyChanged}"
|
||||
TextWrapping="Wrap"
|
||||
VerticalScrollBarVisibility="Visible" />
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</GroupBox>
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
|
||||
@@ -1155,18 +1180,27 @@
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Horizontal">
|
||||
<StackPanel.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="..\..\Styles\ModernOrangeBlack.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</StackPanel.Resources>
|
||||
<Button
|
||||
x:Name="btnSave"
|
||||
Height="25"
|
||||
Margin="0,0,2,0"
|
||||
Command="ApplicationCommands.Save"
|
||||
Content="Speichern" />
|
||||
Content="Speichern"
|
||||
Style="{StaticResource PrimaryButton}" />
|
||||
<Button
|
||||
x:Name="btnClose"
|
||||
Height="25"
|
||||
Margin="0,0,3,0"
|
||||
Command="ApplicationCommands.Close"
|
||||
Content="Schließen" />
|
||||
Content="Schließen"
|
||||
Style="{StaticResource PrimaryButton}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Navigation;
|
||||
|
||||
using BeWo.Core;
|
||||
@@ -14,6 +15,7 @@ using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
using DevExpress.Xpf.Grid;
|
||||
@@ -59,6 +61,11 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
tabitem_documents.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
#if !DEBUG
|
||||
label_verfahrensstufe.Visibility = Visibility.Collapsed;
|
||||
radiobuttons_verfahrensstufe.Visibility = Visibility.Collapsed;
|
||||
#endif
|
||||
}
|
||||
|
||||
public event EventHandler<EventArgs<OrganisationVM>> OrganisationSavedOrUpdated;
|
||||
@@ -302,9 +309,40 @@ namespace BeWo.View.Detail
|
||||
ov.Margin = new Thickness(0, 10, 0, 0);
|
||||
Grid.SetRow(ov, 1);
|
||||
GridSBD.Children.Add(ov);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void IKNumber_Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var req = new GkvAbrechnungGetIKRequestDC();
|
||||
|
||||
req.IKKrankenkasse = ViewModel.IKKrankenkasse;
|
||||
req.Leistungserbringergruppe = ViewModel.Leistungserbringergruppe;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.SendGetIKRequest(req), cb => Dispatcher.Invoke(() => IKRequestCallback(req, cb)));
|
||||
}
|
||||
|
||||
private void IKRequestCallback(GkvAbrechnungGetIKRequestDC req, GkvAbrechnungGetIKResponseDC response)
|
||||
{
|
||||
if(response is null || !response.Success)
|
||||
{
|
||||
MessageBox.Show($"Interner Serverfehler.", "Fehler");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!response.Gefunden)
|
||||
{
|
||||
MessageBox.Show($"Für die Organisation mit dem IK \"{req.IKKrankenkasse}\" und Leistungserbringergruppe \"{req.Leistungserbringergruppe}\" konnte keine Datenannahmestelle gefunden werden. " +
|
||||
$"Bitte informieren Sie sich bei der Krankenkasse, ob zum elektronischen Datenaustausch " +
|
||||
$"eine seperate Anmeldung benötigt wird.", "Fehler");
|
||||
return;
|
||||
}
|
||||
|
||||
ViewModel.BezDatenannahmestelle = response.BezDatenannahmestelle;
|
||||
ViewModel.IKKostentrager = response.IKKostentrager;
|
||||
ViewModel.IKDatenannahmestelle = response.IKDatenannahmestelle;
|
||||
|
||||
CommandManager.InvalidateRequerySuggested();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,18 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.UserGroupView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:val="clr-namespace:BeWo.Validation" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
|
||||
<localView:BeWoView
|
||||
x:Class="BeWo.View.Detail.UserGroupView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
d:DataContext="{d:DesignInstance Type=viewmodel:UserGroupVM}"
|
||||
mc:Ignorable="d"
|
||||
Height="Auto" Width="Auto"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
||||
Focusable="True">
|
||||
<Grid>
|
||||
<uc:ShadowChrome>
|
||||
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
|
||||
|
||||
@@ -132,15 +132,20 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
if (ServiceFacade.DoUserServiceSync(a => a.CheckUserGroupIsLastWithUserGroupEditRights(ViewModel.DataContract.UserGroupOid.Value)))
|
||||
{
|
||||
MessageBox.Show("Die ausgewählten Rechte können der " + BS.Shared.Translation.Translator.Translate("Benutzergruppe") + " nicht entfernt werden, da sie die einzige " + BS.Shared.Translation.Translator.Translate("Benutzergruppe") + " ist, die dazu berechtigt ist, " + BS.Shared.Translation.Translator.Translate("Benutzergruppen") + " zu verwalten.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
var gruppe = BS.Shared.Translation.Translator.Translate("Benutzergruppe");
|
||||
var gruppen = BS.Shared.Translation.Translator.Translate("Benutzergruppen");
|
||||
var txt = $"Die ausgewählten Rechte können der {gruppe} nicht entfernt werden, da sie die einzige {gruppe} ist, die dazu berechtigt ist, {gruppen} zu verwalten.";
|
||||
MessageBox.Show(txt, "Fehler", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item in removedItems)
|
||||
{
|
||||
ViewModel.Rights.Remove(item.Key);
|
||||
}
|
||||
//foreach (var item in removedItems)
|
||||
//{
|
||||
// ViewModel.Rights.Remove(item.Key);
|
||||
//}
|
||||
|
||||
ViewModel.Rights.RemoveRange(removedRights);
|
||||
|
||||
ViewModel.Rights.Sort();
|
||||
}
|
||||
|
||||
@@ -4,15 +4,19 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:accounting="clr-namespace:BeWo.View.Detail.Accounting"
|
||||
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
|
||||
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
|
||||
Width="Auto"
|
||||
Height="Auto"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Focusable="True">
|
||||
Focusable="True"
|
||||
Loaded="BeWoView_Loaded"
|
||||
Unloaded="BeWoView_Unloaded">
|
||||
|
||||
<Grid>
|
||||
<uc:ShadowChrome>
|
||||
@@ -103,8 +107,14 @@
|
||||
Selector.Selected="tabitem_gkvabrechnung_Selected">
|
||||
<TabItem.Visibility>
|
||||
<MultiBinding Converter="{StaticResource BooleanAndVisibilityMultiConverter}">
|
||||
<Binding Converter="{StaticResource AppSettingsConverter}" ConverterParameter="{x:Static core:SettingsKeys.AllowGkvAbrechnung}"/>
|
||||
<Binding Converter="{StaticResource UserRightType2Enabled}" ConverterParameter="{x:Static shared:UserRightType.Finance_Gkv_View}"/>
|
||||
<Binding
|
||||
Converter="{StaticResource UserPermission2BoolConverter}"
|
||||
ConverterParameter="{x:Static core:SettingsKeys.AllowGkvAbrechnung}"
|
||||
Path="Itself" />
|
||||
<Binding
|
||||
Converter="{StaticResource UserPermission2BoolConverter}"
|
||||
ConverterParameter="{x:Static shared:UserRightType.Finance_Gkv_View}"
|
||||
Path="Itself" />
|
||||
</MultiBinding>
|
||||
</TabItem.Visibility>
|
||||
</TabItem>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
using System.Windows.Data;
|
||||
using BeWo.Core.Service;
|
||||
using BeWo.View.Detail;
|
||||
using BeWo.View.Detail.Accounting;
|
||||
@@ -16,16 +17,19 @@ namespace BeWo.View.Master
|
||||
{
|
||||
public partial class FinanceView
|
||||
{
|
||||
private readonly Dictionary<TabItem, BeWoView> _OpenViews = new Dictionary<TabItem, BeWoView>();
|
||||
private readonly Dictionary<TabItem, BeWoView> _OpenViews = new Dictionary<TabItem, BeWoView>();
|
||||
|
||||
private bool _SavePerformed;
|
||||
private bool _AlreadyLoaded = false;
|
||||
|
||||
public FinanceView()
|
||||
public FinanceView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
InitRights();
|
||||
|
||||
DataContext = new BaseVM();
|
||||
|
||||
#if DEBUG
|
||||
if(DebugConfig.CurrentConfig is DebugConfig config && config.SelectView == UIContext.Finance)
|
||||
{
|
||||
@@ -63,16 +67,16 @@ namespace BeWo.View.Master
|
||||
{
|
||||
var lDoSave = true;
|
||||
|
||||
if (root.SelectedItem != null)
|
||||
if (root.SelectedItem is TabItem selected)
|
||||
{
|
||||
if (_OpenViews.ContainsKey(root.SelectedItem as TabItem))
|
||||
if (_OpenViews.ContainsKey(selected))
|
||||
{
|
||||
lDoSave = _OpenViews[root.SelectedItem as TabItem].DoSaveCheck();
|
||||
lDoSave = _OpenViews[selected].DoSaveCheck();
|
||||
|
||||
if (lDoSave && IsDirty)
|
||||
{
|
||||
_SavePerformed = true;
|
||||
_OpenViews.Remove(root.SelectedItem as TabItem);
|
||||
_OpenViews.Remove(selected);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -92,6 +96,12 @@ namespace BeWo.View.Master
|
||||
pTabItem.Content = pView;
|
||||
}
|
||||
|
||||
private void RemoveView(TabItem pTabItem)
|
||||
{
|
||||
_OpenViews.Remove(pTabItem);
|
||||
pTabItem.Content = null;
|
||||
}
|
||||
|
||||
private void InitRights()
|
||||
{
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.AccountingTransactionView_View))
|
||||
@@ -290,5 +300,23 @@ namespace BeWo.View.Master
|
||||
AddView(tabitem_gkvabrechnung, new GkvAbrechnungOverview());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void BeWoView_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if(_AlreadyLoaded && DataContext is BaseVM vm)
|
||||
{
|
||||
vm.FirePropertyChangedItself();
|
||||
}
|
||||
|
||||
_AlreadyLoaded = true;
|
||||
}
|
||||
|
||||
private void BeWoView_Unloaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if(root.SelectedItem != tabitem_gkvabrechnung)
|
||||
{
|
||||
RemoveView(tabitem_gkvabrechnung);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,17 @@ namespace BeWo.View.Search
|
||||
pCallBack(r);
|
||||
});
|
||||
}
|
||||
else if (this.SearchMode == SearchMode.OnlyValid)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s => s.GetAllGkvValidOrganisationsCompact(),
|
||||
r =>
|
||||
{
|
||||
r.Sort((x, y) => { return x.Name.CompareTo(y.Name); });
|
||||
|
||||
pCallBack(r);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
CostBearer,
|
||||
ActiveCostbearer2SupportConcepts,
|
||||
OnlyToOrganisationRelatedPersons,
|
||||
OnlyTeamMember
|
||||
OnlyTeamMember,
|
||||
OnlyValid
|
||||
}
|
||||
|
||||
}
|
||||
@@ -50,9 +50,22 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
|
||||
//public bool HasLoggedOnUserRight(UserRightType type)
|
||||
// {
|
||||
// {
|
||||
// return BeWoApp.HasLoggedOnUserRight(type);
|
||||
// }
|
||||
// }
|
||||
|
||||
public object Itself
|
||||
{
|
||||
get
|
||||
{
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public void FirePropertyChangedItself()
|
||||
{
|
||||
FirePropertyChanged(nameof(Itself));
|
||||
}
|
||||
|
||||
protected virtual void FirePropertyChanged(string pPropertyName)
|
||||
{
|
||||
|
||||
13
BeWo/ViewModel/BaseVM.cs
Normal file
13
BeWo/ViewModel/BaseVM.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
public class BaseVM : AbstractBaseVM
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -12,11 +12,12 @@ using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Interface;
|
||||
using DevExpress.Xpf.Core;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
public class GkvAbrechnungVM : AbstractDCMapperVM<GkvAbrechnungDC>
|
||||
public class GkvAbrechnungVM : AbstractDCMapperVM<GkvAbrechnungDC>, IGkvAbrechnung
|
||||
{
|
||||
public static string PropertyName_AbrechnungsZeitraumStart = "AbrechnungsZeitraumStart";
|
||||
public static string PropertyName_AbrechnungsZeitraumEnde = "AbrechnungsZeitraumEnde";
|
||||
@@ -39,6 +40,9 @@ namespace BeWo.ViewModel
|
||||
|
||||
internal bool _IsChecked;
|
||||
|
||||
private bool _IsReady2Send;
|
||||
private string _SendTooltip;
|
||||
|
||||
private List<InvoiceBaseVM> _InvoiceBases2;
|
||||
private BindingList<InvoiceBaseVM> _InvoiceBases;
|
||||
private OrganisationDC _Organisation;
|
||||
@@ -54,7 +58,6 @@ namespace BeWo.ViewModel
|
||||
|
||||
public string AbrechnungsZeitraum => $"{AbrechnungsZeitraumStart.Value.ToShortDateString()} - {AbrechnungsZeitraumEnde.Value.ToShortDateString()}";
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? AbrechnungsZeitraumStart
|
||||
{
|
||||
get { return this._AbrechnungsZeitraumStart; }
|
||||
@@ -73,8 +76,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? AbrechnungsZeitraumEnde
|
||||
{
|
||||
get { return this._AbrechnungsZeitraumEnde; }
|
||||
@@ -89,8 +90,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime ErstelltAm
|
||||
{
|
||||
get { return this._ErstelltAm; }
|
||||
@@ -105,8 +104,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public long? GkvAbrechnungOid
|
||||
{
|
||||
get { return this._GkvAbrechnungOid; }
|
||||
@@ -121,8 +118,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public long? GkvAbrechnungVersion
|
||||
{
|
||||
get { return this._GkvAbrechnungOid; }
|
||||
@@ -137,7 +132,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public string Notice
|
||||
{
|
||||
get { return this._Notice; }
|
||||
@@ -152,8 +146,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public decimal Betrag
|
||||
{
|
||||
get { return this._Betrag; }
|
||||
@@ -168,8 +160,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public bool Bezahlt
|
||||
{
|
||||
get { return _Bezahlt; }
|
||||
@@ -186,7 +176,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool UrbelegeGesendet
|
||||
{
|
||||
get { return _UrbelegeGesendet; }
|
||||
@@ -201,12 +190,9 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(GkvState));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public GkvState GkvState
|
||||
{
|
||||
get { return GetState(this); }
|
||||
get { return this.GetState(); }
|
||||
}
|
||||
|
||||
public bool IsChecked
|
||||
@@ -218,7 +204,7 @@ namespace BeWo.ViewModel
|
||||
if (AreDifferent(_IsChecked, value))
|
||||
{
|
||||
_IsChecked = value;
|
||||
FirePropertyChanged("IsChecked");
|
||||
FirePropertyChanged(nameof(IsChecked));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,13 +214,11 @@ namespace BeWo.ViewModel
|
||||
get { return _InvoiceBases2; }
|
||||
set { _InvoiceBases2 = value; }
|
||||
}
|
||||
|
||||
public BindingList<InvoiceBaseVM> InvoiceBases
|
||||
{
|
||||
get { return _InvoiceBases; }
|
||||
set { _InvoiceBases = value; }
|
||||
}
|
||||
|
||||
public List<GkvTransferProtokollDC> TransferProtokolle
|
||||
{
|
||||
get { return _TransferProtokolle; }
|
||||
@@ -247,8 +231,6 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(LastTransferDateTime));
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public OrganisationDC Organisation
|
||||
{
|
||||
get { return this._Organisation; }
|
||||
@@ -263,7 +245,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GkvVerfahrensstufe Verfahrensstufe
|
||||
{
|
||||
get { return this._Verfahrensstufe; }
|
||||
@@ -278,7 +259,6 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int VerfahrensstufeInt
|
||||
{
|
||||
get { return (int)Verfahrensstufe; }
|
||||
@@ -293,6 +273,7 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
public IGkvTransferProtokoll LastTransferProtokoll => TransferProtokolle?.LastOrDefault();
|
||||
|
||||
public string RecipientString
|
||||
{
|
||||
@@ -306,14 +287,14 @@ namespace BeWo.ViewModel
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public string Fehlermeldung
|
||||
{
|
||||
get
|
||||
{
|
||||
var last = TransferProtokolle?.LastOrDefault();
|
||||
if (!(LastTransferProtokoll is GkvTransferProtokollDC last))
|
||||
return null;
|
||||
|
||||
if (last is null || string.IsNullOrWhiteSpace(last.Fehlernachricht))
|
||||
if (string.IsNullOrWhiteSpace(last.Fehlernachricht))
|
||||
return null;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(last.Fehlertitel))
|
||||
@@ -322,33 +303,61 @@ namespace BeWo.ViewModel
|
||||
return $"{last.Fehlertitel}: {last.Fehlernachricht}";
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? LastTransferDateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
var last = TransferProtokolle?.LastOrDefault();
|
||||
if (LastTransferProtokoll is GkvTransferProtokollDC last)
|
||||
return last.ErstelltAm;
|
||||
|
||||
if (last is null)
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public bool IsReady2Send
|
||||
{
|
||||
get { return _IsReady2Send; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(IsReady2Send, value))
|
||||
return;
|
||||
|
||||
return last.ErstelltAm;
|
||||
_IsReady2Send = value;
|
||||
FirePropertyChanged(nameof(IsReady2Send));
|
||||
}
|
||||
}
|
||||
public string SendTooltip
|
||||
{
|
||||
get { return _SendTooltip; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(SendTooltip, value))
|
||||
return;
|
||||
|
||||
_SendTooltip = value;
|
||||
FirePropertyChanged(nameof(SendTooltip));
|
||||
}
|
||||
}
|
||||
|
||||
public void FirePropertyIsReady2CreateChanged()
|
||||
=> FirePropertyChanged(nameof(IsReady2Create));
|
||||
public bool IsReady2Create
|
||||
=> InvoiceBases?.Where(x => x.IsChecked).Any() ?? false;
|
||||
|
||||
public static GkvState GetState(GkvAbrechnungVM vm)
|
||||
public void UpdateByDataContract(GkvAbrechnungDC pDataContract)
|
||||
{
|
||||
return GkvAbrechnungExtensions.GetState(
|
||||
vm,
|
||||
() => vm.Bezahlt,
|
||||
() => vm.UrbelegeGesendet,
|
||||
() => vm.TransferProtokolle,
|
||||
(x) => x.Fehlerdatum,
|
||||
(x) => x.Fehlerlevel,
|
||||
(x) => x.ErstelltAm.Value);
|
||||
}
|
||||
GkvAbrechnungVersion = pDataContract.GkvAbrechnungVersion;
|
||||
|
||||
Notice = pDataContract.Notice;
|
||||
|
||||
Betrag = pDataContract.Betrag;
|
||||
Bezahlt = pDataContract.Bezahlt;
|
||||
|
||||
if (pDataContract.InvoiceBases != null)
|
||||
{
|
||||
InvoiceBases2 = pDataContract.InvoiceBases.Select(x => new InvoiceBaseVM(x, true)).ToList();
|
||||
InvoiceBases = new BindingList<InvoiceBaseVM>(InvoiceBases2);
|
||||
}
|
||||
}
|
||||
protected override void InitByDataContract(GkvAbrechnungDC pDataContract)
|
||||
{
|
||||
_AbrechnungsZeitraumStart = pDataContract.AbrechnungsZeitraumStart;
|
||||
@@ -378,6 +387,9 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
|
||||
_Organisation = pDataContract.Organisation;
|
||||
|
||||
_IsReady2Send = pDataContract.IsReady2Send;
|
||||
_SendTooltip = pDataContract.SendTooltip;
|
||||
}
|
||||
protected override GkvAbrechnungDC MapToDataContract(GkvAbrechnungDC pDataContract, bool doCommit)
|
||||
{
|
||||
@@ -415,7 +427,6 @@ namespace BeWo.ViewModel
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.SendNewGkvAbrechnung(req),
|
||||
cb => Application.Current.Dispatch(() => Update(cb)), true);
|
||||
}
|
||||
|
||||
public void Update(GkvAbrechnungSendResponseDC cb)
|
||||
{
|
||||
var dc = cb.GkvAbrechnungDC;
|
||||
@@ -429,13 +440,16 @@ namespace BeWo.ViewModel
|
||||
GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
|
||||
TransferProtokolle = dc.TransferProtokolle.ToList();
|
||||
|
||||
IsReady2Send = dc.IsReady2Send;
|
||||
SendTooltip = dc.SendTooltip;
|
||||
|
||||
var protokoll = cb.TransferProtokoll;
|
||||
|
||||
if (protokoll.Fehlerlevel == GkvTransferFehlerlevel.Soft)
|
||||
if (protokoll.ResultType == GkvTransferResultType.FailSoft)
|
||||
{
|
||||
MessageBox.Show(Application.Current.MainWindow, protokoll.Fehlernachricht, protokoll.Fehlertitel);
|
||||
}
|
||||
else if (protokoll.Fehlerlevel == GkvTransferFehlerlevel.Fatal)
|
||||
else if (protokoll.ResultType == GkvTransferResultType.FailFatal)
|
||||
{
|
||||
BeWoApp.ShowError(protokoll.Fehlertitel + ": " + protokoll.Fehlernachricht, null, false, false);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,53 +5,56 @@ using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
|
||||
namespace BeWo.ViewModel.ListViewModel
|
||||
{
|
||||
public class GkvAbrechnungListVM : AbstractDCListMapperVM<GkvAbrechnungDC, GkvAbrechnungVM>
|
||||
{
|
||||
public static string PropertyName_DateTimeSpanFilter = "DateTimeSpanFilter";
|
||||
public class GkvAbrechnungListVM : AbstractDCListMapperVM<GkvAbrechnungDC, GkvAbrechnungVM>
|
||||
{
|
||||
public static string PropertyName_DateTimeSpanFilter = "DateTimeSpanFilter";
|
||||
|
||||
public static string PropertyName_FilterResultAmountSum = "FilterResultAmountSum";
|
||||
public static string PropertyName_FilterResultAmountNotPaidSum = "FilterResultAmountNotPaidSum";
|
||||
public static string PropertyName_FilterResultAmountSum = "FilterResultAmountSum";
|
||||
public static string PropertyName_FilterResultAmountNotPaidSum = "FilterResultAmountNotPaidSum";
|
||||
|
||||
private DateTimeSpan _DateTimeSpanFilter;
|
||||
private DateTimeSpan _DateTimeSpanFilter;
|
||||
|
||||
public GkvAbrechnungListVM(List<GkvAbrechnungDC> pDCList) : base(pDCList)
|
||||
{
|
||||
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountSum);
|
||||
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
|
||||
}
|
||||
public GkvAbrechnungListVM() : this(null)
|
||||
{
|
||||
public GkvAbrechnungListVM(List<GkvAbrechnungDC> pDCList) : base(pDCList)
|
||||
{
|
||||
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountSum);
|
||||
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
|
||||
}
|
||||
public GkvAbrechnungListVM() : this(null)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public DateTimeSpan DateTimeSpanFilter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._DateTimeSpanFilter;
|
||||
}
|
||||
public DateTimeSpan DateTimeSpanFilter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._DateTimeSpanFilter;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._DateTimeSpanFilter, value))
|
||||
{
|
||||
this._DateTimeSpanFilter = value;
|
||||
this.FirePropertyChanged(PropertyName_DateTimeSpanFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._DateTimeSpanFilter, value))
|
||||
{
|
||||
this._DateTimeSpanFilter = value;
|
||||
this.FirePropertyChanged(PropertyName_DateTimeSpanFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal void UpdateList(IList<GkvAbrechnungDC> dcList)
|
||||
{
|
||||
this.VMList.Clear();
|
||||
internal void UpdateList(IList<GkvAbrechnungDC> dcList)
|
||||
{
|
||||
VMList.Clear();
|
||||
|
||||
foreach (var dc in dcList)
|
||||
{
|
||||
VMList.Add(CreateVM(dc));
|
||||
}
|
||||
if (dcList is object)
|
||||
foreach (var dc in dcList)
|
||||
{
|
||||
VMList.Add(CreateVM(dc));
|
||||
}
|
||||
|
||||
this.FirePropertyChanged(PropertyName_FilterResultAmountSum);
|
||||
this.FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
|
||||
}
|
||||
}
|
||||
FirePropertyChanged(PropertyName_FilterResultAmountSum);
|
||||
FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
|
||||
}
|
||||
|
||||
internal void ClearList() => UpdateList(null);
|
||||
}
|
||||
}
|
||||
@@ -769,20 +769,25 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsIKNumberValid
|
||||
=> DakotaValidator.IsIKNumberValid(IKKrankenkasse)
|
||||
&& DakotaValidator.IsLeistungserbringergruppeValid(Leistungserbringergruppe);
|
||||
|
||||
public string IKKrankenkasse
|
||||
{
|
||||
get { return this._IKKrankenkasse; }
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._IKKrankenkasse, value))
|
||||
{
|
||||
this._IKKrankenkasse = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKKrankenkasse, value), nameof(IKKrankenkasse));
|
||||
this.FirePropertyChanged(nameof(IKKrankenkasse));
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
if (!AreDifferent(_IKKrankenkasse, value))
|
||||
return;
|
||||
|
||||
_IKKrankenkasse = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.IKKrankenkasse, value), nameof(IKKrankenkasse));
|
||||
FirePropertyChanged(nameof(IKKrankenkasse));
|
||||
FirePropertyChanged(nameof(IsIKNumberValid));
|
||||
}
|
||||
}
|
||||
|
||||
public string IKKostentrager
|
||||
{
|
||||
@@ -831,18 +836,19 @@ namespace BeWo.ViewModel
|
||||
|
||||
public string Leistungserbringergruppe
|
||||
{
|
||||
get { return this._Leistungserbringergruppe; }
|
||||
get { return _Leistungserbringergruppe; }
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._Leistungserbringergruppe, value))
|
||||
{
|
||||
this._Leistungserbringergruppe = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Leistungserbringergruppe, value), nameof(Leistungserbringergruppe));
|
||||
this.FirePropertyChanged(nameof(Leistungserbringergruppe));
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
if (!AreDifferent(_Leistungserbringergruppe, value))
|
||||
return;
|
||||
|
||||
_Leistungserbringergruppe = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Leistungserbringergruppe, value), nameof(Leistungserbringergruppe));
|
||||
FirePropertyChanged(nameof(Leistungserbringergruppe));
|
||||
FirePropertyChanged(nameof(IsIKNumberValid));
|
||||
}
|
||||
}
|
||||
|
||||
public string BusinessPartnerId
|
||||
{
|
||||
@@ -870,6 +876,8 @@ namespace BeWo.ViewModel
|
||||
this._Verfahrensstufe = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Verfahrensstufe, value), nameof(Verfahrensstufe));
|
||||
this.FirePropertyChanged(nameof(Verfahrensstufe));
|
||||
this.FirePropertyChanged(nameof(VerfahrensstufeInt));
|
||||
this.FirePropertyChanged(nameof(Echtverfahren));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -884,7 +892,22 @@ namespace BeWo.ViewModel
|
||||
return;
|
||||
|
||||
Verfahrensstufe = (GkvVerfahrensstufe)value;
|
||||
//FirePropertyChanged(nameof(VerfahrensstufeInt));
|
||||
}
|
||||
}
|
||||
|
||||
public bool Echtverfahren
|
||||
{
|
||||
get { return Verfahrensstufe == GkvVerfahrensstufe.Echt; }
|
||||
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(Echtverfahren, value))
|
||||
return;
|
||||
|
||||
if (value)
|
||||
Verfahrensstufe = GkvVerfahrensstufe.Echt;
|
||||
else
|
||||
Verfahrensstufe = GkvVerfahrensstufe.Erprobung;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using BeWo.Validation;
|
||||
@@ -59,75 +60,84 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public ObservableSortCollection<UserRightType> Rights
|
||||
{
|
||||
get { return _Rights; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Rights, value))
|
||||
{
|
||||
_Rights = value;
|
||||
_Rights.CollectionChanged += (s, e) => RightsChanged();
|
||||
RightsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void RightsChanged()
|
||||
{
|
||||
StoreDirtyInformation(!_Rights.ContainsSameItemsAs(DataContract.Rights), PropertyName_Rights);
|
||||
FirePropertyChanged(PropertyName_Rights);
|
||||
FirePropertyChanged(PropertyName_PossibleRights);
|
||||
}
|
||||
|
||||
private Dictionary<Func<UserRightType, bool>, bool> IsTypeFunc2PermissionMapping { get; } = new Dictionary<Func<UserRightType, bool>, bool>()
|
||||
{
|
||||
{(r) => r == UserRightType.AdditionalService_View, BeWoApp.Mandator.BeWoClientType == 3 || BeWoApp.AppSettings.ShowAdditionalService},
|
||||
{IsKalenderRight, BeWoApp.AppSettings.IsSchedulerAllowed },
|
||||
{IsWohnheimRight, BeWoApp.AppSettings.IsWohnheimAllowed },
|
||||
{IsSbdRight, BeWoApp.Mandator.AllowSbd},
|
||||
{IsResourceRight, BeWoApp.AppSettings.ShowRessources},
|
||||
{IsChatRight, BeWoApp.AppSettings.ShowOwnChat},
|
||||
{IsChatSettingsRight, BeWoApp.AppSettings.ShowOwnChatSettings},
|
||||
{IsHiddenRight, false},
|
||||
{IsMedicationRight, BeWoApp.AppSettings.IsMedicationAllowed},
|
||||
{IsPivotGridRight, BeWoApp.AppSettings.ShowPivotGrid},
|
||||
{IsDienstplanungRight, BeWoApp.AppSettings.ShowDienstplanung},
|
||||
{IsAbwesenheitsPlanungRight, BeWoApp.AppSettings.ShowUrlaubsplanung},
|
||||
{IsWohnhilfeRight, BeWoApp.AppSettings.ShowWohnhilfe},
|
||||
{IsGkvAbrechnungRight, BeWoApp.AppSettings.AllowGkvAbrechnung},
|
||||
{IsUnterschriftRight, false},
|
||||
{(r) => r == UserRightType.SupportConcept_ImportData, BeWoApp.AppSettings.ShowPersehImport},
|
||||
{(r) => r == UserRightType.AiChatInZeiterfassung, BeWoApp.AppSettings.ShowAI},
|
||||
{IsDakotaRight, BeWoApp.AppSettings.AllowGkvAbrechnung},
|
||||
};
|
||||
|
||||
public List<UserRightType> PossibleRights
|
||||
{
|
||||
get
|
||||
{
|
||||
List<UserRightType> possibleRights = new List<UserRightType>();
|
||||
//List<UserRightType> nopossibleRights = new List<UserRightType>();
|
||||
|
||||
foreach (var r in Utils.GetAllEnumValues<UserRightType>().Except(this._Rights).ToList())
|
||||
foreach (var right in Utils.GetAllEnumValues<UserRightType>().Except(this._Rights).ToList())
|
||||
{
|
||||
if (IsObsoleteRight(r))
|
||||
{
|
||||
if (IsObsoleteRight(right))
|
||||
continue;
|
||||
}
|
||||
#if DEBUG
|
||||
possibleRights.Add(r);
|
||||
#else
|
||||
|
||||
if (r != UserRightType.AdditionalService_View || (BeWoApp.Mandator.BeWoClientType == 3) || BeWoApp.AppSettings.ShowAdditionalService)
|
||||
{
|
||||
if (!IsKalenderRight(r) || BeWoApp.AppSettings.IsSchedulerAllowed)
|
||||
{
|
||||
if (!IsWohnheimRight(r) || BeWoApp.AppSettings.IsWohnheimAllowed)
|
||||
{
|
||||
if (!IsSbdRight(r) || BeWoApp.Mandator.AllowSbd)
|
||||
{
|
||||
if (!IsResourceRight(r) || BeWoApp.AppSettings.ShowRessources)
|
||||
{
|
||||
if (!IsChatRight(r) || BeWoApp.AppSettings.ShowOwnChat)
|
||||
{
|
||||
if (!IsChatSettingsRight(r) || BeWoApp.AppSettings.ShowOwnChatSettings)
|
||||
{
|
||||
if (!IsHiddenRight(r))
|
||||
{
|
||||
if (!IsMedicationRight(r) || BeWoApp.AppSettings.IsMedicationAllowed)
|
||||
{
|
||||
if (!IsPivotGridRight(r) || BeWoApp.AppSettings.ShowPivotGrid)
|
||||
{
|
||||
if (!IsDienstplanungRight(r) || BeWoApp.AppSettings.ShowDienstplanung)
|
||||
{
|
||||
if (!IsAbwesenheitsPlanungRight(r) || BeWoApp.AppSettings.ShowUrlaubsplanung)
|
||||
{
|
||||
if (!IsWohnhilfeRight(r) || BeWoApp.AppSettings.ShowWohnhilfe)
|
||||
{
|
||||
if (!IsGkvAbrechnungRight(r) || BeWoApp.AppSettings.AllowGkvAbrechnung)
|
||||
{
|
||||
if (!IsUnterschriftRight(r))
|
||||
{
|
||||
if (r != UserRightType.SupportConcept_ImportData || BeWoApp.AppSettings.ShowPersehImport)
|
||||
{
|
||||
if (r != UserRightType.AiChatInZeiterfassung || BeWoApp.AppSettings.ShowAI)
|
||||
{
|
||||
possibleRights.Add(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
bool valid = true;
|
||||
|
||||
foreach (var item in IsTypeFunc2PermissionMapping)
|
||||
{
|
||||
var isTypeFunc = item.Key;
|
||||
var isType = isTypeFunc(right);
|
||||
var hasPermission = item.Value;
|
||||
|
||||
// valid wird nur false, wenn "r" vom Typ "t" ist und für "t" keine Berechtigung vorliegt
|
||||
valid &= isType.Implies(hasPermission);
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
valid = true;
|
||||
#endif
|
||||
|
||||
if(valid)
|
||||
possibleRights.Add(right);
|
||||
//else
|
||||
//{
|
||||
// nopossibleRights.Add(right);
|
||||
//}
|
||||
}
|
||||
|
||||
return possibleRights;
|
||||
@@ -146,14 +156,12 @@ namespace BeWo.ViewModel
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsPivotGridRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.PivotTabelleAnsehen)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsDienstplanungRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.DienstplanungAnsehen
|
||||
@@ -161,35 +169,30 @@ namespace BeWo.ViewModel
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsAbwesenheitsPlanungRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.AbwesenheitsPlanungAnsehen)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsMedicationRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.Customer_ViewMedication || userRightType == UserRightType.Customer_EditMedication)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsChatRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.ChatSettings)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsChatSettingsRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.ChatAdminSettings)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsWohnheimRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.WohnheimView_Create
|
||||
@@ -200,7 +203,6 @@ namespace BeWo.ViewModel
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsHiddenRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.CustomerTeam_View
|
||||
@@ -210,14 +212,12 @@ namespace BeWo.ViewModel
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsSbdRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.VertretungenView_View)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsResourceRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.
|
||||
@@ -275,7 +275,6 @@ namespace BeWo.ViewModel
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsUnterschriftRight(UserRightType userRightType)
|
||||
{
|
||||
if (userRightType == UserRightType.ServiceRecord_AllowCreateAfterEmployeeSignature
|
||||
@@ -284,21 +283,11 @@ namespace BeWo.ViewModel
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public ObservableSortCollection<UserRightType> Rights
|
||||
{
|
||||
get { return _Rights; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Rights, value))
|
||||
{
|
||||
_Rights = value;
|
||||
_Rights.CollectionChanged += (s, e) => RightsChanged();
|
||||
RightsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
private static bool IsDakotaRight(UserRightType right)
|
||||
=> right == UserRightType.Finance_Gkv_Create ||
|
||||
right == UserRightType.Finance_Gkv_Delete ||
|
||||
right == UserRightType.Finance_Gkv_Send ||
|
||||
right == UserRightType.Finance_Gkv_View;
|
||||
|
||||
protected override void InitByDataContract(UserGroupDC pDataContract)
|
||||
{
|
||||
@@ -316,12 +305,5 @@ namespace BeWo.ViewModel
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
private void RightsChanged()
|
||||
{
|
||||
StoreDirtyInformation(!_Rights.ContainsSameItemsAs(DataContract.Rights), PropertyName_Rights);
|
||||
FirePropertyChanged(PropertyName_Rights);
|
||||
FirePropertyChanged(PropertyName_PossibleRights);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,13 +13,15 @@
|
||||
<basicHttpBinding>
|
||||
<binding name="BeWoBasicEndpoint" closeTimeout="00:05:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
|
||||
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
|
||||
<security mode="None" />
|
||||
<!--<security mode="None" />-->
|
||||
<security mode="Transport" />
|
||||
<!-- mode="Transport" für https und "None" sonst-->
|
||||
</binding>
|
||||
<binding name="BeWoStreamingEndpoint" receiveTimeout="10:10:00" sendTimeout="10:01:00" maxBufferSize="65536" maxReceivedMessageSize="67108864" transferMode="StreamedRequest" useDefaultWebProxy="true" messageEncoding="Text">
|
||||
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
|
||||
<security mode="None" />
|
||||
<!-- mode="Transport" für https -->
|
||||
<!--<security mode="None" />-->
|
||||
<security mode="Transport" />
|
||||
<!-- mode="Transport" für https und "None" sonst-->
|
||||
</binding>
|
||||
<binding name="QueryServiceEndpoint" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" messageEncoding="Text">
|
||||
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
|
||||
|
||||
@@ -43,18 +43,16 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DakotaConfig.cs" />
|
||||
<Compile Include="DakotaUtils.cs" />
|
||||
<Compile Include="Logic\DakotaKTDReader.cs" />
|
||||
<Compile Include="Logic\DakotaManager.cs" />
|
||||
<Compile Include="Logic\DakotaUtils.cs" />
|
||||
<Compile Include="Models\Auftragsdatei\Auftragsdatei.cs" />
|
||||
<Compile Include="Models\Auftragsdatei\AuftragssatzPart2.cs" />
|
||||
<Compile Include="Models\Auftragsdatei\AuftragssatzPart3.cs" />
|
||||
<Compile Include="Models\Auftragsdatei\AuftragssatzPart4.cs" />
|
||||
<Compile Include="Models\DakotaEnums.cs" />
|
||||
<Compile Include="DakotaExtensions.cs" />
|
||||
<Compile Include="Models\DakotaException.cs" />
|
||||
<Compile Include="Models\DakotaFile.cs" />
|
||||
<Compile Include="DakotaValidator.cs" />
|
||||
<Compile Include="Models\Auftragsdatei\AuftragssatzPart1.cs" />
|
||||
<Compile Include="Models\Blocke\Block.cs" />
|
||||
<Compile Include="Models\Blocke\BlockAbrechnungsposition.cs" />
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Dakota
|
||||
{
|
||||
public static class DakotaConfig
|
||||
{
|
||||
public static string IKAbsender => "109500969";
|
||||
public static string IKAbsender => "490517618";
|
||||
|
||||
public static string TrennzeichenInnerhalb => ":";
|
||||
public static string Trennzeichen => "+";
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
using System;
|
||||
using BeWo.Data.Entities;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Exceptions;
|
||||
using Dakota.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Logic
|
||||
namespace Dakota
|
||||
{
|
||||
public static class DakotaUtils
|
||||
{
|
||||
@@ -48,11 +54,11 @@ namespace Dakota.Logic
|
||||
{
|
||||
var len = leistungserbringergruppe.Length;
|
||||
|
||||
if(len == 5)
|
||||
if (len == 5)
|
||||
{
|
||||
return "69";
|
||||
}
|
||||
else if(len == 7)
|
||||
else if (len == 7)
|
||||
{
|
||||
return leistungserbringergruppe.Substring(0, 2);
|
||||
}
|
||||
@@ -80,5 +86,15 @@ namespace Dakota.Logic
|
||||
throw new ArgumentException($"Leistungserbringergruppe \"{leistungserbringergruppe}\" hat ungültige Anzahl Stellen");
|
||||
}
|
||||
}
|
||||
|
||||
public static string ClearTextString(string input)
|
||||
{
|
||||
foreach (var specialChar in DakotaConfig.SpecialCollection)
|
||||
{
|
||||
input = input.Replace(specialChar, DakotaConfig.Aufhebungszeichen + specialChar);
|
||||
}
|
||||
|
||||
return input.Trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
using BeWo.Data.Entities;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using Dakota.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
public static class DakotaValidator
|
||||
{
|
||||
public static string ClearTextString(string input)
|
||||
{
|
||||
foreach (var specialChar in DakotaConfig.SpecialCollection)
|
||||
{
|
||||
input = input.Replace(specialChar, DakotaConfig.Aufhebungszeichen + specialChar);
|
||||
}
|
||||
|
||||
return input.Trim();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validiert in erster Phase den Mandator.
|
||||
/// </summary>
|
||||
public static void ValidateMandator(MandatorDC mandatordc)
|
||||
{
|
||||
if (mandatordc == null)
|
||||
throw new DakotaException("Mandator ist null");
|
||||
|
||||
if (!ValidateIKNumber(mandatordc.IKLeistungserbringer))
|
||||
throw new DakotaException($"Die IK Nummer des Leistungserbringers \"{mandatordc.IKLeistungserbringer}\" ist ungültig.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validiert in zweiter Phase die Daten. Bei Fehler wird eine DakotaException geworfen.
|
||||
/// </summary>
|
||||
public static void ValidateCustomer(CustomerDC customerDC)
|
||||
{
|
||||
string error = null;
|
||||
|
||||
if (customerDC == null)
|
||||
error = "Customer ist null";
|
||||
else if (!ValidateVersichertenstatus(customerDC.VersichertenStatus))
|
||||
error = $"Klient/in \"{customerDC.LastName}, {customerDC.FirstName}\" hat keinen gültigen Versichertenstatus";
|
||||
|
||||
if (error != null)
|
||||
throw new DakotaException(error);
|
||||
}
|
||||
|
||||
public static void ValidateOrganisation(Organisation orga)
|
||||
{
|
||||
string error = null;
|
||||
|
||||
if (orga == null)
|
||||
error = "Organisation ist null";
|
||||
else if (!ValidateLeistungserbringergruppe(orga.Leistungserbringergruppe))
|
||||
error = $"Die Organisation \"{orga.Name}\" hat keine gültige Leistungserbringergruppe: \"{orga.Leistungserbringergruppe}\". Erwarten werden 5 Stellen für das Tarifkennzeichen alleine oder 7 Stellen für den Abrechnungscode und für das Tarifkennzeichen zusammen.";
|
||||
else if (!ValidateIKNumber(orga.IKKrankenkasse))
|
||||
error = $"Die Organisation \"{orga.Name}\" hat kein gültiges IK Kennzeichen: \"{orga.IKKrankenkasse}\".";
|
||||
|
||||
if (error != null)
|
||||
throw new DakotaException(error);
|
||||
}
|
||||
|
||||
public static bool ValidateOrganisationInformations(Organisation orga)
|
||||
=> ValidateIKNumbers(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse) && !string.IsNullOrEmpty(orga.BezDatenannahmestelle);
|
||||
private static bool ValidateIKNumbers(params string[] iks)
|
||||
=> iks?.All(ValidateIKNumber) ?? false;
|
||||
|
||||
private static bool ValidateIKNumber(string iknummer)
|
||||
{
|
||||
if (iknummer == null)
|
||||
return false;
|
||||
|
||||
if (iknummer.Length != 9)
|
||||
return false;
|
||||
|
||||
return int.TryParse(iknummer, out int x);
|
||||
}
|
||||
|
||||
private static bool ValidateVersichertenstatus(string status)
|
||||
{
|
||||
if (status == null)
|
||||
return false;
|
||||
|
||||
if (status.Length != 5 && status.Length != 7)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool ValidateLeistungserbringergruppe(string code)
|
||||
{
|
||||
if (code == null)
|
||||
return false;
|
||||
|
||||
if (code.Length != 5 && code.Length != 7)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Dakota.Models;
|
||||
using BS.Shared.Exceptions;
|
||||
using Dakota.Models;
|
||||
using Dakota.Models.Nachrichten;
|
||||
using Dakota.Models.Segmente.KTD;
|
||||
using System;
|
||||
@@ -102,7 +103,7 @@ namespace Dakota.Logic
|
||||
if (datenannahmestellen_3.Count() == 1)
|
||||
return GetIKNummern(datenannahmestellen_3.First(), kostentrager, ikkrankenkasse);
|
||||
|
||||
throw new DakotaException($"Keine oder mehrere Datenannahmestellen für {ikkrankenkasse} gefunden.");
|
||||
throw new GkvException($"Keine oder mehrere Datenannahmestellen für {ikkrankenkasse} gefunden.");
|
||||
}
|
||||
|
||||
private Tuple<string, string, string> GetIKNummern(SegmentKTDVKG vkg, string kostentrager, string ikkrankenkasse)
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
using Dakota.Models.Daten;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models
|
||||
{
|
||||
public class DakotaException : ArgumentException
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public override string Message { get; }
|
||||
|
||||
public DakotaException(string message, string title) : this(message)
|
||||
{
|
||||
Title = title;
|
||||
}
|
||||
|
||||
public DakotaException(string message) : this()
|
||||
{
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public DakotaException()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Dakota.Models.Schlüssels;
|
||||
using BS.Shared.Exceptions;
|
||||
using Dakota.Models.Schlüssels;
|
||||
using System;
|
||||
|
||||
namespace Dakota.Models.Daten
|
||||
@@ -36,7 +37,7 @@ namespace Dakota.Models.Daten
|
||||
if (Feldart == Feldart.Muss)
|
||||
{
|
||||
// Auffüllen
|
||||
throw new DakotaException($"Das Feld \"{Title}\" muss gefüllt sein!");
|
||||
throw new GkvException($"Das Feld \"{Title}\" muss gefüllt sein!");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -50,11 +51,11 @@ namespace Dakota.Models.Daten
|
||||
{
|
||||
if(_Value.Length < MinStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
throw new GkvException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
}
|
||||
else if (_Value.Length > MaxStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
throw new GkvException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,15 +90,15 @@ namespace Dakota.Models.Daten
|
||||
|
||||
if (value.Length < MinStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
throw new GkvException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
}
|
||||
|
||||
if (value.Length > MaxStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
throw new GkvException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
}
|
||||
|
||||
var mod_value = DakotaValidator.ClearTextString(value);
|
||||
var mod_value = DakotaUtils.ClearTextString(value);
|
||||
|
||||
_Value = mod_value;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Exceptions;
|
||||
using BS.Shared.Extensions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -27,7 +28,7 @@ namespace Dakota.Models.Schlüssels
|
||||
var schlüssel = GetSchlüssel(list, str);
|
||||
|
||||
if (schlüssel is null)
|
||||
throw new DakotaException($"KTDVerarbeitungskennzeichen {str} nicht gefunden.");
|
||||
throw new GkvException($"KTDVerarbeitungskennzeichen {str} nicht gefunden.");
|
||||
|
||||
return schlüssel;
|
||||
}
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
<add key="DakotaFolder" value="C:\dakotale\" />
|
||||
<add key="ProcessWaitForExitMs" value="10000" />
|
||||
<add key="LogPath" value="C:\GkvAbrechnung\Sender\log.txt" />
|
||||
<add key="GkvSecretKey" value="DfDGNGn72PKfSYxSUsmRdzuBtpR9novewlmYU3gsjiFgSkaZZeylUXlbO42cWNqiKgLdMUFtWUNZT962F1raQDR7HGUzCNYsFeC" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
65
DakotaSender/Config.cs
Normal file
65
DakotaSender/Config.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DakotaSender
|
||||
{
|
||||
internal static class Config
|
||||
{
|
||||
public static string GkvSecretKey { get; set; } = ConfigurationManager.AppSettings.Get("GkvSecretKey");
|
||||
|
||||
public static string LogPath { get; }
|
||||
= ConfigurationManager.AppSettings.Get("LogPath") ?? @"C:\GkvAbrechnung\Sender\log.txt";
|
||||
public static int ProcessWaitForExitMs { get; }
|
||||
= int.Parse(ConfigurationManager.AppSettings.Get("ProcessWaitForExitMs") ?? "10000");
|
||||
public static FileInfo DakotaExe { get; }
|
||||
= new FileInfo(ConfigurationManager.AppSettings.Get("DakotaExePath") ?? @"C:\Program Files (x86)\ITSG\dakotale\dakota30.exe");
|
||||
public static DirectoryInfo DakotaFolder { get; }
|
||||
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("DakotaFolder") ?? @"C:\dakotale\");
|
||||
public static DirectoryInfo QueueFolder { get; }
|
||||
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath") ?? @"C:\GkvAbrechnung\Queue\");
|
||||
public static DirectoryInfo ResultFolder { get; }
|
||||
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath") ?? @"C:\GkvAbrechnung\Results\");
|
||||
public static DirectoryInfo FailedFolder { get; }
|
||||
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungFailedFolderPath") ?? @"C:\GkvAbrechnung\Failed\");
|
||||
|
||||
public static bool IsDatenannahmestelleValid(string datenannahmestelle)
|
||||
{
|
||||
try
|
||||
{
|
||||
_ = LoadDatenannahmestelleFolder(datenannahmestelle);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
public static DirectoryInfo LoadDatenannahmestelleFolder(string datenannahmestelle)
|
||||
{
|
||||
var folder = new DirectoryInfo(Path.Combine(Config.DakotaFolder.FullName, "TP5Daten", datenannahmestelle));
|
||||
|
||||
if (!folder.Exists)
|
||||
folder = new DirectoryInfo(Path.Combine(Config.DakotaFolder.FullName, "TP5Daten", datenannahmestelle.Substring(0, datenannahmestelle.Length - 1)));
|
||||
|
||||
if (!folder.Exists)
|
||||
throw new Exception($"Datenannahmestelle {datenannahmestelle} konnte nicht gefunden werden.");
|
||||
|
||||
return folder;
|
||||
}
|
||||
public static DirectoryInfo GetResultTenantFolder(string tenant)
|
||||
{
|
||||
var dirinfo = new DirectoryInfo(Path.Combine(Config.ResultFolder.FullName, tenant));
|
||||
|
||||
if (!dirinfo.Exists)
|
||||
dirinfo.Create();
|
||||
|
||||
return dirinfo;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,8 +44,10 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Config.cs" />
|
||||
<Compile Include="FileController.cs" />
|
||||
<Compile Include="Returncodes.cs" />
|
||||
<Compile Include="DakotaSystemFile.cs" />
|
||||
<Compile Include="FehlerXml.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="XmlFileConverter.cs" />
|
||||
@@ -53,5 +55,11 @@
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
|
||||
<Name>Shared</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -11,6 +11,7 @@ namespace DakotaSender
|
||||
{
|
||||
public string Tenant { get; set; }
|
||||
public long ProtokollOid { get; set; }
|
||||
public long ApplicationUserOid { get; set; }
|
||||
public string Datenannahmestelle { get; set; }
|
||||
public string Transfername { get; set; }
|
||||
public string TransfernameAuf => Transfername + ".auf";
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace DakotaSender
|
||||
{
|
||||
[Serializable()]
|
||||
[XmlRoot("Fehler")]
|
||||
public class FehlerXml
|
||||
{
|
||||
[XmlAttribute("Oid")]
|
||||
public long Oid { get; set; }
|
||||
|
||||
[XmlElement("Titel")]
|
||||
public string Titel { get; set; }
|
||||
|
||||
[XmlElement("Datum")]
|
||||
public DateTime? Datum { get; set; }
|
||||
|
||||
[XmlElement("Nachricht")]
|
||||
public string Nachricht { get; set; }
|
||||
|
||||
[XmlElement("Level")]
|
||||
public int Level { get; set; }
|
||||
}
|
||||
}
|
||||
80
DakotaSender/FileController.cs
Normal file
80
DakotaSender/FileController.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DakotaSender
|
||||
{
|
||||
internal static class FileController
|
||||
{
|
||||
internal static void CopyFileToFailed(DakotaSystemFile file)
|
||||
{
|
||||
var failed_folder = Config.FailedFolder;
|
||||
|
||||
CopyFileTo(file.SourceAuftragsdatei, failed_folder.FullName);
|
||||
CopyFileTo(file.SourceNutzdatendatei, failed_folder.FullName);
|
||||
}
|
||||
internal static void CopyFileToDestination(DakotaSystemFile file)
|
||||
{
|
||||
var folder = Config.LoadDatenannahmestelleFolder(file.Datenannahmestelle);
|
||||
|
||||
CopyFileTo(file.SourceAuftragsdatei, folder.FullName, file.TransfernameAuf);
|
||||
CopyFileTo(file.SourceNutzdatendatei, folder.FullName, file.Transfername);
|
||||
}
|
||||
internal static void CopyFileTo(FileSystemInfo file, string destination_folder, string file_name = null)
|
||||
{
|
||||
if (file_name is null)
|
||||
file_name = file.Name;
|
||||
|
||||
CopyFile(file.FullName, Path.Combine(destination_folder, file_name));
|
||||
}
|
||||
internal static void CopyFile(string source, string destination)
|
||||
{
|
||||
Program.Print($"Kopiere \"{source}\" nach \"{destination}\". ");
|
||||
|
||||
File.Copy(source, destination);
|
||||
|
||||
Program.PrintLine("Ok.");
|
||||
}
|
||||
|
||||
internal static void DeleteQueueFile(DakotaSystemFile file)
|
||||
{
|
||||
DeleteFile(file.SourceAuftragsdatei.FullName);
|
||||
DeleteFile(file.SourceNutzdatendatei.FullName);
|
||||
}
|
||||
internal static void DeleteDakotaFile(DakotaSystemFile file)
|
||||
{
|
||||
var folder = Config.LoadDatenannahmestelleFolder(file.Datenannahmestelle).FullName;
|
||||
|
||||
DeleteFile(Path.Combine(folder, file.TransfernameAuf));
|
||||
DeleteFile(Path.Combine(folder, file.Transfername));
|
||||
}
|
||||
internal static void DeleteFile(string file)
|
||||
{
|
||||
Program.Print($"Lösche {file}. ");
|
||||
|
||||
File.Delete(file);
|
||||
|
||||
Program.PrintLine("Ok.");
|
||||
}
|
||||
|
||||
internal static void SaveAsXmlFileInResultFolder(GkvServerResultDC result, string tenant, long user)
|
||||
{
|
||||
Program.Print($"Speichere Protokoll \'{result.ProtokollOid}\' als Xml. ");
|
||||
|
||||
var xml = GkvServerResultXml.ToXml(result, user);
|
||||
|
||||
var folder = Config.GetResultTenantFolder(tenant).FullName;
|
||||
var path = Path.Combine(folder, $"P{result.ProtokollOid}.xml");
|
||||
|
||||
Program.Print($"Path: {path}. ");
|
||||
|
||||
XmlFileConverter.Save(xml, path);
|
||||
|
||||
Program.PrintLine("Ok.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,9 @@
|
||||
using System;
|
||||
using BS.Shared;
|
||||
using BS.Shared.AppSender;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Exceptions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
@@ -10,391 +15,432 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace DakotaSender
|
||||
{
|
||||
class Program
|
||||
{
|
||||
const int RC_DAKOTA_ALREADY_LOADED = 18;
|
||||
|
||||
static readonly string TEST_TENANT = "7375324044";
|
||||
|
||||
static int[] AcceptStatusCodes = new int[] { 0 };
|
||||
static int[] AcceptSendCodes = new int[] { 0 };
|
||||
|
||||
static bool time_in_line = false;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
FileStream filestream = new FileStream(GetLogPath(), FileMode.Append);
|
||||
var streamwriter = new StreamWriter(filestream);
|
||||
streamwriter.AutoFlush = true;
|
||||
|
||||
Console.SetOut(streamwriter);
|
||||
Console.SetError(streamwriter);
|
||||
|
||||
try
|
||||
{
|
||||
PrintTitle();
|
||||
|
||||
CheckDakotaStatus();
|
||||
|
||||
ProcessFiles();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
PrintLine(e.ToString());
|
||||
}
|
||||
|
||||
PrintEnd();
|
||||
}
|
||||
|
||||
static void PrintTitle()
|
||||
{
|
||||
PrintWithTime("\n", false);
|
||||
PrintLine("-------------------");
|
||||
PrintLine("Dakota Sender Modul");
|
||||
PrintLine("-------------------");
|
||||
}
|
||||
static void PrintEnd()
|
||||
{
|
||||
PrintLine("Ende");
|
||||
PrintLine("-------------------");
|
||||
}
|
||||
|
||||
static void PrintLine() => PrintLine(null);
|
||||
static void PrintLine(string line)
|
||||
{
|
||||
PrintWithTime(line + "\n", !time_in_line);
|
||||
|
||||
time_in_line = false;
|
||||
}
|
||||
static void Print(string line)
|
||||
{
|
||||
PrintWithTime(line, !time_in_line);
|
||||
|
||||
time_in_line = true;
|
||||
}
|
||||
static void PrintWithTime(string line, bool showTime)
|
||||
{
|
||||
if (showTime)
|
||||
Console.Write($"[{DateTime.Now:dd.MM.yy HH:mm:ss.fff}] {line}");
|
||||
else
|
||||
Console.Write(line);
|
||||
}
|
||||
static void PrintFileInfo(DakotaSystemFile file)
|
||||
{
|
||||
PrintLine($"Verarbeite Datei: {file.SourceNutzdatendatei.Name}");
|
||||
PrintLine($"- Tenant: {file.Tenant}");
|
||||
PrintLine($"- Protokoll Oid: {file.ProtokollOid}");
|
||||
PrintLine($"- Datenannahmestelle: {file.Datenannahmestelle}");
|
||||
}
|
||||
|
||||
static void CheckDakotaStatus()
|
||||
{
|
||||
PrintLine("Überprüfe Dakota Status");
|
||||
|
||||
var code = ExecuteDakota("-s");
|
||||
|
||||
if (AcceptStatusCodes.Contains(code))
|
||||
{
|
||||
PrintLine("Ok");
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Statuscode {code} wird nicht akzeptiert");
|
||||
}
|
||||
}
|
||||
static void ProcessFiles()
|
||||
{
|
||||
PrintLine("Scanne Dakota Dateien");
|
||||
|
||||
var toCheck = ScanQueueFolder();
|
||||
|
||||
if (toCheck is null)
|
||||
{
|
||||
PrintLine("Keine Dakota Dateien gefunden.");
|
||||
return;
|
||||
}
|
||||
|
||||
var testCheck = toCheck.TryGetValue(TEST_TENANT, out var files);
|
||||
|
||||
if (!testCheck)
|
||||
{
|
||||
PrintLine($"Keine Dakota Dateien für {TEST_TENANT} gefunden.");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
TryProcessFile(file);
|
||||
|
||||
CheckDakotaStatus();
|
||||
}
|
||||
}
|
||||
|
||||
static Dictionary<string, List<DakotaSystemFile>> ScanQueueFolder()
|
||||
{
|
||||
var queue = GetQueueFolder();
|
||||
|
||||
var files = queue.GetFiles("*.auf", SearchOption.TopDirectoryOnly);
|
||||
|
||||
var toCheck = new Dictionary<string, List<DakotaSystemFile>>();
|
||||
foreach (var auft in files)
|
||||
{
|
||||
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
|
||||
var nutz = new FileInfo(nutz_fullname);
|
||||
|
||||
if (!nutz.Exists)
|
||||
{
|
||||
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
|
||||
continue;
|
||||
}
|
||||
|
||||
PrintLine($"{auft.FullName} gefunden.");
|
||||
|
||||
var split = nutz.Name.Split('_');
|
||||
var tenant = split[0];
|
||||
var p_oid = long.Parse(split[1]);
|
||||
var datenannahmestelle = split[2];
|
||||
var transfername = split[3];
|
||||
|
||||
if (tenant != TEST_TENANT && tenant != "demo")
|
||||
{
|
||||
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
tenant = TEST_TENANT;
|
||||
}
|
||||
|
||||
var file = new DakotaSystemFile()
|
||||
{
|
||||
SourceAuftragsdatei = auft,
|
||||
SourceNutzdatendatei = nutz,
|
||||
Tenant = tenant,
|
||||
ProtokollOid = p_oid,
|
||||
Datenannahmestelle = datenannahmestelle,
|
||||
Transfername = transfername,
|
||||
};
|
||||
|
||||
if (!toCheck.ContainsKey(tenant))
|
||||
toCheck.Add(tenant, new List<DakotaSystemFile>());
|
||||
|
||||
toCheck[tenant].Add(file);
|
||||
}
|
||||
|
||||
return toCheck.Any() ? toCheck : null;
|
||||
}
|
||||
|
||||
static void TryProcessFile(DakotaSystemFile file)
|
||||
{
|
||||
string error;
|
||||
bool copied = false;
|
||||
try
|
||||
{
|
||||
error = ProcessFile(file, out copied);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
error = e.ToString();
|
||||
}
|
||||
|
||||
if (error is string)
|
||||
{
|
||||
PrintLine(error);
|
||||
MoveQueueToFailed(file);
|
||||
|
||||
if (copied)
|
||||
DeleteDakotaFile(file);
|
||||
|
||||
CreateResultXmlFile(file, error);
|
||||
}
|
||||
}
|
||||
static string ProcessFile(DakotaSystemFile file, out bool copied)
|
||||
{
|
||||
copied = false;
|
||||
|
||||
PrintFileInfo(file);
|
||||
|
||||
if (!IsDakotaFolderDatenannahmestelleValid(file.Datenannahmestelle))
|
||||
return "Datenannahmestelle unbekannt.";
|
||||
|
||||
CopyFileToDestination(file);
|
||||
copied = true;
|
||||
|
||||
Print("Sende via Dakota. ");
|
||||
|
||||
var code = ExecuteDakota("-x");
|
||||
|
||||
if (code == RC_DAKOTA_ALREADY_LOADED)
|
||||
{
|
||||
PrintLine($"Verarbeitung fehlgeschlagen. Dakota läuft bereits.");
|
||||
|
||||
PrintLine("Ignoriere Verarbeitung aktuell. Versuche im nächsten Programm Aufruf erneut.");
|
||||
|
||||
DeleteDakotaFile(file);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!AcceptSendCodes.Contains(code))
|
||||
return $"Verarbeitung fehlgeschlagen. Statuscode {code} wird nicht akzeptiert.";
|
||||
|
||||
PrintLine($"Ok.");
|
||||
DeleteQueueFile(file);
|
||||
return null;
|
||||
}
|
||||
static void CreateResultXmlFile(DakotaSystemFile file, string error)
|
||||
{
|
||||
Print("Speichere Fehler als Xml. ");
|
||||
|
||||
var fehler = new FehlerXml();
|
||||
|
||||
fehler.Datum = DateTime.Now;
|
||||
fehler.Titel = "Dakota Fehler";
|
||||
fehler.Nachricht = error;
|
||||
fehler.Level = 1;
|
||||
fehler.Oid = file.ProtokollOid;
|
||||
|
||||
var folder = GetResultFolderTenant(file.Tenant).FullName;
|
||||
var path = Path.Combine(folder, $"P{file.ProtokollOid}.xml");
|
||||
|
||||
Print($"Path: {path}");
|
||||
|
||||
XmlFileConverter.Save(fehler, path);
|
||||
|
||||
PrintLine("Ok.");
|
||||
}
|
||||
|
||||
static void MoveQueueToFailed(DakotaSystemFile file)
|
||||
{
|
||||
CopyFileToFailed(file);
|
||||
|
||||
DeleteQueueFile(file);
|
||||
}
|
||||
|
||||
static void CopyFileToFailed(DakotaSystemFile file)
|
||||
{
|
||||
var failed_folder = GetFailedFolder();
|
||||
|
||||
CopyFileTo(file.SourceAuftragsdatei, failed_folder.FullName);
|
||||
CopyFileTo(file.SourceNutzdatendatei, failed_folder.FullName);
|
||||
}
|
||||
static void CopyFileToDestination(DakotaSystemFile file)
|
||||
{
|
||||
var folder = GetDakotaFolderDatenannahmestelle(file.Datenannahmestelle);
|
||||
|
||||
CopyFileTo(file.SourceAuftragsdatei, folder.FullName, file.TransfernameAuf);
|
||||
CopyFileTo(file.SourceNutzdatendatei, folder.FullName, file.Transfername);
|
||||
}
|
||||
static void CopyFileTo(FileSystemInfo file, string destination_folder, string file_name = null)
|
||||
{
|
||||
if (file_name is null)
|
||||
file_name = file.Name;
|
||||
|
||||
CopyFile(file.FullName, Path.Combine(destination_folder, file_name));
|
||||
}
|
||||
static void CopyFile(string source, string destination)
|
||||
{
|
||||
Print($"Kopiere \"{source}\" nach \"{destination}\". ");
|
||||
|
||||
File.Copy(source, destination);
|
||||
|
||||
PrintLine("Ok.");
|
||||
}
|
||||
|
||||
static void DeleteQueueFile(DakotaSystemFile file)
|
||||
{
|
||||
DeleteFile(file.SourceAuftragsdatei.FullName);
|
||||
DeleteFile(file.SourceNutzdatendatei.FullName);
|
||||
}
|
||||
static void DeleteDakotaFile(DakotaSystemFile file)
|
||||
{
|
||||
var folder = GetDakotaFolderDatenannahmestelle(file.Datenannahmestelle).FullName;
|
||||
|
||||
DeleteFile(Path.Combine(folder, file.TransfernameAuf));
|
||||
DeleteFile(Path.Combine(folder, file.Transfername));
|
||||
}
|
||||
static void DeleteFile(string file)
|
||||
{
|
||||
Print($"Lösche {file}. ");
|
||||
|
||||
File.Delete(file);
|
||||
|
||||
PrintLine("Ok.");
|
||||
}
|
||||
|
||||
static int ExecuteDakota(string arg)
|
||||
{
|
||||
var fileinfo = GetDakotaExe();
|
||||
|
||||
PrintLine($"{fileinfo.Name} {arg} wird ausgeführt");
|
||||
|
||||
var process = Process.Start(GetDakotaExe().FullName, arg);
|
||||
|
||||
var success = process.WaitForExit(GetProcessWaitForExitMs());
|
||||
|
||||
if (success)
|
||||
{
|
||||
var exitcode = process.ExitCode;
|
||||
|
||||
PrintLine($"Returncode {exitcode}");
|
||||
|
||||
return exitcode;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Timeout");
|
||||
}
|
||||
}
|
||||
|
||||
static bool IsDakotaFolderDatenannahmestelleValid(string datenannahmestelle)
|
||||
{
|
||||
try
|
||||
{
|
||||
_ = GetDakotaFolderDatenannahmestelle(datenannahmestelle);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
static DirectoryInfo GetDakotaFolderDatenannahmestelle(string datenannahmestelle)
|
||||
{
|
||||
var folder = new DirectoryInfo(Path.Combine(GetDakotaFolder().FullName, "TP5Daten", datenannahmestelle));
|
||||
|
||||
if (!folder.Exists)
|
||||
folder = new DirectoryInfo(Path.Combine(GetDakotaFolder().FullName, "TP5Daten", datenannahmestelle.Substring(0, datenannahmestelle.Length - 1)));
|
||||
|
||||
if (!folder.Exists)
|
||||
throw new Exception($"Datenannahmestelle {datenannahmestelle} konnte nicht gefunden werden.");
|
||||
|
||||
return folder;
|
||||
}
|
||||
static DirectoryInfo GetResultFolderTenant(string tenant)
|
||||
{
|
||||
var dirinfo = new DirectoryInfo(Path.Combine(GetResultFolder().FullName, tenant));
|
||||
|
||||
if (!dirinfo.Exists)
|
||||
dirinfo.Create();
|
||||
|
||||
return dirinfo;
|
||||
}
|
||||
|
||||
static string GetLogPath()
|
||||
=> ConfigurationManager.AppSettings.Get("LogPath") ?? @"C:\GkvAbrechnung\Sender\log.txt";
|
||||
static int GetProcessWaitForExitMs()
|
||||
=> int.Parse(ConfigurationManager.AppSettings.Get("ProcessWaitForExitMs") ?? "10000");
|
||||
static FileInfo GetDakotaExe()
|
||||
=> new FileInfo(ConfigurationManager.AppSettings.Get("DakotaExePath") ?? @"C:\Program Files (x86)\ITSG\dakotale\dakota30.exe");
|
||||
static DirectoryInfo GetDakotaFolder()
|
||||
=> new DirectoryInfo(ConfigurationManager.AppSettings.Get("DakotaFolder") ?? @"C:\dakotale\");
|
||||
static DirectoryInfo GetQueueFolder()
|
||||
=> new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath") ?? @"C:\GkvAbrechnung\Queue\");
|
||||
static DirectoryInfo GetResultFolder()
|
||||
=> new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath") ?? @"C:\GkvAbrechnung\Results\");
|
||||
static DirectoryInfo GetFailedFolder()
|
||||
=> new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungFailedFolderPath") ?? @"C:\GkvAbrechnung\Failed\");
|
||||
}
|
||||
class Program
|
||||
{
|
||||
static readonly string TEST_TENANT = "5000000000";
|
||||
static readonly string TEST_TENANT_2 = "7375324044";
|
||||
|
||||
static bool time_in_line = false;
|
||||
static bool is_dakota_running = false;
|
||||
|
||||
static Dictionary<string, Dictionary<long, GkvClientResultRequestDC>> ten2user2req;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
FileStream filestream = new FileStream(Config.LogPath, FileMode.Append);
|
||||
var streamwriter = new StreamWriter(filestream);
|
||||
streamwriter.AutoFlush = true;
|
||||
|
||||
Console.SetOut(streamwriter);
|
||||
Console.SetError(streamwriter);
|
||||
|
||||
try
|
||||
{
|
||||
PrintTitle();
|
||||
|
||||
CheckDakotaStatus();
|
||||
|
||||
HandleQueueFiles();
|
||||
|
||||
HandleResults();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
PrintException(e);
|
||||
|
||||
if (is_dakota_running)
|
||||
{
|
||||
PrintSeperator();
|
||||
PrintLine($"Verarbeitung im Silent Modus fehlgeschlagen. dakota30.exe läuft (bereits).");
|
||||
PrintLine("Ignoriere Verarbeitung aktuell. Versuche im nächsten Programm Aufruf erneut.");
|
||||
}
|
||||
|
||||
PrintSeperator();
|
||||
}
|
||||
|
||||
PrintEnd();
|
||||
}
|
||||
|
||||
internal static void PrintTitle()
|
||||
{
|
||||
PrintLine();
|
||||
PrintSeperator();
|
||||
PrintLine("Dakota Sender Modul");
|
||||
PrintSeperator();
|
||||
}
|
||||
internal static void PrintSeperator() => PrintLine("-------------------");
|
||||
internal static void PrintEnd()
|
||||
{
|
||||
PrintLine("Ende");
|
||||
PrintSeperator();
|
||||
}
|
||||
internal static void PrintLine() => PrintWithTime("\n", false);
|
||||
internal static void PrintLine(string line)
|
||||
{
|
||||
PrintWithTime(line + "\n", !time_in_line);
|
||||
|
||||
time_in_line = false;
|
||||
}
|
||||
internal static void Print(string line)
|
||||
{
|
||||
PrintWithTime(line, !time_in_line);
|
||||
|
||||
time_in_line = true;
|
||||
}
|
||||
internal static void PrintWithTime(string line, bool showTime)
|
||||
{
|
||||
if (showTime)
|
||||
Console.Write($"[{DateTime.Now:dd.MM.yy HH:mm:ss.fff}] {line}");
|
||||
else
|
||||
Console.Write(line);
|
||||
}
|
||||
internal static void PrintFileInfo(DakotaSystemFile file)
|
||||
{
|
||||
Print($"Verarbeite Datei: {file.SourceNutzdatendatei.Name}");
|
||||
PrintLine($"(T:{file.Tenant}, U:{file.ApplicationUserOid}, P:{file.ProtokollOid}, D:{file.Datenannahmestelle})");
|
||||
}
|
||||
internal static void PrintException(Exception e) => PrintLine(e.ToString());
|
||||
|
||||
static void CheckDakotaStatus()
|
||||
{
|
||||
PrintLine("Überprüfe Dakota Status:");
|
||||
|
||||
var code = ExecuteDakota("-s");
|
||||
|
||||
Returncodes.EvaluateStatusCode(code, out is_dakota_running, out bool accept, out string message);
|
||||
|
||||
if (accept)
|
||||
{
|
||||
PrintLine(message);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Statuscode {code} wird nicht akzeptiert. {message}");
|
||||
}
|
||||
|
||||
PrintSeperator();
|
||||
}
|
||||
|
||||
static Dictionary<string, Dictionary<string, List<DakotaSystemFile>>> ScanQueueFolder()
|
||||
{
|
||||
var queue = Config.QueueFolder;
|
||||
|
||||
var files = queue.GetFiles("*.auf", SearchOption.TopDirectoryOnly)
|
||||
.OrderBy(x => x.FullName);
|
||||
|
||||
var ten2dat2files = new Dictionary<string, Dictionary<string, List<DakotaSystemFile>>>();
|
||||
foreach (var auft in files)
|
||||
{
|
||||
var file = ScanQueueFile(auft);
|
||||
|
||||
if (file is null)
|
||||
continue;
|
||||
|
||||
var tenant = file.Tenant;
|
||||
var datenannahmestelle = file.Datenannahmestelle;
|
||||
|
||||
if (!ten2dat2files.ContainsKey(tenant))
|
||||
ten2dat2files.Add(tenant, new Dictionary<string, List<DakotaSystemFile>>());
|
||||
|
||||
var dat2files = ten2dat2files[tenant];
|
||||
|
||||
if (!dat2files.ContainsKey(datenannahmestelle))
|
||||
dat2files.Add(datenannahmestelle, new List<DakotaSystemFile>());
|
||||
|
||||
ten2dat2files[tenant][datenannahmestelle].Add(file);
|
||||
}
|
||||
|
||||
if (ten2dat2files.Any())
|
||||
return ten2dat2files;
|
||||
|
||||
PrintLine("Keine gültigen Dakota Dateien in Queue gefunden.");
|
||||
return null;
|
||||
}
|
||||
static DakotaSystemFile ScanQueueFile(FileInfo auft)
|
||||
{
|
||||
try
|
||||
{
|
||||
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
|
||||
var nutz = new FileInfo(nutz_fullname);
|
||||
|
||||
if (!nutz.Exists)
|
||||
{
|
||||
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
|
||||
return null;
|
||||
}
|
||||
|
||||
PrintLine($"- {auft.FullName}");
|
||||
|
||||
var split = nutz.Name.Split('_');
|
||||
var tenant = split[0];
|
||||
var app_oid = long.Parse(split[1]);
|
||||
var p_oid = long.Parse(split[2]);
|
||||
var datenannahmestelle = split[3];
|
||||
var transfername = split[4];
|
||||
|
||||
// Muss nachher nur entfernt werden, um andere zu testen
|
||||
// Ggf Tool einbauen?
|
||||
if (tenant != TEST_TENANT && tenant != TEST_TENANT_2)
|
||||
{
|
||||
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
|
||||
return null;
|
||||
}
|
||||
|
||||
var file = new DakotaSystemFile()
|
||||
{
|
||||
SourceAuftragsdatei = auft,
|
||||
SourceNutzdatendatei = nutz,
|
||||
Tenant = tenant,
|
||||
ProtokollOid = p_oid,
|
||||
ApplicationUserOid = app_oid,
|
||||
Datenannahmestelle = datenannahmestelle,
|
||||
Transfername = transfername,
|
||||
};
|
||||
|
||||
return file;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
PrintException(e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static void HandleQueueFiles()
|
||||
{
|
||||
PrintLine("Scanne Dakota Dateien:");
|
||||
|
||||
var ten2dat2files = ScanQueueFolder();
|
||||
|
||||
PrintSeperator();
|
||||
|
||||
if (ten2dat2files is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ten2user2req = new Dictionary<string, Dictionary<long, GkvClientResultRequestDC>>();
|
||||
|
||||
PrintLine("Bearbeite Queue");
|
||||
PrintSeperator();
|
||||
|
||||
foreach (var kv in ten2dat2files)
|
||||
{
|
||||
var ten = kv.Key;
|
||||
var dat2files = kv.Value;
|
||||
|
||||
foreach (var kv2 in dat2files)
|
||||
{
|
||||
var dat = kv2.Key;
|
||||
var files = kv2.Value;
|
||||
|
||||
PrintLine($"Bearbeite Datenannahmestelle \'{dat}\' für Tenant \'{ten}\':");
|
||||
|
||||
HandleQueueFiles(files);
|
||||
|
||||
PrintSeperator();
|
||||
|
||||
CheckDakotaStatus();
|
||||
}
|
||||
}
|
||||
|
||||
PrintLine("Bearbeitung Queue beendet");
|
||||
PrintSeperator();
|
||||
}
|
||||
static void HandleQueueFiles(List<DakotaSystemFile> files)
|
||||
{
|
||||
bool error = false;
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
if (!error)
|
||||
{
|
||||
var msg = HandleQueueFile(file, out bool success);
|
||||
|
||||
if (success)
|
||||
{
|
||||
PrintLine(msg);
|
||||
|
||||
Add2Results(file, GkvTransferResultType.Success);
|
||||
}
|
||||
else
|
||||
{
|
||||
error = true;
|
||||
|
||||
PrintLine("Fehler gefunden. " + msg);
|
||||
|
||||
Add2Results(file, GkvTransferResultType.FailSoft, msg, "DS:Fehler");
|
||||
|
||||
FileController.CopyFileToFailed(file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintLine($"Folgefehler: {file.SourceNutzdatendatei.Name}");
|
||||
|
||||
Add2Results(file, GkvTransferResultType.FailFollowUp, "Wird neu erstellt und übertragen.", "DS:Folgefehler");
|
||||
}
|
||||
|
||||
FileController.DeleteQueueFile(file);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Bearbeitet eine File. Wenn dakota.exe während der Bearbeitung gestartet wird, wird das Dakota Verzeichnis gesäubert und die weitere Bearbeitung durch throw Exception unterbrochen.
|
||||
/// </summary>
|
||||
/// <param name="file"></param>
|
||||
/// <param name="success"></param>
|
||||
/// <returns></returns>
|
||||
static string HandleQueueFile(DakotaSystemFile file, out bool success)
|
||||
{
|
||||
success = false;
|
||||
|
||||
PrintFileInfo(file);
|
||||
|
||||
if (!Config.IsDatenannahmestelleValid(file.Datenannahmestelle))
|
||||
return $"Datenannahmestelle {file.Datenannahmestelle} unbekannt.";
|
||||
|
||||
FileController.CopyFileToDestination(file);
|
||||
|
||||
Print("Sende via Dakota. ");
|
||||
|
||||
var rc = ExecuteDakota("-x");
|
||||
|
||||
Returncodes.EvaluateSendCode(rc, out is_dakota_running, out success, out string message);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
FileController.DeleteDakotaFile(file);
|
||||
}
|
||||
|
||||
if (is_dakota_running)
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
static void Add2Results(DakotaSystemFile file, GkvTransferResultType type, string nachricht = null, string title = null)
|
||||
{
|
||||
var tenant = file.Tenant;
|
||||
var user = file.ApplicationUserOid;
|
||||
|
||||
if (!ten2user2req.ContainsKey(tenant))
|
||||
ten2user2req.Add(tenant, new Dictionary<long, GkvClientResultRequestDC>());
|
||||
|
||||
var user2req = ten2user2req[tenant];
|
||||
|
||||
if (!user2req.ContainsKey(user))
|
||||
user2req.Add(user, new GkvClientResultRequestDC()
|
||||
{
|
||||
UserOid = file.ApplicationUserOid,
|
||||
Tenant = file.Tenant,
|
||||
GkvSecretKey = Config.GkvSecretKey
|
||||
});
|
||||
|
||||
var req = user2req[user];
|
||||
|
||||
if (req.ResultDCs is null)
|
||||
req.ResultDCs = new List<GkvServerResultDC>();
|
||||
|
||||
var item = new GkvServerResultDC();
|
||||
|
||||
item.Datum = DateTime.Now;
|
||||
item.Nachricht = nachricht;
|
||||
item.ProtokollOid = file.ProtokollOid;
|
||||
item.ResultType = type;
|
||||
item.Titel = title;
|
||||
|
||||
req.ResultDCs.Add(item);
|
||||
}
|
||||
|
||||
static void HandleResults()
|
||||
{
|
||||
PrintLine("Sende Ergebnisse:");
|
||||
PrintSeperator();
|
||||
|
||||
if (ten2user2req is null || !ten2user2req.Any())
|
||||
return;
|
||||
|
||||
var task = HandleResultsAsync();
|
||||
|
||||
task.Wait();
|
||||
|
||||
if (task.IsFaulted)
|
||||
throw task.Exception;
|
||||
}
|
||||
static async Task HandleResultsAsync()
|
||||
{
|
||||
var tasks = new List<Task>();
|
||||
foreach (var tenant in ten2user2req.Keys)
|
||||
{
|
||||
foreach (var user in ten2user2req[tenant].Keys)
|
||||
{
|
||||
var req = ten2user2req[tenant][user];
|
||||
|
||||
var task = HandleResult(req, tenant, user);
|
||||
|
||||
tasks.Add(task);
|
||||
}
|
||||
}
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
}
|
||||
static async Task HandleResult(GkvClientResultRequestDC req, string tenant, long user)
|
||||
{
|
||||
var res = new GkvResponseDC(false, "empty");
|
||||
|
||||
try
|
||||
{
|
||||
PrintLine($"Sende Ergebnis an: Tenant: {req.Tenant}, User; {req.UserOid}");
|
||||
|
||||
res = await GkvSender.SendKundenAppClientRequestAsync<GkvClientResultRequestDC, GkvResponseDC>(req, tenant, user);
|
||||
|
||||
if (res.Success)
|
||||
PrintLine("Erfolgreich!");
|
||||
else
|
||||
PrintLine("Fehler: " + res.Message);
|
||||
}
|
||||
catch (GkvException e)
|
||||
{
|
||||
PrintException(e);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
PrintException(e);
|
||||
}
|
||||
|
||||
PrintSeperator();
|
||||
|
||||
if (res.Success)
|
||||
return;
|
||||
|
||||
foreach (var result in req.ResultDCs)
|
||||
{
|
||||
FileController.SaveAsXmlFileInResultFolder(result, tenant, user);
|
||||
}
|
||||
|
||||
PrintSeperator();
|
||||
}
|
||||
|
||||
static int ExecuteDakota(string arg)
|
||||
{
|
||||
var fileinfo = Config.DakotaExe;
|
||||
|
||||
PrintLine($"{fileinfo.Name} {arg} wird ausgeführt");
|
||||
|
||||
var process = Process.Start(Config.DakotaExe.FullName, arg);
|
||||
|
||||
var success = process.WaitForExit(Config.ProcessWaitForExitMs);
|
||||
|
||||
if (success)
|
||||
{
|
||||
return process.ExitCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"dakota30.exe - Timeout exceeded ({Config.ProcessWaitForExitMs} ms). ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
111
DakotaSender/Returncodes.cs
Normal file
111
DakotaSender/Returncodes.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DakotaSender
|
||||
{
|
||||
internal static class Returncodes
|
||||
{
|
||||
const int RC_DAKOTA_ALREADY_LOADED = 18;
|
||||
|
||||
static readonly int[] AcceptStatusCodes = new int[] { 0, 1, 100, 101 };
|
||||
static readonly int[] AcceptSendCodes = new int[] { 0, 1 };
|
||||
|
||||
static readonly Dictionary<int, string> StatusReturncodeToMeaning = new Dictionary<int, string>()
|
||||
{
|
||||
{0, "dakota ist betriebsbereit. "},
|
||||
{6, "dakota konnte die Verbindung aufbauen. Stammdatenserver ist online und die Anfrage an den Stammdatenserver zu einem Fehler führt z.b \'die Lizenz ist ungültig!\' "},
|
||||
{10, "dakota ist registriert, aber noch nicht betriebsbereit. "},
|
||||
{30, "dakota ist nicht registriert. "},
|
||||
{40, "Die Verbindung zum Stammdatenserver war nicht möglich. "},
|
||||
{41, "Die Verbindung zum Stammdatenserver war wiederholt nicht möglich. "},
|
||||
{50, "Der Stammdatenserver wurde seit mehr als 10, Tagen nicht erreicht und daher wurde die Lizenz gesperrt. "},
|
||||
{100, "Es ist seit x-Tagen kein Stammdatenupdate durchgeführt worden. dakota wurde ohne Fehler beendet. "},
|
||||
{90, "Es liegt ein fertiges Zertifikat vor und es wurde erfolgreich ein Nachfolgezertifikat beantragt. "},
|
||||
{91, "Es liegt ein fertiges Zertifikat vor und es wurde erfolgreich ein Nachfolgezertifikat beantragt. Das aktive Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{101, "Es ist seit x-Tagen kein Stammdatenupdate durchgeführt worden und das Zertifikat läuft in der angegebenen Frist ab. dakota wurde ohne Fehler beendet. "},
|
||||
{200, "Es ist seit x-Tagen keine Schlüsselsicherung durchgeführt worden. dakota wurde ohne Fehler beendet. "},
|
||||
{201, "Es ist seit x-Tagen keine Schlüsselsicherung durchgeführt worden und das Zertifikat läuft in der angegebenen Frist ab. dakota wurde ohne Fehler beendet. "},
|
||||
{300, "Es ist seit x-Tagen kein Stammdatenupdate und keine Schlüsselsicherung durchgeführt worden. dakota wurde ohne Fehler beendet. "},
|
||||
{301, "Es ist seit x-Tagen kein Stammdatenupdate und keine Schlüsselsicherung durchgeführt worden und das Zertifikat läuft in der angegebenen Frist ab. dakota wurde ohne Fehler beende " },
|
||||
};
|
||||
|
||||
static readonly Dictionary<int, string> SendReturncodeToMeaning = new Dictionary<int, string>()
|
||||
{
|
||||
{0, "Alle Dateien wurden verarbeitet. " },
|
||||
{1, "Alle Dateien wurden verarbeitet und das Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{2, "Es sind keine Daten zur Verarbeitung vorhanden. "},
|
||||
{3, "Es sind keine Daten zur Verarbeitung vorhanden und das Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{4, "Eine oder mehrere Dateien konnten nicht verarbeitet werden. "},
|
||||
{5, "Eine oder mehrere Dateien konnten nicht verarbeitet werden und das Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
};
|
||||
|
||||
static readonly Dictionary<int, string> ExecuteModusReturnCodes2Meaning = new Dictionary<int, string>()
|
||||
{
|
||||
{0, "Alle Dateien verarbeitet, bzw. Schlüssel erfolgreich eingelesen, bzw. alle Dateien erfolgreich entschlüsselt, ohne Fehler beendet. "},
|
||||
{1, "Alle Dateien verarbeitet, Zertifikat läuft in der angegebenen Frist ab, ohne Fehler beendet. "},
|
||||
{2, "Keine Daten zur Verarbeitung bzw. keine Daten zur Entschlüsselung vorhanden, ohne Fehler beendet. "},
|
||||
{3, "Keine Daten zur Verarbeitung vorhanden, ohne Fehler beendet, Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{4, "Eine oder mehrere Dateien konnten nicht verarbeitet bzw. entschlüsselt werden, siehe Protokoll, ohne Fehler beendet. "},
|
||||
{5, "Eine oder mehrere Dateien konnten nicht verarbeitet werden, Zertifikat läuft in der angegebenen Frist ab, ohne Fehler beendet. "},
|
||||
{6, "Aktion vom Anwender abgebrochen (Achtung: Im Kurzprotokoll-Modus normal). "},
|
||||
{7, "Aktion vom Anwender abgebrochen, Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{9, "Antrag am Trust Center gestellt, noch nicht schlüsselfertig (tritt nur bei Statusabfrage –s auf, alle anderen Parameter RC10). "},
|
||||
{10, "dakota noch nicht schlüsselfertig konfiguriert, Programmabbruch. "},
|
||||
{14, "Falscher Programmaufruf, Programmabbruch. "},
|
||||
{16, "Interner Fehler, Programmabbruch. "},
|
||||
{18, "Programm ist bereits geladen. "},
|
||||
{30, "Die Lizenz ist nicht registriert (ab dakota.ag 6.2). "},
|
||||
{40, "Verbindung zum Stammdatenupdateserver war nicht möglich (ab dakota.ag 6.2). "},
|
||||
{41, "Verbindung zum Stammdatenupdateserver war wiederholt nicht möglich (ab dakota.ag 6.2). "},
|
||||
{50, "Der Stammdatenserver wurde seit mehr als 10 Tagen nicht erreicht und daher wurde die Lizenz gesperrt (ab dakota.ag 6.1). "},
|
||||
{90, "Es liegt ein fertiges Zertifikat vor und es wurde erfolgreich ein Nachfolgezertifikat beantragt. "},
|
||||
{91, "Es liegt ein fertiges Zertifikat vor und es wurde erfolgreich ein Nachfolgezertifikat beantragt, aktives Zertifikat läuft in der angegebenen Frist ab. "},
|
||||
{100, "Es ist seit x-Tagen kein Stammdatenupdate durchgeführt worden, ohne Fehler beendet (nur bei Parameter –s). "},
|
||||
{101, "Es ist seit x-Tagen kein Stammdatenupdate durchgeführt worden und Ihr Zertifikat läuft in der angegebenen Frist ab, ohne Fehler beendet (nur bei Parameter –s). "},
|
||||
{200, "Es ist seit x-Tagen keine Schlüsselsicherung durchgeführt worden, ohne Fehler beendet (nur bei Parameter –s). "},
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Werten den Return Code beim Statusabfrage aus.
|
||||
/// </summary>
|
||||
/// <param name="rc"></param>
|
||||
/// <param name="isDakotaRunning"></param>
|
||||
/// <param name="accept"></param>
|
||||
/// <param name="message"></param>
|
||||
public static void EvaluateStatusCode(int rc, out bool isDakotaRunning, out bool accept, out string message)
|
||||
{
|
||||
isDakotaRunning = rc == RC_DAKOTA_ALREADY_LOADED;
|
||||
accept = AcceptStatusCodes.Contains(rc);
|
||||
|
||||
if (ExecuteModusReturnCodes2Meaning.TryGetValue(rc, out string msg))
|
||||
message = msg;
|
||||
else if (StatusReturncodeToMeaning.TryGetValue(rc, out string msg2))
|
||||
message = "special: " + msg2;
|
||||
else
|
||||
message = "Unknown returncode";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Werten den Return Code beim Senden aus.
|
||||
/// </summary>
|
||||
/// <param name="rc"></param>
|
||||
/// <param name="isDakotaRunning"></param>
|
||||
/// <param name="accept"></param>
|
||||
/// <param name="message"></param>
|
||||
public static void EvaluateSendCode(int rc, out bool isDakotaRunning, out bool accept, out string message)
|
||||
{
|
||||
isDakotaRunning = rc == RC_DAKOTA_ALREADY_LOADED;
|
||||
accept = AcceptSendCodes.Contains(rc);
|
||||
|
||||
if (ExecuteModusReturnCodes2Meaning.TryGetValue(rc, out string msg))
|
||||
message = msg;
|
||||
else if (SendReturncodeToMeaning.TryGetValue(rc, out string msg2))
|
||||
message = "special: " + msg2;
|
||||
else
|
||||
message = "Unknown returncode";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,10 +12,10 @@ namespace DakotaSender
|
||||
/// <summary>
|
||||
/// Saves to an xml file
|
||||
/// </summary>
|
||||
/// <param name="FileName">File path of the new xml file</param>
|
||||
public static void Save<T>(T obj, string FileName) where T : class
|
||||
/// <param name="fileName">File path of the new xml file</param>
|
||||
public static void Save<T>(T obj, string fileName) where T : class
|
||||
{
|
||||
using (var writer = new System.IO.StreamWriter(FileName))
|
||||
using (var writer = new System.IO.StreamWriter(fileName))
|
||||
{
|
||||
var serializer = new XmlSerializer(obj.GetType());
|
||||
serializer.Serialize(writer, obj);
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace DakotaUnitTest
|
||||
[TestMethod]
|
||||
public void ValidateXmlParse()
|
||||
{
|
||||
var convert = GkvApp8FehlerXml.GetFehlerXml("fehler_example.xml");
|
||||
var convert = GkvServerResultXml.GetResultXml("fehler_example.xml");
|
||||
|
||||
Assert.IsNotNull(convert);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Fehler Oid="31">
|
||||
<Result ProtokollOid="31">
|
||||
<Titel>31</Titel>
|
||||
<Datum>2024-06-01T09:00:00</Datum>
|
||||
<Nachricht>TestNach</Nachricht>
|
||||
<Level>1</Level>
|
||||
</Fehler>
|
||||
</Result>
|
||||
@@ -52,6 +52,11 @@ namespace BeWo.Data
|
||||
{
|
||||
userLoaded = TryAuthenticateWithLoginForm(context);
|
||||
}
|
||||
|
||||
if(!userLoaded)
|
||||
{
|
||||
userLoaded = TryAuthenticateWithGkv(context);
|
||||
}
|
||||
|
||||
if(!userLoaded && !(SessionFacade.LoggedInUser?.Oid is null))
|
||||
{
|
||||
@@ -74,7 +79,7 @@ namespace BeWo.Data
|
||||
if (string.IsNullOrEmpty(context.Request.FilePath))
|
||||
return false;
|
||||
|
||||
if (context.Request.FilePath.IndexOf("GkvAbrechnungView.aspx") >= 0)
|
||||
if (context.Request.FilePath.IndexOf("GkvAbrechnungServer.aspx") >= 0)
|
||||
return false;
|
||||
|
||||
if (context.Request.FilePath.IndexOf("Admin.aspx") >= 0)
|
||||
@@ -137,6 +142,45 @@ namespace BeWo.Data
|
||||
return lTenant;
|
||||
}
|
||||
|
||||
private static bool TryAuthenticateWithRequestParams(HttpApplication context)
|
||||
{
|
||||
string lUserName = null;
|
||||
string lPassword = null;
|
||||
|
||||
//if (!context.Request.Params.AllKeys.Contains("tenant"))
|
||||
// return false;
|
||||
var lTenant = GetTenant(context);
|
||||
|
||||
if (!string.IsNullOrEmpty(lTenant))
|
||||
{
|
||||
if (context.Request.Params.AllKeys.Contains("token"))
|
||||
{
|
||||
lUserName = GetLoginInfoFromToken(context.Request.Params["token"])["user"];
|
||||
lPassword = GetLoginInfoFromToken(context.Request.Params["token"])["password"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lUserName = context.Request.Params["username"];
|
||||
lPassword = context.Request.Params["token"];
|
||||
}
|
||||
|
||||
if (!BS.Shared.Core.Utils.IsAnyNullOrEmpty(lUserName, lPassword))
|
||||
{
|
||||
var ip = context.Request.UserHostAddress;
|
||||
|
||||
var lUser = DAOFactory.UserDAO.FindUserByLoginName(lUserName, ip);
|
||||
|
||||
if (lUser != null && lUser.CheckRC2Password(lPassword))
|
||||
{
|
||||
SessionFacade.LoggedInUser = lUser;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool TryAuthenticateWithLoginForm(HttpApplication context)
|
||||
{
|
||||
var name = context.Request.Params["ctl00$tb_login"];
|
||||
@@ -156,43 +200,49 @@ namespace BeWo.Data
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool TryAuthenticateWithRequestParams(HttpApplication context)
|
||||
private static bool TryAuthenticateWithGkv(HttpApplication context)
|
||||
{
|
||||
string lUserName = null;
|
||||
string lPassword = null;
|
||||
if (context.Request.FilePath.IndexOf("GkvAbrechnungClient.aspx") == -1)
|
||||
return false;
|
||||
|
||||
//if (!context.Request.Params.AllKeys.Contains("tenant"))
|
||||
// return false;
|
||||
var lTenant = GetTenant(context);
|
||||
var appsettingip = System.Configuration.ConfigurationManager.AppSettings["App8IpAddress"];
|
||||
var clientip = GetIP(true);
|
||||
|
||||
if(!string.IsNullOrEmpty(lTenant))
|
||||
if (appsettingip != clientip)
|
||||
return false;
|
||||
|
||||
var useroidstr = context.Request.Params["useroid"];
|
||||
|
||||
if (!long.TryParse(useroidstr, out long useroid))
|
||||
return false;
|
||||
|
||||
SessionFacade.LoggedInUser = DAOFactory.GenericDAO.LoadByID<ApplicationUser>(useroid);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static string GetIP(bool CheckForward = false)
|
||||
{
|
||||
// https://stackoverflow.com/a/13249280
|
||||
|
||||
string ip = null;
|
||||
if (CheckForward)
|
||||
{
|
||||
if (context.Request.Params.AllKeys.Contains("token"))
|
||||
{
|
||||
lUserName = GetLoginInfoFromToken(context.Request.Params["token"])["user"];
|
||||
lPassword = GetLoginInfoFromToken(context.Request.Params["token"])["password"];
|
||||
}
|
||||
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(ip))
|
||||
{
|
||||
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lUserName = context.Request.Params["username"];
|
||||
lPassword = context.Request.Params["token"];
|
||||
{ // Using X-Forwarded-For last address
|
||||
ip = ip.Split(',')
|
||||
.Last()
|
||||
.Trim();
|
||||
}
|
||||
|
||||
if(!BS.Shared.Core.Utils.IsAnyNullOrEmpty(lUserName, lPassword))
|
||||
{
|
||||
var ip = context.Request.UserHostAddress;
|
||||
|
||||
var lUser = DAOFactory.UserDAO.FindUserByLoginName(lUserName, ip);
|
||||
|
||||
if(lUser != null && lUser.CheckRC2Password(lPassword))
|
||||
{
|
||||
SessionFacade.LoggedInUser = lUser;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return ip;
|
||||
}
|
||||
|
||||
private static Dictionary<string, string> GetLoginInfoFromToken(string token)
|
||||
|
||||
@@ -5940,7 +5940,7 @@ namespace BeWo.Data.Access
|
||||
public int GetNextDatenaustauschreferenz(string datenannahmestelle)
|
||||
{
|
||||
var criteria = CreateCriteria<GkvTransferProtokoll>()
|
||||
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.SentSuccess && x.IKDatenannahmestelle == datenannahmestelle))
|
||||
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.SentApp8Success && x.IKDatenannahmestelle == datenannahmestelle))
|
||||
.SetProjection(Projections.Max("Datenaustauschreferenz"));
|
||||
|
||||
var t = criteria.List<int?>().SingleOrDefault();
|
||||
@@ -5951,12 +5951,12 @@ namespace BeWo.Data.Access
|
||||
public int GetNextTransfernummer(string datenannahmestelle)
|
||||
{
|
||||
var criteria = CreateCriteria<GkvTransferProtokoll>()
|
||||
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.SentSuccess && x.IKDatenannahmestelle == datenannahmestelle))
|
||||
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.SentApp8Success && x.IKDatenannahmestelle == datenannahmestelle))
|
||||
.SetProjection(Projections.Max("Transfernummer"));
|
||||
|
||||
var t = criteria.List<int?>().SingleOrDefault();
|
||||
|
||||
return t + 1?? 0;
|
||||
return t + 1 ?? 0;
|
||||
}
|
||||
|
||||
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntriesByTransaktionsOids(List<long> transaktionsOids)
|
||||
|
||||
@@ -170,6 +170,7 @@ namespace BeWo.Data
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//throw new FaultException("ttttt" + e.ToString());
|
||||
throw new FaultException(e.StackTrace + e.InnerException?.Message ?? string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,11 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Interface;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class GkvAbrechnung : BeWoEntityBase
|
||||
public class GkvAbrechnung : BeWoEntityBase, IGkvAbrechnung
|
||||
{
|
||||
public GkvAbrechnung()
|
||||
{
|
||||
@@ -25,15 +26,7 @@ namespace BeWo.Data.Entities
|
||||
public virtual IList<InvoiceBase> InvoiceBases { get; set; }
|
||||
public virtual IList<GkvTransferProtokoll> GkvTransferProtokolle { get; set; }
|
||||
|
||||
public static GkvState GetState(GkvAbrechnung entity) =>
|
||||
GkvAbrechnungExtensions.GetState(
|
||||
entity,
|
||||
() => entity.Bezahlt,
|
||||
() => entity.UrbelegeGesendet,
|
||||
() => entity.GkvTransferProtokolle,
|
||||
(x) => x.Fehlerdatum,
|
||||
(x) => x.Fehlerlevel,
|
||||
(x) => x.ErstelltAm.Value);
|
||||
public virtual IGkvTransferProtokoll LastTransferProtokoll => GkvTransferProtokolle?.LastOrDefault();
|
||||
|
||||
public virtual Organisation GetOrganisation()
|
||||
{
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Interface;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class GkvTransferProtokoll : BeWoEntityBase
|
||||
public class GkvTransferProtokoll : BeWoEntityBase, IGkvTransferProtokoll
|
||||
{
|
||||
public GkvTransferProtokoll()
|
||||
{
|
||||
@@ -36,11 +37,12 @@ namespace BeWo.Data.Entities
|
||||
public virtual string Nutzdatendatei { get; set; }
|
||||
public virtual string Auftragsdatei { get; set; }
|
||||
|
||||
public virtual bool SentSuccess { get; set; }
|
||||
public virtual bool SentApp8Success { get; set; }
|
||||
public virtual bool SentDakotaSuccess { get; set; }
|
||||
|
||||
public virtual GkvTransferResultType? ResultType { get; set; }
|
||||
public virtual string Fehlertitel { get; set; }
|
||||
public virtual DateTime? Fehlerdatum { get; set; }
|
||||
public virtual string Fehlernachricht { get; set; }
|
||||
public virtual GkvTransferFehlerlevel Fehlerlevel { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -33,10 +33,11 @@
|
||||
<property column="Transfernummer" type="int" name="Transfernummer" />
|
||||
<property column="ErstelltAm" type="DateTime" name="ErstelltAm" />
|
||||
|
||||
<property column="SentSuccess" type="Boolean" name="SentSuccess" />
|
||||
<property column="Fehlertitel" type="string" name="Fehlertitel" />
|
||||
<property column="Fehlerdatum" type="DateTime" name="Fehlerdatum" />
|
||||
<property column="Fehlernachricht" type="string" name="Fehlernachricht" />
|
||||
<property column="Fehlerlevel" type="BS.Shared.GkvTransferFehlerlevel, BS.Shared" name="Fehlerlevel" />
|
||||
<property column="SentApp8Success" type="Boolean" name="SentApp8Success" />
|
||||
<property column="SentDakotaSuccess" type="Boolean" name="SentDakotaSuccess" />
|
||||
<property column="ResultType" type="BS.Shared.GkvTransferResultType, BS.Shared" name="ResultType" />
|
||||
<property column="Fehlertitel" type="string" name="Fehlertitel" />
|
||||
<property column="Fehlerdatum" type="DateTime" name="Fehlerdatum" />
|
||||
<property column="Fehlernachricht" type="string" name="Fehlernachricht" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
|
||||
@@ -60,8 +60,9 @@ namespace BeWo.Data
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//String path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionFactoryError.txt");
|
||||
//System.IO.File.AppendAllText(path, String.Format("{0:dd.MM.yyyy HH:mm:ss}", DateTime.Now) + "\n" + e.Message + "\n" + e.StackTrace);
|
||||
String path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionFactoryError.txt");
|
||||
System.IO.File.AppendAllText(@"C:\BeWoPlaner\service\Host\logs\WCFSessionError.txt", String.Format("SessionFactory get {0:dd.MM.yyyy HH:mm:ss}", DateTime.Now) + "\n" + e.Message + "\n" + e.StackTrace);
|
||||
|
||||
Debug.WriteLine("<<<<< " + e.StackTrace + (e.InnerException != null ? e.InnerException.Message : string.Empty));
|
||||
throw new FaultException(e.StackTrace + e.InnerException != null ? e.InnerException.Message : string.Empty);
|
||||
}
|
||||
@@ -157,6 +158,8 @@ namespace BeWo.Data
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
File.AppendAllText(@"C:\BeWoPlaner\service\Host\logs\WCFSessionError.txt", String.Format("OpenSession {0:dd.MM.yyyy HH:mm:ss}", DateTime.Now) + "\n" + e.Message + "\n" + e.StackTrace);
|
||||
|
||||
throw new FaultException(e.StackTrace + e.InnerException?.Message ?? string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
1
Host/GkvAbrechnungClient.aspx
Normal file
1
Host/GkvAbrechnungClient.aspx
Normal file
@@ -0,0 +1 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GkvAbrechnungClient.aspx.cs" Inherits="Host.GkvAbrechnungClient" %>
|
||||
115
Host/GkvAbrechnungClient.aspx.cs
Normal file
115
Host/GkvAbrechnungClient.aspx.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.ServiceImplementations;
|
||||
using BS.Shared;
|
||||
using BS.Shared.AppSender;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Exceptions;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace Host
|
||||
{
|
||||
public partial class GkvAbrechnungClient : Page
|
||||
{
|
||||
private readonly string INVALID_INPUT = "Ungültige Eingabe";
|
||||
|
||||
private string GkvSecretKey { get; set; } = ConfigurationManager.AppSettings.Get("GkvSecretKey");
|
||||
|
||||
public GkvRequestDC GkvRequest { get; set; }
|
||||
|
||||
public void Sleep() => Thread.Sleep(5000);
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
//https://app5.bewoplaner.de/Host/GkvAbrechungServer?tenant=12345
|
||||
|
||||
var str = new StreamReader(Request.InputStream).ReadToEnd();
|
||||
|
||||
GkvRequest = GkvSender.DeserializeRequest<GkvRequestDC>(str, SendInvalidInputResponse);
|
||||
|
||||
switch (GkvRequest.Type)
|
||||
{
|
||||
case RequestType.GkvClientResult:
|
||||
ClientResult(GkvSender.DeserializeRequest<GkvClientResultRequestDC>(str, SendInvalidInputResponse));
|
||||
return;
|
||||
default:
|
||||
SendErrorResponse("RequestType unbekannt.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException eee)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var ex_text = ex.Message + "\n" + ex.StackTrace;
|
||||
SendErrorResponse(ex_text);
|
||||
}
|
||||
}
|
||||
|
||||
private void ClientResult(GkvClientResultRequestDC req)
|
||||
{
|
||||
if (GkvSecretKey is null)
|
||||
SendErrorResponse(INVALID_INPUT + " 1");
|
||||
|
||||
if (GkvSecretKey != req.GkvSecretKey)
|
||||
SendErrorResponse(INVALID_INPUT + " 2");
|
||||
|
||||
if (req.ResultDCs is null || !req.ResultDCs.Any())
|
||||
SendInvalidInputResponse();
|
||||
|
||||
// Response
|
||||
var response = new GkvResponseDC(false);
|
||||
|
||||
try
|
||||
{
|
||||
var service = new AccountingServiceImp();
|
||||
|
||||
service.HandleGkvServerResults(req.ResultDCs);
|
||||
|
||||
response.Success = true;
|
||||
}
|
||||
catch (GkvException e)
|
||||
{
|
||||
response.Message = e.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
response.Message = e.Message;
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
}
|
||||
|
||||
#region Senden
|
||||
private void SendInvalidInputResponse() => SendErrorResponse(INVALID_INPUT);
|
||||
private void SendErrorResponse(string message)
|
||||
{
|
||||
var response = new GkvResponseDC(false, message);
|
||||
|
||||
Sleep();
|
||||
|
||||
SendResponse(GkvSender.SerializeResponse(response));
|
||||
}
|
||||
private void SendResponse(GkvResponseDC res) => SendResponse(GkvSender.SerializeResponse(res));
|
||||
private void SendResponse(string str)
|
||||
{
|
||||
Response.Write(str);
|
||||
|
||||
Response.End();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <automatisch generiert>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
//
|
||||
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code neu generiert wird.
|
||||
// </automatisch generiert>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Host
|
||||
{
|
||||
|
||||
|
||||
public partial class GkvAbrechnungView
|
||||
{
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// <automatisch generiert>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
//
|
||||
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code neu generiert wird.
|
||||
// </automatisch generiert>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Host
|
||||
{
|
||||
|
||||
|
||||
public partial class GkvAbrechnungClient
|
||||
{
|
||||
}
|
||||
}
|
||||
1
Host/GkvAbrechnungServer.aspx
Normal file
1
Host/GkvAbrechnungServer.aspx
Normal file
@@ -0,0 +1 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GkvAbrechnungServer.aspx.cs" Inherits="Host.GkvAbrechnungServer"%>
|
||||
333
Host/GkvAbrechnungServer.aspx.cs
Normal file
333
Host/GkvAbrechnungServer.aspx.cs
Normal file
@@ -0,0 +1,333 @@
|
||||
using BS.Shared;
|
||||
using BS.Shared.AppSender;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using BS.Shared.Exceptions;
|
||||
using Dakota.Logic;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using Page = System.Web.UI.Page;
|
||||
|
||||
namespace Host
|
||||
{
|
||||
public partial class GkvAbrechnungServer : Page
|
||||
{
|
||||
public const int PROCESS_WAITFOREXIT_MS = 10 * 1000;
|
||||
public const int WAIT_BEFORE_ERROR_MS = 5 * 1000;
|
||||
|
||||
private readonly string LOGINSERVER_URL = "{0}/Login.aspx";
|
||||
private readonly string INVALID_INPUT = "Ungültige Eingabe";
|
||||
|
||||
private string ResultFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath");
|
||||
private string QueueFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath");
|
||||
private string KostentragerdateiFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvKostentragerdateiFolderPath");
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
//https://app8.bewoplaner.de/Host/GkvAbrechungServer?tenant=12345
|
||||
|
||||
var str = new StreamReader(Request.InputStream).ReadToEnd();
|
||||
|
||||
var req = GkvSender.DeserializeRequest<GkvRequestDC>(str, SendInvalidInputResponse);
|
||||
|
||||
if (!CheckValues(req))
|
||||
SendErrorResponse("Check Fehlgeschlagen");
|
||||
|
||||
if (!TryLogin(req))
|
||||
SendErrorResponse("Login Fehlgeschlagen");
|
||||
|
||||
switch (req.Type)
|
||||
{
|
||||
case RequestType.GkvServerSendNew:
|
||||
SendNew(GkvSender.DeserializeRequest<GkvServerSendNewRequestDC>(str, SendInvalidInputResponse));
|
||||
return;
|
||||
|
||||
case RequestType.GkvServerGetIKNumber:
|
||||
GetIK(GkvSender.DeserializeRequest<GkvServerGetIKRequestDC>(str, SendInvalidInputResponse));
|
||||
return;
|
||||
|
||||
case RequestType.GkvServerGetStatus:
|
||||
GetStatus(GkvSender.DeserializeRequest<GkvServerGetStatusRequestDC>(str, SendInvalidInputResponse));
|
||||
return;
|
||||
|
||||
default:
|
||||
SendErrorResponse("RequestType unbekannt.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException eee)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var ex_text = ex.Message + "\n" + ex.StackTrace;
|
||||
SendErrorResponse(ex_text);
|
||||
}
|
||||
|
||||
Response.End();
|
||||
}
|
||||
|
||||
private bool CheckValues(GkvRequestDC req)
|
||||
{
|
||||
if (req == null)
|
||||
return false;
|
||||
if (req.Type == RequestType.Default)
|
||||
return false;
|
||||
if (string.IsNullOrWhiteSpace(req.Username))
|
||||
return false;
|
||||
if (string.IsNullOrWhiteSpace(req.Tenant))
|
||||
return false;
|
||||
|
||||
#if !DEBUG
|
||||
if (string.IsNullOrWhiteSpace(req.Password))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
private bool TryLogin(GkvRequestDC req)
|
||||
{
|
||||
var server = AppRequestSender.GetServerFromTenant(req.Tenant);
|
||||
|
||||
if (string.IsNullOrEmpty(server))
|
||||
return false;
|
||||
|
||||
var loginurl = string.Format(LOGINSERVER_URL, $"https://{server}/service");
|
||||
|
||||
#if DEBUG
|
||||
if (server.IndexOf("localhost") > 0)
|
||||
loginurl = string.Format(LOGINSERVER_URL, $"http://{server}/Host");
|
||||
#endif
|
||||
|
||||
bool successful;
|
||||
byte[] result;
|
||||
string result_str;
|
||||
|
||||
try
|
||||
{
|
||||
using (WebClient client = new WebClient())
|
||||
{
|
||||
var nvc = new NameValueCollection();
|
||||
nvc.Add("password", req.Password);
|
||||
nvc.Add("username", req.Username);
|
||||
nvc.Add("tenant", req.Tenant);
|
||||
|
||||
result = client.UploadValues(loginurl, "POST", nvc);
|
||||
result_str = Encoding.Default.GetString(result);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GkvException($"loginurl: {loginurl} | " + e.ToString());
|
||||
}
|
||||
|
||||
successful = Convert.ToBoolean(result_str);
|
||||
|
||||
return successful;
|
||||
}
|
||||
|
||||
private void SendNew(GkvServerSendNewRequestDC req)
|
||||
{
|
||||
// Response
|
||||
var res = new GkvServerSendNewResponseDC();
|
||||
|
||||
res.GkvTransferProtokollDC = req.Protokoll;
|
||||
|
||||
try
|
||||
{
|
||||
var finalpath = SaveFileInQueue(req);
|
||||
|
||||
req.Protokoll.SentApp8Success = true;
|
||||
|
||||
res.Success = true;
|
||||
}
|
||||
catch (GkvException e)
|
||||
{
|
||||
req.Protokoll.ResultType = GkvTransferResultType.FailSoft;
|
||||
req.Protokoll.Fehlerdatum = DateTime.Now;
|
||||
req.Protokoll.Fehlertitel = "App8 - Gkv";
|
||||
req.Protokoll.Fehlernachricht = e.Message;
|
||||
|
||||
res.Message = e.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
req.Protokoll.ResultType = GkvTransferResultType.FailSoft;
|
||||
req.Protokoll.Fehlerdatum = DateTime.Now;
|
||||
req.Protokoll.Fehlertitel = "App8";
|
||||
req.Protokoll.Fehlernachricht = e.Message;
|
||||
|
||||
res.Message = e.Message;
|
||||
}
|
||||
|
||||
SendResponse(res);
|
||||
}
|
||||
private void GetIK(GkvServerGetIKRequestDC req)
|
||||
{
|
||||
var ktd_reader = new DakotaKTDReader(KostentragerdateiFolderPath);
|
||||
|
||||
var resolved = ktd_reader.Resolve(req.IKKrankenkasse, req.Abrechnungscode, req.Tarifkennzeichen);
|
||||
|
||||
var response = new GkvServerGetIKResponseDC(true)
|
||||
{
|
||||
Gefunden = resolved is object
|
||||
};
|
||||
|
||||
if (response.Gefunden)
|
||||
{
|
||||
response.IKDatenannahmestelle = resolved.Item1;
|
||||
response.IKKostentrager = resolved.Item2;
|
||||
response.IKKrankenkasse = resolved.Item3;
|
||||
response.BezDatenannahmestelle = resolved.Item4;
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
}
|
||||
private void GetStatus(GkvServerGetStatusRequestDC req)
|
||||
{
|
||||
var response = new GkvServerGetStatusResponseDC(false);
|
||||
|
||||
var tuple_count = req.Oids.Length;
|
||||
|
||||
response.Results = new GkvServerResultDC[tuple_count];
|
||||
|
||||
try
|
||||
{
|
||||
// Load XML Info
|
||||
var results = GetResultFile(req.Tenant);
|
||||
|
||||
if (results is object)
|
||||
for (int i = 0; i < tuple_count; i++)
|
||||
{
|
||||
var gkv_transfer_oid = req.Oids[i];
|
||||
|
||||
if (results.TryGetValue(gkv_transfer_oid, out var fehlerDC))
|
||||
{
|
||||
response.Results[i] = fehlerDC;
|
||||
}
|
||||
}
|
||||
|
||||
ClearResultFolder(req.Tenant, req.Oids);
|
||||
|
||||
response.Success = true;
|
||||
}
|
||||
catch (GkvException e)
|
||||
{
|
||||
response.Message = e.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
response.Message = e.ToString();
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
private string SaveFileInQueue(GkvServerSendNewRequestDC req)
|
||||
{
|
||||
string root_path = QueueFolderPath;
|
||||
string file_path = string.Format("{0}_{1}_{2}_{3}_{4}",
|
||||
req.Tenant, req.ApplicationUserOid, req.Protokoll_Oid, req.Datenannahmestelle, req.Transfername);
|
||||
|
||||
Directory.CreateDirectory(root_path);
|
||||
|
||||
var finalpath = root_path + file_path;
|
||||
|
||||
File.WriteAllText(finalpath, req.Nutzdatendatei);
|
||||
|
||||
var auftragsdatei2 = Encoding.GetEncoding("ISO-8859-1").GetBytes(req.Auftragsdatei);
|
||||
|
||||
File.WriteAllBytes(finalpath + ".auf", auftragsdatei2);
|
||||
|
||||
return finalpath;
|
||||
}
|
||||
|
||||
private void ClearResultFolder(string tenant, long[] oids)
|
||||
{
|
||||
var folder = new DirectoryInfo(Path.Combine(ResultFolderPath, tenant));
|
||||
|
||||
if (!folder.Exists)
|
||||
return;
|
||||
|
||||
foreach (var file in folder.GetFiles())
|
||||
{
|
||||
var xml_obj = GkvServerResultXml.GetResultXml(file.FullName);
|
||||
|
||||
if (xml_obj is GkvServerResultXml xml && oids.Contains(xml.ProtokollOid))
|
||||
continue;
|
||||
|
||||
file.Delete();
|
||||
}
|
||||
}
|
||||
private Dictionary<long, GkvServerResultDC> GetResultFile(string tenant)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = ResultFolderPath;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
throw new GkvException("Config GkvAbrechnungResultFolderPath is empty or whitespace");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(tenant))
|
||||
throw new GkvException("Tenant is empty or whitespace");
|
||||
|
||||
var folder = new DirectoryInfo(Path.Combine(path, tenant));
|
||||
|
||||
if (!folder.Exists)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var dict = new Dictionary<long, GkvServerResultDC>();
|
||||
foreach (var file in folder.GetFiles("*.xml"))
|
||||
{
|
||||
var xml = GkvServerResultXml.GetResultXml(file.FullName);
|
||||
|
||||
if (xml is null)
|
||||
continue;
|
||||
|
||||
dict.Add(xml.ProtokollOid, GkvServerResultXml.ToDC(xml));
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
catch (GkvException e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new GkvException("App8 Server Error: " + e.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void SendInvalidInputResponse() => SendErrorResponse(INVALID_INPUT);
|
||||
private void SendErrorResponse(string message)
|
||||
{
|
||||
var response = new GkvResponseDC(false, message);
|
||||
|
||||
Thread.Sleep(WAIT_BEFORE_ERROR_MS);
|
||||
|
||||
SendResponse(GkvSender.SerializeResponse(response));
|
||||
}
|
||||
private void SendResponse(GkvResponseDC res) => SendResponse(GkvSender.SerializeResponse(res));
|
||||
private void SendResponse(string str)
|
||||
{
|
||||
Response.Write(str);
|
||||
|
||||
Response.End();
|
||||
}
|
||||
}
|
||||
}
|
||||
17
Host/GkvAbrechnungServer.aspx.designer.cs
generated
Normal file
17
Host/GkvAbrechnungServer.aspx.designer.cs
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <automatisch generiert>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
//
|
||||
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code neu generiert wird.
|
||||
// </automatisch generiert>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Host
|
||||
{
|
||||
|
||||
|
||||
public partial class GkvAbrechnungServer
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GkvAbrechnungView.aspx.cs" Inherits="Host.GkvAbrechnungView"%>
|
||||
|
||||
<%@ Register assembly="DevExpress.XtraReports.v23.2.Web.WebForms, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.XtraReports.Web" tagprefix="dxxr" %>
|
||||
@@ -1,394 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
using BeWo.Data;
|
||||
using BeWo.Report;
|
||||
using BeWo.Service.Security;
|
||||
|
||||
using DevExpress.XtraPrinting;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
using Page = System.Web.UI.Page;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
using BS.Shared.DataContracts.GkvAbrechnung;
|
||||
using System.Net;
|
||||
using System.Collections.Specialized;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BeWo.Data.Entities;
|
||||
using BS.Shared.Extensions;
|
||||
using System.Threading;
|
||||
using System.Configuration;
|
||||
using Dakota.Models;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using System.Diagnostics;
|
||||
using System.Xml.Serialization;
|
||||
using Dakota.Logic;
|
||||
|
||||
namespace Host
|
||||
{
|
||||
public partial class GkvAbrechnungView : Page
|
||||
{
|
||||
public const int PROCESS_WAITFOREXIT_MS = 10 * 1000;
|
||||
|
||||
private string GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&t=0";
|
||||
private string LOGINSERVER_URL = "{0}/Login.aspx";
|
||||
|
||||
private string ResultFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath");
|
||||
private string QueueFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath");
|
||||
private string KostentragerdateiFolderPath { get; set; } = ConfigurationManager.AppSettings.Get("GkvKostentragerdateiFolderPath");
|
||||
|
||||
public GkvApp8Request GkvRequest { get; set; }
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
//https://app8.bewoplaner.de/Host/GkvAbrechungview?tenant=12345
|
||||
|
||||
var str = new StreamReader(Request.InputStream).ReadToEnd();
|
||||
|
||||
if (string.IsNullOrEmpty(str))
|
||||
SendErrorResponse("Ungültige Eingabe");
|
||||
|
||||
GkvRequest = JsonConvert.DeserializeObject<GkvApp8Request>(str);
|
||||
|
||||
if (!CheckValues())
|
||||
SendErrorResponse("Check Fehlgeschlagen");
|
||||
|
||||
if (!TryLogin())
|
||||
SendErrorResponse("Login Fehlgeschlagen");
|
||||
|
||||
switch (GkvRequest.Type)
|
||||
{
|
||||
case GkvAbrechnungApp8RequestTypeDC.SendNew:
|
||||
SendNew(JsonConvert.DeserializeObject<GkvApp8SendNewRequest>(str));
|
||||
return;
|
||||
case GkvAbrechnungApp8RequestTypeDC.GetStatus:
|
||||
GetStatus(JsonConvert.DeserializeObject<GkvApp8GetStatusRequest>(str));
|
||||
return;
|
||||
case GkvAbrechnungApp8RequestTypeDC.GetIKNumber:
|
||||
GetIK(JsonConvert.DeserializeObject<GkvApp8GetIKRequest>(str));
|
||||
return;
|
||||
default:
|
||||
SendErrorResponse("GkvAbrechnungType unbekannt.");
|
||||
return;
|
||||
}
|
||||
|
||||
SendErrorResponse("Unbekannter Fehler");
|
||||
}
|
||||
catch (ThreadAbortException eee)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var ex_text = ex.Message + "\n" + ex.StackTrace;
|
||||
SendErrorResponse(ex_text);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void SendErrorResponse(string message)
|
||||
{
|
||||
var response = new GkvApp8Response();
|
||||
|
||||
response.Success = false;
|
||||
response.Message = message;
|
||||
|
||||
SendResponse(JsonConvert.SerializeObject(response));
|
||||
}
|
||||
private void SendResponse(object res) => SendResponse(JsonConvert.SerializeObject(res));
|
||||
private void SendResponse(string str)
|
||||
{
|
||||
Response.Write(str);
|
||||
|
||||
Response.End();
|
||||
//Context.ApplicationInstance.CompleteRequest();
|
||||
}
|
||||
|
||||
private bool CheckValues() => CheckValues(GkvRequest);
|
||||
private bool CheckValues(GkvApp8Request request)
|
||||
{
|
||||
if (request == null)
|
||||
return false;
|
||||
if (request.Type == GkvAbrechnungApp8RequestTypeDC.Default)
|
||||
return false;
|
||||
if (string.IsNullOrWhiteSpace(request.Username))
|
||||
return false;
|
||||
if (string.IsNullOrWhiteSpace(request.Tenant))
|
||||
return false;
|
||||
if (string.IsNullOrWhiteSpace(request.Password))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool TryLogin() => TryLogin(GkvRequest);
|
||||
private bool TryLogin(GkvApp8Request gkv_request)
|
||||
{
|
||||
if (gkv_request.Tenant == "demo" && gkv_request.Username == "demo" && gkv_request.DebugMode == "fozc4897b6ztvf978AFCRRG244fvFV2532fvf324AF")
|
||||
{
|
||||
gkv_request.Tenant = "7375324044";
|
||||
return true;
|
||||
}
|
||||
|
||||
var server = GetServerFromTenant(gkv_request.Tenant);
|
||||
var loginurl = string.Format(LOGINSERVER_URL, $"https://{server}/service");
|
||||
|
||||
#if DEBUG
|
||||
//loginurl = string.Format(LOGINSERVER_URL, "https://app4.bewoplaner.de");
|
||||
loginurl = string.Format(LOGINSERVER_URL, "http://localhost:3777/Host");
|
||||
#endif
|
||||
|
||||
bool successful = false;
|
||||
|
||||
try
|
||||
{
|
||||
using (WebClient client = new WebClient())
|
||||
{
|
||||
var nvc = new NameValueCollection();
|
||||
nvc.Add("password", gkv_request.Password);
|
||||
nvc.Add("username", gkv_request.Username);
|
||||
nvc.Add("tenant", gkv_request.Tenant);
|
||||
|
||||
var loginresponse = client.UploadValues(loginurl, "POST", nvc);
|
||||
|
||||
successful = BitConverter.ToBoolean(loginresponse, 0);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new DakotaException($"loginurl: {loginurl} | " + e.ToString());
|
||||
}
|
||||
|
||||
return successful;
|
||||
}
|
||||
|
||||
private void SendNew(GkvApp8SendNewRequest req)
|
||||
{
|
||||
// Response
|
||||
var response = new GkvApp8SendNewResponse(false);
|
||||
|
||||
var protokoll = req.GkvTransferProtokoll;
|
||||
|
||||
try
|
||||
{
|
||||
SaveFileInFileSystem(req, true);
|
||||
|
||||
req.GkvTransferProtokoll.SentSuccess = true;
|
||||
|
||||
response.Success = true;
|
||||
}
|
||||
catch (DakotaException e)
|
||||
{
|
||||
protokoll.Fehlerdatum = DateTime.Now;
|
||||
protokoll.Fehlerlevel = GkvTransferFehlerlevel.Soft;
|
||||
protokoll.Fehlertitel = "App8";
|
||||
protokoll.Fehlernachricht = e.Message;
|
||||
|
||||
response.Message = e.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
protokoll.Fehlerdatum = DateTime.Now;
|
||||
protokoll.Fehlerlevel = GkvTransferFehlerlevel.Soft;
|
||||
protokoll.Fehlertitel = "App8";
|
||||
protokoll.Fehlernachricht = e.Message;
|
||||
|
||||
response.Message = e.Message;
|
||||
}
|
||||
|
||||
response.GkvTransferProtokollDC = protokoll;
|
||||
|
||||
SendResponse(response);
|
||||
}
|
||||
private void GetStatus(GkvApp8GetStatusRequest req)
|
||||
{
|
||||
var response = new GkvApp8GetStatusResponse(false);
|
||||
|
||||
var tuple_count = req.Oids.Length;
|
||||
|
||||
response.Fehler = new GkvApp8FehlerDC[tuple_count];
|
||||
|
||||
try
|
||||
{
|
||||
// Load XML Info
|
||||
var results = GetResultFile(GkvRequest.Tenant);
|
||||
|
||||
if (results is object)
|
||||
for (int i = 0; i < tuple_count; i++)
|
||||
{
|
||||
var gkv_transfer_oid = req.Oids[i];
|
||||
|
||||
if (results.TryGetValue(gkv_transfer_oid, out var fehlerDC))
|
||||
{
|
||||
response.Fehler[i] = fehlerDC;
|
||||
}
|
||||
}
|
||||
|
||||
ClearResultFolder(GkvRequest.Tenant, req.Oids);
|
||||
|
||||
response.Success = true;
|
||||
}
|
||||
catch (DakotaException e)
|
||||
{
|
||||
response.Message = e.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
response.Message = e.ToString();
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
|
||||
return;
|
||||
}
|
||||
private void GetIK(GkvApp8GetIKRequest req)
|
||||
{
|
||||
var ktd_reader = new DakotaKTDReader(KostentragerdateiFolderPath);
|
||||
|
||||
var resolved = ktd_reader.Resolve(req.IKKrankenkasse, req.Abrechnungscode, req.Tarifkennzeichen);
|
||||
|
||||
var response = new GkvApp8GetIKResponse();
|
||||
|
||||
response.Success = true;
|
||||
response.Gefunden = resolved is object;
|
||||
|
||||
if (response.Gefunden)
|
||||
{
|
||||
response.IKDatenannahmestelle = resolved.Item1;
|
||||
response.IKKostentrager = resolved.Item2;
|
||||
response.IKKrankenkasse = resolved.Item3;
|
||||
response.BezDatenannahmestelle = resolved.Item4;
|
||||
}
|
||||
|
||||
SendResponse(response);
|
||||
}
|
||||
|
||||
private string SaveFileInFileSystem(GkvApp8SendNewRequest req, bool debug_mode = false)
|
||||
=> SaveFileInFileSystem(req.GkvTransferProtokoll.GkvTransferProtokollOid.Value, GkvRequest.Tenant, req.GkvTransferProtokoll.IKDatenannahmestelle, req.GkvTransferProtokoll.Transfername,
|
||||
req.GkvTransferProtokoll.Nutzdatendatei, req.GkvTransferProtokoll.Auftragsdatei, debug_mode);
|
||||
private string SaveFileInFileSystem(long protokoll_oid, string tenant, string datenannahmestelle, string transfername, string nutzdaten, string auftragsdatei, bool debug_mode = false)
|
||||
{
|
||||
string root_path;
|
||||
string file_path;
|
||||
if (debug_mode)
|
||||
{
|
||||
root_path = QueueFolderPath;
|
||||
file_path = $@"{tenant}_{protokoll_oid}_{datenannahmestelle}_{transfername}";
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new DakotaException("No Debugmode impl");
|
||||
//root_path = $@"C:\GkvAbrechnung\{tenant}\{datenannahmestelle}\";
|
||||
//file_path = $@"{transfername}";
|
||||
}
|
||||
|
||||
Directory.CreateDirectory(root_path);
|
||||
|
||||
var finalpath = root_path + file_path;
|
||||
|
||||
return SaveFileInFileSystem(finalpath, nutzdaten, auftragsdatei);
|
||||
}
|
||||
private string SaveFileInFileSystem(string finalpath, string nutzdaten, string auftragsdatei)
|
||||
{
|
||||
File.WriteAllText(finalpath, nutzdaten);
|
||||
|
||||
var auftragsdatei2 = Encoding.GetEncoding("ISO-8859-1").GetBytes(auftragsdatei);
|
||||
|
||||
File.WriteAllBytes(finalpath + ".auf", auftragsdatei2);
|
||||
|
||||
return finalpath;
|
||||
}
|
||||
|
||||
private string GetServerFromTenant(string tenant)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
String url = String.Format(GETSERVER_URL, tenant);
|
||||
using (WebClient client = new WebClient())
|
||||
{
|
||||
//MessageBox.Show(hostAddress);
|
||||
byte[] response = client.UploadValues(url, "POST", new NameValueCollection());
|
||||
|
||||
String server = System.Text.Encoding.ASCII.GetString(response);
|
||||
|
||||
return server;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearResultFolder(string tenant, long[] oids)
|
||||
{
|
||||
var folder = new DirectoryInfo(Path.Combine(ResultFolderPath, tenant));
|
||||
|
||||
if (!folder.Exists)
|
||||
return;
|
||||
|
||||
foreach (var file in folder.GetFiles())
|
||||
{
|
||||
var xml_obj = GkvApp8FehlerXml.GetFehlerXml(file.FullName);
|
||||
|
||||
if (xml_obj is GkvApp8FehlerXml xml && oids.Contains(xml.Oid))
|
||||
continue;
|
||||
|
||||
file.Delete();
|
||||
}
|
||||
}
|
||||
private Dictionary<long, GkvApp8FehlerDC> GetResultFile(string tenant)
|
||||
{
|
||||
try
|
||||
{
|
||||
var path = ResultFolderPath;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(path))
|
||||
throw new DakotaException("Config GkvAbrechnungResultFolderPath is empty or whitespace");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(tenant))
|
||||
throw new DakotaException("Tenant is empty or whitespace");
|
||||
|
||||
var folder = new DirectoryInfo(Path.Combine(path, tenant));
|
||||
|
||||
if (!folder.Exists)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var dict = new Dictionary<long, GkvApp8FehlerDC>();
|
||||
foreach (var file in folder.GetFiles("*.xml"))
|
||||
{
|
||||
var xml = GkvApp8FehlerXml.GetFehlerXml(file.FullName);
|
||||
|
||||
if (xml is null)
|
||||
continue;
|
||||
|
||||
dict.Add(xml.Oid, GkvApp8FehlerXml.ToDC(xml));
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
catch (DakotaException e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new DakotaException("App8 Server Error: " + e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -200,7 +200,8 @@
|
||||
<Content Include="DocumentDownload.aspx" />
|
||||
<Content Include="Download.aspx" />
|
||||
<Content Include="DownloadService.svc" />
|
||||
<Content Include="GkvAbrechnungView.aspx" />
|
||||
<Content Include="GkvAbrechnungClient.aspx" />
|
||||
<Content Include="GkvAbrechnungServer.aspx" />
|
||||
<Content Include="ReportService.svc" />
|
||||
<Content Include="EmployeeService.svc" />
|
||||
<Content Include="Multitenancy\Symbol Edit.png" />
|
||||
@@ -263,12 +264,19 @@
|
||||
<Compile Include="DX.aspx.designer.cs">
|
||||
<DependentUpon>DX.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GkvAbrechnungView.aspx.cs">
|
||||
<DependentUpon>GkvAbrechnungView.aspx</DependentUpon>
|
||||
<Compile Include="GkvAbrechnungClient.aspx.cs">
|
||||
<DependentUpon>GkvAbrechnungClient.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GkvAbrechnungView.aspx.designer.cs">
|
||||
<DependentUpon>GkvAbrechnungView.aspx</DependentUpon>
|
||||
<Compile Include="GkvAbrechnungClient.aspx.designer.cs">
|
||||
<DependentUpon>GkvAbrechnungClient.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GkvAbrechnungServer.aspx.cs">
|
||||
<DependentUpon>GkvAbrechnungServer.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GkvAbrechnungServer.aspx.designer.cs">
|
||||
<DependentUpon>GkvAbrechnungServer.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Login.aspx.cs">
|
||||
<DependentUpon>Login.aspx</DependentUpon>
|
||||
|
||||
@@ -20,15 +20,27 @@ namespace Host
|
||||
var username = Request.Form["username"];
|
||||
var password = Request.Form["password"];
|
||||
|
||||
var user = DAOFactory.UserDAO.FindUserByLoginName(username);
|
||||
if (string.IsNullOrEmpty(password))
|
||||
password = null;
|
||||
|
||||
var result = user.BCryptPassword == password;
|
||||
var b = false;
|
||||
try
|
||||
{
|
||||
var user = DAOFactory.UserDAO.FindUserByLoginName(username);
|
||||
|
||||
if (!result)
|
||||
{
|
||||
System.Threading.Thread.Sleep(3000);
|
||||
b = user.BCryptPassword == password;
|
||||
}
|
||||
catch(Exception exc)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
if (!b)
|
||||
{
|
||||
System.Threading.Thread.Sleep(5000);
|
||||
}
|
||||
|
||||
string result = b ? "True" : "False";
|
||||
Response.Write(result);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
@@ -240,6 +240,8 @@
|
||||
<add key="GkvAbrechnungQueueFolderPath" value="C:\GkvAbrechnung\Queue\" />
|
||||
<add key="GkvKostentragerdateiFolderPath" value="C:\GkvAbrechnung\KTDatei\" />
|
||||
<add key="DakotaPath" value="C:\Program Files (x86)\ITSG\dakotale\dakota30.exe" />
|
||||
<add key="GkvSecretKey" value="DfDGNGn72PKfSYxSUsmRdzuBtpR9novewlmYU3gsjiFgSkaZZeylUXlbO42cWNqiKgLdMUFtWUNZT962F1raQDR7HGUzCNYsFeC" />
|
||||
<add key="App8IpAddress" value="88.198.50.220" />
|
||||
</appSettings>
|
||||
<devExpress>
|
||||
<themes enableThemesAssembly="true" styleSheetTheme="" theme="" />
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
ALTER TABLE `gkvtransferprotokoll`
|
||||
ADD COLUMN `SentSuccess` TINYINT NULL AFTER `Auftragsdatei`;
|
||||
@@ -1,75 +0,0 @@
|
||||
CREATE TABLE `CustomerFalldaten` (
|
||||
`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,
|
||||
`EigenesAktenzeichen` varchar(256),
|
||||
`Auftragseingang` datetime DEFAULT NULL,
|
||||
`AuftragsherkunftValueListEntryOid` bigint DEFAULT NULL,
|
||||
`VermittlungsgrundlageValueListEntryOid` bigint DEFAULT NULL,
|
||||
`Tagessatze` decimal(18,10) DEFAULT NULL,
|
||||
`Tagessatzhohe` decimal(18,10) DEFAULT NULL,
|
||||
`HoheDerGeldstrafe` decimal(18,10) DEFAULT NULL,
|
||||
`ZuLeistendeArbeitsstunden` decimal(18,10) DEFAULT NULL,
|
||||
`Hinweis` varchar(256),
|
||||
`Termin` datetime DEFAULT NULL,
|
||||
`FalldatenBearbeitungsstatus` int DEFAULT NULL,
|
||||
`Auftragsruckgabe` varchar(256),
|
||||
`Verlauf` varchar(256),
|
||||
`AbgeleisteteStunden` decimal(18,10) DEFAULT NULL,
|
||||
`ErsparteHafttage` decimal(18,10) DEFAULT NULL,
|
||||
`GeleisteteRatenzahlung` decimal(18,10) DEFAULT NULL,
|
||||
`Bemerkung` varchar(256),
|
||||
`GeleisteteEinmalzahlung` decimal(18,10) DEFAULT NULL,
|
||||
`GrundArbeitsunfahig` tinyint,
|
||||
`GrundSuchtproblem` tinyint,
|
||||
`GrundPsychischeProbleme` tinyint,
|
||||
`GrundKeineMotivation` tinyint,
|
||||
`GrundInHaft` tinyint,
|
||||
`GrundUnbekannt` tinyint,
|
||||
`GrundKeinKontakt` tinyint,
|
||||
`GrundNichtAngetreten` tinyint,
|
||||
`GrundAbbruchDerTatigkeit` tinyint,
|
||||
`GrundWiderruf` tinyint,
|
||||
`Grund459StPO` tinyint,
|
||||
`GrundAusbleibenDerZahlung` tinyint,
|
||||
`BesonderheitMehrfacheBeauftragung` tinyint,
|
||||
`BesonderheitMehrfacheVermittlung` tinyint,
|
||||
`BesonderheitVermittlungAusHaft` tinyint,
|
||||
`BesonderheitDurchBGBWAufgesucht` tinyint,
|
||||
PRIMARY KEY (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
|
||||
|
||||
ALTER TABLE `customer`
|
||||
ADD COLUMN `CustomerFalldatenOid` BIGINT NULL DEFAULT NULL AFTER `VersichertenStatus`;
|
||||
|
||||
ALTER TABLE `customer`
|
||||
ADD INDEX `FK_CUSTOMERFALLDATEN_idx` (`CustomerFalldatenOid` ASC) VISIBLE;
|
||||
|
||||
ALTER TABLE `customer`
|
||||
ADD CONSTRAINT `FK_CUSTOMERFALLDATEN`
|
||||
FOREIGN KEY (`CustomerFalldatenOid`)
|
||||
REFERENCES `customerfalldaten` (`Oid`)
|
||||
ON DELETE RESTRICT
|
||||
ON UPDATE RESTRICT;
|
||||
|
||||
ALTER TABLE `customerfalldaten`
|
||||
ADD INDEX `FK_AUFTRAGSHERKUNFT_idx` (`AuftragsherkunftValueListEntryOid` ASC) VISIBLE,
|
||||
ADD INDEX `FK_VERMITTLUNGSGRUNDLAGE_idx` (`VermittlungsgrundlageValueListEntryOid` ASC) VISIBLE;
|
||||
|
||||
ALTER TABLE `customerfalldaten`
|
||||
ADD CONSTRAINT `FK_AUFTRAGSHERKUNFT`
|
||||
FOREIGN KEY (`AuftragsherkunftValueListEntryOid`)
|
||||
REFERENCES `valuelistentry` (`Oid`)
|
||||
ON DELETE RESTRICT
|
||||
ON UPDATE RESTRICT,
|
||||
ADD CONSTRAINT `FK_VERMITTLUNGSGRUNDLAGE`
|
||||
FOREIGN KEY (`VermittlungsgrundlageValueListEntryOid`)
|
||||
REFERENCES `valuelistentry` (`Oid`)
|
||||
ON DELETE RESTRICT
|
||||
ON UPDATE RESTRICT;
|
||||
@@ -1,2 +0,0 @@
|
||||
ALTER TABLE `gkvabrechnung`
|
||||
ADD COLUMN `UrbelegeGesendet` TINYINT NULL DEFAULT NULL AFTER `Bezahlt`;
|
||||
@@ -1,5 +0,0 @@
|
||||
ALTER TABLE `organisation`
|
||||
ADD COLUMN `Verfahrensstufe` INT NULL DEFAULT 0 AFTER `BusinessPartnerId`;
|
||||
|
||||
ALTER TABLE `gkvabrechnung`
|
||||
ADD COLUMN `Verfahrensstufe` INT NULL DEFAULT 0 AFTER `ErstelltAm`;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE `organisation`
|
||||
CHANGE COLUMN `Verfahrensstufe` `Verfahrensstufe` INT NULL DEFAULT '1' ;
|
||||
|
||||
UPDATE `organisation`
|
||||
SET `Verfahrensstufe` = 1;
|
||||
@@ -12,9 +12,11 @@ CREATE TABLE `gkvabrechnung` (
|
||||
`AbrechnungsZeitraumEnde` datetime DEFAULT NULL,
|
||||
`Betrag` decimal(18,10) DEFAULT NULL,
|
||||
`Bezahlt` tinyint DEFAULT NULL,
|
||||
`UrbelegeGesendet` tinyint DEFAULT NULL,
|
||||
`ErstelltAm` datetime DEFAULT NULL,
|
||||
`Verfahrensstufe` int DEFAULT '0',
|
||||
PRIMARY KEY (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
CREATE TABLE `gkvabrechnung2invoicebase` (
|
||||
`GkvAbrechnungOid` bigint NOT NULL,
|
||||
@@ -52,11 +54,13 @@ CREATE TABLE `gkvtransferprotokoll` (
|
||||
`Dateigrosse` int DEFAULT NULL,
|
||||
`Nutzdatendatei` text,
|
||||
`Auftragsdatei` varchar(1024) DEFAULT NULL,
|
||||
`SentApp8Success` tinyint NOT NULL DEFAULT '0',
|
||||
`SentDakotaSuccess` tinyint NOT NULL DEFAULT '0',
|
||||
`ResultType` int DEFAULT NULL,
|
||||
`Fehlertitel` varchar(256) DEFAULT NULL,
|
||||
`Fehlerdatum` datetime DEFAULT NULL,
|
||||
`Fehlernachricht` varchar(4096) DEFAULT NULL,
|
||||
`Fehlerlevel` int DEFAULT NULL,
|
||||
PRIMARY KEY (`Oid`),
|
||||
KEY `FK_GKVTRANSFERPROTOKOLL_GKVABRECHNUNG` (`GkvAbrechnungOid`),
|
||||
CONSTRAINT `FK_GKVTRANSFERPROTOKOLL_GKVABRECHNUNG` FOREIGN KEY (`GkvAbrechnungOid`) REFERENCES `gkvabrechnung` (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
@@ -6,3 +6,4 @@ DROP INDEX `FK_CUSTOMERFALLDATEN_idx` ;
|
||||
;
|
||||
|
||||
|
||||
DROP TABLE `customerfalldaten`;
|
||||
622
ReportImp/ArcheTecklenburg/AbwesenheitsListe.Designer.cs
generated
622
ReportImp/ArcheTecklenburg/AbwesenheitsListe.Designer.cs
generated
@@ -101,6 +101,43 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell65 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell67 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell100 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell113 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell114 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell115 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.tableRowWochentage = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell70 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell74 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell79 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell80 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell83 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell84 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell85 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell86 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell87 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell88 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell89 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell90 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell91 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell92 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell93 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell94 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell95 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell96 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell97 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell98 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell99 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell101 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell102 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell103 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell104 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell105 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell106 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell107 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell108 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell109 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell110 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell111 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell112 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowHeader = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell66 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
@@ -135,44 +172,7 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.tableRowWochentage = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell70 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell74 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell79 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell80 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell83 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell85 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell86 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell87 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell88 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell89 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell90 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell91 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell92 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell93 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell94 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell95 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell96 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell97 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell98 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell99 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell101 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell102 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell103 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell104 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell105 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell106 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell107 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell108 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell109 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell110 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell111 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell112 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell84 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.xrTableCell113 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell114 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell115 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
|
||||
@@ -875,6 +875,281 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell100.Text = "Tagesnachweis";
|
||||
this.xrTableCell100.Weight = 0.44953116110191577D;
|
||||
//
|
||||
// xrTableCell113
|
||||
//
|
||||
this.xrTableCell113.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell113.CanShrink = true;
|
||||
this.xrTableCell113.Multiline = true;
|
||||
this.xrTableCell113.Name = "xrTableCell113";
|
||||
this.xrTableCell113.StylePriority.UseBorders = false;
|
||||
this.xrTableCell113.Weight = 0.016054363358980916D;
|
||||
//
|
||||
// xrTableCell114
|
||||
//
|
||||
this.xrTableCell114.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell114.CanShrink = true;
|
||||
this.xrTableCell114.Multiline = true;
|
||||
this.xrTableCell114.Name = "xrTableCell114";
|
||||
this.xrTableCell114.StylePriority.UseBorders = false;
|
||||
this.xrTableCell114.Weight = 0.016054440361683339D;
|
||||
//
|
||||
// xrTableCell115
|
||||
//
|
||||
this.xrTableCell115.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell115.Multiline = true;
|
||||
this.xrTableCell115.Name = "xrTableCell115";
|
||||
this.xrTableCell115.StylePriority.UseBorders = false;
|
||||
this.xrTableCell115.Weight = 0.016054288211761976D;
|
||||
//
|
||||
// tableRowWochentage
|
||||
//
|
||||
this.tableRowWochentage.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell70,
|
||||
this.xrTableCell74,
|
||||
this.xrTableCell79,
|
||||
this.xrTableCell80,
|
||||
this.xrTableCell83,
|
||||
this.xrTableCell84,
|
||||
this.xrTableCell85,
|
||||
this.xrTableCell86,
|
||||
this.xrTableCell87,
|
||||
this.xrTableCell88,
|
||||
this.xrTableCell89,
|
||||
this.xrTableCell90,
|
||||
this.xrTableCell91,
|
||||
this.xrTableCell92,
|
||||
this.xrTableCell93,
|
||||
this.xrTableCell94,
|
||||
this.xrTableCell95,
|
||||
this.xrTableCell96,
|
||||
this.xrTableCell97,
|
||||
this.xrTableCell98,
|
||||
this.xrTableCell99,
|
||||
this.xrTableCell101,
|
||||
this.xrTableCell102,
|
||||
this.xrTableCell103,
|
||||
this.xrTableCell104,
|
||||
this.xrTableCell105,
|
||||
this.xrTableCell106,
|
||||
this.xrTableCell107,
|
||||
this.xrTableCell108,
|
||||
this.xrTableCell109,
|
||||
this.xrTableCell110,
|
||||
this.xrTableCell111,
|
||||
this.xrTableCell112});
|
||||
this.tableRowWochentage.Name = "tableRowWochentage";
|
||||
this.tableRowWochentage.StylePriority.UseTextAlignment = false;
|
||||
this.tableRowWochentage.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
|
||||
this.tableRowWochentage.Weight = 1.0492929532578807D;
|
||||
//
|
||||
// xrTableCell70
|
||||
//
|
||||
this.xrTableCell70.Multiline = true;
|
||||
this.xrTableCell70.Name = "xrTableCell70";
|
||||
this.xrTableCell70.StylePriority.UseBackColor = false;
|
||||
this.xrTableCell70.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell70.Text = "Lfd. Nr.";
|
||||
this.xrTableCell70.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell70.Weight = 0.032978079500783214D;
|
||||
//
|
||||
// xrTableCell74
|
||||
//
|
||||
this.xrTableCell74.Multiline = true;
|
||||
this.xrTableCell74.Name = "xrTableCell74";
|
||||
this.xrTableCell74.StylePriority.UseBackColor = false;
|
||||
this.xrTableCell74.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell74.Text = "Name";
|
||||
this.xrTableCell74.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell74.Weight = 0.10898824570942724D;
|
||||
//
|
||||
// xrTableCell79
|
||||
//
|
||||
this.xrTableCell79.Multiline = true;
|
||||
this.xrTableCell79.Name = "xrTableCell79";
|
||||
this.xrTableCell79.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell79.Weight = 0.016062274347249151D;
|
||||
//
|
||||
// xrTableCell80
|
||||
//
|
||||
this.xrTableCell80.Multiline = true;
|
||||
this.xrTableCell80.Name = "xrTableCell80";
|
||||
this.xrTableCell80.Weight = 0.01605439916870996D;
|
||||
//
|
||||
// xrTableCell83
|
||||
//
|
||||
this.xrTableCell83.Multiline = true;
|
||||
this.xrTableCell83.Name = "xrTableCell83";
|
||||
this.xrTableCell83.Weight = 0.016054399747225123D;
|
||||
//
|
||||
// xrTableCell84
|
||||
//
|
||||
this.xrTableCell84.Multiline = true;
|
||||
this.xrTableCell84.Name = "xrTableCell84";
|
||||
this.xrTableCell84.Weight = 0.016054398355346836D;
|
||||
//
|
||||
// xrTableCell85
|
||||
//
|
||||
this.xrTableCell85.Multiline = true;
|
||||
this.xrTableCell85.Name = "xrTableCell85";
|
||||
this.xrTableCell85.Weight = 0.016054398627990241D;
|
||||
//
|
||||
// xrTableCell86
|
||||
//
|
||||
this.xrTableCell86.Multiline = true;
|
||||
this.xrTableCell86.Name = "xrTableCell86";
|
||||
this.xrTableCell86.Weight = 0.016054396361336147D;
|
||||
//
|
||||
// xrTableCell87
|
||||
//
|
||||
this.xrTableCell87.Multiline = true;
|
||||
this.xrTableCell87.Name = "xrTableCell87";
|
||||
this.xrTableCell87.Weight = 0.016054401291794855D;
|
||||
//
|
||||
// xrTableCell88
|
||||
//
|
||||
this.xrTableCell88.Multiline = true;
|
||||
this.xrTableCell88.Name = "xrTableCell88";
|
||||
this.xrTableCell88.Weight = 0.016054396797631036D;
|
||||
//
|
||||
// xrTableCell89
|
||||
//
|
||||
this.xrTableCell89.Multiline = true;
|
||||
this.xrTableCell89.Name = "xrTableCell89";
|
||||
this.xrTableCell89.Weight = 0.016054400118063777D;
|
||||
//
|
||||
// xrTableCell90
|
||||
//
|
||||
this.xrTableCell90.Multiline = true;
|
||||
this.xrTableCell90.Name = "xrTableCell90";
|
||||
this.xrTableCell90.Weight = 0.016054400386401449D;
|
||||
//
|
||||
// xrTableCell91
|
||||
//
|
||||
this.xrTableCell91.Multiline = true;
|
||||
this.xrTableCell91.Name = "xrTableCell91";
|
||||
this.xrTableCell91.Weight = 0.016054400520570195D;
|
||||
//
|
||||
// xrTableCell92
|
||||
//
|
||||
this.xrTableCell92.Multiline = true;
|
||||
this.xrTableCell92.Name = "xrTableCell92";
|
||||
this.xrTableCell92.Weight = 0.016054400587654644D;
|
||||
//
|
||||
// xrTableCell93
|
||||
//
|
||||
this.xrTableCell93.Multiline = true;
|
||||
this.xrTableCell93.Name = "xrTableCell93";
|
||||
this.xrTableCell93.Weight = 0.016054400621196022D;
|
||||
//
|
||||
// xrTableCell94
|
||||
//
|
||||
this.xrTableCell94.Multiline = true;
|
||||
this.xrTableCell94.Name = "xrTableCell94";
|
||||
this.xrTableCell94.Weight = 0.016054397854210672D;
|
||||
//
|
||||
// xrTableCell95
|
||||
//
|
||||
this.xrTableCell95.Multiline = true;
|
||||
this.xrTableCell95.Name = "xrTableCell95";
|
||||
this.xrTableCell95.Weight = 0.01605439368695942D;
|
||||
//
|
||||
// xrTableCell96
|
||||
//
|
||||
this.xrTableCell96.Multiline = true;
|
||||
this.xrTableCell96.Name = "xrTableCell96";
|
||||
this.xrTableCell96.Weight = 0.016054394387091511D;
|
||||
//
|
||||
// xrTableCell97
|
||||
//
|
||||
this.xrTableCell97.Multiline = true;
|
||||
this.xrTableCell97.Name = "xrTableCell97";
|
||||
this.xrTableCell97.Weight = 0.016054400304672117D;
|
||||
//
|
||||
// xrTableCell98
|
||||
//
|
||||
this.xrTableCell98.Multiline = true;
|
||||
this.xrTableCell98.Name = "xrTableCell98";
|
||||
this.xrTableCell98.Weight = 0.016054397695947867D;
|
||||
//
|
||||
// xrTableCell99
|
||||
//
|
||||
this.xrTableCell99.Multiline = true;
|
||||
this.xrTableCell99.Name = "xrTableCell99";
|
||||
this.xrTableCell99.Weight = 0.016054401959102141D;
|
||||
//
|
||||
// xrTableCell101
|
||||
//
|
||||
this.xrTableCell101.Multiline = true;
|
||||
this.xrTableCell101.Name = "xrTableCell101";
|
||||
this.xrTableCell101.Weight = 0.016054404090678348D;
|
||||
//
|
||||
// xrTableCell102
|
||||
//
|
||||
this.xrTableCell102.Multiline = true;
|
||||
this.xrTableCell102.Name = "xrTableCell102";
|
||||
this.xrTableCell102.Weight = 0.016054402372709164D;
|
||||
//
|
||||
// xrTableCell103
|
||||
//
|
||||
this.xrTableCell103.Multiline = true;
|
||||
this.xrTableCell103.Name = "xrTableCell103";
|
||||
this.xrTableCell103.Weight = 0.016054395946208166D;
|
||||
//
|
||||
// xrTableCell104
|
||||
//
|
||||
this.xrTableCell104.Multiline = true;
|
||||
this.xrTableCell104.Name = "xrTableCell104";
|
||||
this.xrTableCell104.Weight = 0.016054395516715891D;
|
||||
//
|
||||
// xrTableCell105
|
||||
//
|
||||
this.xrTableCell105.Multiline = true;
|
||||
this.xrTableCell105.Name = "xrTableCell105";
|
||||
this.xrTableCell105.Weight = 0.016054395301969754D;
|
||||
//
|
||||
// xrTableCell106
|
||||
//
|
||||
this.xrTableCell106.Multiline = true;
|
||||
this.xrTableCell106.Name = "xrTableCell106";
|
||||
this.xrTableCell106.Weight = 0.016054393802717976D;
|
||||
//
|
||||
// xrTableCell107
|
||||
//
|
||||
this.xrTableCell107.Multiline = true;
|
||||
this.xrTableCell107.Name = "xrTableCell107";
|
||||
this.xrTableCell107.Weight = 0.016054395836849394D;
|
||||
//
|
||||
// xrTableCell108
|
||||
//
|
||||
this.xrTableCell108.Multiline = true;
|
||||
this.xrTableCell108.Name = "xrTableCell108";
|
||||
this.xrTableCell108.Weight = 0.016054395462036519D;
|
||||
//
|
||||
// xrTableCell109
|
||||
//
|
||||
this.xrTableCell109.Multiline = true;
|
||||
this.xrTableCell109.Name = "xrTableCell109";
|
||||
this.xrTableCell109.Weight = 0.01605440362590374D;
|
||||
//
|
||||
// xrTableCell110
|
||||
//
|
||||
this.xrTableCell110.Multiline = true;
|
||||
this.xrTableCell110.Name = "xrTableCell110";
|
||||
this.xrTableCell110.Weight = 0.016054396572805468D;
|
||||
//
|
||||
// xrTableCell111
|
||||
//
|
||||
this.xrTableCell111.Multiline = true;
|
||||
this.xrTableCell111.Name = "xrTableCell111";
|
||||
this.xrTableCell111.Weight = 0.016054406965045509D;
|
||||
//
|
||||
// xrTableCell112
|
||||
//
|
||||
this.xrTableCell112.Multiline = true;
|
||||
this.xrTableCell112.Name = "xrTableCell112";
|
||||
this.xrTableCell112.Weight = 0.01605439583001092D;
|
||||
//
|
||||
// rowHeader
|
||||
//
|
||||
this.rowHeader.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
@@ -1120,283 +1395,10 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell32.Text = "31";
|
||||
this.xrTableCell32.Weight = 0.01605439583001092D;
|
||||
//
|
||||
// tableRowWochentage
|
||||
//
|
||||
this.tableRowWochentage.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell70,
|
||||
this.xrTableCell74,
|
||||
this.xrTableCell79,
|
||||
this.xrTableCell80,
|
||||
this.xrTableCell83,
|
||||
this.xrTableCell84,
|
||||
this.xrTableCell85,
|
||||
this.xrTableCell86,
|
||||
this.xrTableCell87,
|
||||
this.xrTableCell88,
|
||||
this.xrTableCell89,
|
||||
this.xrTableCell90,
|
||||
this.xrTableCell91,
|
||||
this.xrTableCell92,
|
||||
this.xrTableCell93,
|
||||
this.xrTableCell94,
|
||||
this.xrTableCell95,
|
||||
this.xrTableCell96,
|
||||
this.xrTableCell97,
|
||||
this.xrTableCell98,
|
||||
this.xrTableCell99,
|
||||
this.xrTableCell101,
|
||||
this.xrTableCell102,
|
||||
this.xrTableCell103,
|
||||
this.xrTableCell104,
|
||||
this.xrTableCell105,
|
||||
this.xrTableCell106,
|
||||
this.xrTableCell107,
|
||||
this.xrTableCell108,
|
||||
this.xrTableCell109,
|
||||
this.xrTableCell110,
|
||||
this.xrTableCell111,
|
||||
this.xrTableCell112});
|
||||
this.tableRowWochentage.Name = "tableRowWochentage";
|
||||
this.tableRowWochentage.StylePriority.UseTextAlignment = false;
|
||||
this.tableRowWochentage.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
|
||||
this.tableRowWochentage.Weight = 1.0492929532578807D;
|
||||
//
|
||||
// xrTableCell70
|
||||
//
|
||||
this.xrTableCell70.Multiline = true;
|
||||
this.xrTableCell70.Name = "xrTableCell70";
|
||||
this.xrTableCell70.StylePriority.UseBackColor = false;
|
||||
this.xrTableCell70.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell70.Text = "Lfd. Nr.";
|
||||
this.xrTableCell70.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell70.Weight = 0.032978079500783214D;
|
||||
//
|
||||
// xrTableCell74
|
||||
//
|
||||
this.xrTableCell74.Multiline = true;
|
||||
this.xrTableCell74.Name = "xrTableCell74";
|
||||
this.xrTableCell74.StylePriority.UseBackColor = false;
|
||||
this.xrTableCell74.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell74.Text = "Name";
|
||||
this.xrTableCell74.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
this.xrTableCell74.Weight = 0.10898824570942724D;
|
||||
//
|
||||
// xrTableCell79
|
||||
//
|
||||
this.xrTableCell79.Multiline = true;
|
||||
this.xrTableCell79.Name = "xrTableCell79";
|
||||
this.xrTableCell79.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell79.Weight = 0.016062274347249151D;
|
||||
//
|
||||
// xrTableCell80
|
||||
//
|
||||
this.xrTableCell80.Multiline = true;
|
||||
this.xrTableCell80.Name = "xrTableCell80";
|
||||
this.xrTableCell80.Weight = 0.01605439916870996D;
|
||||
//
|
||||
// xrTableCell83
|
||||
//
|
||||
this.xrTableCell83.Multiline = true;
|
||||
this.xrTableCell83.Name = "xrTableCell83";
|
||||
this.xrTableCell83.Weight = 0.016054399747225123D;
|
||||
//
|
||||
// xrTableCell85
|
||||
//
|
||||
this.xrTableCell85.Multiline = true;
|
||||
this.xrTableCell85.Name = "xrTableCell85";
|
||||
this.xrTableCell85.Weight = 0.016054398627990241D;
|
||||
//
|
||||
// xrTableCell86
|
||||
//
|
||||
this.xrTableCell86.Multiline = true;
|
||||
this.xrTableCell86.Name = "xrTableCell86";
|
||||
this.xrTableCell86.Weight = 0.016054396361336147D;
|
||||
//
|
||||
// xrTableCell87
|
||||
//
|
||||
this.xrTableCell87.Multiline = true;
|
||||
this.xrTableCell87.Name = "xrTableCell87";
|
||||
this.xrTableCell87.Weight = 0.016054401291794855D;
|
||||
//
|
||||
// xrTableCell88
|
||||
//
|
||||
this.xrTableCell88.Multiline = true;
|
||||
this.xrTableCell88.Name = "xrTableCell88";
|
||||
this.xrTableCell88.Weight = 0.016054396797631036D;
|
||||
//
|
||||
// xrTableCell89
|
||||
//
|
||||
this.xrTableCell89.Multiline = true;
|
||||
this.xrTableCell89.Name = "xrTableCell89";
|
||||
this.xrTableCell89.Weight = 0.016054400118063777D;
|
||||
//
|
||||
// xrTableCell90
|
||||
//
|
||||
this.xrTableCell90.Multiline = true;
|
||||
this.xrTableCell90.Name = "xrTableCell90";
|
||||
this.xrTableCell90.Weight = 0.016054400386401449D;
|
||||
//
|
||||
// xrTableCell91
|
||||
//
|
||||
this.xrTableCell91.Multiline = true;
|
||||
this.xrTableCell91.Name = "xrTableCell91";
|
||||
this.xrTableCell91.Weight = 0.016054400520570195D;
|
||||
//
|
||||
// xrTableCell92
|
||||
//
|
||||
this.xrTableCell92.Multiline = true;
|
||||
this.xrTableCell92.Name = "xrTableCell92";
|
||||
this.xrTableCell92.Weight = 0.016054400587654644D;
|
||||
//
|
||||
// xrTableCell93
|
||||
//
|
||||
this.xrTableCell93.Multiline = true;
|
||||
this.xrTableCell93.Name = "xrTableCell93";
|
||||
this.xrTableCell93.Weight = 0.016054400621196022D;
|
||||
//
|
||||
// xrTableCell94
|
||||
//
|
||||
this.xrTableCell94.Multiline = true;
|
||||
this.xrTableCell94.Name = "xrTableCell94";
|
||||
this.xrTableCell94.Weight = 0.016054397854210672D;
|
||||
//
|
||||
// xrTableCell95
|
||||
//
|
||||
this.xrTableCell95.Multiline = true;
|
||||
this.xrTableCell95.Name = "xrTableCell95";
|
||||
this.xrTableCell95.Weight = 0.01605439368695942D;
|
||||
//
|
||||
// xrTableCell96
|
||||
//
|
||||
this.xrTableCell96.Multiline = true;
|
||||
this.xrTableCell96.Name = "xrTableCell96";
|
||||
this.xrTableCell96.Weight = 0.016054394387091511D;
|
||||
//
|
||||
// xrTableCell97
|
||||
//
|
||||
this.xrTableCell97.Multiline = true;
|
||||
this.xrTableCell97.Name = "xrTableCell97";
|
||||
this.xrTableCell97.Weight = 0.016054400304672117D;
|
||||
//
|
||||
// xrTableCell98
|
||||
//
|
||||
this.xrTableCell98.Multiline = true;
|
||||
this.xrTableCell98.Name = "xrTableCell98";
|
||||
this.xrTableCell98.Weight = 0.016054397695947867D;
|
||||
//
|
||||
// xrTableCell99
|
||||
//
|
||||
this.xrTableCell99.Multiline = true;
|
||||
this.xrTableCell99.Name = "xrTableCell99";
|
||||
this.xrTableCell99.Weight = 0.016054401959102141D;
|
||||
//
|
||||
// xrTableCell101
|
||||
//
|
||||
this.xrTableCell101.Multiline = true;
|
||||
this.xrTableCell101.Name = "xrTableCell101";
|
||||
this.xrTableCell101.Weight = 0.016054404090678348D;
|
||||
//
|
||||
// xrTableCell102
|
||||
//
|
||||
this.xrTableCell102.Multiline = true;
|
||||
this.xrTableCell102.Name = "xrTableCell102";
|
||||
this.xrTableCell102.Weight = 0.016054402372709164D;
|
||||
//
|
||||
// xrTableCell103
|
||||
//
|
||||
this.xrTableCell103.Multiline = true;
|
||||
this.xrTableCell103.Name = "xrTableCell103";
|
||||
this.xrTableCell103.Weight = 0.016054395946208166D;
|
||||
//
|
||||
// xrTableCell104
|
||||
//
|
||||
this.xrTableCell104.Multiline = true;
|
||||
this.xrTableCell104.Name = "xrTableCell104";
|
||||
this.xrTableCell104.Weight = 0.016054395516715891D;
|
||||
//
|
||||
// xrTableCell105
|
||||
//
|
||||
this.xrTableCell105.Multiline = true;
|
||||
this.xrTableCell105.Name = "xrTableCell105";
|
||||
this.xrTableCell105.Weight = 0.016054395301969754D;
|
||||
//
|
||||
// xrTableCell106
|
||||
//
|
||||
this.xrTableCell106.Multiline = true;
|
||||
this.xrTableCell106.Name = "xrTableCell106";
|
||||
this.xrTableCell106.Weight = 0.016054393802717976D;
|
||||
//
|
||||
// xrTableCell107
|
||||
//
|
||||
this.xrTableCell107.Multiline = true;
|
||||
this.xrTableCell107.Name = "xrTableCell107";
|
||||
this.xrTableCell107.Weight = 0.016054395836849394D;
|
||||
//
|
||||
// xrTableCell108
|
||||
//
|
||||
this.xrTableCell108.Multiline = true;
|
||||
this.xrTableCell108.Name = "xrTableCell108";
|
||||
this.xrTableCell108.Weight = 0.016054395462036519D;
|
||||
//
|
||||
// xrTableCell109
|
||||
//
|
||||
this.xrTableCell109.Multiline = true;
|
||||
this.xrTableCell109.Name = "xrTableCell109";
|
||||
this.xrTableCell109.Weight = 0.01605440362590374D;
|
||||
//
|
||||
// xrTableCell110
|
||||
//
|
||||
this.xrTableCell110.Multiline = true;
|
||||
this.xrTableCell110.Name = "xrTableCell110";
|
||||
this.xrTableCell110.Weight = 0.016054396572805468D;
|
||||
//
|
||||
// xrTableCell111
|
||||
//
|
||||
this.xrTableCell111.Multiline = true;
|
||||
this.xrTableCell111.Name = "xrTableCell111";
|
||||
this.xrTableCell111.Weight = 0.016054406965045509D;
|
||||
//
|
||||
// xrTableCell112
|
||||
//
|
||||
this.xrTableCell112.Multiline = true;
|
||||
this.xrTableCell112.Name = "xrTableCell112";
|
||||
this.xrTableCell112.Weight = 0.01605439583001092D;
|
||||
//
|
||||
// xrTableCell84
|
||||
//
|
||||
this.xrTableCell84.Multiline = true;
|
||||
this.xrTableCell84.Name = "xrTableCell84";
|
||||
this.xrTableCell84.Weight = 0.016054398355346836D;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.AdditionalServiceBookingRO);
|
||||
//
|
||||
// xrTableCell113
|
||||
//
|
||||
this.xrTableCell113.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell113.Multiline = true;
|
||||
this.xrTableCell113.Name = "xrTableCell113";
|
||||
this.xrTableCell113.StylePriority.UseBorders = false;
|
||||
this.xrTableCell113.Weight = 0.016054363358980916D;
|
||||
//
|
||||
// xrTableCell114
|
||||
//
|
||||
this.xrTableCell114.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell114.Multiline = true;
|
||||
this.xrTableCell114.Name = "xrTableCell114";
|
||||
this.xrTableCell114.StylePriority.UseBorders = false;
|
||||
this.xrTableCell114.Weight = 0.016054440361683339D;
|
||||
//
|
||||
// xrTableCell115
|
||||
//
|
||||
this.xrTableCell115.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell115.Multiline = true;
|
||||
this.xrTableCell115.Name = "xrTableCell115";
|
||||
this.xrTableCell115.StylePriority.UseBorders = false;
|
||||
this.xrTableCell115.Weight = 0.016054288211761976D;
|
||||
//
|
||||
// AbwesenheitsListe
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
|
||||
@@ -27,19 +27,38 @@ namespace ArcheTecklenburg
|
||||
Enum.TryParse(pRO.Month, out monat);
|
||||
var monatInt = (int)monat;
|
||||
var daysInMonth = DateTime.DaysInMonth(pRO.Year, monatInt);
|
||||
|
||||
FormatiereTabelle(daysInMonth);
|
||||
SetzeWochentage(new DateTime(pRO.Year, pRO.MonthInt, 1));
|
||||
}
|
||||
|
||||
private void FormatiereTabelle(int daysInMonth)
|
||||
{
|
||||
if (daysInMonth == 28)
|
||||
{
|
||||
xrTableCell110.Borders = DevExpress.XtraPrinting.BorderSide.All;
|
||||
}
|
||||
xrTableCell30.Visible = daysInMonth >= 29;
|
||||
if (daysInMonth == 29)
|
||||
{
|
||||
xrTableCell113.Borders = DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom;
|
||||
}
|
||||
xrTableCell31.Visible = daysInMonth >= 30;
|
||||
if (daysInMonth == 30)
|
||||
{
|
||||
xrTableCell114.Borders = DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom;
|
||||
}
|
||||
xrTableCell32.Visible = daysInMonth == 31;
|
||||
|
||||
xrTableCell62.Visible = xrTableCell30.Visible;
|
||||
xrTableCell63.Visible = xrTableCell31.Visible;
|
||||
xrTableCell64.Visible = xrTableCell32.Visible;
|
||||
xrTableCell110.Visible = xrTableCell30.Visible;
|
||||
xrTableCell111.Visible = xrTableCell31.Visible;
|
||||
xrTableCell112.Visible = xrTableCell32.Visible;
|
||||
xrTableCell113.Visible = xrTableCell30.Visible;
|
||||
xrTableCell114.Visible = xrTableCell31.Visible;
|
||||
xrTableCell115.Visible = xrTableCell32.Visible;
|
||||
|
||||
SetzeWochentage(new DateTime(pRO.Year, pRO.MonthInt, 1));
|
||||
}
|
||||
|
||||
private void SetzeWochentage(DateTime start)
|
||||
@@ -53,20 +72,6 @@ namespace ArcheTecklenburg
|
||||
}
|
||||
}
|
||||
|
||||
//private void SetCellColor(AdditionalServiceBookingRO pRo)
|
||||
//{
|
||||
// DateTime dt = new DateTime(pRo.Year, pRo.MonthInt, 1);
|
||||
// DateTime end = dt.AddMonths(1);
|
||||
// while (dt < end)
|
||||
// {
|
||||
// if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
|
||||
// {
|
||||
// rowHeader.Cells[dt.Day+1].BackColor = Color.DarkGray;
|
||||
// rowDetail.Cells[dt.Day+1].BackColor = Color.DarkGray;
|
||||
// }
|
||||
// dt = dt.AddDays(1);
|
||||
// }
|
||||
//}
|
||||
|
||||
private void CalculateAbsenceTimes(AdditionalServiceBookingRO result)
|
||||
{
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
@@ -39,6 +40,7 @@
|
||||
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Xpo.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
|
||||
@@ -107,7 +107,6 @@ namespace ArcheTecklenburg
|
||||
else
|
||||
allReports.Pages.AddRange(invoiceReport.Pages);
|
||||
}
|
||||
|
||||
return allReports as XtraReport;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ namespace ArcheTecklenburg.Invoicing
|
||||
Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
|
||||
{
|
||||
var costBearer = DAOFactory.GenericDAO.LoadByID<CostBearer>(costBearerOid);
|
||||
FuegeAbgelaufeneHilfeplaeneMitAktuellenBewilligungenHinzu(costBearer, invoicePeriod, supportConcepts2ServiceRecords);
|
||||
|
||||
var invoiceList = new List<ServiceInvoice>();
|
||||
ServiceInvoice invoice;
|
||||
Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> sc2sr = new Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>>();
|
||||
@@ -46,6 +48,35 @@ namespace ArcheTecklenburg.Invoicing
|
||||
return result.Count > 1 ? result.OrderBy(i => i.InvoiceBase.CustomerLastName).ToList() : result;
|
||||
}
|
||||
|
||||
private void FuegeAbgelaufeneHilfeplaeneMitAktuellenBewilligungenHinzu(CostBearer costBearer, DateTimeSpan invoicePeriod, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
|
||||
{
|
||||
var alleHilfeplaene = DAOFactory.GenericDAO.GetAllActive<SupportConcept>();
|
||||
var cs = new CustomerService();
|
||||
|
||||
foreach (var sc in alleHilfeplaene)
|
||||
{
|
||||
foreach (var c2s in sc.CostBearer2SupportConceptList)
|
||||
{
|
||||
if (c2s.EndDate < invoicePeriod.StartDate)
|
||||
{
|
||||
if (c2s.CostBearer.Oid == costBearer.Oid)
|
||||
{
|
||||
foreach (var ap in c2s.ApprovalPeriodList)
|
||||
{
|
||||
if (ap.EndDate >= invoicePeriod.StartDate && ap.StartDate <= invoicePeriod.EndDate)
|
||||
{
|
||||
var scDc = cs.CreateFlatSupportConcept(sc, c2s);
|
||||
supportConcepts2ServiceRecords.Add(scDc, new List<ServiceRecordDC>());
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ServiceInvoice CreateCollectiveBilling2(CostBearer costBearer, DateTimeSpan invoicePeriod, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
|
||||
{
|
||||
var invoice = new ServiceInvoice();
|
||||
@@ -105,154 +136,142 @@ namespace ArcheTecklenburg.Invoicing
|
||||
if (scap.StartDate <= serviceInvoicePeriod.Start)
|
||||
start = serviceInvoicePeriod.Start.Value;
|
||||
else
|
||||
start = (DateTime)scap.StartDate;
|
||||
start = (DateTime)scap.StartDate;
|
||||
|
||||
if (scap.EndDate >= serviceInvoicePeriod.End)
|
||||
ende = serviceInvoicePeriod.End.Value;
|
||||
else
|
||||
ende = (DateTime)scap.EndDate.Value;
|
||||
|
||||
|
||||
decimal tagessatz = 0;
|
||||
var crList = scap.ServiceCategory.CostRatePeriods;
|
||||
var cr = crList.GetCostRatePeriodForDate(BS.Shared.CostRatePeriodType.AmountOfMoney, start);
|
||||
if (cr != null && cr.CostRateValue.HasValue)
|
||||
if (scap.ServiceCategory.Name == "Einmalige Kosten") //gelegentlich haben die Einmalzahlungen, die sie über den Hilfeplan erfassen
|
||||
{
|
||||
tagessatz = cr.CostRateValue.Value;
|
||||
}
|
||||
|
||||
while (start <= ende)
|
||||
{
|
||||
DateTime monatStart = start; //new DateTime(start.Year, start.Month, 1);
|
||||
DateTime monatEnde = monatStart.AddMonths(1); //ende.AddDays(1);
|
||||
if (ende.AddDays(2) < monatStart.AddMonths(1))
|
||||
foreach (var billingData in data)
|
||||
{
|
||||
monatEnde = ende.AddDays(1);
|
||||
var ii = new InvoiceItem
|
||||
{
|
||||
AmountTotal = billingData.AmountTotal,
|
||||
GrossAmountTotal = billingData.GrossAmountTotal,
|
||||
ItemPeriodStart = billingData.BillingPeriodStart,
|
||||
ItemPeriodEnd = billingData.BillingPeriodEnd,
|
||||
AccountingInterval = billingData.AccountingInterval,
|
||||
AmountPerUnit = billingData.AmountPerUnit,
|
||||
UnitCount = billingData.UnitCount,
|
||||
UnitDescription = scap.Notice,
|
||||
Notice = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", billingData.BillingPeriodStart, billingData.BillingPeriodEnd),
|
||||
SupportConceptApprovalPeriodOid = scap.SupportConceptApprovalPeriodOid,
|
||||
ItemDescription = ""
|
||||
};
|
||||
serviceInvoicePeriod.InvoiceItemList.Add(ii);
|
||||
}
|
||||
}
|
||||
else // dies ist der Standard
|
||||
{
|
||||
decimal tagessatz = 0;
|
||||
var crList = scap.ServiceCategory.CostRatePeriods;
|
||||
var cr = crList.GetCostRatePeriodForDate(BS.Shared.CostRatePeriodType.AmountOfMoney, start);
|
||||
if (cr != null && cr.CostRateValue.HasValue)
|
||||
{
|
||||
tagessatz = cr.CostRateValue.Value;
|
||||
}
|
||||
|
||||
var tageMonat = monatEnde.Subtract(start).Days;
|
||||
decimal? sumCustomerMonth = 0;
|
||||
int tageAbwesendImMonat = 0;
|
||||
|
||||
foreach (var at in customer.AbsenceTimes)
|
||||
while (start <= ende)
|
||||
{
|
||||
DateTime? startAbw = at.Start;
|
||||
DateTime? endAbw = at.End;
|
||||
if (at.Start.HasValue && (at.End.HasValue && at.End.Value.Date.Subtract(at.Start.Value.Date).TotalDays > 3)
|
||||
|| (!at.End.HasValue && ende.Subtract(at.Start.Value.Date).TotalDays > 3))
|
||||
DateTime monatStart = start; //new DateTime(start.Year, start.Month, 1);
|
||||
DateTime monatEnde = monatStart.AddMonths(1); //ende.AddDays(1);
|
||||
if (ende.AddDays(2) < monatStart.AddMonths(1))
|
||||
{
|
||||
if (at.End.HasValue)
|
||||
monatEnde = ende.AddDays(1);
|
||||
}
|
||||
|
||||
var tageMonat = monatEnde.Subtract(start).Days;
|
||||
decimal? sumCustomerMonth = 0;
|
||||
int tageAbwesendImMonat = 0;
|
||||
int tageAbwesenheit = 0;
|
||||
|
||||
foreach (var at in customer.AbsenceTimes)
|
||||
{
|
||||
DateTime? startAbw = at.Start;
|
||||
DateTime? endAbw = at.End;
|
||||
if (at.Start.HasValue && (at.End.HasValue && at.End.Value.Date.Subtract(at.Start.Value.Date).TotalDays > 3)
|
||||
|| (!at.End.HasValue && ende.Subtract(at.Start.Value.Date).TotalDays > 3))
|
||||
{
|
||||
endAbw = at.End.Value.AddDays(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
endAbw = ende.AddDays(-1);
|
||||
}
|
||||
if (startAbw.HasValue && startAbw.Value < monatEnde && (!endAbw.HasValue || endAbw.Value >= monatStart))
|
||||
{
|
||||
DateTime abwStart = at.Start.Value;
|
||||
if (start > abwStart)
|
||||
if (at.End.HasValue)
|
||||
{
|
||||
abwStart = start;
|
||||
endAbw = at.End.Value.AddDays(-1);
|
||||
}
|
||||
DateTime abwEnd = monatEnde.AddDays(-1);
|
||||
if (endAbw.HasValue && endAbw < monatEnde)
|
||||
else
|
||||
{
|
||||
abwEnd = endAbw.Value;
|
||||
endAbw = ende.AddDays(-1);
|
||||
}
|
||||
DateTime dt = abwStart;
|
||||
while (dt <= abwEnd)
|
||||
if (startAbw.HasValue && startAbw.Value < monatEnde && (!endAbw.HasValue || endAbw.Value >= monatStart))
|
||||
{
|
||||
tageAbwesendImMonat++;
|
||||
dt = dt.AddDays(1);
|
||||
DateTime abwStart = at.Start.Value;
|
||||
if (start > abwStart)
|
||||
{
|
||||
abwStart = start;
|
||||
}
|
||||
DateTime abwEnd = monatEnde.AddDays(-1);
|
||||
if (endAbw.HasValue && endAbw < monatEnde)
|
||||
{
|
||||
abwEnd = endAbw.Value;
|
||||
}
|
||||
DateTime dt = abwStart;
|
||||
while (dt <= abwEnd)
|
||||
{
|
||||
tageAbwesenheit++;
|
||||
tageAbwesendImMonat++;
|
||||
dt = dt.AddDays(1);
|
||||
}
|
||||
if (tageAbwesenheit > 0)
|
||||
{
|
||||
if (tageAbwesendImMonat > 0)
|
||||
{
|
||||
var iia = new InvoiceItem();
|
||||
iia = new InvoiceItem();
|
||||
iia.UnitCount = tageAbwesenheit;
|
||||
iia.AmountPerUnit = Math.Round(abwesenheitsReduzierung * tagessatz, 2, MidpointRounding.AwayFromZero);
|
||||
iia.AmountTotal = iia.UnitCount * iia.AmountPerUnit;
|
||||
iia.GrossAmountTotal = iia.AmountTotal;
|
||||
sumCustomerMonth += iia.AmountTotal;
|
||||
iia.MaxApprovedAmount = null;
|
||||
iia.ItemDescription = "Klientenname";
|
||||
iia.UnitDescription = String.Format("{0} {1:dd.MM.yyyy} - {2:dd.MM.yyyy}", at.AbsenceReason.Description, abwStart, abwEnd);
|
||||
iia.ItemPeriodStart = monatStart;
|
||||
iia.Notice = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", monatStart, monatEnde.AddDays(-1));
|
||||
iia.SupportConceptApprovalPeriodOid = scap.SupportConceptApprovalPeriodOid;
|
||||
iia.ItemDescription = "";
|
||||
|
||||
serviceInvoicePeriod.InvoiceItemList.Add(iia);
|
||||
tageAbwesenheit = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var ii = new InvoiceItem();
|
||||
ii.UnitCount = tageMonat - tageAbwesendImMonat;
|
||||
ii.AmountPerUnit = tagessatz;
|
||||
ii.AmountTotal = ii.UnitCount * ii.AmountPerUnit;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
sumCustomerMonth += ii.AmountTotal;
|
||||
ii.MaxApprovedAmount = null;
|
||||
ii.ItemDescription = "Klientenname";
|
||||
ii.UnitDescription = scap.ServiceCategory.Name;
|
||||
ii.ItemPeriodStart = monatStart;
|
||||
ii.Notice = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", monatStart, monatEnde.AddDays(-1));
|
||||
ii.SupportConceptApprovalPeriodOid = scap.SupportConceptApprovalPeriodOid;
|
||||
ii.ItemDescription = "";
|
||||
|
||||
serviceInvoicePeriod.InvoiceItemList.Add(ii);
|
||||
|
||||
if (tageAbwesendImMonat > 0)
|
||||
{
|
||||
ii = new InvoiceItem();
|
||||
ii.UnitCount = tageAbwesendImMonat;
|
||||
ii.AmountPerUnit = Math.Round(abwesenheitsReduzierung * tagessatz, 2, MidpointRounding.AwayFromZero);
|
||||
var ii = new InvoiceItem();
|
||||
ii.UnitCount = tageMonat - tageAbwesendImMonat;
|
||||
ii.AmountPerUnit = tagessatz;
|
||||
ii.AmountTotal = ii.UnitCount * ii.AmountPerUnit;
|
||||
ii.GrossAmountTotal = ii.AmountTotal;
|
||||
sumCustomerMonth += ii.AmountTotal;
|
||||
ii.MaxApprovedAmount = null;
|
||||
ii.ItemDescription = "Klientenname";
|
||||
ii.UnitDescription = scap.ServiceCategory.Name + "Abwesenheit";
|
||||
ii.UnitDescription = scap.ServiceCategory.Name;
|
||||
ii.ItemPeriodStart = monatStart;
|
||||
ii.Notice = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", monatStart, monatEnde.AddDays(-1));
|
||||
ii.SupportConceptApprovalPeriodOid = scap.SupportConceptApprovalPeriodOid;
|
||||
ii.ItemDescription = "";
|
||||
|
||||
serviceInvoicePeriod.InvoiceItemList.Add(ii);
|
||||
start = start.AddMonths(1);
|
||||
start = new DateTime(start.Year, start.Month, 1);
|
||||
}
|
||||
|
||||
start = start.AddMonths(1);
|
||||
start = new DateTime(start.Year, start.Month, 1);
|
||||
// Falls Eigenanteil nötig wird bei CollectiveInvoiceCreation von MalteserJohanniterJohanneshaus schauen, die Logik ist nahezu identisch
|
||||
}
|
||||
|
||||
//if (cb2sc.SupportConcept.Oid.HasValue)
|
||||
//{
|
||||
// var equity = GetAmountEquityContribution(cb2sc.SupportConcept.Oid.Value, serviceInvoicePeriod);
|
||||
// if (equity > 0)
|
||||
// {
|
||||
// var ii = new InvoiceItem();
|
||||
// ii.UnitCount = 1;
|
||||
// ii.AmountPerUnit = equity;
|
||||
// ii.AmountTotal = -equity;
|
||||
// ii.GrossAmountTotal = -equity;
|
||||
// ii.ItemPeriodStart = serviceInvoicePeriod.End.Value;
|
||||
// ii.Notice = "Eigenanteil";
|
||||
// ii.SupportConceptApprovalPeriodOid = scap.SupportConceptApprovalPeriodOid;
|
||||
// ii.ItemDescription = "";
|
||||
|
||||
// serviceInvoicePeriod.InvoiceItemList.Add(ii);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
//private decimal GetAmountEquityContribution(long scOid, ServiceInvoicePeriod period)
|
||||
//{
|
||||
// decimal equity = 0;
|
||||
|
||||
// IList<InvoiceBase> EquityInvoiceList =
|
||||
// DAOFactory.SearchDAO.GetInvoiceBaseByTypeAndSupportConceptOid(InvoiceType.CustomerEquity, scOid);
|
||||
|
||||
// EquityInvoiceList = EquityInvoiceList.Where(i => i.InvoiceDate.HasValue &&
|
||||
// i.InvoiceDate.Value.InBetween(period.Start.Value, period.End.Value, true)).ToList();
|
||||
|
||||
// foreach (InvoiceBase iEquityInvoice in EquityInvoiceList)
|
||||
// {
|
||||
// foreach (InvoiceItem item in iEquityInvoice.InvoiceItems)
|
||||
// {
|
||||
// if (item.AmountTotal != null)
|
||||
// {
|
||||
// equity += item.AmountTotal.Value;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return equity;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,12 +53,6 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell54 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell55 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell56 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -75,11 +69,21 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.Month = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.GroupHeader3 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
@@ -109,8 +113,10 @@ namespace ArcheTecklenburg
|
||||
// GroupFooter
|
||||
//
|
||||
this.GroupFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel9,
|
||||
this.xrLabel7,
|
||||
this.xrTable4});
|
||||
this.GroupFooter.HeightF = 20F;
|
||||
this.GroupFooter.HeightF = 107.7917F;
|
||||
this.GroupFooter.Name = "GroupFooter";
|
||||
//
|
||||
// xrTable4
|
||||
@@ -194,7 +200,9 @@ namespace ArcheTecklenburg
|
||||
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
this.Detail1,
|
||||
this.DetailReport2,
|
||||
this.GroupHeader1});
|
||||
this.GroupHeader1,
|
||||
this.GroupHeader3,
|
||||
this.GroupFooter1});
|
||||
this.DetailReport.DataMember = "ServiceInvoicePeriods";
|
||||
this.DetailReport.DataSource = this.bindingSource1;
|
||||
this.DetailReport.Level = 0;
|
||||
@@ -212,7 +220,7 @@ namespace ArcheTecklenburg
|
||||
//
|
||||
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
this.Detail3,
|
||||
this.GroupFooter1});
|
||||
this.GroupHeader2});
|
||||
this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems";
|
||||
this.DetailReport2.DataSource = this.bindingSource1;
|
||||
this.DetailReport2.Level = 0;
|
||||
@@ -314,86 +322,6 @@ namespace ArcheTecklenburg
|
||||
this.xrTableCell56.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomRight;
|
||||
this.xrTableCell56.Weight = 0.087615396821348113D;
|
||||
//
|
||||
// GroupFooter1
|
||||
//
|
||||
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable2});
|
||||
this.GroupFooter1.HeightF = 20F;
|
||||
this.GroupFooter1.Name = "GroupFooter1";
|
||||
//
|
||||
// xrTable2
|
||||
//
|
||||
this.xrTable2.BorderColor = System.Drawing.Color.Black;
|
||||
this.xrTable2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTable2.Font = new DevExpress.Drawing.DXFont("Calibri", 11.25F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrTable2.Name = "xrTable2";
|
||||
this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow2});
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(686.25F, 20F);
|
||||
this.xrTable2.StylePriority.UseBorders = false;
|
||||
this.xrTable2.StylePriority.UseFont = false;
|
||||
this.xrTable2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2,
|
||||
this.xrTableCell3,
|
||||
this.xrTableCell4});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.xrTableRow2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
this.xrTableRow2.Weight = 1D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell2.Font = new DevExpress.Drawing.DXFont("Calibri", 11.25F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UseFont = false;
|
||||
this.xrTableCell2.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
this.xrTableCell2.Weight = 0.40522130884455265D;
|
||||
//
|
||||
// xrTableCell3
|
||||
//
|
||||
this.xrTableCell3.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell3.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell3.Name = "xrTableCell3";
|
||||
this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell3.StylePriority.UseBorders = false;
|
||||
this.xrTableCell3.StylePriority.UseFont = false;
|
||||
this.xrTableCell3.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell3.Text = "Zwischensumme:";
|
||||
this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
this.xrTableCell3.Weight = 0.17523083409867882D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell4.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.NetAmount")});
|
||||
this.xrTableCell4.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell4.StylePriority.UseBorders = false;
|
||||
this.xrTableCell4.StylePriority.UseFont = false;
|
||||
this.xrTableCell4.StylePriority.UseTextAlignment = false;
|
||||
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrTableCell4.Summary = xrSummary1;
|
||||
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell4.TextFormatString = "{0:n2} €";
|
||||
this.xrTableCell4.Weight = 0.08761543537607909D;
|
||||
//
|
||||
// GroupHeader1
|
||||
//
|
||||
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
@@ -407,6 +335,7 @@ namespace ArcheTecklenburg
|
||||
this.xrLabel4,
|
||||
this.xrTable1});
|
||||
this.GroupHeader1.HeightF = 304.6249F;
|
||||
this.GroupHeader1.Level = 1;
|
||||
this.GroupHeader1.Name = "GroupHeader1";
|
||||
//
|
||||
// xrLabel6
|
||||
@@ -447,8 +376,6 @@ namespace ArcheTecklenburg
|
||||
//
|
||||
// xrLabel1
|
||||
//
|
||||
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "BusinessPartnerId")});
|
||||
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("calibri", 10F);
|
||||
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(1.041762F, 204.5833F);
|
||||
this.xrLabel1.Multiline = true;
|
||||
@@ -456,8 +383,7 @@ namespace ArcheTecklenburg
|
||||
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel1.SizeF = new System.Drawing.SizeF(193.75F, 20F);
|
||||
this.xrLabel1.StylePriority.UseFont = false;
|
||||
this.xrLabel1.Text = "xrLabel1";
|
||||
this.xrLabel1.TextFormatString = "ZAD-Nr. {0}";
|
||||
this.xrLabel1.Text = "ZAD-Nr. 9007777";
|
||||
//
|
||||
// lblAdresse
|
||||
//
|
||||
@@ -606,6 +532,122 @@ namespace ArcheTecklenburg
|
||||
this.Month.FieldType = DevExpress.XtraReports.UI.FieldType.DateTime;
|
||||
this.Month.Name = "Month";
|
||||
//
|
||||
// GroupHeader2
|
||||
//
|
||||
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
|
||||
new DevExpress.XtraReports.UI.GroupField("CustomerLastname", DevExpress.XtraReports.UI.XRColumnSortOrder.Ascending)});
|
||||
this.GroupHeader2.HeightF = 0F;
|
||||
this.GroupHeader2.Name = "GroupHeader2";
|
||||
//
|
||||
// GroupHeader3
|
||||
//
|
||||
this.GroupHeader3.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
|
||||
new DevExpress.XtraReports.UI.GroupField("Customer.CustomerOid", DevExpress.XtraReports.UI.XRColumnSortOrder.None)});
|
||||
this.GroupHeader3.HeightF = 0F;
|
||||
this.GroupHeader3.Name = "GroupHeader3";
|
||||
//
|
||||
// GroupFooter1
|
||||
//
|
||||
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable2});
|
||||
this.GroupFooter1.HeightF = 20F;
|
||||
this.GroupFooter1.Name = "GroupFooter1";
|
||||
//
|
||||
// xrTable2
|
||||
//
|
||||
this.xrTable2.BorderColor = System.Drawing.Color.Black;
|
||||
this.xrTable2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTable2.Font = new DevExpress.Drawing.DXFont("Calibri", 11.25F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrTable2.Name = "xrTable2";
|
||||
this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow2});
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(686.25F, 20F);
|
||||
this.xrTable2.StylePriority.UseBorders = false;
|
||||
this.xrTable2.StylePriority.UseFont = false;
|
||||
this.xrTable2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2,
|
||||
this.xrTableCell3,
|
||||
this.xrTableCell4});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
|
||||
this.xrTableRow2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
this.xrTableRow2.Weight = 1D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell2.Font = new DevExpress.Drawing.DXFont("Calibri", 11.25F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UseFont = false;
|
||||
this.xrTableCell2.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
this.xrTableCell2.Weight = 0.40522130884455265D;
|
||||
//
|
||||
// xrTableCell3
|
||||
//
|
||||
this.xrTableCell3.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell3.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell3.Name = "xrTableCell3";
|
||||
this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell3.StylePriority.UseBorders = false;
|
||||
this.xrTableCell3.StylePriority.UseFont = false;
|
||||
this.xrTableCell3.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell3.Text = "Zwischensumme:";
|
||||
this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
|
||||
this.xrTableCell3.Weight = 0.17523083409867882D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell4.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.NetAmount")});
|
||||
this.xrTableCell4.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell4.StylePriority.UseBorders = false;
|
||||
this.xrTableCell4.StylePriority.UseFont = false;
|
||||
this.xrTableCell4.StylePriority.UseTextAlignment = false;
|
||||
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrTableCell4.Summary = xrSummary1;
|
||||
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell4.TextFormatString = "{0:n2} €";
|
||||
this.xrTableCell4.Weight = 0.08761543537607909D;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.Font = new DevExpress.Drawing.DXFont("calibri", 10F);
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(1.041762F, 41.95836F);
|
||||
this.xrLabel7.Multiline = true;
|
||||
this.xrLabel7.Name = "xrLabel7";
|
||||
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel7.SizeF = new System.Drawing.SizeF(193.75F, 20F);
|
||||
this.xrLabel7.StylePriority.UseFont = false;
|
||||
this.xrLabel7.Text = "Mit freundlichen Grüßen";
|
||||
//
|
||||
// xrLabel9
|
||||
//
|
||||
this.xrLabel9.Font = new DevExpress.Drawing.DXFont("calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 87.79169F);
|
||||
this.xrLabel9.Multiline = true;
|
||||
this.xrLabel9.Name = "xrLabel9";
|
||||
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel9.SizeF = new System.Drawing.SizeF(193.75F, 20F);
|
||||
this.xrLabel9.StylePriority.UseFont = false;
|
||||
this.xrLabel9.Text = "Heike Holtkamp";
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO);
|
||||
@@ -633,12 +675,11 @@ namespace ArcheTecklenburg
|
||||
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
|
||||
this.Version = "23.2";
|
||||
xrWatermark1.Id = "Watermark1";
|
||||
xrWatermark1.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("xrWatermark1.ImageSource"));
|
||||
this.Watermarks.Add(xrWatermark1);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
@@ -675,12 +716,6 @@ namespace ArcheTecklenburg
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
|
||||
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
|
||||
private DevExpress.XtraReports.UI.XRTable xrTable2;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel5;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
|
||||
@@ -689,5 +724,15 @@ namespace ArcheTecklenburg
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
|
||||
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
|
||||
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader3;
|
||||
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
|
||||
private DevExpress.XtraReports.UI.XRTable xrTable2;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,62 +19,10 @@ namespace ArcheTecklenburg
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
// Der LVR bekommt nur die Änderungsmitteilung mit den Abwesenheiten pro Tagesstätte/Kostenstelle aus Hilfeplan
|
||||
// Die eigentlich Rechnung ist nur für interne Zwecke bzw. sogar nur für den Forderungsexport für die FiBu
|
||||
|
||||
// Der LWL bekommt Rechnung plus Liste mit den Abwesenheiten
|
||||
public void SetReportDataSource(ServiceInvoiceRO pRO)
|
||||
{
|
||||
var newSip = new ServiceInvoicePeriodRO();
|
||||
decimal? sumCustomerMonth = 0;
|
||||
string prevMonth = null;
|
||||
var counter = 0;
|
||||
string grund = null;
|
||||
|
||||
//if (pRO.ServiceInvoicePeriods != null)
|
||||
//{
|
||||
|
||||
// foreach (var sip in pRO.ServiceInvoicePeriods)
|
||||
// {
|
||||
// counter += 1;
|
||||
// if (sip.ServiceInvoiceItems != null)
|
||||
// {
|
||||
// foreach (var sii in sip.ServiceInvoiceItems)
|
||||
// {
|
||||
// sii.CustomerLastname = "";
|
||||
// if (prevMonth == null)
|
||||
// {
|
||||
// sumCustomerMonth = sii.NetAmount;
|
||||
// sii.NetAmount = null;
|
||||
// sii.CustomerLastname = String.Format("geb. {0:dd.MM.yyyy} \nAktenzeichen {1} \nZE Nr. 70033 \nAufnahmedatum: {2:dd.MM.yyyy}",
|
||||
// sii.CustomerBirthdate, sip.CostBearer2SupportConcept.CustomerReferenceNumber, sip.Customer.AssistanceBegin);
|
||||
|
||||
// if (sip.Customer.TerminationDate.HasValue)
|
||||
// {
|
||||
// sii.CustomerLastname += String.Format("\nEntlassungsdatum: {0:dd.MM.yyyy}", sip.Customer.TerminationDate);
|
||||
// }
|
||||
// }
|
||||
// else if (sii.Notice == prevMonth)
|
||||
// {
|
||||
// sumCustomerMonth += sii.NetAmount;
|
||||
// sii.NetAmount = sumCustomerMonth;
|
||||
// }
|
||||
// else if (sii.Notice != prevMonth)
|
||||
// {
|
||||
// sumCustomerMonth = sii.NetAmount;
|
||||
// sii.NetAmount = null;
|
||||
// }
|
||||
// prevMonth = sii.Notice;
|
||||
// sii.RateFactor = counter.ToString();
|
||||
// if (grund != null)
|
||||
// {
|
||||
// sii.ServiceDescription += grund;
|
||||
// grund = null;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
pRO.ServiceInvoicePeriods = pRO.ServiceInvoicePeriods.OrderByDescending(s => s.Customer.FullName).ToList();
|
||||
this.bindingSource1.DataSource = pRO;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -15,20 +15,20 @@ namespace BetreutesWohnenWoellReports.Invoicing
|
||||
{
|
||||
public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
|
||||
{
|
||||
foreach (var item in supportConcepts2ServiceRecords)
|
||||
{
|
||||
var csc = item.Key;
|
||||
var cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(csc.CostBearerRelOids[0]);
|
||||
//foreach (var item in supportConcepts2ServiceRecords)
|
||||
//{
|
||||
// var csc = item.Key;
|
||||
// var cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(csc.CostBearerRelOids[0]);
|
||||
|
||||
var org = cb2sc.CostBearer.Organisation;
|
||||
// var org = cb2sc.CostBearer.Organisation;
|
||||
|
||||
if (org.Function != null && org.Function.Value.Contains("Jugendamt"))
|
||||
{
|
||||
return new JugendamtInvoiceCreation();
|
||||
}
|
||||
}
|
||||
// if (org.Function != null && org.Function.Value.Contains("Jugendamt"))
|
||||
// {
|
||||
return new JugendamtInvoiceCreation();
|
||||
// }
|
||||
//}
|
||||
|
||||
return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords);
|
||||
}
|
||||
//return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace BetreutesWohnenWoellReports.Invoicing
|
||||
{
|
||||
InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
if (invoiceItem != null)
|
||||
{
|
||||
{
|
||||
list.Add(invoiceItem);
|
||||
if (iServiceRecord.DistanceInMeter.HasValue && iServiceRecord.DistanceInMeter.Value > 0)
|
||||
list.Add(CreateFahrtkostenItem(invoiceItem));
|
||||
@@ -37,12 +37,12 @@ namespace BetreutesWohnenWoellReports.Invoicing
|
||||
private InvoiceItem CreateFahrtkostenItem(InvoiceItem item)
|
||||
{
|
||||
InvoiceItem fahrtkostenItem = new InvoiceItem();
|
||||
var preis = GetPreis("Fahrtkosten", item.ServiceRecord.Start.Value);
|
||||
var preis = GetPreis("Fahrkosten", item.ServiceRecord.Start.Value);
|
||||
|
||||
fahrtkostenItem.AmountPerUnit = preis;
|
||||
fahrtkostenItem.AmountTotal = preis * item.ServiceRecord.DistanceInMeter;
|
||||
fahrtkostenItem.GrossAmountTotal = fahrtkostenItem.AmountTotal;
|
||||
fahrtkostenItem.ItemDescription = "Fahrtkosten";
|
||||
fahrtkostenItem.ItemDescription = "Fahrkosten pro km";
|
||||
fahrtkostenItem.ItemPeriodStart = item.ItemPeriodStart;
|
||||
fahrtkostenItem.ItemPeriodEnd = item.ItemPeriodEnd;
|
||||
fahrtkostenItem.MaxApprovedAmount = fahrtkostenItem.AmountTotal;
|
||||
|
||||
@@ -35,8 +35,31 @@ namespace BeWo.Report.DefaultReports
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
|
||||
this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.rowZeichen = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowKlient = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowVersicherungsnummer = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowIKNummer = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowBewilligungsumfang = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.cellBewilligungsumfang = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.rowFamilienhilfe = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblAdresse = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblUeberschrift = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -64,34 +87,14 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.rowFamilienhilfe = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.rowZeichen = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowKlient = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowVersicherungsnummer = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowIKNummer = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowBewilligungsumfang = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.cellBewilligungsumfang = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
@@ -122,9 +125,22 @@ namespace BeWo.Report.DefaultReports
|
||||
this.topMarginBand1.HeightF = 170.8334F;
|
||||
this.topMarginBand1.Name = "topMarginBand1";
|
||||
//
|
||||
// xrPictureBox1
|
||||
//
|
||||
this.xrPictureBox1.ImageAlignment = DevExpress.XtraPrinting.ImageAlignment.MiddleCenter;
|
||||
this.xrPictureBox1.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("xrPictureBox1.ImageSource"));
|
||||
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(550.4167F, 38.54181F);
|
||||
this.xrPictureBox1.Name = "xrPictureBox1";
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(183.5833F, 132.2916F);
|
||||
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
//
|
||||
// bottomMarginBand1
|
||||
//
|
||||
this.bottomMarginBand1.HeightF = 109.0417F;
|
||||
this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel5,
|
||||
this.xrLabel4,
|
||||
this.xrLabel3});
|
||||
this.bottomMarginBand1.HeightF = 111.5F;
|
||||
this.bottomMarginBand1.Name = "bottomMarginBand1";
|
||||
//
|
||||
// Page1
|
||||
@@ -143,6 +159,214 @@ namespace BeWo.Report.DefaultReports
|
||||
this.Page1.Name = "Page1";
|
||||
this.Page1.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrTable2
|
||||
//
|
||||
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 278.1249F);
|
||||
this.xrTable2.Name = "xrTable2";
|
||||
this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F);
|
||||
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.rowZeichen,
|
||||
this.rowKlient,
|
||||
this.rowVersicherungsnummer,
|
||||
this.rowIKNummer,
|
||||
this.rowBewilligungsumfang});
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(733.6664F, 125F);
|
||||
//
|
||||
// rowZeichen
|
||||
//
|
||||
this.rowZeichen.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell3,
|
||||
this.xrTableCell4});
|
||||
this.rowZeichen.Name = "rowZeichen";
|
||||
this.rowZeichen.Weight = 1D;
|
||||
//
|
||||
// xrTableCell3
|
||||
//
|
||||
this.xrTableCell3.CanShrink = true;
|
||||
this.xrTableCell3.Multiline = true;
|
||||
this.xrTableCell3.Name = "xrTableCell3";
|
||||
this.xrTableCell3.Text = "Ihr Zeichen:";
|
||||
this.xrTableCell3.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.CanShrink = true;
|
||||
this.xrTableCell4.Multiline = true;
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Text = "[CustomerReferenceNumber]";
|
||||
this.xrTableCell4.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowKlient
|
||||
//
|
||||
this.rowKlient.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell5,
|
||||
this.xrTableCell6});
|
||||
this.rowKlient.Name = "rowKlient";
|
||||
this.rowKlient.Weight = 1D;
|
||||
//
|
||||
// xrTableCell5
|
||||
//
|
||||
this.xrTableCell5.CanShrink = true;
|
||||
this.xrTableCell5.Multiline = true;
|
||||
this.xrTableCell5.Name = "xrTableCell5";
|
||||
this.xrTableCell5.Text = "Für:";
|
||||
this.xrTableCell5.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell6
|
||||
//
|
||||
this.xrTableCell6.CanShrink = true;
|
||||
this.xrTableCell6.Multiline = true;
|
||||
this.xrTableCell6.Name = "xrTableCell6";
|
||||
this.xrTableCell6.Text = "[CustomerFirstName] [CustomerLastName!dd.MM.yyyy]";
|
||||
this.xrTableCell6.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowVersicherungsnummer
|
||||
//
|
||||
this.rowVersicherungsnummer.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell7,
|
||||
this.xrTableCell8});
|
||||
this.rowVersicherungsnummer.Name = "rowVersicherungsnummer";
|
||||
this.rowVersicherungsnummer.Weight = 1D;
|
||||
//
|
||||
// xrTableCell7
|
||||
//
|
||||
this.xrTableCell7.CanShrink = true;
|
||||
this.xrTableCell7.Multiline = true;
|
||||
this.xrTableCell7.Name = "xrTableCell7";
|
||||
this.xrTableCell7.Text = "Versicherungsnummer:";
|
||||
this.xrTableCell7.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell8
|
||||
//
|
||||
this.xrTableCell8.CanShrink = true;
|
||||
this.xrTableCell8.Multiline = true;
|
||||
this.xrTableCell8.Name = "xrTableCell8";
|
||||
this.xrTableCell8.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowIKNummer
|
||||
//
|
||||
this.rowIKNummer.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell10,
|
||||
this.xrTableCell11});
|
||||
this.rowIKNummer.Name = "rowIKNummer";
|
||||
this.rowIKNummer.Weight = 1D;
|
||||
//
|
||||
// xrTableCell10
|
||||
//
|
||||
this.xrTableCell10.CanShrink = true;
|
||||
this.xrTableCell10.Multiline = true;
|
||||
this.xrTableCell10.Name = "xrTableCell10";
|
||||
this.xrTableCell10.Text = "IK-Nummer:";
|
||||
this.xrTableCell10.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell11
|
||||
//
|
||||
this.xrTableCell11.CanShrink = true;
|
||||
this.xrTableCell11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.CostBearer2SupportConcept.CostBearer.Organisation.IKKostent" +
|
||||
"rager")});
|
||||
this.xrTableCell11.Multiline = true;
|
||||
this.xrTableCell11.Name = "xrTableCell11";
|
||||
this.xrTableCell11.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowBewilligungsumfang
|
||||
//
|
||||
this.rowBewilligungsumfang.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell13,
|
||||
this.cellBewilligungsumfang});
|
||||
this.rowBewilligungsumfang.Name = "rowBewilligungsumfang";
|
||||
this.rowBewilligungsumfang.Weight = 1D;
|
||||
//
|
||||
// xrTableCell13
|
||||
//
|
||||
this.xrTableCell13.CanShrink = true;
|
||||
this.xrTableCell13.Multiline = true;
|
||||
this.xrTableCell13.Name = "xrTableCell13";
|
||||
this.xrTableCell13.Text = "Bewilligungsumfang:";
|
||||
this.xrTableCell13.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// cellBewilligungsumfang
|
||||
//
|
||||
this.cellBewilligungsumfang.CanShrink = true;
|
||||
this.cellBewilligungsumfang.Multiline = true;
|
||||
this.cellBewilligungsumfang.Name = "cellBewilligungsumfang";
|
||||
this.cellBewilligungsumfang.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// xrTable1
|
||||
//
|
||||
this.xrTable1.Font = new DevExpress.Drawing.DXFont("Verdana", 8.25F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(550.4167F, 10.00001F);
|
||||
this.xrTable1.Name = "xrTable1";
|
||||
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.rowFamilienhilfe,
|
||||
this.xrTableRow2});
|
||||
this.xrTable1.SizeF = new System.Drawing.SizeF(183.4165F, 172F);
|
||||
this.xrTable1.StylePriority.UseFont = false;
|
||||
//
|
||||
// rowFamilienhilfe
|
||||
//
|
||||
this.rowFamilienhilfe.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell1});
|
||||
this.rowFamilienhilfe.Name = "rowFamilienhilfe";
|
||||
this.rowFamilienhilfe.Weight = 1.9583326721191408D;
|
||||
//
|
||||
// xrTableCell1
|
||||
//
|
||||
this.xrTableCell1.BorderColor = System.Drawing.Color.DarkGray;
|
||||
this.xrTableCell1.Borders = DevExpress.XtraPrinting.BorderSide.None;
|
||||
this.xrTableCell1.CanShrink = true;
|
||||
this.xrTableCell1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell1.Multiline = true;
|
||||
this.xrTableCell1.Name = "xrTableCell1";
|
||||
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrTableCell1.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell1.StylePriority.UseBorders = false;
|
||||
this.xrTableCell1.StylePriority.UseFont = false;
|
||||
this.xrTableCell1.StylePriority.UsePadding = false;
|
||||
this.xrTableCell1.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell1.Text = "Fachbereich Jugend- und\r\nFamilienhilfe";
|
||||
this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrTableCell1.Weight = 0.62463084211025488D;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 4.9216668866253608D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.BorderColor = System.Drawing.Color.DarkGray;
|
||||
this.xrTableCell2.Borders = DevExpress.XtraPrinting.BorderSide.None;
|
||||
this.xrTableCell2.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
|
||||
this.xrTableCell2.Multiline = true;
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UseFont = false;
|
||||
this.xrTableCell2.StylePriority.UsePadding = false;
|
||||
this.xrTableCell2.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell2.Text = "\r\nAm Wingertsberg 1a\r\n50169 Kerpen\r\nTelefon 02273 991332\r\nTelefax 02273 991535\r\ni" +
|
||||
"nfo@lisa-woell.de\r\nwww.lisa-woell.de";
|
||||
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrTableCell2.Weight = 0.62463084211025488D;
|
||||
//
|
||||
// xrLabel6
|
||||
//
|
||||
this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Verdana", 8F);
|
||||
this.xrLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrLabel6.Multiline = true;
|
||||
this.xrLabel6.Name = "xrLabel6";
|
||||
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel6.SizeF = new System.Drawing.SizeF(317F, 17.75001F);
|
||||
this.xrLabel6.StylePriority.UseFont = false;
|
||||
this.xrLabel6.StylePriority.UseForeColor = false;
|
||||
this.xrLabel6.Text = "Lisa Wöll GmbH • Am Wingertsberg 1a • 50169 Kerpen";
|
||||
//
|
||||
// lblAdresse
|
||||
//
|
||||
this.lblAdresse.LocationFloat = new DevExpress.Utils.PointFloat(0F, 22.50001F);
|
||||
@@ -163,7 +387,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.lblUeberschrift.LocationFloat = new DevExpress.Utils.PointFloat(0F, 246.25F);
|
||||
this.lblUeberschrift.Name = "lblUeberschrift";
|
||||
this.lblUeberschrift.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblUeberschrift.SizeF = new System.Drawing.SizeF(676.8333F, 20F);
|
||||
this.lblUeberschrift.SizeF = new System.Drawing.SizeF(733.6666F, 20F);
|
||||
this.lblUeberschrift.StylePriority.UseBackColor = false;
|
||||
this.lblUeberschrift.StylePriority.UseFont = false;
|
||||
this.lblUeberschrift.Text = "Sozialpädagogishe Familienhilfe gem. §§27, 31 SGB VIII";
|
||||
@@ -190,7 +414,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(362.5F, 203.25F);
|
||||
this.xrLabel8.Name = "xrLabel8";
|
||||
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel8.SizeF = new System.Drawing.SizeF(314.5F, 23F);
|
||||
this.xrLabel8.SizeF = new System.Drawing.SizeF(371.3332F, 23F);
|
||||
this.xrLabel8.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel8.Text = "xrLabel8";
|
||||
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
@@ -202,7 +426,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.lblAbrechnungszeitraum.Multiline = true;
|
||||
this.lblAbrechnungszeitraum.Name = "lblAbrechnungszeitraum";
|
||||
this.lblAbrechnungszeitraum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblAbrechnungszeitraum.SizeF = new System.Drawing.SizeF(642F, 31.58334F);
|
||||
this.lblAbrechnungszeitraum.SizeF = new System.Drawing.SizeF(734F, 31.58334F);
|
||||
this.lblAbrechnungszeitraum.StylePriority.UseFont = false;
|
||||
this.lblAbrechnungszeitraum.Text = "hiermit berechnen wir für den ... folgende erbrachte Tätigkeiten:";
|
||||
//
|
||||
@@ -229,7 +453,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTable5.Name = "xrTable5";
|
||||
this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow23});
|
||||
this.xrTable5.SizeF = new System.Drawing.SizeF(676.833F, 25F);
|
||||
this.xrTable5.SizeF = new System.Drawing.SizeF(734F, 25F);
|
||||
//
|
||||
// xrTableRow23
|
||||
//
|
||||
@@ -377,7 +601,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTable6.Name = "xrTable6";
|
||||
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow25});
|
||||
this.xrTable6.SizeF = new System.Drawing.SizeF(676.833F, 25F);
|
||||
this.xrTable6.SizeF = new System.Drawing.SizeF(734F, 25F);
|
||||
this.xrTable6.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrTableRow25
|
||||
@@ -506,10 +730,10 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")});
|
||||
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(542.3751F, 0F);
|
||||
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(588.1854F, 0F);
|
||||
this.xrLabel1.Name = "xrLabel1";
|
||||
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
|
||||
this.xrLabel1.SizeF = new System.Drawing.SizeF(134.4581F, 25F);
|
||||
this.xrLabel1.SizeF = new System.Drawing.SizeF(145.8146F, 25F);
|
||||
this.xrLabel1.StylePriority.UseFont = false;
|
||||
this.xrLabel1.StylePriority.UsePadding = false;
|
||||
this.xrLabel1.StylePriority.UseTextAlignment = false;
|
||||
@@ -517,222 +741,43 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrLabel1.TextFormatString = "{0}";
|
||||
//
|
||||
// xrPictureBox1
|
||||
// xrLabel3
|
||||
//
|
||||
this.xrPictureBox1.ImageAlignment = DevExpress.XtraPrinting.ImageAlignment.MiddleCenter;
|
||||
this.xrPictureBox1.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("xrPictureBox1.ImageSource"));
|
||||
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(493.4167F, 38.54171F);
|
||||
this.xrPictureBox1.Name = "xrPictureBox1";
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(183.5833F, 132.2916F);
|
||||
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrLabel3.Multiline = true;
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(255.5417F, 65.66664F);
|
||||
this.xrLabel3.StylePriority.UseFont = false;
|
||||
this.xrLabel3.Text = "Kreissparkasse Köln\r\nIBAN: DE23 3705 0299 0120 2724 33\r\nBIC: COKSDE33XXX";
|
||||
//
|
||||
// xrLabel6
|
||||
// xrLabel4
|
||||
//
|
||||
this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Verdana", 8F);
|
||||
this.xrLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrLabel6.Multiline = true;
|
||||
this.xrLabel6.Name = "xrLabel6";
|
||||
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel6.SizeF = new System.Drawing.SizeF(317F, 17.75001F);
|
||||
this.xrLabel6.StylePriority.UseFont = false;
|
||||
this.xrLabel6.StylePriority.UseForeColor = false;
|
||||
this.xrLabel6.Text = "Lisa Wöll GmbH • Am Wingertsberg 1a • 50169 Kerpen";
|
||||
this.xrLabel4.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(255.5417F, 0F);
|
||||
this.xrLabel4.Multiline = true;
|
||||
this.xrLabel4.Name = "xrLabel4";
|
||||
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel4.SizeF = new System.Drawing.SizeF(237.875F, 65.66664F);
|
||||
this.xrLabel4.StylePriority.UseFont = false;
|
||||
this.xrLabel4.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel4.Text = "Amtsgericht Köln, HRB 91655\r\nFinanzamt Bergheim\r\nSteuernummer: 203/5764/1138";
|
||||
this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
//
|
||||
// xrTable1
|
||||
// xrLabel5
|
||||
//
|
||||
this.xrTable1.Font = new DevExpress.Drawing.DXFont("Verdana", 8.25F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(493.5836F, 10.00001F);
|
||||
this.xrTable1.Name = "xrTable1";
|
||||
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.rowFamilienhilfe,
|
||||
this.xrTableRow2});
|
||||
this.xrTable1.SizeF = new System.Drawing.SizeF(183.4165F, 172F);
|
||||
this.xrTable1.StylePriority.UseFont = false;
|
||||
//
|
||||
// rowFamilienhilfe
|
||||
//
|
||||
this.rowFamilienhilfe.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell1});
|
||||
this.rowFamilienhilfe.Name = "rowFamilienhilfe";
|
||||
this.rowFamilienhilfe.Weight = 1.9583326721191408D;
|
||||
//
|
||||
// xrTableCell1
|
||||
//
|
||||
this.xrTableCell1.BorderColor = System.Drawing.Color.DarkGray;
|
||||
this.xrTableCell1.Borders = DevExpress.XtraPrinting.BorderSide.None;
|
||||
this.xrTableCell1.CanShrink = true;
|
||||
this.xrTableCell1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell1.Multiline = true;
|
||||
this.xrTableCell1.Name = "xrTableCell1";
|
||||
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrTableCell1.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell1.StylePriority.UseBorders = false;
|
||||
this.xrTableCell1.StylePriority.UseFont = false;
|
||||
this.xrTableCell1.StylePriority.UsePadding = false;
|
||||
this.xrTableCell1.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell1.Text = "Fachbereich Jugend- und\r\nFamilienhilfe";
|
||||
this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrTableCell1.Weight = 0.62463084211025488D;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 4.9216668866253608D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.BorderColor = System.Drawing.Color.DarkGray;
|
||||
this.xrTableCell2.Borders = DevExpress.XtraPrinting.BorderSide.None;
|
||||
this.xrTableCell2.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
|
||||
this.xrTableCell2.Multiline = true;
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UseFont = false;
|
||||
this.xrTableCell2.StylePriority.UsePadding = false;
|
||||
this.xrTableCell2.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell2.Text = "\r\nAm Wingertsberg 1a\r\n50169 Kerpen\r\nTelefon 02273 991332\r\nTelefax 02273 991535\r\ni" +
|
||||
"nfo@lisa-woell.de\r\nwww.lisa-woell.de";
|
||||
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
|
||||
this.xrTableCell2.Weight = 0.62463084211025488D;
|
||||
//
|
||||
// xrTable2
|
||||
//
|
||||
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 278.1249F);
|
||||
this.xrTable2.Name = "xrTable2";
|
||||
this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F);
|
||||
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.rowZeichen,
|
||||
this.rowKlient,
|
||||
this.rowVersicherungsnummer,
|
||||
this.rowIKNummer,
|
||||
this.rowBewilligungsumfang});
|
||||
this.xrTable2.SizeF = new System.Drawing.SizeF(676.8331F, 125F);
|
||||
//
|
||||
// rowZeichen
|
||||
//
|
||||
this.rowZeichen.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell3,
|
||||
this.xrTableCell4});
|
||||
this.rowZeichen.Name = "rowZeichen";
|
||||
this.rowZeichen.Weight = 1D;
|
||||
//
|
||||
// xrTableCell3
|
||||
//
|
||||
this.xrTableCell3.CanShrink = true;
|
||||
this.xrTableCell3.Multiline = true;
|
||||
this.xrTableCell3.Name = "xrTableCell3";
|
||||
this.xrTableCell3.Text = "Ihr Zeichen:";
|
||||
this.xrTableCell3.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.CanShrink = true;
|
||||
this.xrTableCell4.Multiline = true;
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Text = "[CustomerReferenceNumber]";
|
||||
this.xrTableCell4.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowKlient
|
||||
//
|
||||
this.rowKlient.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell5,
|
||||
this.xrTableCell6});
|
||||
this.rowKlient.Name = "rowKlient";
|
||||
this.rowKlient.Weight = 1D;
|
||||
//
|
||||
// xrTableCell5
|
||||
//
|
||||
this.xrTableCell5.CanShrink = true;
|
||||
this.xrTableCell5.Multiline = true;
|
||||
this.xrTableCell5.Name = "xrTableCell5";
|
||||
this.xrTableCell5.Text = "Für:";
|
||||
this.xrTableCell5.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell6
|
||||
//
|
||||
this.xrTableCell6.CanShrink = true;
|
||||
this.xrTableCell6.Multiline = true;
|
||||
this.xrTableCell6.Name = "xrTableCell6";
|
||||
this.xrTableCell6.Text = "[CustomerFirstName] [CustomerLastName!dd.MM.yyyy]";
|
||||
this.xrTableCell6.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowVersicherungsnummer
|
||||
//
|
||||
this.rowVersicherungsnummer.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell7,
|
||||
this.xrTableCell8});
|
||||
this.rowVersicherungsnummer.Name = "rowVersicherungsnummer";
|
||||
this.rowVersicherungsnummer.Weight = 1D;
|
||||
//
|
||||
// xrTableCell7
|
||||
//
|
||||
this.xrTableCell7.CanShrink = true;
|
||||
this.xrTableCell7.Multiline = true;
|
||||
this.xrTableCell7.Name = "xrTableCell7";
|
||||
this.xrTableCell7.Text = "Versicherungsnummer:";
|
||||
this.xrTableCell7.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell8
|
||||
//
|
||||
this.xrTableCell8.CanShrink = true;
|
||||
this.xrTableCell8.Multiline = true;
|
||||
this.xrTableCell8.Name = "xrTableCell8";
|
||||
this.xrTableCell8.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowIKNummer
|
||||
//
|
||||
this.rowIKNummer.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell10,
|
||||
this.xrTableCell11});
|
||||
this.rowIKNummer.Name = "rowIKNummer";
|
||||
this.rowIKNummer.Weight = 1D;
|
||||
//
|
||||
// xrTableCell10
|
||||
//
|
||||
this.xrTableCell10.CanShrink = true;
|
||||
this.xrTableCell10.Multiline = true;
|
||||
this.xrTableCell10.Name = "xrTableCell10";
|
||||
this.xrTableCell10.Text = "IK-Nummer:";
|
||||
this.xrTableCell10.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// xrTableCell11
|
||||
//
|
||||
this.xrTableCell11.CanShrink = true;
|
||||
this.xrTableCell11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.CostBearer2SupportConcept.CostBearer.Organisation.IKKostent" +
|
||||
"rager")});
|
||||
this.xrTableCell11.Multiline = true;
|
||||
this.xrTableCell11.Name = "xrTableCell11";
|
||||
this.xrTableCell11.Weight = 5.0079144287109374D;
|
||||
//
|
||||
// rowBewilligungsumfang
|
||||
//
|
||||
this.rowBewilligungsumfang.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell13,
|
||||
this.cellBewilligungsumfang});
|
||||
this.rowBewilligungsumfang.Name = "rowBewilligungsumfang";
|
||||
this.rowBewilligungsumfang.Weight = 1D;
|
||||
//
|
||||
// xrTableCell13
|
||||
//
|
||||
this.xrTableCell13.CanShrink = true;
|
||||
this.xrTableCell13.Multiline = true;
|
||||
this.xrTableCell13.Name = "xrTableCell13";
|
||||
this.xrTableCell13.Text = "Bewilligungsumfang:";
|
||||
this.xrTableCell13.Weight = 1.7604168701171876D;
|
||||
//
|
||||
// cellBewilligungsumfang
|
||||
//
|
||||
this.cellBewilligungsumfang.CanShrink = true;
|
||||
this.cellBewilligungsumfang.Multiline = true;
|
||||
this.cellBewilligungsumfang.Name = "cellBewilligungsumfang";
|
||||
this.cellBewilligungsumfang.Weight = 5.0079144287109374D;
|
||||
this.xrLabel5.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
|
||||
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(493.4167F, 0F);
|
||||
this.xrLabel5.Multiline = true;
|
||||
this.xrLabel5.Name = "xrLabel5";
|
||||
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel5.SizeF = new System.Drawing.SizeF(240.5833F, 65.66664F);
|
||||
this.xrLabel5.StylePriority.UseFont = false;
|
||||
this.xrLabel5.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel5.Text = "Geschäftsführung:\r\nFiona Wöll, B.A. Soziale Arbeit\r\nLisa Wöll, Dipl- Sozialarbeit" +
|
||||
"erin";
|
||||
this.xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
@@ -752,17 +797,17 @@ namespace BeWo.Report.DefaultReports
|
||||
this.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
|
||||
this.ruleRateFactorNull});
|
||||
this.Margins = new DevExpress.Drawing.DXMargins(75F, 75F, 170.8334F, 109.0417F);
|
||||
this.Margins = new DevExpress.Drawing.DXMargins(48F, 45F, 170.8334F, 111.5F);
|
||||
this.PageHeight = 1169;
|
||||
this.PageWidth = 827;
|
||||
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
|
||||
this.Version = "23.2";
|
||||
xrWatermark1.Id = "Watermark1";
|
||||
this.Watermarks.Add(xrWatermark1);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
@@ -826,5 +871,8 @@ namespace BeWo.Report.DefaultReports
|
||||
private DevExpress.XtraReports.UI.XRTableRow rowBewilligungsumfang;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
|
||||
private DevExpress.XtraReports.UI.XRTableCell cellBewilligungsumfang;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel5;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Spitzabrechnung));
|
||||
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
|
||||
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -104,6 +105,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow24 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
@@ -121,7 +123,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel9});
|
||||
this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
|
||||
this.ReportHeader.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.ReportHeader.HeightF = 140F;
|
||||
this.ReportHeader.Name = "ReportHeader";
|
||||
this.ReportHeader.StylePriority.UseFont = false;
|
||||
@@ -197,7 +199,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.xrTableCell6.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)));
|
||||
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell6.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell6.Name = "xrTableCell6";
|
||||
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell6.StylePriority.UseBorderColor = false;
|
||||
@@ -240,7 +242,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
|
||||
this.xrTableCell7.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell7.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell7.FormattingRules.Add(this.ruleRateFactorNull);
|
||||
this.xrTableCell7.Name = "xrTableCell7";
|
||||
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -590,7 +592,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.xrTableCell17.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell17.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell17.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell17.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell17.Name = "xrTableCell17";
|
||||
this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell17.StylePriority.UseBorderColor = false;
|
||||
@@ -624,8 +626,8 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel4.CanShrink = true;
|
||||
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 225F);
|
||||
this.xrLabel4.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 216.6667F);
|
||||
this.xrLabel4.Multiline = true;
|
||||
this.xrLabel4.Name = "xrLabel4";
|
||||
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -639,8 +641,8 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel3.CanShrink = true;
|
||||
this.xrLabel3.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 209F);
|
||||
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 200.6667F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 16F);
|
||||
@@ -653,8 +655,8 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
this.xrLabel2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel2.CanShrink = true;
|
||||
this.xrLabel2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
|
||||
this.xrLabel2.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 183.6667F);
|
||||
this.xrLabel2.Name = "xrLabel2";
|
||||
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 17F);
|
||||
@@ -720,17 +722,16 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
//
|
||||
// topMarginBand1
|
||||
//
|
||||
this.topMarginBand1.HeightF = 100F;
|
||||
this.topMarginBand1.Name = "topMarginBand1";
|
||||
//
|
||||
// bottomMarginBand1
|
||||
//
|
||||
this.bottomMarginBand1.HeightF = 100F;
|
||||
this.bottomMarginBand1.Name = "bottomMarginBand1";
|
||||
//
|
||||
// GroupHeader1
|
||||
//
|
||||
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel10,
|
||||
this.xrLabel1,
|
||||
this.xrLabel_RecipientContactPerson,
|
||||
this.xrLabel_RecipientDivision,
|
||||
@@ -743,14 +744,14 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.xrLabel6,
|
||||
this.xrTable1,
|
||||
this.xrLabel8});
|
||||
this.GroupHeader1.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.GroupHeader1.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.GroupHeader1.HeightF = 626.3333F;
|
||||
this.GroupHeader1.Name = "GroupHeader1";
|
||||
this.GroupHeader1.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Italic);
|
||||
this.xrLabel7.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Italic);
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 8F);
|
||||
this.xrLabel7.Name = "xrLabel7";
|
||||
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -763,7 +764,7 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable3,
|
||||
this.xrLabel7});
|
||||
this.ReportFooter.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.ReportFooter.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.ReportFooter.HeightF = 132.25F;
|
||||
this.ReportFooter.KeepTogether = true;
|
||||
this.ReportFooter.Name = "ReportFooter";
|
||||
@@ -889,6 +890,21 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.xrTableCell31.Text = "xrTableCell8";
|
||||
this.xrTableCell31.Weight = 3D;
|
||||
//
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrLabel10.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel10.CanShrink = true;
|
||||
this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 233.6666F);
|
||||
this.xrLabel10.Multiline = true;
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(650F, 17F);
|
||||
this.xrLabel10.StylePriority.UseBackColor = false;
|
||||
this.xrLabel10.StylePriority.UseFont = false;
|
||||
this.xrLabel10.Text = "GP-Nr.: [BusinessPartnerId]";
|
||||
this.xrLabel10.WordWrap = false;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO);
|
||||
@@ -902,15 +918,19 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
this.topMarginBand1,
|
||||
this.bottomMarginBand1,
|
||||
this.GroupHeader1});
|
||||
this.ComponentStorage.AddRange(new System.ComponentModel.IComponent[] {
|
||||
this.bindingSource1});
|
||||
this.DataSource = this.bindingSource1;
|
||||
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
|
||||
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
|
||||
this.ruleRateFactorNull});
|
||||
this.Margins = new System.Drawing.Printing.Margins(100, 74, 100, 100);
|
||||
this.Margins = new DevExpress.Drawing.DXMargins(100F, 74F, 100F, 100F);
|
||||
this.PageHeight = 1169;
|
||||
this.PageWidth = 827;
|
||||
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
|
||||
this.Version = "17.1";
|
||||
this.Version = "23.2";
|
||||
xrWatermark1.Id = "Watermark1";
|
||||
this.Watermarks.Add(xrWatermark1);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
@@ -994,5 +1014,6 @@ namespace BeWo.BetreutesWohnenWoellReports.Alt
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow24;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,4 @@
|
||||
sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -32,13 +32,24 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Spitzabrechnung));
|
||||
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
|
||||
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
|
||||
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.rowErbrachteLeistung = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -77,6 +88,14 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTableRow33 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell52 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell53 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrTable6 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow10 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrTable5 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow31 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
@@ -95,30 +114,13 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTableRow37 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell59 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell60 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.xrTable6 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableRow10 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.Zwischensumme = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.Zwischensumme)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
@@ -133,7 +135,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel9});
|
||||
this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
|
||||
this.ReportHeader.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
|
||||
this.ReportHeader.HeightF = 140F;
|
||||
this.ReportHeader.Name = "ReportHeader";
|
||||
this.ReportHeader.StylePriority.UseFont = false;
|
||||
@@ -173,6 +175,122 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTable1.SizeF = new System.Drawing.SizeF(650F, 68F);
|
||||
this.xrTable1.StylePriority.UseBorderColor = false;
|
||||
//
|
||||
// xrTableRow3
|
||||
//
|
||||
this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell4,
|
||||
this.xrTableCell5});
|
||||
this.xrTableRow3.Name = "xrTableRow3";
|
||||
this.xrTableRow3.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell4.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell4.StylePriority.UseBorders = false;
|
||||
this.xrTableCell4.StylePriority.UsePadding = false;
|
||||
this.xrTableCell4.Text = "Bewilligte Fachleistungsstunden (FLS) gesamt:";
|
||||
this.xrTableCell4.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableCell5
|
||||
//
|
||||
this.xrTableCell5.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell5.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell5.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLS")});
|
||||
this.xrTableCell5.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell5.Name = "xrTableCell5";
|
||||
this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell5.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell5.StylePriority.UseBorders = false;
|
||||
this.xrTableCell5.StylePriority.UseFont = false;
|
||||
this.xrTableCell5.StylePriority.UsePadding = false;
|
||||
this.xrTableCell5.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell5.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2,
|
||||
this.xrTableCell6});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UsePadding = false;
|
||||
this.xrTableCell2.Text = "- zzgl. Faktor [RateFactorText2]:";
|
||||
this.xrTableCell2.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableCell6
|
||||
//
|
||||
this.xrTableCell6.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLSWithFactor")});
|
||||
this.xrTableCell6.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell6.Name = "xrTableCell6";
|
||||
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell6.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell6.StylePriority.UseBorders = false;
|
||||
this.xrTableCell6.StylePriority.UseFont = false;
|
||||
this.xrTableCell6.StylePriority.UsePadding = false;
|
||||
this.xrTableCell6.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell6.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// xrTableRow1
|
||||
//
|
||||
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell1,
|
||||
this.xrTableCell7});
|
||||
this.xrTableRow1.Name = "xrTableRow1";
|
||||
this.xrTableRow1.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell1
|
||||
//
|
||||
this.xrTableCell1.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell1.Name = "xrTableCell1";
|
||||
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell1.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell1.StylePriority.UseBorders = false;
|
||||
this.xrTableCell1.StylePriority.UsePadding = false;
|
||||
this.xrTableCell1.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableCell7
|
||||
//
|
||||
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell7.Name = "xrTableCell7";
|
||||
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell7.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell7.StylePriority.UseBorders = false;
|
||||
this.xrTableCell7.StylePriority.UsePadding = false;
|
||||
this.xrTableCell7.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// rowErbrachteLeistung
|
||||
//
|
||||
this.rowErbrachteLeistung.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
@@ -195,6 +313,19 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTableCell22.Text = "Erbrachte Leistungen:";
|
||||
this.xrTableCell22.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableCell8
|
||||
//
|
||||
this.xrTableCell8.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell8.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell8.Name = "xrTableCell8";
|
||||
this.xrTableCell8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell8.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell8.StylePriority.UseBorders = false;
|
||||
this.xrTableCell8.StylePriority.UsePadding = false;
|
||||
this.xrTableCell8.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// ruleRateFactorNull
|
||||
//
|
||||
this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
|
||||
@@ -226,8 +357,8 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel4.CanShrink = true;
|
||||
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 226F);
|
||||
this.xrLabel4.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 218.7083F);
|
||||
this.xrLabel4.Multiline = true;
|
||||
this.xrLabel4.Name = "xrLabel4";
|
||||
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -241,8 +372,8 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel3.CanShrink = true;
|
||||
this.xrLabel3.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 209F);
|
||||
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 201.7083F);
|
||||
this.xrLabel3.Name = "xrLabel3";
|
||||
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 17F);
|
||||
@@ -256,8 +387,8 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
this.xrLabel2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel2.CanShrink = true;
|
||||
this.xrLabel2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
|
||||
this.xrLabel2.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 184.7083F);
|
||||
this.xrLabel2.Name = "xrLabel2";
|
||||
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 17F);
|
||||
@@ -326,7 +457,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable3,
|
||||
this.xrLabel7});
|
||||
this.ReportFooter.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.ReportFooter.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.ReportFooter.HeightF = 132.9583F;
|
||||
this.ReportFooter.KeepTogether = true;
|
||||
this.ReportFooter.Name = "ReportFooter";
|
||||
@@ -454,7 +585,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Italic);
|
||||
this.xrLabel7.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Italic);
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 8F);
|
||||
this.xrLabel7.Name = "xrLabel7";
|
||||
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
@@ -464,17 +595,16 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
// topMarginBand1
|
||||
//
|
||||
this.topMarginBand1.HeightF = 100F;
|
||||
this.topMarginBand1.Name = "topMarginBand1";
|
||||
//
|
||||
// bottomMarginBand1
|
||||
//
|
||||
this.bottomMarginBand1.HeightF = 100F;
|
||||
this.bottomMarginBand1.Name = "bottomMarginBand1";
|
||||
//
|
||||
// GroupHeader1
|
||||
//
|
||||
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel10,
|
||||
this.xrLabel1,
|
||||
this.xrLabel_RecipientContactPerson,
|
||||
this.xrLabel_RecipientDivision,
|
||||
@@ -487,7 +617,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrLabel6,
|
||||
this.xrTable1,
|
||||
this.xrLabel8});
|
||||
this.GroupHeader1.Font = new System.Drawing.Font("Arial", 10F);
|
||||
this.GroupHeader1.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.GroupHeader1.HeightF = 453.7917F;
|
||||
this.GroupHeader1.Name = "GroupHeader1";
|
||||
this.GroupHeader1.StylePriority.UseFont = false;
|
||||
@@ -513,7 +643,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
//
|
||||
this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable4});
|
||||
this.Detail1.Font = new System.Drawing.Font("Arial", 9.75F);
|
||||
this.Detail1.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
|
||||
this.Detail1.HeightF = 17F;
|
||||
this.Detail1.Name = "Detail1";
|
||||
this.Detail1.SortFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
|
||||
@@ -569,11 +699,103 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTableCell53.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell53.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// GroupHeader2
|
||||
//
|
||||
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
|
||||
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
|
||||
this.GroupHeader2.HeightF = 0F;
|
||||
this.GroupHeader2.Name = "GroupHeader2";
|
||||
//
|
||||
// GroupFooter2
|
||||
//
|
||||
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable6});
|
||||
this.GroupFooter2.HeightF = 34F;
|
||||
this.GroupFooter2.Name = "GroupFooter2";
|
||||
this.GroupFooter2.Visible = false;
|
||||
//
|
||||
// xrTable6
|
||||
//
|
||||
this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrTable6.Name = "xrTable6";
|
||||
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow4,
|
||||
this.xrTableRow10});
|
||||
this.xrTable6.SizeF = new System.Drawing.SizeF(650F, 34F);
|
||||
this.xrTable6.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrTableRow4
|
||||
//
|
||||
this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell10,
|
||||
this.xrTableCell11});
|
||||
this.xrTableRow4.Name = "xrTableRow4";
|
||||
this.xrTableRow4.Weight = 0.40476190476190466D;
|
||||
//
|
||||
// xrTableCell10
|
||||
//
|
||||
this.xrTableCell10.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell10.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTableCell10.Name = "xrTableCell10";
|
||||
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell10.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell10.StylePriority.UseBorders = false;
|
||||
this.xrTableCell10.StylePriority.UseFont = false;
|
||||
this.xrTableCell10.StylePriority.UsePadding = false;
|
||||
this.xrTableCell10.Text = "Zwischensumme [ItemDescription]:";
|
||||
this.xrTableCell10.Weight = 2.3494227482722359D;
|
||||
//
|
||||
// xrTableCell11
|
||||
//
|
||||
this.xrTableCell11.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal")});
|
||||
this.xrTableCell11.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTableCell11.Name = "xrTableCell11";
|
||||
this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell11.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell11.StylePriority.UseBorders = false;
|
||||
this.xrTableCell11.StylePriority.UseFont = false;
|
||||
this.xrTableCell11.StylePriority.UsePadding = false;
|
||||
this.xrTableCell11.StylePriority.UseTextAlignment = false;
|
||||
xrSummary1.FormatString = "{0:c}";
|
||||
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrTableCell11.Summary = xrSummary1;
|
||||
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell11.Weight = 0.65057725172776437D;
|
||||
//
|
||||
// xrTableRow10
|
||||
//
|
||||
this.xrTableRow10.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell12});
|
||||
this.xrTableRow10.Name = "xrTableRow10";
|
||||
this.xrTableRow10.Weight = 0.40476190476190466D;
|
||||
//
|
||||
// xrTableCell12
|
||||
//
|
||||
this.xrTableCell12.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell12.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell12.Font = new DevExpress.Drawing.DXFont("Verdana", 9.75F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
|
||||
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
|
||||
this.xrTableCell12.Name = "xrTableCell12";
|
||||
this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell12.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell12.StylePriority.UseBorders = false;
|
||||
this.xrTableCell12.StylePriority.UseFont = false;
|
||||
this.xrTableCell12.StylePriority.UsePadding = false;
|
||||
this.xrTableCell12.Weight = 3D;
|
||||
//
|
||||
// GroupFooter1
|
||||
//
|
||||
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable5});
|
||||
this.GroupFooter1.Font = new System.Drawing.Font("Arial", 9.75F);
|
||||
this.GroupFooter1.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F);
|
||||
this.GroupFooter1.HeightF = 132F;
|
||||
this.GroupFooter1.Name = "GroupFooter1";
|
||||
this.GroupFooter1.StylePriority.UseFont = false;
|
||||
@@ -757,7 +979,7 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell60.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Claim", "{0:c}")});
|
||||
this.xrTableCell60.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell60.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrTableCell60.Name = "xrTableCell60";
|
||||
this.xrTableCell60.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell60.StylePriority.UseBorderColor = false;
|
||||
@@ -768,223 +990,20 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.xrTableCell60.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell60.Weight = 0.21685899000901443D;
|
||||
//
|
||||
// xrTableRow1
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell1,
|
||||
this.xrTableCell7});
|
||||
this.xrTableRow1.Name = "xrTableRow1";
|
||||
this.xrTableRow1.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell1
|
||||
//
|
||||
this.xrTableCell1.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell1.Name = "xrTableCell1";
|
||||
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell1.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell1.StylePriority.UseBorders = false;
|
||||
this.xrTableCell1.StylePriority.UsePadding = false;
|
||||
this.xrTableCell1.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableRow2
|
||||
//
|
||||
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell2,
|
||||
this.xrTableCell6});
|
||||
this.xrTableRow2.Name = "xrTableRow2";
|
||||
this.xrTableRow2.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell2
|
||||
//
|
||||
this.xrTableCell2.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell2.Name = "xrTableCell2";
|
||||
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell2.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell2.StylePriority.UseBorders = false;
|
||||
this.xrTableCell2.StylePriority.UsePadding = false;
|
||||
this.xrTableCell2.Text = "- zzgl. Faktor [RateFactorText2]:";
|
||||
this.xrTableCell2.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableRow3
|
||||
//
|
||||
this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell4,
|
||||
this.xrTableCell5});
|
||||
this.xrTableRow3.Name = "xrTableRow3";
|
||||
this.xrTableRow3.Weight = 0.085D;
|
||||
//
|
||||
// xrTableCell4
|
||||
//
|
||||
this.xrTableCell4.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell4.Name = "xrTableCell4";
|
||||
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell4.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell4.StylePriority.UseBorders = false;
|
||||
this.xrTableCell4.StylePriority.UsePadding = false;
|
||||
this.xrTableCell4.Text = "Bewilligte Fachleistungsstunden (FLS) gesamt:";
|
||||
this.xrTableCell4.Weight = 0.78314091609074521D;
|
||||
//
|
||||
// xrTableCell5
|
||||
//
|
||||
this.xrTableCell5.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell5.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell5.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLS")});
|
||||
this.xrTableCell5.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell5.Name = "xrTableCell5";
|
||||
this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell5.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell5.StylePriority.UseBorders = false;
|
||||
this.xrTableCell5.StylePriority.UseFont = false;
|
||||
this.xrTableCell5.StylePriority.UsePadding = false;
|
||||
this.xrTableCell5.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell5.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// xrTableCell6
|
||||
//
|
||||
this.xrTableCell6.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLSWithFactor")});
|
||||
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.xrTableCell6.Name = "xrTableCell6";
|
||||
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell6.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell6.StylePriority.UseBorders = false;
|
||||
this.xrTableCell6.StylePriority.UseFont = false;
|
||||
this.xrTableCell6.StylePriority.UsePadding = false;
|
||||
this.xrTableCell6.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell6.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// xrTableCell7
|
||||
//
|
||||
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell7.Name = "xrTableCell7";
|
||||
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell7.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell7.StylePriority.UseBorders = false;
|
||||
this.xrTableCell7.StylePriority.UsePadding = false;
|
||||
this.xrTableCell7.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// xrTableCell8
|
||||
//
|
||||
this.xrTableCell8.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell8.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
| DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell8.Name = "xrTableCell8";
|
||||
this.xrTableCell8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell8.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell8.StylePriority.UseBorders = false;
|
||||
this.xrTableCell8.StylePriority.UsePadding = false;
|
||||
this.xrTableCell8.Weight = 0.21685908390925479D;
|
||||
//
|
||||
// GroupHeader2
|
||||
//
|
||||
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
|
||||
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
|
||||
this.GroupHeader2.HeightF = 0F;
|
||||
this.GroupHeader2.Name = "GroupHeader2";
|
||||
//
|
||||
// GroupFooter2
|
||||
//
|
||||
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrTable6});
|
||||
this.GroupFooter2.HeightF = 34F;
|
||||
this.GroupFooter2.Name = "GroupFooter2";
|
||||
this.GroupFooter2.Visible = false;
|
||||
//
|
||||
// xrTable6
|
||||
//
|
||||
this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
|
||||
this.xrTable6.Name = "xrTable6";
|
||||
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
|
||||
this.xrTableRow4,
|
||||
this.xrTableRow10});
|
||||
this.xrTable6.SizeF = new System.Drawing.SizeF(650F, 34F);
|
||||
this.xrTable6.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrTableRow4
|
||||
//
|
||||
this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell10,
|
||||
this.xrTableCell11});
|
||||
this.xrTableRow4.Name = "xrTableRow4";
|
||||
this.xrTableRow4.Weight = 0.40476190476190466D;
|
||||
//
|
||||
// xrTableCell10
|
||||
//
|
||||
this.xrTableCell10.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell10.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.xrTableCell10.Name = "xrTableCell10";
|
||||
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell10.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell10.StylePriority.UseBorders = false;
|
||||
this.xrTableCell10.StylePriority.UseFont = false;
|
||||
this.xrTableCell10.StylePriority.UsePadding = false;
|
||||
this.xrTableCell10.Text = "Zwischensumme [ItemDescription]:";
|
||||
this.xrTableCell10.Weight = 2.3494227482722359D;
|
||||
//
|
||||
// xrTableCell11
|
||||
//
|
||||
this.xrTableCell11.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal")});
|
||||
this.xrTableCell11.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.xrTableCell11.Name = "xrTableCell11";
|
||||
this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell11.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell11.StylePriority.UseBorders = false;
|
||||
this.xrTableCell11.StylePriority.UseFont = false;
|
||||
this.xrTableCell11.StylePriority.UsePadding = false;
|
||||
this.xrTableCell11.StylePriority.UseTextAlignment = false;
|
||||
xrSummary1.FormatString = "{0:c}";
|
||||
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
|
||||
this.xrTableCell11.Summary = xrSummary1;
|
||||
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell11.Weight = 0.65057725172776437D;
|
||||
//
|
||||
// xrTableRow10
|
||||
//
|
||||
this.xrTableRow10.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
|
||||
this.xrTableCell12});
|
||||
this.xrTableRow10.Name = "xrTableRow10";
|
||||
this.xrTableRow10.Weight = 0.40476190476190466D;
|
||||
//
|
||||
// xrTableCell12
|
||||
//
|
||||
this.xrTableCell12.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.xrTableCell12.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
|
||||
| DevExpress.XtraPrinting.BorderSide.Bottom)));
|
||||
this.xrTableCell12.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.xrTableCell12.Name = "xrTableCell12";
|
||||
this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrTableCell12.StylePriority.UseBorderColor = false;
|
||||
this.xrTableCell12.StylePriority.UseBorders = false;
|
||||
this.xrTableCell12.StylePriority.UseFont = false;
|
||||
this.xrTableCell12.StylePriority.UsePadding = false;
|
||||
this.xrTableCell12.Weight = 3D;
|
||||
this.xrLabel10.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel10.CanShrink = true;
|
||||
this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 235.7083F);
|
||||
this.xrLabel10.Multiline = true;
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(650F, 17F);
|
||||
this.xrLabel10.StylePriority.UseBackColor = false;
|
||||
this.xrLabel10.StylePriority.UseFont = false;
|
||||
this.xrLabel10.Text = "GP-Nr.: [BusinessPartnerId]";
|
||||
this.xrLabel10.WordWrap = false;
|
||||
//
|
||||
// Zwischensumme
|
||||
//
|
||||
@@ -1007,16 +1026,18 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
|
||||
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
|
||||
this.ruleRateFactorNull});
|
||||
this.Margins = new System.Drawing.Printing.Margins(100, 74, 100, 100);
|
||||
this.Margins = new DevExpress.Drawing.DXMargins(100F, 74F, 100F, 100F);
|
||||
this.PageHeight = 1169;
|
||||
this.PageWidth = 827;
|
||||
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
|
||||
this.Version = "17.1";
|
||||
this.Version = "23.2";
|
||||
xrWatermark1.Id = "Watermark1";
|
||||
this.Watermarks.Add(xrWatermark1);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.Zwischensumme)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
@@ -1106,5 +1127,6 @@ namespace BeWo.BetreutesWohnenWoellReports
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow10;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,4 @@
|
||||
<value>anbei sende ich Ihnen die unterschriebenen Nachweise über die im Rahmen des Betreuten Wohnens für [Salutation2] [CustomerFirstName] [CustomerLastName] erbrachten Leistungen zu. Nach unserer Berechnung ergeben sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="Zwischensumme.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -123,8 +123,9 @@
|
||||
<DependentUpon>InvoiceCustomerReport.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Invoicing\DiakoneKKKleveBeWo67InvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveSoziotherapieInvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveMitEigenanteilInvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveSoziotherapieInvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveSelbstzahlerInvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveDefaultInvoiceCreation.cs" />
|
||||
<Compile Include="Invoicing\DiakoneKKKleveInvoiceFactory.cs" />
|
||||
<Compile Include="AssistenzstundenReport.cs">
|
||||
@@ -171,6 +172,12 @@
|
||||
<Compile Include="LeistungsnachweisSoziotherapie.designer.cs">
|
||||
<DependentUpon>LeistungsnachweisSoziotherapie.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RechnungSelbstzahler.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RechnungSelbstzahler.Designer.cs">
|
||||
<DependentUpon>RechnungSelbstzahler.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Reporting\DkkkAnnualReportFactory.cs" />
|
||||
<Compile Include="QuittierungsbelegDienstleistung.cs">
|
||||
<SubType>Component</SubType>
|
||||
@@ -315,6 +322,10 @@
|
||||
<DependentUpon>RechnungMitEigenbeteiligung.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="RechnungSelbstzahler.resx">
|
||||
<DependentUpon>RechnungSelbstzahler.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="RechnungSoziotherapie.resx">
|
||||
<DependentUpon>RechnungSoziotherapie.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -29,7 +29,11 @@ namespace DiakonieKKKleve.Invoicing
|
||||
{
|
||||
return new DiakoneKKKleveMitEigenanteilInvoiceCreation();
|
||||
}
|
||||
}
|
||||
if (cb2sc.CostBearer.Organisation != null && cb2sc.CostBearer.Organisation.Name.ToLower().Contains("selbstzahler"))
|
||||
{
|
||||
return new DiakoneKKKleveSelbstzahlerCreation();
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (var list in supportConcepts2ServiceRecords.Values)
|
||||
{
|
||||
@@ -56,14 +60,10 @@ namespace DiakonieKKKleve.Invoicing
|
||||
}
|
||||
return ic;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return new DiakoneKKKleveDefaultInvoiceCreation();
|
||||
|
||||
|
||||
return new DiakoneKKKleveDefaultInvoiceCreation();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.Invoicing;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Services;
|
||||
|
||||
namespace DiakonieKKKleve.Invoicing
|
||||
{
|
||||
public class DiakoneKKKleveSelbstzahlerCreation : InvoiceCreation
|
||||
{
|
||||
public override void SetInvoiceId(ServiceInvoice invoice)
|
||||
{
|
||||
invoice.InvoiceBase.InvoiceId = "Selbstzahler";
|
||||
}
|
||||
|
||||
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc)
|
||||
{
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
if (ii.ItemDescription != null && ii.ItemDescription.Contains("Fehlkontakt"))
|
||||
{
|
||||
ii.ItemDescription = "Fehlkontakte";
|
||||
}
|
||||
else
|
||||
{
|
||||
ii.ItemDescription = "Fachleistungsstunden";
|
||||
}
|
||||
return ii;
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user