Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
<EnableSecurityDebugging>true</EnableSecurityDebugging>
|
||||
<TargetZone>Internet</TargetZone>
|
||||
<GenerateManifests>true</GenerateManifests>
|
||||
<SignManifests>false</SignManifests>
|
||||
<SignManifests>true</SignManifests>
|
||||
<ManifestKeyFile>
|
||||
</ManifestKeyFile>
|
||||
<ManifestCertificateThumbprint>8CA4066C36C87B745E4016FDA715A6DB16FCFFA9</ManifestCertificateThumbprint>
|
||||
@@ -43,12 +43,12 @@
|
||||
<TargetCulture>de-DE</TargetCulture>
|
||||
<ProductName>BeWoPlaner</ProductName>
|
||||
<PublisherName>ownSoft GmbH</PublisherName>
|
||||
<MinimumRequiredVersion>2.0.1.248</MinimumRequiredVersion>
|
||||
<MinimumRequiredVersion>2.0.1.249</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.htm</WebPage>
|
||||
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>249</ApplicationRevision>
|
||||
<ApplicationRevision>250</ApplicationRevision>
|
||||
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace BeWo
|
||||
|
||||
public static MainControl MainControl;
|
||||
public static string ShortVersion = "3.21";
|
||||
public static string Version = "Version 3.21.4";
|
||||
public static string Version = "Version 3.21.5";
|
||||
|
||||
public static int RenderTier = 0;
|
||||
|
||||
|
||||
@@ -244,15 +244,19 @@ namespace BeWo
|
||||
|
||||
//!!!!Wenn hier neue Keys hinzugefügt werden, muss das auch in der Klasse ChatController.HauptKlassen.Chat und im DatabaseTerminator gemacht werden!!
|
||||
|
||||
private static String PUB_KEY_X3 = "3082010A02820101009CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
|
||||
private static String PUB_KEY_X3 = "9CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
|
||||
|
||||
private static String PUB_KEY_R3 = "3082010A0282010100BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
|
||||
private static String PUB_KEY_R3 = "BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
|
||||
|
||||
private static String PUB_KEY_E1 = "04245C2DA22AFD1C4BA65D97732731ACB2A06962EF65E8A6B0F0AC4B9FFF1C0B700FD3982F4DFC0F009B37F074055732972E05EF2A4325A3FB6E342713F64F7E69D302995EEB244792C1249BE6B1218FC12481FC68CC1F69BA58F51922F774C616";
|
||||
private static String PUB_KEY_E1 = "245c2da22afd1c4ba65d97732731acb2a06962ef65e8a6b0f0ac4b9fff1c0b700fd3982f4dfc0f009b37f074055732972e05ef2a4325a3fb6e342713f64f7e69d302995eeb244792c1249be6b1218fc12481fc68cc1f69ba58f51922f774c616";
|
||||
|
||||
private static String PUB_KEY_R11 = "3082010A0282010100BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
|
||||
private static String PUB_KEY_E5 = "0d0b3a8a6b618eb6efdc5f58e7c6424554ab63f66661480a2e5975b481023750b73f1679dc98eca1289772201c2ccfd57c52204e54785b84146bc090ae85ecc051413c5a877f064dd4fe60d1fa6c2de17d951088a208540f991a4ce6ea0aacd8";
|
||||
|
||||
private static String PUB_KEY_R10 = "3082010A0282010100CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
|
||||
private static String PUB_KEY_E6 = "d9f19e4687f8217160a826eba3fab9eada1db912a7d426d95114b1617c7596bf220b391fd5bed10a46aa2d3c4a09842ebe409555e91940376675ed324e770449f8707bc318e7cef77110feac74d800d4ed6d1c731633109c3ab2ea6c62f4bdb8";
|
||||
|
||||
private static String PUB_KEY_R10 = "CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
|
||||
|
||||
private static String PUB_KEY_R11 = "BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
|
||||
|
||||
|
||||
private bool PinPublicKey(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
|
||||
@@ -263,15 +267,18 @@ namespace BeWo
|
||||
return false;
|
||||
|
||||
bool chainContainsPk = false;
|
||||
|
||||
|
||||
foreach (var element in chain.ChainElements)
|
||||
{
|
||||
String pk = element.Certificate.GetPublicKeyString();
|
||||
String testx3 = PUB_KEY_X3;
|
||||
String testr3 = PUB_KEY_R3;
|
||||
String teste1 = PUB_KEY_E1;
|
||||
String r11 = PUB_KEY_R11;
|
||||
if (pk == PUB_KEY_X3 || pk == PUB_KEY_R3 || pk == PUB_KEY_E1 || pk == PUB_KEY_R11 || pk == PUB_KEY_R10)
|
||||
String pk = element.Certificate.GetPublicKeyString().ToLower();
|
||||
|
||||
if (pk.Contains(PUB_KEY_X3.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R3.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E1.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E5.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E6.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R10.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R11.ToLower()))
|
||||
{
|
||||
chainContainsPk = true;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TypeString" Header="Art der Rechnung" Width="150" />
|
||||
<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 ReadOnly="True" AllowEditing="False" FieldName="InvoiceNumber" Header="Nummer" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceNumber" Header="Nummer" SortOrder="Ascending" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceDate" Header="Datum" EditSettings="{dxe:DateSettings DisplayFormat=d}" MinWidth="70" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="RecipientString" Header="{markup:Translate EmpfängerSingular}" />
|
||||
<!--<dxg:GridColumn FieldName="AccountingPeriodString" Header="Abrechnungszeitraum" />-->
|
||||
|
||||
@@ -82,10 +82,22 @@
|
||||
<TextBox Grid.Column="1" Margin="1" VerticalContentAlignment="Center" Text="{Binding ViewModel.NewVM.Description, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Button Grid.Column="2" Height="25" Content="Hinzufügen" Margin="3" Click="ZielHinzufuegenButton_Click" />
|
||||
<Button Grid.Column="3" Height="25" Content="Icf Importieren" Margin="3" Click="IcfImport_Click" />
|
||||
<ToggleButton Grid.Column="4" Height="25" Content="Bearbeiten" Margin="3" Checked="ToggleButton_Checked" Unchecked="ToggleButton_Unchecked" Visibility="Collapsed"/>
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="5" Grid.Row="0" Grid.ColumnSpan="10" HorizontalAlignment="Right" Visibility="Collapsed">
|
||||
<Button x:Name="PrevButton" Height="25" Content="Prev" Margin="3" Click="PrevButton_Click" />
|
||||
<Button x:Name="NextButton" Height="25" Content="Next" Margin="3" Click="NextButton_Click" />
|
||||
<ToggleButton x:Name="EditToggleButton" Grid.Column="4" Width="157" Height="25" Content="Bearbeiten aktivieren" Margin="3" Checked="ToggleButton_Checked" Unchecked="ToggleButton_Unchecked" Visibility="Visible" ToolTip="Wenn der Bearbeiten Modus aktiviert ist, können Sie Elemente mit Drag und Drop verschieben"/>
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="5" Grid.Row="0" Grid.ColumnSpan="10" HorizontalAlignment="Right" Visibility="Visible">
|
||||
<Button x:Name="PrevButton" Height="25" Width="25" Margin="3" Click="PrevButton_Click" ToolTip="Letzte Änderung rückgängig machen">
|
||||
<Image Source="..\..\Ressources\Icons\Undo.png" Height="18" VerticalAlignment="Center" HorizontalAlignment="Center" Width="20" Margin="0,3,0,0" />
|
||||
</Button>
|
||||
<Button x:Name="NextButton" Height="25" Width="25" Margin="3" Click="NextButton_Click">
|
||||
<Image Source="..\..\Ressources\Icons\Undo.png" Height="18" VerticalAlignment="Center" HorizontalAlignment="Center" Width="20" Margin="0,3,0,0" />
|
||||
<Button.RenderTransform>
|
||||
<TransformGroup>
|
||||
<ScaleTransform ScaleX="-1" />
|
||||
<TranslateTransform X="25" />
|
||||
</TransformGroup>
|
||||
|
||||
|
||||
</Button.RenderTransform>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -341,10 +341,12 @@ namespace BeWo.View.Detail
|
||||
private void ToggleButton_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Bearbeitungsmodus = true;
|
||||
EditToggleButton.Content = "Bearbeiten deaktivieren";
|
||||
}
|
||||
private void ToggleButton_Unchecked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Bearbeitungsmodus = false;
|
||||
EditToggleButton.Content = "Bearbeiten aktivieren";
|
||||
}
|
||||
|
||||
private void StartCopyItem(SupportConceptGoalTreeItem _item, SupportConceptGoalTreeItem _copy)
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<dxg:GridColumn x:Name="column_interval" FieldName="AccountingInterval" Header="Abrechnungsintervall" Width="130" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
<dxg:TableView AutoWidth="True" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
<Popup x:Name="popup_costrateperiods" StaysOpen="false" Placement="MousePoint">
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -26,9 +26,8 @@
|
||||
</Grid.RowDefinitions>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="80" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="180" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
@@ -39,9 +38,9 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Bezeichnung</Label>
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="3" Height="23" Text="{val:ValidationBinding Path=NewVM.Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{val:ValidationBinding Path=NewVM.Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label Grid.Column="0" Grid.Row="1">Kategorie</Label>
|
||||
<controls:NullItemComboBox Name="combobox_categories" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" Height="23" ItemsSource="{Binding Path=PossibleCategories, Mode=OneWay}" Margin="3" SelectedItem="{val:ValidationBinding Path=NewVM.ServiceCategory}" SelectionChanged="Combobox_categories_OnSelected">
|
||||
<controls:NullItemComboBox Name="combobox_categories" Grid.Column="1" Grid.Row="1" Height="23" ItemsSource="{Binding Path=PossibleCategories, Mode=OneWay}" Margin="3" SelectedItem="{val:ValidationBinding Path=NewVM.ServiceCategory}" SelectionChanged="Combobox_categories_OnSelected">
|
||||
<ComboBox.Resources>
|
||||
<DataTemplate x:Key="DropDownItemTemplate">
|
||||
<Grid>
|
||||
@@ -66,17 +65,17 @@
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</controls:NullItemComboBox>
|
||||
|
||||
<Label Content="Position" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Grid.ColumnSpan="2" />
|
||||
<Label Content="Position" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" />
|
||||
|
||||
<dxe:SpinEdit EditValueType="{x:Type sys:Int32}" MinValue="0" Margin="3" IsFloatValue="False" Grid.Column="2" Grid.Row="2" Height="23" EditValue="{Binding Path=NewVM.Position, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit EditValueType="{x:Type sys:Int32}" MinValue="0" Margin="3" IsFloatValue="False" Grid.Column="1" Grid.Row="2" Height="23" EditValue="{Binding Path=NewVM.Position, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Label Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Content="{t:Translate Prozent Abrechenbar}"/>
|
||||
<Label Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Content="{t:Translate Prozent Budget}"/>
|
||||
<Label Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="2" Content="{t:Translate Prozent Stundenkonto}"/>
|
||||
<Label Grid.Column="0" Grid.Row="3" Content="{t:Translate Prozent Abrechenbar}"/>
|
||||
<Label Grid.Column="0" Grid.Row="4" Content="{t:Translate Prozent Budget}"/>
|
||||
<Label Grid.Column="0" Grid.Row="5" Content="{t:Translate Prozent Stundenkonto}"/>
|
||||
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="2" Grid.Row="3" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentAbrechenbar, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="2" Grid.Row="4" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentBudget, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="2" Grid.Row="5" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentStundenkonto, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="1" Grid.Row="3" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentAbrechenbar, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="1" Grid.Row="4" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentBudget, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:SpinEdit IsFloatValue="True" MinValue="0" MaxValue="100" Increment="10" Grid.Column="1" Grid.Row="5" Margin="3" Height="23" EditValue="{Binding Path=NewVM.ProzentStundenkonto, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -112,7 +111,7 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
<Button Name="button_addServiceDescription" Click="button_addServiceDescription_Click" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Height="25" Margin="3,3,3,3" Padding="5 0" IsDefault="True" HorizontalAlignment="Right">Hinzufügen</Button>
|
||||
<dxg:GridControl x:Name="datagrid_descriptions" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="7" DataSource="{Binding VMList}">
|
||||
<dxg:GridControl x:Name="datagrid_descriptions" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3" DataSource="{Binding VMList}">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="IsDeleteable" Header="" FixedWidth="True" Width="24" ReadOnly="True">
|
||||
<dxg:GridColumn.CellTemplate>
|
||||
@@ -140,7 +139,7 @@
|
||||
<dxg:GridColumn FieldName="ProzentStundenkonto" Header="Prozent Stundenkonto" Width="130" EditSettings="{dxe:TextSettings DisplayFormat=0.##, Mask=f2, MaskType=Numeric}"/>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
<dxg:TableView AutoWidth="True" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
<Popup x:Name="popup_costrateperiods" StaysOpen="false" Placement="MousePoint">
|
||||
|
||||
@@ -57,28 +57,31 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
private void _YearPicker_EditValueChanged(object sender, EditValueChangedEventArgs e)
|
||||
{
|
||||
if (_GridLeaveDays == null)
|
||||
if (_YearPicker.SelectedItem != null)
|
||||
{
|
||||
_GridLeaveDays = rootGrid.Resources["datagrid_leavedays"] as GridControl;
|
||||
|
||||
WPFGridLeaveDays.Children.Add(_GridLeaveDays);
|
||||
}
|
||||
|
||||
var urlaubskonto = ServiceFacade.DoEmployeeServiceSync(s => s.ErstelleUrlaubskontoDarstellung(DataContract, (int)_YearPicker.SelectedItem));
|
||||
|
||||
if (urlaubskonto == null)
|
||||
{
|
||||
urlaubskonto = new List<UrlaubskontoDarstellungDC>();
|
||||
urlaubskonto.Add(new UrlaubskontoDarstellungDC()
|
||||
if (_GridLeaveDays == null)
|
||||
{
|
||||
Erlaeuterung = "Es existiert kein Vertrag für ausgewähltes Jahr",
|
||||
});
|
||||
button_openLeaveDayDialogue.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
else
|
||||
button_openLeaveDayDialogue.Visibility = Visibility.Visible;
|
||||
_GridLeaveDays = rootGrid.Resources["datagrid_leavedays"] as GridControl;
|
||||
|
||||
_GridLeaveDays.ItemsSource = urlaubskonto;
|
||||
WPFGridLeaveDays.Children.Add(_GridLeaveDays);
|
||||
}
|
||||
|
||||
var urlaubskonto = ServiceFacade.DoEmployeeServiceSync(s => s.ErstelleUrlaubskontoDarstellung(DataContract, (int)_YearPicker.SelectedItem));
|
||||
|
||||
if (urlaubskonto == null)
|
||||
{
|
||||
urlaubskonto = new List<UrlaubskontoDarstellungDC>();
|
||||
urlaubskonto.Add(new UrlaubskontoDarstellungDC()
|
||||
{
|
||||
Erlaeuterung = "Es existiert kein Vertrag für ausgewähltes Jahr",
|
||||
});
|
||||
button_openLeaveDayDialogue.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
else
|
||||
button_openLeaveDayDialogue.Visibility = Visibility.Visible;
|
||||
|
||||
_GridLeaveDays.ItemsSource = urlaubskonto;
|
||||
}
|
||||
}
|
||||
|
||||
private void button_addLeaveDay_Click(object sender, RoutedEventArgs e)
|
||||
|
||||
@@ -13,11 +13,27 @@ namespace BeWo.View.Detail.Zeiterfassung
|
||||
{
|
||||
public partial class ServiceRecordCreationView
|
||||
{
|
||||
|
||||
private DateTime _StartDatum;
|
||||
private DateTime _EndDatum;
|
||||
|
||||
public DateTime StartDatum { get; set; }
|
||||
public DateTime StartDatum
|
||||
{
|
||||
get { return _StartDatum; }
|
||||
set
|
||||
{
|
||||
_StartDatum = value;
|
||||
UpdateSelectedArbeitszeitVm();
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime EndDatum { get; set; }
|
||||
public DateTime EndDatum {
|
||||
get { return _EndDatum; }
|
||||
set
|
||||
{
|
||||
_EndDatum = value;
|
||||
UpdateSelectedArbeitszeitVm();
|
||||
}
|
||||
}
|
||||
|
||||
public SupportConceptCostBearerRelDC SupportConceptCostBearerRel { get; set; }
|
||||
|
||||
@@ -44,7 +60,13 @@ namespace BeWo.View.Detail.Zeiterfassung
|
||||
|
||||
private void UpdateSelectedArbeitszeitVm()
|
||||
{
|
||||
SelectedArbeitszeitVM = ArbeitszeitListVM.VMList[0];
|
||||
foreach (var item in ArbeitszeitListVM.VMList)
|
||||
{
|
||||
if ((!item.GueltigVon.HasValue || item.GueltigVon <= EndDatum) && (!item.GueltigBis.HasValue || item.GueltigBis >= StartDatum))
|
||||
{
|
||||
SelectedArbeitszeitVM = item;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,8 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
textblock_link.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
//###CB SERIENBRIEF mainNavigationView.MailMergeButton.Visibility = Visibility.Collapsed;
|
||||
mainNavigationView.chkShowDeleted.Visibility = Visibility.Collapsed;
|
||||
//###CB SERIENBRIEF mainNavigationView.MailMergeButton.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||
|
||||
@@ -99,9 +99,13 @@
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" AllowNullInput="True" Grid.Column="1" Grid.Row="0" Margin="3" Width="125" Height="23" EditValue="{Binding Path=GueltigVon, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" AllowNullInput="True" Grid.Column="3" Grid.Row="0" Margin="3" Width="125" Height="23" EditValue="{Binding Path=GueltigBis, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
<Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Content="{markup:Translate Neuen Eintrag hinzufügen}" HorizontalAlignment="Left" Click="AddArbeitszeitToView_Click" Height="23" Margin="0,10,0,0" />
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5" Orientation="Horizontal">
|
||||
<Button Content="{markup:Translate Neuen Eintrag hinzufügen}" HorizontalAlignment="Left" Click="AddArbeitszeitToView_Click" Height="23" Margin="0,10,0,0" />
|
||||
<Button Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Content="{markup:Translate Gesamte Betreuungszeiten kopieren}" HorizontalAlignment="Left" Click="CopyArbeitszeit_Click" Height="23" Margin="10,10,0,0" />
|
||||
|
||||
<controls:PopupNonTopmost x:Name="popup_newArbeitszeitEintrag" Placement="MousePoint" StaysOpen="True">
|
||||
</StackPanel>
|
||||
|
||||
<controls:PopupNonTopmost x:Name="popup_newArbeitszeitEintrag" Placement="MousePoint" StaysOpen="True">
|
||||
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
|
||||
<GroupBox Name="groupbox_newArbeistzeit" Header="Neuen Eintrag hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
@@ -203,9 +207,10 @@
|
||||
</dxg:GridColumn.EditTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn Header="Bemerkungen" FieldName="Notice" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridColumn Header="" FieldName="Infos" AllowEditing="False" AllowSorting="False" Width="150"/>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView NavigationStyle="Cell" Margin="2,2,2,2" AllowBestFit="True" BestFitMode="AllRows" AutoWidth="True" ShowGroupPanel="False" ShowGroupedColumns="False" ShowTotalSummary="False" HorizontalContentAlignment="Left" ShowingEditor="GridViewBase_OnShowingEditor" />
|
||||
<dxg:TableView NavigationStyle="Cell" Margin="2,2,2,2" AllowBestFit="True" BestFitMode="AllRows" ShowGroupPanel="False" ShowGroupedColumns="False" ShowTotalSummary="False" HorizontalContentAlignment="Left" ShowingEditor="GridViewBase_OnShowingEditor" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</GroupBox>
|
||||
|
||||
@@ -11,6 +11,8 @@ using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using System;
|
||||
using BS.Shared.DataContracts;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BeWo.View
|
||||
{
|
||||
@@ -114,11 +116,11 @@ namespace BeWo.View
|
||||
|
||||
private void AddArbeitszeitToView_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var popup = tabcontrol_Arbeitszeit.GetAllChildren().OfType<PopupNonTopmost>();
|
||||
var popup = tabcontrol_Arbeitszeit.GetAllChildren().OfType<PopupNonTopmost>();
|
||||
|
||||
var popup_NewArbeitszeitEintrag = popup.First(x => x.Name.Equals("popup_newArbeitszeitEintrag"));
|
||||
var popup_NewArbeitszeitEintrag = popup.First(x => x.Name.Equals("popup_newArbeitszeitEintrag"));
|
||||
|
||||
popup_NewArbeitszeitEintrag.IsOpen = true;
|
||||
popup_NewArbeitszeitEintrag.IsOpen = true;
|
||||
}
|
||||
|
||||
private void PopupArbeitszeitClose_Click(object sender, RoutedEventArgs e)
|
||||
@@ -163,6 +165,33 @@ namespace BeWo.View
|
||||
grid_ArbeitszeitEintrag.RefreshData();
|
||||
}
|
||||
|
||||
private void CopyArbeitszeit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var arbeitszeit = tabcontrol_Arbeitszeit.SelectedItem as ArbeitszeitVM;
|
||||
|
||||
var dc = new ArbeitszeitDC();
|
||||
if (arbeitszeit.GueltigBis.HasValue)
|
||||
{
|
||||
dc.GueltigVon = arbeitszeit.GueltigBis.Value.AddDays(1);
|
||||
}
|
||||
dc.Eintraege = new List<ArbeitszeitEintragDC>();
|
||||
foreach (var ae in arbeitszeit.ArbeitszeitEintraege.VMList)
|
||||
{
|
||||
var copy = new ArbeitszeitEintragDC();
|
||||
copy.Tag = ae.Tag;
|
||||
copy.UhrzeitVon = ae.UhrzeitVon;
|
||||
copy.UhrzeitBis = ae.UhrzeitBis;
|
||||
copy.Notice = ae.Notice;
|
||||
copy.Employee = ae.Employee;
|
||||
dc.Eintraege.Add(copy);
|
||||
}
|
||||
|
||||
var copyVm = new ArbeitszeitVM(dc);
|
||||
ViewModel.VMList.Add(copyVm);
|
||||
|
||||
tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
|
||||
|
||||
}
|
||||
private void GridControl_OnCustomColumnSort(object sender, CustomColumnSortEventArgs e)
|
||||
{
|
||||
var comparer = new WochentagComparerClass();
|
||||
|
||||
@@ -2,6 +2,7 @@ using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BeWo.Validation;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using System;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
@@ -49,6 +50,7 @@ namespace BeWo.ViewModel
|
||||
_UhrzeitVon = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.UhrzeitVon, value), PropertyName_UhrzeitVon);
|
||||
FirePropertyChanged(PropertyName_UhrzeitVon);
|
||||
FirePropertyChanged("Infos");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,7 +66,7 @@ namespace BeWo.ViewModel
|
||||
{
|
||||
_UhrzeitBis = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.UhrzeitBis, value), PropertyName_UhrzeitBis);
|
||||
FirePropertyChanged(PropertyName_UhrzeitBis);
|
||||
FirePropertyChanged("Infos");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -101,6 +103,30 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public string Infos
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!string.IsNullOrEmpty(UhrzeitVon) && !string.IsNullOrEmpty(UhrzeitVon))
|
||||
{
|
||||
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, UhrzeitVon);
|
||||
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, UhrzeitBis);
|
||||
|
||||
DateTime date1;
|
||||
DateTime date2;
|
||||
|
||||
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
|
||||
{
|
||||
|
||||
return String.Format("Gesamtstunden: {0:0.00}", date2.Subtract(date1).TotalHours);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
public string Klient => _CompactCustomer?.FullName;
|
||||
|
||||
public CompactCustomerDC CompactCustomer
|
||||
|
||||
@@ -18,12 +18,6 @@ namespace BeWoDatabaseTerminator
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
private const string PubKeyX3 = "3082010A02820101009CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
|
||||
private const string PubKeyR3 = "3082010A0282010100BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
|
||||
private const string PubKeyE1 = "04245C2DA22AFD1C4BA65D97732731ACB2A06962EF65E8A6B0F0AC4B9FFF1C0B700FD3982F4DFC0F009B37F074055732972E05EF2A4325A3FB6E342713F64F7E69D302995EEB244792C1249BE6B1218FC12481FC68CC1F69BA58F51922F774C616";
|
||||
private const String PUB_KEY_R11 = "3082010A0282010100BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
|
||||
private const String PUB_KEY_R10 = "3082010A0282010100CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
|
||||
|
||||
private const string APIKEY = "CwjlSCbNqctEsofpGY64Z4aO6pShNYAdGtjMqHsjO64FuK23qoRDUqIjUC0P";
|
||||
|
||||
private static string _ConnectionStringServer;
|
||||
@@ -49,36 +43,57 @@ namespace BeWoDatabaseTerminator
|
||||
ServicePointManager.ServerCertificateValidationCallback = PinPublicKey;
|
||||
}
|
||||
|
||||
private const String PUB_KEY_X3 = "9CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
|
||||
|
||||
private const String PUB_KEY_R3 = "BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
|
||||
|
||||
private const String PUB_KEY_E1 = "245c2da22afd1c4ba65d97732731acb2a06962ef65e8a6b0f0ac4b9fff1c0b700fd3982f4dfc0f009b37f074055732972e05ef2a4325a3fb6e342713f64f7e69d302995eeb244792c1249be6b1218fc12481fc68cc1f69ba58f51922f774c616";
|
||||
|
||||
private const String PUB_KEY_E5 = "0d0b3a8a6b618eb6efdc5f58e7c6424554ab63f66661480a2e5975b481023750b73f1679dc98eca1289772201c2ccfd57c52204e54785b84146bc090ae85ecc051413c5a877f064dd4fe60d1fa6c2de17d951088a208540f991a4ce6ea0aacd8";
|
||||
|
||||
private const String PUB_KEY_E6 = "d9f19e4687f8217160a826eba3fab9eada1db912a7d426d95114b1617c7596bf220b391fd5bed10a46aa2d3c4a09842ebe409555e91940376675ed324e770449f8707bc318e7cef77110feac74d800d4ed6d1c731633109c3ab2ea6c62f4bdb8";
|
||||
|
||||
private const String PUB_KEY_R10 = "CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
|
||||
|
||||
private const String PUB_KEY_R11 = "BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
|
||||
|
||||
|
||||
private static bool PinPublicKey(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
|
||||
{
|
||||
try
|
||||
{
|
||||
if(certificate is null || chain is null)
|
||||
{
|
||||
if (certificate == null || chain == null)
|
||||
return false;
|
||||
}
|
||||
|
||||
var chainContainsPublicKey = false;
|
||||
bool chainContainsPk = false;
|
||||
|
||||
foreach(var element in chain.ChainElements)
|
||||
foreach (var element in chain.ChainElements)
|
||||
{
|
||||
var pk = element.Certificate.GetPublicKeyString();
|
||||
if((pk?.Equals(PubKeyX3) ?? false) || (pk?.Equals(PubKeyR3) ?? false) || (pk?.Equals(PubKeyE1) ?? false) || pk == PUB_KEY_R11 || pk == PUB_KEY_R10)
|
||||
String pk = element.Certificate.GetPublicKeyString().ToLower();
|
||||
|
||||
if (pk.Contains(PUB_KEY_X3.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R3.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E1.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E5.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_E6.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R10.ToLower()) ||
|
||||
pk.Contains(PUB_KEY_R11.ToLower()))
|
||||
{
|
||||
chainContainsPublicKey = true;
|
||||
chainContainsPk = true;
|
||||
}
|
||||
}
|
||||
|
||||
var subjectAccepted = certificate.Subject.Trim().ToLower().EndsWith(".bewoplaner.de") || certificate.Subject.Trim().ToLower().EndsWith(".ownchat.de");
|
||||
|
||||
return chainContainsPublicKey && subjectAccepted;
|
||||
bool subjectAccepted = certificate.Subject.Trim().ToLower().EndsWith(".bewoplaner.de") ||
|
||||
certificate.Subject.Trim().ToLower().EndsWith(".ownchat.de");
|
||||
return chainContainsPk && subjectAccepted;
|
||||
}
|
||||
catch(Exception)
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static async Task Main(string[] args)
|
||||
{
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
|
||||
@@ -17,6 +17,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportingService", "ReportS
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dakota", "Dakota\Dakota.csproj", "{47331732-DD96-4075-869F-83AA9F3F9937}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kundenprojekte", "Kundenprojekte", "{30DD24EE-2ED9-4E31-BCB5-AD995E8541BD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SynpraxReports", "ReportImp\SynpraxReports\SynpraxReports.csproj", "{FC9F4E38-977B-4877-9E05-D04068D3C807}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -66,10 +70,19 @@ Global
|
||||
{47331732-DD96-4075-869F-83AA9F3F9937}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{FC9F4E38-977B-4877-9E05-D04068D3C807} = {30DD24EE-2ED9-4E31-BCB5-AD995E8541BD}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {75267284-7070-4045-9FC8-0FC3C56C1AD3}
|
||||
EndGlobalSection
|
||||
|
||||
@@ -696,7 +696,7 @@
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>False</AutoAssignPort>
|
||||
<DevelopmentServerPort>8808</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
|
||||
@@ -24,5 +24,6 @@
|
||||
<property column="ChangeType" type="BS.Shared.StatementType, BS.Shared" name="ChangeType" />
|
||||
<property name="SupportConcept_CustomerOid" type="Int64" />
|
||||
<property name="SupportConcept_EmployeeOid" type="Int64" />
|
||||
<property name="SupportConceptOid" type="Int64" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -3,14 +3,14 @@
|
||||
<PropertyGroup>
|
||||
<NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile>
|
||||
<UseIISExpress>true</UseIISExpress>
|
||||
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
|
||||
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
|
||||
<Use64BitIISExpress>false</Use64BitIISExpress>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
<UseGlobalApplicationHostFile />
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
<ProjectView>ProjectFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
|
||||
@@ -102,6 +102,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.Title = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
@@ -120,7 +121,6 @@ namespace BeWo.Report.DefaultReports
|
||||
this.fieldIstArbeitszeit = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldUeberstundenGesamt = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldTatsSoll = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
@@ -808,7 +808,7 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell51.StylePriority.UseFont = false;
|
||||
this.xrTableCell51.StylePriority.UsePadding = false;
|
||||
this.xrTableCell51.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell51.Text = "davon ausbezahlt:";
|
||||
this.xrTableCell51.Text = "Anpassung Überstunden:";
|
||||
this.xrTableCell51.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell51.Weight = 0.22133303497678214D;
|
||||
//
|
||||
@@ -891,6 +891,10 @@ namespace BeWo.Report.DefaultReports
|
||||
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell26.Weight = 0.11143081848591821D;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
//
|
||||
// Title
|
||||
//
|
||||
this.Title.BackColor = System.Drawing.Color.White;
|
||||
@@ -1027,10 +1031,6 @@ namespace BeWo.Report.DefaultReports
|
||||
this.fieldTatsSoll.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
|
||||
this.fieldTatsSoll.Name = "fieldTatsSoll";
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
//
|
||||
// Mitarbeiterarbeitszeitkonto
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
|
||||
@@ -1719,7 +1719,7 @@ namespace BeWo.Report.ReportObjects
|
||||
{
|
||||
if (dd.Feiertag != null)
|
||||
{
|
||||
dd.MinutesTotal = dd.SollStunden * 60;
|
||||
dd.MinutesTotal = dd.SollStunden * 60 * GetFeiertagsFaktor(dd.Date);
|
||||
TimeSpan tspan = TimeSpan.FromMinutes((double)dd.MinutesTotal);
|
||||
dd.TimeTotal = String.Format("{0:00}:{1:00}", tspan.Hours, tspan.Minutes);
|
||||
}
|
||||
|
||||
@@ -578,17 +578,18 @@ where scap2e.EmployeeOid = {0} and scap.Start <= '{1:yyyy-MM-dd}' and scap.EndDa
|
||||
|
||||
foreach (AbsenceTime at in c.AbsenceTimes.OrderBy(a => a.Start))
|
||||
{
|
||||
if (at.AbsenceReason.Description.Contains("<24h") || at.AbsenceReason.Description.Contains(">24h") || at.AbsenceReason.Description.StartsWith("S_Abwesenheit nicht abrechenbar") || at.AbsenceReason.Description.StartsWith("S_JA"))
|
||||
if (at.AbsenceReason.Description.Contains("<24h") || at.AbsenceReason.Description.Contains(">24h") || at.AbsenceReason.Description.Contains("Abwesenheit nicht abrechenbar") || at.AbsenceReason.Description.StartsWith("S_JA") ||
|
||||
at.AbsenceReason.Description.StartsWith("SozA") || at.AbsenceReason.Description.StartsWith("S_Abwesenheit nicht abrechenbar") || at.AbsenceReason.Description.StartsWith("JugA"))
|
||||
{
|
||||
if (at.Start >= startSchuljahr && at.Start <= endeSchuljahr && (at.End == null || at.End >= startSchuljahr))
|
||||
{
|
||||
var maxAnzahlIntern = maxAnzahl;
|
||||
|
||||
if (at.AbsenceReason.Description.Contains("<24h_SA"))
|
||||
if (at.AbsenceReason.Description.Contains("<24h_SA") || at.AbsenceReason.Description.Contains("unter 24"))
|
||||
{
|
||||
maxAnzahlIntern = Int32.MaxValue; // Dürfen immer abgerechnet werden
|
||||
}
|
||||
else if ((at.AbsenceReason.Description.Contains(">24h") && istJugendamt) || at.AbsenceReason.Description.StartsWith("S_Abwesenheit nicht abrechenbar"))
|
||||
else if ((at.AbsenceReason.Description.Contains(">24h") && istJugendamt) || at.AbsenceReason.Description.Contains("Abwesenheit nicht abrechenbar"))
|
||||
{
|
||||
maxAnzahlIntern = 0; // Darf beim Jugendamt nie abgerechnet werden
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@ namespace BeWo.AssistenzaReports
|
||||
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
|
||||
this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand();
|
||||
this.Detail2 = new DevExpress.XtraReports.UI.DetailBand();
|
||||
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblAufteilungLeistungen = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -83,9 +85,7 @@ namespace BeWo.AssistenzaReports
|
||||
this.fieldGroupFLS = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
|
||||
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
|
||||
this.lblAufteilungLeistungen = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
|
||||
@@ -151,14 +151,14 @@ namespace BeWo.AssistenzaReports
|
||||
this.xrLabel13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.TotalFLM", "{0:0.##}")});
|
||||
this.xrLabel13.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(110F, 58F);
|
||||
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(160F, 57.99999F);
|
||||
this.xrLabel13.Name = "xrLabel13";
|
||||
this.xrLabel13.SizeF = new System.Drawing.SizeF(50F, 25F);
|
||||
this.xrLabel13.StylePriority.UseFont = false;
|
||||
this.xrLabel13.StylePriority.UsePadding = false;
|
||||
this.xrLabel13.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel13.Text = "xrLabel13";
|
||||
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel12
|
||||
//
|
||||
@@ -175,7 +175,7 @@ namespace BeWo.AssistenzaReports
|
||||
this.xrLabel11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.fieldGroupFLS", "{0:0.00} FLS")});
|
||||
this.xrLabel11.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(230F, 58F);
|
||||
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(280F, 57.99999F);
|
||||
this.xrLabel11.Name = "xrLabel11";
|
||||
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel11.SizeF = new System.Drawing.SizeF(203F, 25F);
|
||||
@@ -185,7 +185,7 @@ namespace BeWo.AssistenzaReports
|
||||
// xrLabel10
|
||||
//
|
||||
this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(160F, 58F);
|
||||
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(210F, 57.99999F);
|
||||
this.xrLabel10.Name = "xrLabel10";
|
||||
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel10.SizeF = new System.Drawing.SizeF(70F, 25F);
|
||||
@@ -230,12 +230,38 @@ namespace BeWo.AssistenzaReports
|
||||
this.Detail2.KeepTogetherWithDetailReports = true;
|
||||
this.Detail2.Name = "Detail2";
|
||||
//
|
||||
// xrLabel14
|
||||
//
|
||||
this.xrLabel14.CanShrink = true;
|
||||
this.xrLabel14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.CustomValue2")});
|
||||
this.xrLabel14.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(160F, 75F);
|
||||
this.xrLabel14.Multiline = true;
|
||||
this.xrLabel14.Name = "xrLabel14";
|
||||
this.xrLabel14.SizeF = new System.Drawing.SizeF(160F, 25F);
|
||||
this.xrLabel14.StylePriority.UseFont = false;
|
||||
this.xrLabel14.StylePriority.UsePadding = false;
|
||||
//
|
||||
// lblAufteilungLeistungen
|
||||
//
|
||||
this.lblAufteilungLeistungen.CanShrink = true;
|
||||
this.lblAufteilungLeistungen.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.CustomValue1")});
|
||||
this.lblAufteilungLeistungen.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.lblAufteilungLeistungen.LocationFloat = new DevExpress.Utils.PointFloat(0F, 75F);
|
||||
this.lblAufteilungLeistungen.Multiline = true;
|
||||
this.lblAufteilungLeistungen.Name = "lblAufteilungLeistungen";
|
||||
this.lblAufteilungLeistungen.SizeF = new System.Drawing.SizeF(160F, 25F);
|
||||
this.lblAufteilungLeistungen.StylePriority.UseFont = false;
|
||||
this.lblAufteilungLeistungen.StylePriority.UsePadding = false;
|
||||
//
|
||||
// xrLabel8
|
||||
//
|
||||
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.fieldFLS", "{0:0.00} FLS")});
|
||||
this.xrLabel8.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(230F, 50F);
|
||||
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(280F, 50F);
|
||||
this.xrLabel8.Name = "xrLabel8";
|
||||
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel8.SizeF = new System.Drawing.SizeF(203F, 25F);
|
||||
@@ -245,7 +271,7 @@ namespace BeWo.AssistenzaReports
|
||||
// xrLabel9
|
||||
//
|
||||
this.xrLabel9.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(160F, 50F);
|
||||
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(210F, 50F);
|
||||
this.xrLabel9.Name = "xrLabel9";
|
||||
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel9.SizeF = new System.Drawing.SizeF(70F, 25F);
|
||||
@@ -259,14 +285,14 @@ namespace BeWo.AssistenzaReports
|
||||
this.xrLabel6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.TotalFLM", "{0:0.##}")});
|
||||
this.xrLabel6.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(110F, 50F);
|
||||
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(160F, 50F);
|
||||
this.xrLabel6.Name = "xrLabel6";
|
||||
this.xrLabel6.SizeF = new System.Drawing.SizeF(50F, 25F);
|
||||
this.xrLabel6.StylePriority.UseFont = false;
|
||||
this.xrLabel6.StylePriority.UsePadding = false;
|
||||
this.xrLabel6.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel6.Text = "xrLabel6";
|
||||
this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
@@ -553,7 +579,7 @@ namespace BeWo.AssistenzaReports
|
||||
// xrPageInfo1
|
||||
//
|
||||
this.xrPageInfo1.Font = new DevExpress.Drawing.DXFont("Arial", 8F);
|
||||
this.xrPageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(7.999929F, 25F);
|
||||
this.xrPageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F);
|
||||
this.xrPageInfo1.Name = "xrPageInfo1";
|
||||
this.xrPageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime;
|
||||
this.xrPageInfo1.SizeF = new System.Drawing.SizeF(439.7083F, 23F);
|
||||
@@ -624,36 +650,10 @@ namespace BeWo.AssistenzaReports
|
||||
this.bottomMarginBand1.HeightF = 50F;
|
||||
this.bottomMarginBand1.Name = "bottomMarginBand1";
|
||||
//
|
||||
// lblAufteilungLeistungen
|
||||
//
|
||||
this.lblAufteilungLeistungen.CanShrink = true;
|
||||
this.lblAufteilungLeistungen.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.CustomValue1")});
|
||||
this.lblAufteilungLeistungen.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.lblAufteilungLeistungen.LocationFloat = new DevExpress.Utils.PointFloat(0F, 75F);
|
||||
this.lblAufteilungLeistungen.Multiline = true;
|
||||
this.lblAufteilungLeistungen.Name = "lblAufteilungLeistungen";
|
||||
this.lblAufteilungLeistungen.SizeF = new System.Drawing.SizeF(160F, 25F);
|
||||
this.lblAufteilungLeistungen.StylePriority.UseFont = false;
|
||||
this.lblAufteilungLeistungen.StylePriority.UsePadding = false;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSReportRO);
|
||||
//
|
||||
// xrLabel14
|
||||
//
|
||||
this.xrLabel14.CanShrink = true;
|
||||
this.xrLabel14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FLSReportGroups.FLSReportDetails.CustomValue2")});
|
||||
this.xrLabel14.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
|
||||
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(160F, 75F);
|
||||
this.xrLabel14.Multiline = true;
|
||||
this.xrLabel14.Name = "xrLabel14";
|
||||
this.xrLabel14.SizeF = new System.Drawing.SizeF(160F, 25F);
|
||||
this.xrLabel14.StylePriority.UseFont = false;
|
||||
this.xrLabel14.StylePriority.UsePadding = false;
|
||||
//
|
||||
// FLSAuswertung
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace BeWo.AssistenzaReports
|
||||
{
|
||||
foreach (var group in pRO.FLSReportGroups)
|
||||
{
|
||||
Dictionary<string, decimal> leistungenZuMinuten = new Dictionary<string, decimal>();
|
||||
|
||||
FLSReportRO.FLSReportDetail sonstigesAlt = null;
|
||||
FLSReportRO.FLSReportDetail fahrzeiten = null;
|
||||
@@ -29,6 +28,8 @@ namespace BeWo.AssistenzaReports
|
||||
{
|
||||
foreach (var detail in group.FLSReportDetails)
|
||||
{
|
||||
Dictionary<string, decimal> leistungenZuMinuten = new Dictionary<string, decimal>();
|
||||
|
||||
if (detail.ServiceRecords != null)
|
||||
{
|
||||
foreach (var sr in detail.ServiceRecords)
|
||||
@@ -44,6 +45,7 @@ namespace BeWo.AssistenzaReports
|
||||
{
|
||||
// Hier DictValues rein
|
||||
detail.CustomValue1 = "";
|
||||
detail.CustomValue2 = "";
|
||||
|
||||
foreach (var item in leistungenZuMinuten)
|
||||
{
|
||||
|
||||
36
ReportImp/BetreuwoWesel/RechnungFud.Designer.cs
generated
36
ReportImp/BetreuwoWesel/RechnungFud.Designer.cs
generated
@@ -32,6 +32,7 @@ namespace BetreuWoWesel
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RechnungFud));
|
||||
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
|
||||
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
|
||||
this.lblGpNummer = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblGebAz = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -85,7 +86,6 @@ namespace BetreuWoWesel
|
||||
this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
|
||||
@@ -105,7 +105,7 @@ namespace BetreuWoWesel
|
||||
// ReportHeader
|
||||
//
|
||||
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel4,
|
||||
this.lblGpNummer,
|
||||
this.xrLabel7,
|
||||
this.lblGebAz,
|
||||
this.xrLabel1,
|
||||
@@ -121,6 +121,21 @@ namespace BetreuWoWesel
|
||||
this.ReportHeader.Name = "ReportHeader";
|
||||
this.ReportHeader.StylePriority.UseFont = false;
|
||||
//
|
||||
// lblGpNummer
|
||||
//
|
||||
this.lblGpNummer.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblGpNummer.CanShrink = true;
|
||||
this.lblGpNummer.LocationFloat = new DevExpress.Utils.PointFloat(419.795F, 365.2083F);
|
||||
this.lblGpNummer.Name = "lblGpNummer";
|
||||
this.lblGpNummer.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblGpNummer.SizeF = new System.Drawing.SizeF(255.2083F, 20F);
|
||||
this.lblGpNummer.StylePriority.UseBackColor = false;
|
||||
this.lblGpNummer.StylePriority.UseFont = false;
|
||||
this.lblGpNummer.StylePriority.UseTextAlignment = false;
|
||||
this.lblGpNummer.Text = "Geschäftsnummer: 2000256442";
|
||||
this.lblGpNummer.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.lblGpNummer.WordWrap = false;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.BackColor = System.Drawing.Color.Transparent;
|
||||
@@ -727,21 +742,6 @@ namespace BetreuWoWesel
|
||||
"egebene Konto. Vielen Dank für Ihr Vertrauen";
|
||||
this.xrLabel22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
|
||||
//
|
||||
// xrLabel4
|
||||
//
|
||||
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel4.CanShrink = true;
|
||||
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(419.795F, 365.2083F);
|
||||
this.xrLabel4.Name = "xrLabel4";
|
||||
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel4.SizeF = new System.Drawing.SizeF(255.2083F, 20F);
|
||||
this.xrLabel4.StylePriority.UseBackColor = false;
|
||||
this.xrLabel4.StylePriority.UseFont = false;
|
||||
this.xrLabel4.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel4.Text = "Geschäftsnummer: 2000256442";
|
||||
this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrLabel4.WordWrap = false;
|
||||
//
|
||||
// RechnungFud
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -828,6 +828,6 @@ namespace BetreuWoWesel
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel22;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
|
||||
private DevExpress.XtraReports.UI.XRRichText xrRichText5;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblGpNummer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
using System;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
@@ -28,19 +25,19 @@ namespace BetreuWoWesel
|
||||
pRO.RecipientOrganisation = pRO.RecipientOrganisation.Replace(" ALS", "").Trim();
|
||||
|
||||
lblGebAz.Text = lblGebAz.Text.Replace("Vers.-Nr.:", "AZ:");
|
||||
}
|
||||
|
||||
if (!pRO.RecipientOrganisation.ToLower().Contains("lvr"))
|
||||
{
|
||||
lblGpNummer.Visible = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!String.IsNullOrEmpty(pRO.CustomerSalutation) && pRO.CustomerSalutation.ToLower() == "herr")
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty(pRO.CustomerSalutation) && pRO.CustomerSalutation.ToLower() == "herr")
|
||||
pRO.CustomerSalutation = "Herrn";
|
||||
|
||||
|
||||
this.bindingSource1.DataSource = pRO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
40
ReportImp/BetreuwoWesel/SettlementReport.Designer.cs
generated
40
ReportImp/BetreuwoWesel/SettlementReport.Designer.cs
generated
@@ -34,6 +34,7 @@ namespace BetreuWoWesel.Alt
|
||||
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.lblGpNummer = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
@@ -104,7 +105,6 @@ namespace BetreuWoWesel.Alt
|
||||
this.xrRichText5 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.xrRichText4 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
|
||||
@@ -125,7 +125,7 @@ namespace BetreuWoWesel.Alt
|
||||
// ReportHeader
|
||||
//
|
||||
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel1,
|
||||
this.lblGpNummer,
|
||||
this.xrLabel8,
|
||||
this.xrRichText1,
|
||||
this.xrLabel9,
|
||||
@@ -141,6 +141,23 @@ namespace BetreuWoWesel.Alt
|
||||
this.ReportHeader.Name = "ReportHeader";
|
||||
this.ReportHeader.StylePriority.UseFont = false;
|
||||
//
|
||||
// lblGpNummer
|
||||
//
|
||||
this.lblGpNummer.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblGpNummer.CanShrink = true;
|
||||
this.lblGpNummer.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.lblGpNummer.LocationFloat = new DevExpress.Utils.PointFloat(460.42F, 289.9167F);
|
||||
this.lblGpNummer.Multiline = true;
|
||||
this.lblGpNummer.Name = "lblGpNummer";
|
||||
this.lblGpNummer.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblGpNummer.SizeF = new System.Drawing.SizeF(214.5836F, 17F);
|
||||
this.lblGpNummer.StylePriority.UseBackColor = false;
|
||||
this.lblGpNummer.StylePriority.UseFont = false;
|
||||
this.lblGpNummer.StylePriority.UseTextAlignment = false;
|
||||
this.lblGpNummer.Text = "Geschäftsnummer: 2000256442";
|
||||
this.lblGpNummer.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.lblGpNummer.WordWrap = false;
|
||||
//
|
||||
// xrLabel8
|
||||
//
|
||||
this.xrLabel8.CanShrink = true;
|
||||
@@ -893,23 +910,6 @@ namespace BetreuWoWesel.Alt
|
||||
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(139.1942F, 65.97227F);
|
||||
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
|
||||
//
|
||||
// xrLabel1
|
||||
//
|
||||
this.xrLabel1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel1.CanShrink = true;
|
||||
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(460.42F, 289.9167F);
|
||||
this.xrLabel1.Multiline = true;
|
||||
this.xrLabel1.Name = "xrLabel1";
|
||||
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel1.SizeF = new System.Drawing.SizeF(214.5836F, 17F);
|
||||
this.xrLabel1.StylePriority.UseBackColor = false;
|
||||
this.xrLabel1.StylePriority.UseFont = false;
|
||||
this.xrLabel1.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel1.Text = "Geschäftsnummer: 2000256442";
|
||||
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrLabel1.WordWrap = false;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO);
|
||||
@@ -1021,6 +1021,6 @@ namespace BetreuWoWesel.Alt
|
||||
private DevExpress.XtraReports.UI.XRRichText xrRichText4;
|
||||
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
|
||||
private DevExpress.XtraReports.UI.XRRichText xrRichText5;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblGpNummer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,12 @@ namespace BetreuWoWesel.Alt
|
||||
|
||||
public void SetReportDataSource(SettlementRO pRO)
|
||||
{
|
||||
string orga = pRO.RecipientOrganisation;
|
||||
if (pRO.RecipientOrganisation != null && !pRO.RecipientOrganisation.ToLower().Contains("lvr"))
|
||||
{
|
||||
lblGpNummer.Visible = false;
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty(pRO.CustomerBirthdayString))
|
||||
{
|
||||
xrLabel3.Text += ", geb. " + pRO.CustomerBirthdayString;
|
||||
|
||||
@@ -71,6 +71,7 @@ namespace BetreuWoWesel
|
||||
this.xrRichText4 = new DevExpress.XtraReports.UI.XRRichText();
|
||||
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
|
||||
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
|
||||
this.lblGpNummer = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow9 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
@@ -121,7 +122,6 @@ namespace BetreuWoWesel
|
||||
this.xrTableRow37 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell59 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell60 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).BeginInit();
|
||||
@@ -502,7 +502,7 @@ namespace BetreuWoWesel
|
||||
// GroupHeader1
|
||||
//
|
||||
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
this.xrLabel7,
|
||||
this.lblGpNummer,
|
||||
this.xrTable1,
|
||||
this.xrRichText1,
|
||||
this.xrLabel9,
|
||||
@@ -522,6 +522,23 @@ namespace BetreuWoWesel
|
||||
this.GroupHeader1.Name = "GroupHeader1";
|
||||
this.GroupHeader1.StylePriority.UseFont = false;
|
||||
//
|
||||
// lblGpNummer
|
||||
//
|
||||
this.lblGpNummer.BackColor = System.Drawing.Color.Transparent;
|
||||
this.lblGpNummer.CanShrink = true;
|
||||
this.lblGpNummer.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.lblGpNummer.LocationFloat = new DevExpress.Utils.PointFloat(460.42F, 268.5F);
|
||||
this.lblGpNummer.Multiline = true;
|
||||
this.lblGpNummer.Name = "lblGpNummer";
|
||||
this.lblGpNummer.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblGpNummer.SizeF = new System.Drawing.SizeF(214.5836F, 17F);
|
||||
this.lblGpNummer.StylePriority.UseBackColor = false;
|
||||
this.lblGpNummer.StylePriority.UseFont = false;
|
||||
this.lblGpNummer.StylePriority.UseTextAlignment = false;
|
||||
this.lblGpNummer.Text = "Geschäftsnummer: 2000256442";
|
||||
this.lblGpNummer.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.lblGpNummer.WordWrap = false;
|
||||
//
|
||||
// xrTable1
|
||||
//
|
||||
this.xrTable1.BorderColor = System.Drawing.SystemColors.ControlLight;
|
||||
@@ -1078,23 +1095,6 @@ namespace BetreuWoWesel
|
||||
this.xrTableCell60.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrTableCell60.Weight = 0.2553230872521034D;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
this.xrLabel7.BackColor = System.Drawing.Color.Transparent;
|
||||
this.xrLabel7.CanShrink = true;
|
||||
this.xrLabel7.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
|
||||
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(460.42F, 268.5F);
|
||||
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(214.5836F, 17F);
|
||||
this.xrLabel7.StylePriority.UseBackColor = false;
|
||||
this.xrLabel7.StylePriority.UseFont = false;
|
||||
this.xrLabel7.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel7.Text = "Geschäftsnummer: 2000256442";
|
||||
this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.xrLabel7.WordWrap = false;
|
||||
//
|
||||
// Spitzabrechnung
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -1220,6 +1220,6 @@ namespace BetreuWoWesel
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
|
||||
private DevExpress.XtraReports.UI.XRTableRow xrTableRow24;
|
||||
private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblGpNummer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,11 @@ namespace BetreuWoWesel
|
||||
|
||||
public void SetReportDataSource(Settlement2RO pRO)
|
||||
{
|
||||
if (pRO.RecipientOrganisation != null && !pRO.RecipientOrganisation.ToLower().Contains("lvr"))
|
||||
{
|
||||
lblGpNummer.Visible = false;
|
||||
}
|
||||
|
||||
if (pRO.CustomerBirthday != null)
|
||||
{
|
||||
xrLabel3.Text += String.Format(", geb. {0:dd.MM.yyyy}", pRO.CustomerBirthday);
|
||||
|
||||
@@ -57,6 +57,19 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="CustomMitarbeiterstundenkontoBerechnung.cs" />
|
||||
<Compile Include="CustomMitarbeiterstundenkontoBerechnungMonate.cs" />
|
||||
<Compile Include="CustomReportCreator.cs" />
|
||||
<Compile Include="LeistungsnachweisAnlage5.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LeistungsnachweisAnlage5.Designer.cs">
|
||||
<DependentUpon>LeistungsnachweisAnlage5.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LeistungsnachweisAnlage4.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LeistungsnachweisAnlage4.Designer.cs">
|
||||
<DependentUpon>LeistungsnachweisAnlage4.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Mitarbeiterarbeitszeitkonto.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
@@ -104,6 +117,12 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="LeistungsnachweisAnlage5.resx">
|
||||
<DependentUpon>LeistungsnachweisAnlage5.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="LeistungsnachweisAnlage4.resx">
|
||||
<DependentUpon>LeistungsnachweisAnlage4.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Mitarbeiterarbeitszeitkonto.resx">
|
||||
<DependentUpon>Mitarbeiterarbeitszeitkonto.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@@ -115,6 +134,7 @@
|
||||
<DependentUpon>MitarbeiterstundenkontoJahr.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Teamstundenkonto.resx">
|
||||
<DependentUpon>Teamstundenkonto.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
161
ReportImp/CaritasverbandKelheim/CustomReportCreator.cs
Normal file
161
ReportImp/CaritasverbandKelheim/CustomReportCreator.cs
Normal file
@@ -0,0 +1,161 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace CaritasverbandKelheim
|
||||
{
|
||||
public class CustomReportCreator : DefaultReportCreator
|
||||
{
|
||||
public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay)
|
||||
{
|
||||
List<ServicesOverviewRO> lROs = ServicesOverviewRO.Create(month, year, orgaOid, empOid, startDay, endDay, serviceCategoryOid, false);
|
||||
|
||||
if (lROs.Count > 0)
|
||||
{
|
||||
var rootReport = CreateServicesOverviewReportForRo(lROs[0], serviceCategoryOid);
|
||||
if (rootReport.Pages.Count == 0)
|
||||
{
|
||||
rootReport.CreateDocument();
|
||||
}
|
||||
|
||||
for (int i = 1; i < lROs.Count; i++)
|
||||
{
|
||||
var lNext = CreateServicesOverviewReportForRo(lROs[i], serviceCategoryOid);
|
||||
if (lNext.Pages.Count == 0)
|
||||
{
|
||||
lNext.CreateDocument();
|
||||
}
|
||||
|
||||
rootReport.Pages.AddRange(lNext.Pages);
|
||||
}
|
||||
|
||||
return rootReport;
|
||||
}
|
||||
return new XtraReport();
|
||||
}
|
||||
|
||||
|
||||
public override XtraReport CreateServiceOverviewSingleCustomerReport(long customerOid, int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay)
|
||||
{
|
||||
var ro = ServicesOverviewRO.Create(customerOid, month, year, false, orgaOid, empOid, startDay, endDay, serviceCategoryOid);
|
||||
|
||||
return CreateServicesOverviewReportForRo(ro, serviceCategoryOid);
|
||||
}
|
||||
|
||||
public override XtraReport CreateServiceOverviewReportForCustomers(IList<long> customerOids, int month, int year, long? orgaOid, long? empOid, long? serviceCategoryOid, int startDay, int endDay, bool nurFehlende)
|
||||
{
|
||||
var roList = new List<ServicesOverviewRO>();
|
||||
|
||||
foreach (var coid in customerOids)
|
||||
{
|
||||
var ro = ServicesOverviewRO.Create(coid, month, year, true, orgaOid ?? 0, empOid ?? 0, startDay, endDay, serviceCategoryOid);
|
||||
if (ro != null)
|
||||
{
|
||||
roList.Add(ro);
|
||||
}
|
||||
}
|
||||
|
||||
if (roList.Count > 0)
|
||||
{
|
||||
var rootReport = CreateServicesOverviewReportForRo(roList[0], serviceCategoryOid);
|
||||
rootReport.CreateDocument();
|
||||
for (int i = 1; i < roList.Count; i++)
|
||||
{
|
||||
var lNext = CreateServicesOverviewReportForRo(roList[i], serviceCategoryOid);
|
||||
lNext.CreateDocument();
|
||||
rootReport.Pages.AddRange(lNext.Pages);
|
||||
}
|
||||
|
||||
return rootReport;
|
||||
}
|
||||
|
||||
return new XtraReport();
|
||||
}
|
||||
|
||||
private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
|
||||
{
|
||||
if (ro.Services != null && ro.Services.Count > 0)
|
||||
{
|
||||
var employeeDict = new Dictionary<long?, bool>();
|
||||
var employeeDCs = MapperFactory.EmployeeDC_Employee.MapToNewDCs(DAOFactory.GenericDAO.GetActiveByIDs<Employee>(ro.Services.Select(s => s.EmployeeOid).Distinct().ToList()));
|
||||
foreach (var emp in employeeDCs)
|
||||
employeeDict.Add(emp.EmployeeOid, emp.IsQualified.HasValue ? emp.IsQualified.Value : false);
|
||||
|
||||
foreach (ServicesOverviewRO.ServiceDetail s in ro.Services)
|
||||
{
|
||||
ServicesOverviewRO.CreateSignatureString(s);
|
||||
|
||||
// Notice 2 Einzeltermin FK
|
||||
// Notice 3 Einzeltermin HK
|
||||
// Notice 4 Gruppentermin FK
|
||||
// Notice 5 Gruppentermin HK
|
||||
|
||||
bool qualified = employeeDict[s.EmployeeOid];
|
||||
|
||||
if (!s.IsGroup)
|
||||
{
|
||||
if (qualified)
|
||||
s.Notice2 = string.Format("{0:0.00}", s.Minutes / 60);
|
||||
else
|
||||
s.Notice3 = string.Format("{0:0.00}", s.Minutes / 60);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (qualified)
|
||||
s.Notice4 = string.Format("{0:0.00}", s.Minutes / 60);
|
||||
else
|
||||
s.Notice5 = string.Format("{0:0.00}", s.Minutes / 60);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XtraReport report = null;
|
||||
report = AddReportToReport<LeistungsnachweisAnlage4>(report, ro);
|
||||
report = AddReportToReport<LeistungsnachweisAnlage5>(report, ro);
|
||||
|
||||
if (report == null)
|
||||
report = new XtraReport();
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, string reportId)
|
||||
{
|
||||
return CreateServicesOverviewReportForRo(ro, null);
|
||||
}
|
||||
|
||||
private XtraReport AddReportToReport<T>(XtraReport report, ServicesOverviewRO ro) where T : XtraReport, IBeWoReport<ServicesOverviewRO>, new()
|
||||
{
|
||||
if (ro.Services.Count > 0)
|
||||
{
|
||||
if (report == null)
|
||||
{
|
||||
report = new T();
|
||||
((T)report).SetReportDataSource(ro);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (report.Pages.Count == 0)
|
||||
{
|
||||
report.CreateDocument();
|
||||
}
|
||||
|
||||
XtraReport newReport = new T();
|
||||
((T)newReport).SetReportDataSource(ro);
|
||||
|
||||
newReport.CreateDocument();
|
||||
report.Pages.AddRange(newReport.Pages);
|
||||
}
|
||||
}
|
||||
return report;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
1347
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.Designer.cs
generated
Normal file
1347
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
96
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.cs
Normal file
96
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace CaritasverbandKelheim
|
||||
{
|
||||
public partial class LeistungsnachweisAnlage4 : XtraReport, IBeWoReport<ServicesOverviewRO>
|
||||
{
|
||||
public LeistungsnachweisAnlage4()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetReportDataSource(ServicesOverviewRO pRO)
|
||||
{
|
||||
|
||||
// Get calling method name
|
||||
//StackTrace stackTrace = new StackTrace();
|
||||
//Debug.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
|
||||
|
||||
bool hatGruppen = false;
|
||||
|
||||
|
||||
|
||||
//if (pRO == null)
|
||||
// return;
|
||||
|
||||
if (pRO.Services != null)
|
||||
{
|
||||
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
|
||||
|
||||
decimal gesamtEinzelFK = 0;
|
||||
decimal gesamtEinzelHK = 0;
|
||||
decimal gesamtGruppeFK = 0;
|
||||
decimal gesamtGruppeHK = 0;
|
||||
|
||||
foreach (var sd in pRO.Services)
|
||||
{
|
||||
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
|
||||
{
|
||||
if (!sd.Notice2.IsNullOrEmpty())
|
||||
gesamtEinzelFK += Convert.ToDecimal(sd.Notice2);
|
||||
if (!sd.Notice3.IsNullOrEmpty())
|
||||
gesamtEinzelHK += Convert.ToDecimal(sd.Notice3);
|
||||
if (!sd.Notice4.IsNullOrEmpty())
|
||||
gesamtGruppeFK += Convert.ToDecimal(sd.Notice4);
|
||||
if (!sd.Notice5.IsNullOrEmpty())
|
||||
gesamtGruppeHK += Convert.ToDecimal(sd.Notice5);
|
||||
|
||||
servicesBillable.Add(sd);
|
||||
}
|
||||
}
|
||||
|
||||
lblEinzelFK.Text = string.Format("{0:0.00}", gesamtEinzelFK);
|
||||
lblEinzelHK.Text = string.Format("{0:0.00}", gesamtEinzelHK);
|
||||
lblGruppeFK.Text = string.Format("{0:0.00}", gesamtGruppeFK);
|
||||
lblGruppeHK.Text = string.Format("{0:0.00}", gesamtGruppeHK);
|
||||
}
|
||||
|
||||
bindingSource1.DataSource = pRO;
|
||||
}
|
||||
private void picSignature_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
XRPictureBox xrBox = sender as XRPictureBox;
|
||||
//var test = this.GetCurrent
|
||||
string base64String = xrBox.Tag as string;
|
||||
if (!String.IsNullOrWhiteSpace(base64String))
|
||||
{
|
||||
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
|
||||
var binData = Convert.FromBase64String(base64Data);
|
||||
Image img = ByteArrayToImage(binData);
|
||||
xrBox.Image = Utils.CropImage(img);
|
||||
}
|
||||
else
|
||||
{
|
||||
xrBox.Image = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Image ByteArrayToImage(byte[] byteArrayIn)
|
||||
{
|
||||
using(var memoryStream = new MemoryStream(byteArrayIn))
|
||||
{
|
||||
return Image.FromStream(memoryStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.resx
Normal file
120
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage4.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
1131
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.Designer.cs
generated
Normal file
1131
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
100
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.cs
Normal file
100
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace CaritasverbandKelheim
|
||||
{
|
||||
public partial class LeistungsnachweisAnlage5 : XtraReport, IBeWoReport<ServicesOverviewRO>
|
||||
{
|
||||
public LeistungsnachweisAnlage5()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetReportDataSource(ServicesOverviewRO pRO)
|
||||
{
|
||||
|
||||
// Get calling method name
|
||||
//StackTrace stackTrace = new StackTrace();
|
||||
//Debug.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
|
||||
|
||||
bool hatGruppen = false;
|
||||
|
||||
|
||||
|
||||
//if (pRO == null)
|
||||
// return;
|
||||
|
||||
if (pRO.Services != null)
|
||||
{
|
||||
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
|
||||
|
||||
var empOids = pRO.Services.Select(s => s.EmployeeOid);
|
||||
|
||||
decimal gesamtEinzelFK = 0;
|
||||
decimal gesamtEinzelHK = 0;
|
||||
decimal gesamtGruppeFK = 0;
|
||||
decimal gesamtGruppeHK = 0;
|
||||
|
||||
foreach (var sd in pRO.Services)
|
||||
{
|
||||
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
|
||||
{
|
||||
if (!sd.Notice2.IsNullOrEmpty())
|
||||
gesamtEinzelFK += Convert.ToDecimal(sd.Notice2);
|
||||
if (!sd.Notice3.IsNullOrEmpty())
|
||||
gesamtEinzelHK += Convert.ToDecimal(sd.Notice3);
|
||||
if (!sd.Notice4.IsNullOrEmpty())
|
||||
gesamtGruppeFK += Convert.ToDecimal(sd.Notice4);
|
||||
if (!sd.Notice5.IsNullOrEmpty())
|
||||
gesamtGruppeHK += Convert.ToDecimal(sd.Notice5);
|
||||
|
||||
servicesBillable.Add(sd);
|
||||
}
|
||||
}
|
||||
|
||||
lblEinzelFK.Text = string.Format("{0:0.00}", gesamtEinzelFK);
|
||||
lblEinzelHK.Text = string.Format("{0:0.00}", gesamtEinzelHK);
|
||||
lblGruppeFK.Text = string.Format("{0:0.00}", gesamtGruppeFK);
|
||||
lblGruppeHK.Text = string.Format("{0:0.00}", gesamtGruppeHK);
|
||||
|
||||
pRO.Services = servicesBillable;
|
||||
}
|
||||
|
||||
bindingSource1.DataSource = pRO;
|
||||
}
|
||||
private void picSignature_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
XRPictureBox xrBox = sender as XRPictureBox;
|
||||
//var test = this.GetCurrent
|
||||
string base64String = xrBox.Tag as string;
|
||||
if (!String.IsNullOrWhiteSpace(base64String))
|
||||
{
|
||||
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
|
||||
var binData = Convert.FromBase64String(base64Data);
|
||||
Image img = ByteArrayToImage(binData);
|
||||
xrBox.Image = Utils.CropImage(img);
|
||||
}
|
||||
else
|
||||
{
|
||||
xrBox.Image = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Image ByteArrayToImage(byte[] byteArrayIn)
|
||||
{
|
||||
using(var memoryStream = new MemoryStream(byteArrayIn))
|
||||
{
|
||||
return Image.FromStream(memoryStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.resx
Normal file
120
ReportImp/CaritasverbandKelheim/LeistungsnachweisAnlage5.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
1
ReportImp/CaritasverbandKelheim/Properties/licenses.licx
Normal file
1
ReportImp/CaritasverbandKelheim/Properties/licenses.licx
Normal file
@@ -0,0 +1 @@
|
||||
DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
@@ -12,25 +12,13 @@ namespace BeWo.Service.Invoicing
|
||||
{
|
||||
internal class Club74SettlementInvoiceCreation : LWLSettlementInvoiceCreation
|
||||
{
|
||||
private decimal totalFLS = 0;
|
||||
|
||||
public override List<InvoiceItemDC> CreateInvoiceItems(Settlement2DC si, IList<ApprovalPeriod> apList)
|
||||
{
|
||||
var items = base.CreateInvoiceItems(si, apList, true);
|
||||
|
||||
var temp = base.CreateInvoiceItems(si, apList, false);
|
||||
|
||||
totalFLS = temp.Sum(ii => (ii.UnitCount ?? 0)); // * rf; //eigentlich falsch dass netto = brutto ist.
|
||||
return items;
|
||||
}
|
||||
public override bool SchneideBeiErreichenDesBudgetsAb { get { return true; } }
|
||||
|
||||
public override void CreateInvoiceDetailsTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
base.CreateInvoiceDetailsTheOldWay(si, c2s);
|
||||
|
||||
|
||||
si.RecordedBillableFLSNetto = totalFLS;
|
||||
|
||||
si.RecordedBillableFLSNetto = si.RecordedMinutesTotal / 60;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace DieBrueckeHilfeUndHalt.Service
|
||||
var stats = base.CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate, ignoreServiceRecordOid);
|
||||
|
||||
var cb = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(DAOFactory.GenericDAO.GetByID<CostBearer2SupportConcept>(costBearer2SupportConceptOid));
|
||||
if (!cb.CostBearer.Function.ToLower().Contains("neue vereinbarung"))
|
||||
if (cb == null || cb.CostBearer.Function == null || !cb.CostBearer.Function.ToLower().Contains("neue vereinbarung"))
|
||||
return stats;
|
||||
|
||||
decimal factor = 1.2m;
|
||||
|
||||
@@ -132,7 +132,8 @@ namespace Fortis
|
||||
|
||||
if (ro.MinutenProWocheUnterStufe < 0)
|
||||
{
|
||||
ro.Hinweise = "Vorsicht: Rückforderung droht!";
|
||||
//ro.Hinweise = "Vorsicht: Rückforderung droht!";
|
||||
ro.Hinweise = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Services;
|
||||
|
||||
namespace HphBersenbrueck
|
||||
{
|
||||
public class CustomGroupDurationCalculator : GroupDurationCalculator
|
||||
{
|
||||
public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration)
|
||||
{
|
||||
return new GroupDurationDC()
|
||||
{
|
||||
SingleDuration = Math.Round((totalDuration / personCount) * employeeCount, 2, MidpointRounding.AwayFromZero),
|
||||
TotalDuration = totalDuration
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -64,6 +64,7 @@
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Calculations\CustomGroupDurationCalculator.cs" />
|
||||
<Compile Include="Calculations\HPHBCalculations.cs" />
|
||||
<Compile Include="CustomerDataReport.cs">
|
||||
<SubType>Component</SubType>
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace HPHBersenbrueck.Invoicing
|
||||
{
|
||||
protected DateTime? accountingPeriodStart = null;
|
||||
protected DateTime? accountingPeriodEnd = null;
|
||||
|
||||
private Dictionary<long, bool> groupOidDict = null;
|
||||
|
||||
public override void SetInvoiceId(ServiceInvoice invoice)
|
||||
{
|
||||
@@ -29,6 +29,8 @@ namespace HPHBersenbrueck.Invoicing
|
||||
|
||||
public override List<ServiceInvoiceDC> GenerateServiceInvoices(long costBearerOid, DateTimeSpan invoicePeriod, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
|
||||
{
|
||||
groupOidDict = new Dictionary<long, bool>();
|
||||
|
||||
var invoices = base.GenerateServiceInvoices(costBearerOid, invoicePeriod, supportConcepts2ServiceRecords);
|
||||
|
||||
foreach (var i in invoices)
|
||||
@@ -65,14 +67,27 @@ namespace HPHBersenbrueck.Invoicing
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
ii.ItemDescription = iServiceRecord.ServiceDescription.CategoryName;
|
||||
if (ii.ItemDescription.StartsWith("Neu "))
|
||||
if (!iServiceRecord.GroupOid.HasValue || !groupOidDict.ContainsKey(iServiceRecord.GroupOid.Value))
|
||||
{
|
||||
ii.ItemDescription = ii.ItemDescription.Replace("Neu ", "");
|
||||
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
|
||||
if (iServiceRecord.GroupOid.HasValue)
|
||||
{
|
||||
ii.UnitCount = ((iServiceRecord.GroupRoundedDuration / iServiceRecord.GroupPersonCount) * iServiceRecord.GroupEmployeeCount) / 60;
|
||||
}
|
||||
ii.UnitCount = Math.Round(ii.UnitCount.Value * 1.2m, 2, MidpointRounding.AwayFromZero);
|
||||
ii.ItemDescription = iServiceRecord.ServiceDescription.CategoryName;
|
||||
if (ii.ItemDescription.StartsWith("Neu "))
|
||||
{
|
||||
ii.ItemDescription = ii.ItemDescription.Replace("Neu ", "");
|
||||
}
|
||||
if (iServiceRecord.GroupOid.HasValue)
|
||||
{
|
||||
groupOidDict.Add(iServiceRecord.GroupOid.Value, true);
|
||||
}
|
||||
return ii;
|
||||
}
|
||||
return ii;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc)
|
||||
@@ -83,7 +98,7 @@ namespace HPHBersenbrueck.Invoicing
|
||||
{
|
||||
if (item.UnitCount.HasValue)
|
||||
{
|
||||
item.UnitCount = Math.Round(item.UnitCount.Value * 1.2m, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
|
||||
item.AmountTotal = item.AmountPerUnit * item.UnitCount;
|
||||
item.GrossAmountTotal = item.AmountTotal;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,32 +47,44 @@ namespace BeWo.HPHBersenbrueck
|
||||
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
|
||||
int summeWegepauschalen = 0;
|
||||
int summeAusfallstunden = 0;
|
||||
decimal summeAbrWegePauschalen = 0;
|
||||
foreach (var sd in pRO.Services)
|
||||
{
|
||||
|
||||
if (!sd.ServiceCategory.Contains("Fahrt"))
|
||||
{
|
||||
sd.FLSQualified = sd.Minutes / 50;
|
||||
|
||||
minuten += sd.Minutes;
|
||||
ServicesOverviewRO.CreateSignatureString(sd);
|
||||
|
||||
|
||||
sd.FLSQualified = sd.Minutes / 50;
|
||||
|
||||
if (sd.IsGroup)
|
||||
{
|
||||
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
|
||||
hatGruppen = true;
|
||||
sd.Notice3 = "1";
|
||||
sd.Minutes = sd.GroupMinutes;
|
||||
|
||||
sd.FLSQualified = Math.Round((sd.GroupMinutes / sd.CustomerCount / 50) * sd.EmployeeCount, 2, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
else
|
||||
sd.Notice3 = "";
|
||||
{
|
||||
sd.FLSQualified = sd.Minutes / 50;
|
||||
}
|
||||
|
||||
|
||||
minuten += sd.Minutes;
|
||||
|
||||
|
||||
// Felder für Wegepauschale setzen (Wenn FLS FaceToFace, dann ja)
|
||||
sd.Notice3 = "";
|
||||
sd.Notice4 = "";
|
||||
if (!String.IsNullOrWhiteSpace(sd.GefahreneKilometer) && Decimal.TryParse(sd.GefahreneKilometer, out var k))
|
||||
{
|
||||
if (k > 0)
|
||||
{
|
||||
sd.Notice4 = "1";
|
||||
sd.Notice3 = "1";
|
||||
sd.Notice4 = String.Format("{0:0.00}", 1m / sd.CustomerCount);
|
||||
summeAbrWegePauschalen += Math.Round(1m / sd.CustomerCount, 2, MidpointRounding.AwayFromZero);
|
||||
summeWegepauschalen++;
|
||||
}
|
||||
}
|
||||
@@ -92,6 +104,7 @@ namespace BeWo.HPHBersenbrueck
|
||||
pRO.Services = servicesBillable;
|
||||
lblSummeWegepauschalen.Text = string.Format("{0:0}", summeWegepauschalen);
|
||||
lblSummeAusfallstunden.Text = string.Format("{0:0}", summeAusfallstunden);
|
||||
lblSummeAbrWegepauschalen.Text = string.Format("{0:0.00}", summeAbrWegePauschalen);
|
||||
|
||||
}
|
||||
lblBewilligtFls.Text = String.Format("{0:0.00}", pRO.ApprovedFLSPerWeek);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,35 +47,44 @@ namespace BeWo.HPHBersenbrueck
|
||||
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
|
||||
int summeWegepauschalen = 0;
|
||||
int summeAusfallstunden = 0;
|
||||
decimal summeAbrWegePauschalen = 0;
|
||||
foreach (var sd in pRO.Services)
|
||||
{
|
||||
sd.IsBillable = sd.ServiceDescription.Contains("50 direkt") || sd.ServiceDescription.Contains("Ausfall");
|
||||
|
||||
|
||||
|
||||
if (sd.IsBillable && !sd.ServiceCategory.Contains("Fahrt"))
|
||||
{
|
||||
sd.FLSQualified = sd.Minutes / 50;
|
||||
|
||||
minuten += sd.Minutes;
|
||||
ServicesOverviewRO.CreateSignatureString(sd);
|
||||
|
||||
|
||||
if (sd.IsGroup)
|
||||
{
|
||||
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
|
||||
hatGruppen = true;
|
||||
sd.Notice3 = "1";
|
||||
sd.Minutes = sd.GroupMinutes;
|
||||
|
||||
sd.FLSQualified = Math.Round((sd.GroupMinutes / sd.CustomerCount / 50) * sd.EmployeeCount, 2, MidpointRounding.AwayFromZero);
|
||||
}
|
||||
else
|
||||
sd.Notice3 = "";
|
||||
{
|
||||
sd.FLSQualified = sd.Minutes / 50;
|
||||
}
|
||||
|
||||
|
||||
minuten += sd.Minutes;
|
||||
|
||||
|
||||
|
||||
// Felder für Wegepauschale setzen (Wenn FLS FaceToFace, dann ja)
|
||||
sd.Notice3 = "";
|
||||
sd.Notice4 = "";
|
||||
if (!String.IsNullOrWhiteSpace(sd.GefahreneKilometer) && Decimal.TryParse(sd.GefahreneKilometer, out var k))
|
||||
{
|
||||
if (k > 0)
|
||||
{
|
||||
sd.Notice4 = "1";
|
||||
sd.Notice3 = "1";
|
||||
sd.Notice4 = String.Format("{0:0.00}", 1m / sd.CustomerCount);
|
||||
summeAbrWegePauschalen += Math.Round(1m / sd.CustomerCount, 2, MidpointRounding.AwayFromZero);
|
||||
summeWegepauschalen++;
|
||||
}
|
||||
}
|
||||
@@ -95,6 +104,7 @@ namespace BeWo.HPHBersenbrueck
|
||||
pRO.Services = servicesBillable;
|
||||
lblSummeWegepauschalen.Text = string.Format("{0:0}", summeWegepauschalen);
|
||||
lblSummeAusfallstunden.Text = string.Format("{0:0}", summeAusfallstunden);
|
||||
lblSummeAbrWegepauschalen.Text = string.Format("{0:0.00}", summeAbrWegePauschalen);
|
||||
|
||||
}
|
||||
lblBewilligtFls.Text = String.Format("{0:0.00}", pRO.ApprovedFLSPerWeek);
|
||||
|
||||
@@ -56,11 +56,12 @@ namespace HphBersenbrueck.Service
|
||||
|
||||
if (stats != null)
|
||||
{
|
||||
var allStats = new List<SupportConceptPeriodStatisticsDC>();
|
||||
foreach (var pdc in stats.PeriodStatistics.OrderByDescending(s => s.SupportConceptApprovalPeriod != null ? s.SupportConceptApprovalPeriod.StartDate : DateTime.MinValue))
|
||||
{
|
||||
if (pdc.SupportConceptApprovalPeriod != null && pdc.SupportConceptApprovalPeriod.ServiceCategory != null && pdc.SupportConceptApprovalPeriod.ServiceCategory.Name == NEUE_QA_KATEGORIE)
|
||||
{
|
||||
ErstelleAlleStatistikenFuerNeueQA(statisticsDate, dc, stats, pdc);
|
||||
BerechneAlleStatistikenFuerNeueQA(statisticsDate, dc, stats, pdc, allStats);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -88,14 +89,18 @@ namespace HphBersenbrueck.Service
|
||||
}
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, pdc, header));
|
||||
}
|
||||
|
||||
}
|
||||
if (allStats.Count > 0)
|
||||
{
|
||||
ErstelleStatistikenFuerDieAnzeige(dc, stats, allStats);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
private void ErstelleAlleStatistikenFuerNeueQA(DateTime statisticsDate, ServiceRecordStatisticsInfoDC dc, SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC pdc)
|
||||
private void BerechneAlleStatistikenFuerNeueQA(DateTime statisticsDate, ServiceRecordStatisticsInfoDC dc, SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC pdc, List<SupportConceptPeriodStatisticsDC> allStats)
|
||||
{
|
||||
//Eine Stunden der neuen QA wird unterteilt in 50 Min direkt, 10 Min Mittelbar, 6 Min indirekt und 15 Min Fahrtzeit
|
||||
var statsDirekt = new SupportConceptPeriodStatisticsDC();
|
||||
@@ -108,6 +113,8 @@ namespace HphBersenbrueck.Service
|
||||
statsDirekt.ApprovedMinutesTillNow = pdc.ApprovedMinutesTillNow; // / 1.2m;
|
||||
statsDirekt.SupportConceptApprovalPeriod = pdc.SupportConceptApprovalPeriod;
|
||||
|
||||
|
||||
|
||||
//statsMittelbar.MinutesApprovedPerWeek = pdc.MinutesApprovedPerWeek / 6m; //60 min. bewilligt sind 10 min. mittelbar
|
||||
//statsMittelbar.MinutesApprovedTotal = pdc.MinutesApprovedTotal / 6m;
|
||||
//statsMittelbar.ApprovedMinutesTillNow = pdc.ApprovedMinutesTillNow / 6m;
|
||||
@@ -128,15 +135,47 @@ namespace HphBersenbrueck.Service
|
||||
BerechneGeleisteteStunden(statisticsDate, statsIndirekt, "6 indirekte Leistung");
|
||||
BerechneGeleisteteStunden(statisticsDate, statsFahrtzeit, "15 Fahrzeit");
|
||||
|
||||
String zeitraum = "";
|
||||
if (stats.PeriodStatistics.Count > 1 && pdc.SupportConceptApprovalPeriod != null)
|
||||
if (allStats.Count >= 3)
|
||||
{
|
||||
zeitraum = String.Format(" ({0:dd.MM.yyyy} - {1:dd.MM.yyyy})", pdc.SupportConceptApprovalPeriod.StartDate, pdc.SupportConceptApprovalPeriod.EndDate);
|
||||
//Addiere Stunden der letzten Bewilligung auf die aktuelle Bewilligung
|
||||
var letzteDirekt = allStats[0];
|
||||
var letzteIndirekt = allStats[1];
|
||||
var letzteFahrtzeit = allStats[2];
|
||||
|
||||
|
||||
|
||||
letzteDirekt.MinutesApprovedTotal += statsDirekt.MinutesApprovedTotal;
|
||||
letzteDirekt.MinutesProvidedTotalRounded += statsDirekt.MinutesProvidedTotalRounded;
|
||||
|
||||
}
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsDirekt, " 50 direkte Leistung" + zeitraum));
|
||||
//dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsMittelbar, " 10 direkte Leistung"));
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsIndirekt, " 6 indirekte Leistung"));
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsFahrtzeit, " 15 Fahrzeit "));
|
||||
|
||||
|
||||
allStats.Add(statsDirekt);
|
||||
allStats.Add(statsIndirekt);
|
||||
allStats.Add(statsFahrtzeit);
|
||||
}
|
||||
|
||||
private void ErstelleStatistikenFuerDieAnzeige(ServiceRecordStatisticsInfoDC dc, SupportConceptStatisticsDC stats, List<SupportConceptPeriodStatisticsDC> allStats)
|
||||
{
|
||||
for (int i = 0; i < allStats.Count; i += 3)
|
||||
{
|
||||
var statsDirekt = allStats[i];
|
||||
var statsIndirekt = allStats[i + 1];
|
||||
var statsFahrtzeit = allStats[i + 2];
|
||||
String zeitraum = "";
|
||||
if (allStats.Count > 3 && statsDirekt.SupportConceptApprovalPeriod != null)
|
||||
{
|
||||
zeitraum = String.Format(" ({0:dd.MM.yyyy} - {1:dd.MM.yyyy})", statsDirekt.SupportConceptApprovalPeriod.StartDate, statsDirekt.SupportConceptApprovalPeriod.EndDate);
|
||||
}
|
||||
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsDirekt, " 50 direkte Leistung" + zeitraum));
|
||||
//dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsMittelbar, " 10 direkte Leistung"));
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsIndirekt, " 6 indirekte Leistung"));
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, statsFahrtzeit, " 15 Fahrzeit "));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void BerechneGeleisteteStunden(DateTime statisticsDate, SupportConceptPeriodStatisticsDC pdc, string leistung)
|
||||
|
||||
@@ -565,7 +565,7 @@ namespace LebenshilfeFrankfurtOder
|
||||
{
|
||||
var invoices4 = CreateAbrechnungSbdPool(start, start.AddMonths(1).AddTicks(-1), customerOid, serviceCategoryOid);
|
||||
invoices.AddRange(invoices4);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (abrechnungsArt == AbrechnungsEnum.Einzelfallhilfe)
|
||||
{
|
||||
@@ -1325,7 +1325,17 @@ namespace LebenshilfeFrankfurtOder
|
||||
{
|
||||
var invoicePeriod = new DateTimeSpan(start, end);
|
||||
|
||||
IList<CompactSupportConceptDC> supportConcepts = GetSupportConcepts(start, end, "Familienentlastender Dienst", "pool", customerOid, 24);
|
||||
long? regionOid = null;
|
||||
|
||||
if (serviceCategoryOid == 77)
|
||||
{
|
||||
regionOid = 24;
|
||||
}
|
||||
else
|
||||
{
|
||||
regionOid = 28;
|
||||
}
|
||||
IList<CompactSupportConceptDC> supportConcepts = GetSupportConcepts(start, end, "Familienentlastender Dienst", "pool", customerOid, regionOid);
|
||||
|
||||
var supportConcepts2ServiceRecords = new Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>>();
|
||||
|
||||
|
||||
1150
ReportImp/PariSozial/ServiceInvoiceReport.Designer.cs
generated
1150
ReportImp/PariSozial/ServiceInvoiceReport.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -55,17 +55,18 @@ namespace PariSozial
|
||||
sb.AppendLine(pRO.RecipientPostCodeAndTown);
|
||||
}
|
||||
|
||||
lblAdresse.Text = sb.ToString();
|
||||
|
||||
DateTime start = pRO.AccountingPeriodStart;
|
||||
DateTime end = pRO.AccountingPeriodEnd;
|
||||
if (start.Month == end.Month && start.Year == end.Year)
|
||||
{
|
||||
//lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Monat {0:MMMM yyyy} folgende erbrachte Tätigkeiten:", start);
|
||||
}
|
||||
else
|
||||
{
|
||||
//lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Zeitraum {0:MMMM yyyy} - {1:MMMM yyyy} folgende erbrachte Tätigkeiten:", start, end);
|
||||
lblAdresse.Text = sb.ToString();
|
||||
|
||||
string gpNummer = "";
|
||||
if (pRO.RecipientOrganisation != null && pRO.RecipientOrganisation.Equals("Landschaftsverband Rheinland"))
|
||||
{
|
||||
gpNummer = "GP-Nummer: 20000217071";
|
||||
}
|
||||
lblKontaktdaten.Text = lblKontaktdaten.Text.Replace("[GP-Nummer]", gpNummer);
|
||||
|
||||
if (!String.IsNullOrEmpty(pRO.Notice))
|
||||
{
|
||||
lblNotice.Text = "Bemerkung:\n" + pRO.Notice;
|
||||
}
|
||||
|
||||
lblHinweise.Text = lblHinweise.Text.Replace("xxxxx", String.Format("{0:dd.MM.yyyy}", pRO.InvoiceDateTime.Value.AddDays(14))).Replace("rrrrr", pRO.InvoiceNumber);
|
||||
|
||||
@@ -1,126 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblHinweise.Text" xml:space="preserve">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="lblHinweise.Text" xml:space="preserve">
|
||||
<value>Die abgerechneten Leistungen sind gemäß §4 Nr. 16 UStG umsatzsteuerbefreit.
|
||||
Bitte überweisen Sie innerhalb von 14 Tagen (bis zum xxxxx)
|
||||
unter Angabe der Rechnungsnummer (rrrrr)
|
||||
auf das Geschäftskonto bei der Bank für Sozialwirtschaft Köln</value>
|
||||
</data>
|
||||
auf das Geschäftskonto bei der Bank für Sozialwirtschaft Köln</value>
|
||||
</data>
|
||||
</root>
|
||||
66
ReportImp/PariSozial/SettlementReport2.Designer.cs
generated
66
ReportImp/PariSozial/SettlementReport2.Designer.cs
generated
@@ -50,7 +50,7 @@ namespace PariSozial
|
||||
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.lblKontaktdaten = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.fieldApprovedFLSWithFactor = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
|
||||
@@ -71,7 +71,9 @@ namespace PariSozial
|
||||
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.Zwischensumme = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
|
||||
this.lblNotice = new DevExpress.XtraReports.UI.XRLabel();
|
||||
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
@@ -100,12 +102,10 @@ namespace PariSozial
|
||||
this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.lblNotice = 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.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
//
|
||||
// Detail
|
||||
@@ -199,7 +199,7 @@ namespace PariSozial
|
||||
this.xrLabel4,
|
||||
this.xrLabel3,
|
||||
this.xrLabel2,
|
||||
this.xrLabel13,
|
||||
this.lblKontaktdaten,
|
||||
this.xrLabel7,
|
||||
this.lblAdresse,
|
||||
this.xrLabel8});
|
||||
@@ -298,18 +298,18 @@ namespace PariSozial
|
||||
this.xrLabel2.Text = "Leistungsabrechnung";
|
||||
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
|
||||
//
|
||||
// xrLabel13
|
||||
// lblKontaktdaten
|
||||
//
|
||||
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(348.0001F, 34.00004F);
|
||||
this.xrLabel13.Multiline = true;
|
||||
this.xrLabel13.Name = "xrLabel13";
|
||||
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.xrLabel13.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
|
||||
this.xrLabel13.SizeF = new System.Drawing.SizeF(292F, 122F);
|
||||
this.xrLabel13.StylePriority.UseFont = false;
|
||||
this.xrLabel13.StylePriority.UseTextAlignment = false;
|
||||
this.xrLabel13.Text = resources.GetString("xrLabel13.Text");
|
||||
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
this.lblKontaktdaten.LocationFloat = new DevExpress.Utils.PointFloat(348.0001F, 34.00004F);
|
||||
this.lblKontaktdaten.Multiline = true;
|
||||
this.lblKontaktdaten.Name = "lblKontaktdaten";
|
||||
this.lblKontaktdaten.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblKontaktdaten.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
|
||||
this.lblKontaktdaten.SizeF = new System.Drawing.SizeF(292F, 122F);
|
||||
this.lblKontaktdaten.StylePriority.UseFont = false;
|
||||
this.lblKontaktdaten.StylePriority.UseTextAlignment = false;
|
||||
this.lblKontaktdaten.Text = resources.GetString("lblKontaktdaten.Text");
|
||||
this.lblKontaktdaten.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
|
||||
//
|
||||
// xrLabel7
|
||||
//
|
||||
@@ -561,6 +561,10 @@ namespace PariSozial
|
||||
this.Zwischensumme.HeightF = 0F;
|
||||
this.Zwischensumme.Name = "Zwischensumme";
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
|
||||
//
|
||||
// GroupFooter1
|
||||
//
|
||||
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
|
||||
@@ -571,6 +575,17 @@ namespace PariSozial
|
||||
this.GroupFooter1.Name = "GroupFooter1";
|
||||
this.GroupFooter1.StylePriority.UseFont = false;
|
||||
//
|
||||
// lblNotice
|
||||
//
|
||||
this.lblNotice.CanShrink = true;
|
||||
this.lblNotice.LocationFloat = new DevExpress.Utils.PointFloat(0F, 176.0417F);
|
||||
this.lblNotice.Multiline = true;
|
||||
this.lblNotice.Name = "lblNotice";
|
||||
this.lblNotice.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblNotice.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
|
||||
this.lblNotice.SizeF = new System.Drawing.SizeF(640.0001F, 29.08337F);
|
||||
this.lblNotice.StylePriority.UseFont = false;
|
||||
//
|
||||
// xrTable3
|
||||
//
|
||||
this.xrTable3.BorderColor = System.Drawing.Color.Black;
|
||||
@@ -972,21 +987,6 @@ namespace PariSozial
|
||||
this.xrTableCell31.TextFormatString = "{0:c}";
|
||||
this.xrTableCell31.Weight = 0.14186548034377122D;
|
||||
//
|
||||
// lblNotice
|
||||
//
|
||||
this.lblNotice.CanShrink = true;
|
||||
this.lblNotice.LocationFloat = new DevExpress.Utils.PointFloat(0F, 176.0417F);
|
||||
this.lblNotice.Multiline = true;
|
||||
this.lblNotice.Name = "lblNotice";
|
||||
this.lblNotice.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
|
||||
this.lblNotice.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
|
||||
this.lblNotice.SizeF = new System.Drawing.SizeF(640.0001F, 29.08337F);
|
||||
this.lblNotice.StylePriority.UseFont = false;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
|
||||
//
|
||||
// Spitzabrechnung
|
||||
//
|
||||
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
|
||||
@@ -1014,8 +1014,8 @@ namespace PariSozial
|
||||
this.Watermarks.Add(xrWatermark1);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
|
||||
}
|
||||
@@ -1040,7 +1040,7 @@ namespace PariSozial
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
|
||||
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel13;
|
||||
private DevExpress.XtraReports.UI.XRLabel lblKontaktdaten;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
|
||||
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
|
||||
|
||||
@@ -54,6 +54,13 @@ namespace PariSozial
|
||||
|
||||
lblAdresse.Text = sb.ToString();
|
||||
|
||||
string gpNummer = "";
|
||||
if (pRO.RecipientOrganisation != null && pRO.RecipientOrganisation.Equals("Landschaftsverband Rheinland"))
|
||||
{
|
||||
gpNummer = "GP-Nummer: 20000217071";
|
||||
}
|
||||
lblKontaktdaten.Text = lblKontaktdaten.Text.Replace("[GP-Nummer]", gpNummer);
|
||||
|
||||
if (!String.IsNullOrEmpty(pRO.Notice))
|
||||
{
|
||||
lblNotice.Text = "Bemerkung:\n" + pRO.Notice;
|
||||
|
||||
@@ -123,7 +123,7 @@ Bitte überweisen Sie innerhalb von 14 Tagen (bis zum xxxxx)
|
||||
unter Angabe der Rechnungsnummer (rrrrr)
|
||||
auf das Geschäftskonto bei der Bank für Sozialwirtschaft Köln</value>
|
||||
</data>
|
||||
<data name="xrLabel13.Text" xml:space="preserve">
|
||||
<data name="lblKontaktdaten.Text" xml:space="preserve">
|
||||
<value>Friedhofstr. 39
|
||||
41236 Mönchengladbach
|
||||
Telefon: 02166-9239-35
|
||||
@@ -131,7 +131,7 @@ Telefax: 02166-9239-19
|
||||
Rückfragen an: Herrn Gabriel Kasaboglu
|
||||
E-Mail: kasaboglu@pariteam-mg.de
|
||||
Steuer Nr. 131/5951/0051
|
||||
GP-Nummer: 20000217071
|
||||
[GP-Nummer]
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -246,5 +246,18 @@ namespace SHKService
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override decimal GetFeiertagsFaktor(DateTime start)
|
||||
{
|
||||
if (start.Month == 12)
|
||||
{
|
||||
if (start.Day == 24 || start.Day == 31)
|
||||
{
|
||||
return 0.5m;
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetFeiertagsFaktor(start);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,6 +133,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Service\CustomCustomerService.cs" />
|
||||
<Compile Include="Service\CustomSupportConceptAnalysisCreator.cs" />
|
||||
<Compile Include="Service\CustomVacationService.cs" />
|
||||
<Compile Include="Teamstundenkonto.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
30
ReportImp/SHKService/Service/CustomVacationService.cs
Normal file
30
ReportImp/SHKService/Service/CustomVacationService.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace SHKServiceSBD.Service
|
||||
{
|
||||
public class CustomVacationService : VacationService
|
||||
{
|
||||
public override List<FeiertagDC> GetFeiertage(int year, String bundesland)
|
||||
{
|
||||
List<FeiertagDC> list = base.GetFeiertage(year, bundesland);
|
||||
if (year >= 2024)
|
||||
{
|
||||
list.Add(new FeiertagDC { Datum = new DateTime(year, 12, 31), Name = "Silvester" });
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -375,7 +375,7 @@ namespace SHKServiceSBD
|
||||
var faktor = GetFeiertagsFaktor(dd.Date);
|
||||
if (faktor > 0)
|
||||
{
|
||||
if (at.AbsenceReason.Description.ToLower().Contains("krankengeld") || at.AbsenceReason.Description.ToLower().Contains("krank ohne lohnfortzahlung"))
|
||||
if (at.AbsenceReason.Description.ToLower().Contains("krankengeld") || at.AbsenceReason.Description.ToLower().Contains("elternzeit") || at.AbsenceReason.Description.ToLower().Contains("krank ohne lohnfortzahlung"))
|
||||
{
|
||||
feiertagAnrechnen = false;
|
||||
dd.HoursSick = sollProTag;
|
||||
@@ -429,6 +429,7 @@ namespace SHKServiceSBD
|
||||
if (feiertagAnrechnen && HatVertrag(ed, dd.Date))
|
||||
{
|
||||
var soll = BerechneSollAmTag(ed, dd.Date) * 60;
|
||||
soll *= GetFeiertagsFaktor(dd.Date);
|
||||
if (dd.MinutesTotal <= soll)
|
||||
{
|
||||
dd.MinutesTotal = soll;
|
||||
@@ -565,7 +566,7 @@ namespace SHKServiceSBD
|
||||
{
|
||||
foreach (var at in emp.AbsenceTimes)
|
||||
{
|
||||
if (at.AbsenceReason.Description.ToLower().Contains("unbezahlter urlaub") || at.AbsenceReason.Description.ToLower().Contains("krankengeld"))
|
||||
if (at.AbsenceReason.Description.ToLower().Contains("unbezahlter urlaub") || at.AbsenceReason.Description.ToLower().Contains("krankengeld") || at.AbsenceReason.Description.ToLower().Contains("elternzeit"))
|
||||
{
|
||||
if (at.Start.Value <= start && (!at.End.HasValue || at.End.Value >= start))
|
||||
{
|
||||
@@ -636,6 +637,13 @@ namespace SHKServiceSBD
|
||||
//{
|
||||
// return 1;
|
||||
//}
|
||||
if (start.Month == 12)
|
||||
{
|
||||
if (start.Day == 24 || start.Day == 31)
|
||||
{
|
||||
return 0.5m;
|
||||
}
|
||||
}
|
||||
|
||||
return base.GetFeiertagsFaktor(start);
|
||||
}
|
||||
@@ -649,5 +657,6 @@ namespace SHKServiceSBD
|
||||
{
|
||||
return vacationService.GetFerien(start, vacationService.Bundesland);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,8 @@ namespace SHKServiceSBD
|
||||
|
||||
}
|
||||
if (dd.AbsenceTimes != null && dd.AbsenceTimes.Count > 0 &&
|
||||
(dd.AbsenceTimes[0].AbsenceReason.Description.Contains("Krankengeld") ||
|
||||
(dd.AbsenceTimes[0].AbsenceReason.Description.Contains("Krankengeld") ||
|
||||
dd.AbsenceTimes[0].AbsenceReason.Description.Contains("Elternzeit") ||
|
||||
dd.AbsenceTimes[0].AbsenceReason.Description.Contains("ohne Lohnfortzahlung")))
|
||||
{
|
||||
ed.StundenSollMax -= dd.HoursSick;
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Service\CustomCustomerService.cs" />
|
||||
<Compile Include="Service\CustomOperationService.cs" />
|
||||
<Compile Include="Service\CustomVacationService.cs" />
|
||||
<Compile Include="Service\CustomVertretungsManager.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
30
ReportImp/SHKServiceSBD/Service/CustomVacationService.cs
Normal file
30
ReportImp/SHKServiceSBD/Service/CustomVacationService.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace SHKServiceSBD.Service
|
||||
{
|
||||
public class CustomVacationService : VacationService
|
||||
{
|
||||
public override List<FeiertagDC> GetFeiertage(int year, String bundesland)
|
||||
{
|
||||
List<FeiertagDC> list = base.GetFeiertage(year, bundesland);
|
||||
if (year >= 2024)
|
||||
{
|
||||
list.Add(new FeiertagDC { Datum = new DateTime(year, 12, 31), Name = "Silvester" });
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,16 @@ namespace VSDHammReports
|
||||
|
||||
internal class CustomSettlementInvoiceCreation : LWLSettlementInvoiceCreation
|
||||
{
|
||||
|
||||
|
||||
public override bool SchneideBeiErreichenDesBudgetsAb { get { return true; } }
|
||||
|
||||
|
||||
public override void CreateInvoiceDetailsTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
base.CreateInvoiceDetailsTheOldWay(si, c2s);
|
||||
}
|
||||
|
||||
public override List<InvoiceItemDC> CreateInvoiceItems(Settlement2DC si, IList<ApprovalPeriod> apList, bool schneideBeiMaxAb)
|
||||
{
|
||||
//var items = base.CreateInvoiceItems(si, apList, true);
|
||||
@@ -44,8 +54,6 @@ namespace VSDHammReports
|
||||
list.Add(ap);
|
||||
}
|
||||
|
||||
decimal maxApprovedFls = si.ApprovedFLS ?? 0;
|
||||
decimal totalHours = 0;
|
||||
foreach (var key in apsByHourlyRate.Keys)
|
||||
{
|
||||
IList<ApprovalPeriod> list = apsByHourlyRate[key];
|
||||
@@ -64,6 +72,7 @@ namespace VSDHammReports
|
||||
{
|
||||
minutesTotal += approvalPeriod.RecordedMinutes;
|
||||
minutesTotalBudget += approvalPeriod.BudgetMinutes;
|
||||
|
||||
if (approvalPeriod.PeriodStartDate < start)
|
||||
start = approvalPeriod.PeriodStartDate;
|
||||
if (approvalPeriod.PeriodEndDate > end)
|
||||
@@ -92,22 +101,6 @@ namespace VSDHammReports
|
||||
hoursBudget *= (100 + rf) / 100;
|
||||
hoursBudget = Math.Round(hoursBudget, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
if (schneideBeiMaxAb)
|
||||
{
|
||||
if (totalHours + hoursBudget > maxApprovedFls)
|
||||
{
|
||||
hoursBudget = maxApprovedFls - totalHours;
|
||||
if (hoursBudget < 0)
|
||||
{
|
||||
hoursBudget = 0;
|
||||
}
|
||||
if (hours > hoursBudget)
|
||||
{
|
||||
hours = hoursBudget;
|
||||
}
|
||||
}
|
||||
}
|
||||
totalHours += hoursBudget;
|
||||
|
||||
ii.UnitCount = hours;
|
||||
ii.UnitCountBudget = hoursBudget;
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
|
||||
while (index < lines.Length)
|
||||
{
|
||||
var datumTa = LvrAvisTextAbschnitt.LeseBisDatum(lines, index, false);
|
||||
var datumTa = LvrAvisTextAbschnittReader.LeseBisDatum(lines, index, false);
|
||||
if (datumTa.Success)
|
||||
{
|
||||
index = datumTa.ZeilenIndex;
|
||||
@@ -47,7 +47,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
|
||||
StringBuilder textBereich = new StringBuilder();
|
||||
|
||||
var monatTa = LvrAvisTextAbschnitt.LeseBisText(lines, index, "Monat:");
|
||||
var monatTa = LvrAvisTextAbschnittReader.LeseBisText(lines, index, "Monat:");
|
||||
if (monatTa.Success)
|
||||
{
|
||||
textBereich.Append(monatTa.Text);
|
||||
@@ -79,11 +79,11 @@ namespace BeWo.Service.Import.AvisImport
|
||||
int index = 0;
|
||||
|
||||
|
||||
var ta = LvrAvisTextAbschnitt.LeseBisText(lines, index, Aktenzeichen);
|
||||
var ta = LvrAvisTextAbschnittReader.LeseBisText(lines, index, Aktenzeichen);
|
||||
index = ta.ZeilenIndex;
|
||||
//Prüfe ob zuerst der Sachbearbeiter oder der Klientenname im Text steht. Der Sachbearbeiter beginnt mit dem Text "Sachbearbeiter:", der Klient endet mit dem Text "Aktenzeichen"
|
||||
var sbTest = LvrAvisTextAbschnitt.LeseBisText(lines, index, "Sachbearbeiter");
|
||||
var azTest = LvrAvisTextAbschnitt.LeseBisText(lines, index, "Aktenzeichen");
|
||||
var sbTest = LvrAvisTextAbschnittReader.LeseBisText(lines, index, "Sachbearbeiter");
|
||||
var azTest = LvrAvisTextAbschnittReader.LeseBisText(lines, index, "Aktenzeichen");
|
||||
|
||||
if (sbTest.Success && azTest.Success)
|
||||
{
|
||||
@@ -96,7 +96,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
klientenZeile = azTest.Text;
|
||||
|
||||
//Sachbearbeiter steht hinter Klient
|
||||
ta = LvrAvisTextAbschnitt.LeseBisDatum(lines, index, false);
|
||||
ta = LvrAvisTextAbschnittReader.LeseBisDatum(lines, index, false);
|
||||
sbZeile = ta.Text;
|
||||
}
|
||||
else
|
||||
@@ -104,7 +104,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
index = sbTest.ZeilenIndex + 1;
|
||||
sbZeile = sbTest.Text;
|
||||
//Suche Klient hinter Sachbearbeiter
|
||||
ta = LvrAvisTextAbschnitt.LeseBisDatum(lines, index, false);
|
||||
ta = LvrAvisTextAbschnittReader.LeseBisDatum(lines, index, false);
|
||||
klientenZeile = ta.Text;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@ namespace BeWo.Service.Import.AvisImport
|
||||
|
||||
//Suche Rechnungspositionen anhand des Euro Zeichens
|
||||
//Prüfe ob ein neues Datum, eine Rechnungsposition oder die Gesamtsumme als nächstes kommt
|
||||
var datumTa = LvrAvisTextAbschnitt.LeseBisDatum(lines, index, true);
|
||||
var betragTa = LvrAvisTextAbschnitt.LeseBisText(lines, datumTa.ZeilenIndex, "€");
|
||||
var gesamtTa = LvrAvisTextAbschnitt.LeseBisText(lines, betragTa.ZeilenIndex, "Gesamtsumme");
|
||||
var datumTa = LvrAvisTextAbschnittReader.LeseBisDatum(lines, index, true);
|
||||
var betragTa = LvrAvisTextAbschnittReader.LeseBisText(lines, datumTa.ZeilenIndex, "€");
|
||||
var gesamtTa = LvrAvisTextAbschnittReader.LeseBisText(lines, betragTa.ZeilenIndex, "Gesamtsumme");
|
||||
|
||||
if (datumTa.Success)
|
||||
{
|
||||
@@ -54,7 +54,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
while (betragTa.Success && betragTa.ZeilenIndex < gesamtTa.ZeilenIndex && index < lines.Length)
|
||||
{
|
||||
var line = lines[betragTa.ZeilenIndex];
|
||||
decimal? betrag = LvrAvisTextAbschnitt.LeseBetrag(line);
|
||||
decimal? betrag = LvrAvisTextAbschnittReader.LeseBetrag(line);
|
||||
if (betrag.HasValue)
|
||||
{
|
||||
var neuerAvis = new Avis();
|
||||
@@ -78,7 +78,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
letzterAvis.Verwendungszweck = String.Format("{0}\n{1}", letzterAvis.Verwendungszweck, line);
|
||||
}
|
||||
|
||||
betragTa = LvrAvisTextAbschnitt.LeseBisText(lines, betragTa.ZeilenIndex + 1, "€");
|
||||
betragTa = LvrAvisTextAbschnittReader.LeseBisText(lines, betragTa.ZeilenIndex + 1, "€");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using DevExpress.Pdf;
|
||||
using BeWo.Service.Import;
|
||||
using DevExpress.Pdf;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -9,42 +10,18 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.Import.AvisImport
|
||||
{
|
||||
public class LvrAvisTextAbschnitt
|
||||
public class LvrAvisTextAbschnittReader
|
||||
{
|
||||
public String Text { get; set; }
|
||||
|
||||
public int ZeilenIndex { get; set; }
|
||||
|
||||
public bool Success { get; set; }
|
||||
|
||||
public static LvrAvisTextAbschnitt LeseBisText(string[] lines, int index, String suchText)
|
||||
public static TextAbschnitt LeseBisText(string[] lines, int zeilenIndex, string suchText)
|
||||
{
|
||||
var ta = new LvrAvisTextAbschnitt();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
ta.ZeilenIndex = index;
|
||||
while (index < lines.Length)
|
||||
{
|
||||
String line = lines[index];
|
||||
sb.AppendLine(line);
|
||||
|
||||
if (line.Contains(suchText))
|
||||
{
|
||||
ta.Success = true;
|
||||
ta.ZeilenIndex = index;
|
||||
ta.Text = sb.ToString();
|
||||
|
||||
return ta;
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
return ta;
|
||||
return TextAbschnittReader.LeseBisText(lines, zeilenIndex, suchText, false, true, false);
|
||||
}
|
||||
|
||||
public static LvrAvisTextAbschnitt LeseBisDatum(string[] lines, int index, bool addDatumsZeile)
|
||||
public static TextAbschnitt LeseBisDatum(string[] lines, int index, bool addDatumsZeile)
|
||||
{
|
||||
var ta = new LvrAvisTextAbschnitt();
|
||||
var ta = new TextAbschnitt();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
while (index < lines.Length)
|
||||
@@ -89,6 +66,7 @@ namespace BeWo.Service.Import.AvisImport
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,51 +17,230 @@ namespace BeWo.Service.Import.Perseh
|
||||
HilfeplanImportDC result = new HilfeplanImportDC();
|
||||
result.Gruppen = new List<HilfeplanImportItemDC>();
|
||||
|
||||
var gruppe1 = new HilfeplanImportItemDC { Label = "Leistungssuchende oder leistungsberechtigte Person", Items = new List<HilfeplanImportItemDC>() };
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
||||
//var gruppe1 = new HilfeplanImportItemDC { Label = "Leistungssuchende oder leistungsberechtigte Person", Items = new List<HilfeplanImportItemDC>() };
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
||||
|
||||
result.Gruppen.Add(gruppe1);
|
||||
//result.Gruppen.Add(gruppe1);
|
||||
|
||||
gruppe1 = new HilfeplanImportItemDC { Label = "Gruppe 2", Items = new List<HilfeplanImportItemDC>() };
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
||||
gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
||||
//gruppe1 = new HilfeplanImportItemDC { Label = "Gruppe 2", Items = new List<HilfeplanImportItemDC>() };
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Name", Content = "Bäurle", FieldName = "LastName" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Vorname", Content = "Christian", FieldName = "FirstName" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Geburtsdatum", Content = "08.04.1972", FieldName = "Birthdate" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Nationalität", Content = "deutsch" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Beruf", Content = "Wirt" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "GP-Nummer/Az", Content = "73.20-2100009313-01" });
|
||||
//gruppe1.Items.Add(new HilfeplanImportItemDC { Label = "Erstellt von der\nleistungssuchenden oder\nleistungsberechtigten Person\nmit Behinderung unter", Content = "Max Mustermann (Bezugsbetreuer)\nMaria Musterfrau (Sozialarbeiterin)" });
|
||||
|
||||
result.Gruppen.Add(gruppe1);
|
||||
//result.Gruppen.Add(gruppe1);
|
||||
|
||||
|
||||
|
||||
result.Ziele = new List<HilfeplanImportZielDC>();
|
||||
|
||||
result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
||||
result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
||||
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
||||
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Lernen und Wissensanwendung", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
||||
|
||||
result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
||||
result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
||||
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 1", ZielBeschreibung = "Herr Sowieso hat eine seinen Bedürfnissen entsprechende und ihn stabilisierende Tagesstruktur mit einer regelmäßigen, genesungsfördernden Beschäftigung(z.B.Ergotherapie) entwickelt." });
|
||||
//result.Ziele.Add(new HilfeplanImportZielDC { Bereich = "Allgemeine Aufgaben und Anforderungen", ZielName = "Ziel 2", ZielBeschreibung = "Herr Sowieso hat Angstbewältigungsstrategien sowie Stabilisierungstechniken erlernt und kann diese in Alltagssituationen anwenden" });
|
||||
|
||||
//using (var processor = new PdfDocumentProcessor())
|
||||
//{
|
||||
// using (var ms = new MemoryStream(daten))
|
||||
// {
|
||||
// processor.LoadDocument(ms);
|
||||
using (var processor = new PdfDocumentProcessor())
|
||||
{
|
||||
using (var ms = new MemoryStream(daten))
|
||||
{
|
||||
processor.LoadDocument(ms);
|
||||
|
||||
// var pdfText = processor.Text;
|
||||
var pdfText = processor.Text;
|
||||
|
||||
|
||||
// }
|
||||
//}
|
||||
var customerGruppe = ErstelleKlientenStammdatenGruppe(pdfText);
|
||||
|
||||
if (customerGruppe != null)
|
||||
{
|
||||
result.Gruppen.Add(customerGruppe);
|
||||
}
|
||||
|
||||
|
||||
result.Ziele = ErstelleAlleZiele(pdfText);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private IList<HilfeplanImportZielDC> ErstelleAlleZiele(string pdfText)
|
||||
{
|
||||
var ziele = new List<HilfeplanImportZielDC>();
|
||||
//Suche Zeile "Zielplanung". So beginnt hinten im Dokument der Bereich mit der Zusammenfassung der Ziele
|
||||
|
||||
var zeilen = pdfText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var startIdx = -1;
|
||||
var endIdx = -1;
|
||||
StringBuilder gesamtTextMitZielen = new StringBuilder();
|
||||
|
||||
for (int i = zeilen.Length - 1; i >= 0; i--)
|
||||
{
|
||||
var z = zeilen[i];
|
||||
|
||||
if (z == "Zielplanung")
|
||||
{
|
||||
startIdx = i;
|
||||
}
|
||||
if (z.StartsWith("Übersicht der Leistungsplanung "))
|
||||
{
|
||||
endIdx = i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (startIdx >= 0)
|
||||
{
|
||||
for (int i = startIdx; i < endIdx; i++)
|
||||
{
|
||||
gesamtTextMitZielen.AppendLine(zeilen[i]);
|
||||
}
|
||||
zeilen = gesamtTextMitZielen.ToString().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
startIdx = 0;
|
||||
while (startIdx >= 0)
|
||||
{
|
||||
var ta = TextAbschnittReader.LeseBisText(zeilen, startIdx, "Lebensbereich ", true, false, false);
|
||||
if (ta.Success)
|
||||
{
|
||||
ziele.AddRange(ErstelleBereichMitZielen(zeilen, ta));
|
||||
startIdx = ta.ZeilenIndex + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
startIdx = -1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return ziele;
|
||||
|
||||
}
|
||||
|
||||
private IList<HilfeplanImportZielDC> ErstelleBereichMitZielen(string[] zeilen, TextAbschnitt ta)
|
||||
{
|
||||
var ziele = new List<HilfeplanImportZielDC>();
|
||||
|
||||
String bereich = zeilen[ta.ZeilenIndex];
|
||||
int idxBereichStart = ta.ZeilenIndex + 1;
|
||||
int idxBereichtEnde = zeilen.Length;
|
||||
|
||||
var taEnde = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Lebensbereich ", true, false, false);
|
||||
if (taEnde.Success)
|
||||
{
|
||||
idxBereichtEnde = taEnde.ZeilenIndex;
|
||||
}
|
||||
|
||||
HilfeplanImportZielDC ziel = null;
|
||||
for (int i = idxBereichStart; i < idxBereichtEnde; i++)
|
||||
{
|
||||
String zeile = zeilen[i];
|
||||
if (zeile.StartsWith("Ziele • ") || zeile.StartsWith("• "))
|
||||
{
|
||||
ziel = new HilfeplanImportZielDC();
|
||||
ziel.Bereich = bereich;
|
||||
ziel.ZielName = zeile.Replace("Ziele • ", "").Replace("• ", "").Trim();
|
||||
|
||||
ziele.Add(ziel);
|
||||
}
|
||||
else if (ziel != null)
|
||||
{
|
||||
if (!IgnoriereZeile(zeile))
|
||||
{
|
||||
ziel.ZielName += " " + zeile.Trim();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return ziele;
|
||||
}
|
||||
|
||||
private bool IgnoriereZeile(string zeile)
|
||||
{
|
||||
if (zeile.StartsWith("(c) Landschaftsverband") || zeile.StartsWith("Gesprächsleitfaden - "))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (zeile.StartsWith("V1") || zeile.StartsWith("V2") || zeile.StartsWith("V3"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private HilfeplanImportItemDC ErstelleKlientenStammdatenGruppe(string pdfText)
|
||||
{
|
||||
if (pdfText.Contains("Individuelle Bedarfsermittlung - Element Basisdaten"))
|
||||
{
|
||||
var customerGruppe = new HilfeplanImportItemDC { Label = "Stammdaten", Items = new List<HilfeplanImportItemDC>() };
|
||||
customerGruppe.Items = LeseKlientenStammdaten(pdfText);
|
||||
|
||||
return customerGruppe;
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<HilfeplanImportItemDC> LeseKlientenStammdaten(string pdfText)
|
||||
{
|
||||
var liste = new List<HilfeplanImportItemDC>();
|
||||
var zeilen = pdfText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
var ta = TextAbschnittReader.LeseBisText(zeilen, 0, "BEI_NRW für den Zeitraum vom ", true, false, false);
|
||||
|
||||
if (ta.Success)
|
||||
{
|
||||
var idx = ta.ZeilenIndex;
|
||||
liste.Add(ErstelleStammdatenFeld("BEI_NRW für den Zeitraum vom", "ApprovalPeriod", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("GP-Nummer/Az", "CustomerReferenceNumber", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Name", "Lastname", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Vorname", "Firstname", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Titel", "Titel", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Geburtsdatum", "Birthdate", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Geschlecht", "Sex", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Nationalität", "Nationality", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Beruf", "Job", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Familienstand", "FamilyStatus", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Anzahl und Alter der Kinder", "Children", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("PLZ", "PostalCode", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Ort", "Town", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Straße", "Street", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Telefon", "Phone", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("Fax", "Fax", zeilen, idx, out idx));
|
||||
liste.Add(ErstelleStammdatenFeld("E-Mail", "EMail", zeilen, idx, out idx));
|
||||
}
|
||||
|
||||
|
||||
|
||||
return liste;
|
||||
}
|
||||
|
||||
private HilfeplanImportItemDC ErstelleStammdatenFeld(string label, string fieldname, string[] zeilen, int startIndex, out int foundIdx)
|
||||
{
|
||||
var item = new HilfeplanImportItemDC { Label = label, FieldName = fieldname };
|
||||
|
||||
var ta = TextAbschnittReader.LeseBisText(zeilen, startIndex, label, true, false, false);
|
||||
foundIdx = 0;
|
||||
if (ta.Success)
|
||||
{
|
||||
item.Content = zeilen[ta.ZeilenIndex].Replace(label, "").Trim();
|
||||
if (item.Label.Contains("_"))
|
||||
{
|
||||
item.Label = label.Replace("_", "__");
|
||||
}
|
||||
foundIdx = ta.ZeilenIndex;
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
23
Service/Import/TextAbschnitt.cs
Normal file
23
Service/Import/TextAbschnitt.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using DevExpress.Pdf;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.Import
|
||||
{
|
||||
public class TextAbschnitt
|
||||
{
|
||||
public String Text { get; set; }
|
||||
|
||||
public int ZeilenIndex { get; set; }
|
||||
|
||||
public bool Success { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
42
Service/Import/TextAbschnittReader.cs
Normal file
42
Service/Import/TextAbschnittReader.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using DevExpress.Pdf;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.Import
|
||||
{
|
||||
public class TextAbschnittReader
|
||||
{
|
||||
|
||||
public static TextAbschnitt LeseBisText(string[] lines, int index, String suchText, bool sucheAmZeilenAnfang, bool sucheInnerhalbDerZeile, bool sucheAmZeilenEnde)
|
||||
{
|
||||
var ta = new TextAbschnitt();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
ta.ZeilenIndex = index;
|
||||
while (index < lines.Length)
|
||||
{
|
||||
String line = lines[index];
|
||||
sb.AppendLine(line);
|
||||
|
||||
if ((sucheAmZeilenAnfang && line.StartsWith(suchText)) || (sucheInnerhalbDerZeile && line.Contains(suchText)) || (sucheAmZeilenEnde && line.EndsWith(suchText)))
|
||||
{
|
||||
ta.Success = true;
|
||||
ta.ZeilenIndex = index;
|
||||
ta.Text = sb.ToString();
|
||||
|
||||
return ta;
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
return ta;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -102,8 +102,8 @@ namespace BeWo.Service.Invoicing
|
||||
//decimal flmCleared = 0;
|
||||
|
||||
records = records.OrderBy<ServiceRecord, DateTime>(sr => sr.Start.HasValue ? sr.Start.Value : DateTime.MinValue).ToList<ServiceRecord>();
|
||||
decimal maxApprovedMinutes = ((si.ApprovedFLS ?? 0) * 60) / rf;
|
||||
decimal totalMinutes = 0;
|
||||
decimal maxApprovedMinutes = (si.ApprovedFLS ?? 0) * 60;
|
||||
decimal totalMinutesGeleistet = 0;
|
||||
foreach (var iRecord in records)
|
||||
{
|
||||
if (iRecord.ServiceDescription.ServiceCategory.IsBillable)
|
||||
@@ -159,14 +159,16 @@ namespace BeWo.Service.Invoicing
|
||||
|
||||
if (ap != null)
|
||||
{
|
||||
//Christian wars:-)
|
||||
if (SchneideBeiErreichenDesBudgetsAb)
|
||||
//Christian wars:-)
|
||||
var dauerBudgetMitRf = dauerBudget * ((ap.RateFactor ?? 0) + 100) / 100;
|
||||
if (SchneideBeiErreichenDesBudgetsAb)
|
||||
{
|
||||
|
||||
if (totalMinutes + dauerBudget > maxApprovedMinutes)
|
||||
if (totalMinutesGeleistet + dauerBudgetMitRf > maxApprovedMinutes)
|
||||
{
|
||||
dauerBudget = maxApprovedMinutes - totalMinutes;
|
||||
if (dauerBudget < 0)
|
||||
dauerBudget = maxApprovedMinutes - totalMinutesGeleistet;
|
||||
dauerBudget /= ((ap.RateFactor ?? 0) + 100) / 100;
|
||||
|
||||
if (dauerBudget < 0)
|
||||
{
|
||||
dauerBudget = 0;
|
||||
}
|
||||
@@ -175,8 +177,12 @@ namespace BeWo.Service.Invoicing
|
||||
dauerAbrechenbar = dauerBudget;
|
||||
}
|
||||
}
|
||||
}
|
||||
totalMinutes += dauerBudget;
|
||||
|
||||
|
||||
}
|
||||
|
||||
totalMinutesGeleistet += dauerBudgetMitRf;
|
||||
|
||||
ap.RecordedMinutes += dauerAbrechenbar;
|
||||
ap.BudgetMinutes += dauerBudget;
|
||||
}
|
||||
@@ -190,7 +196,8 @@ namespace BeWo.Service.Invoicing
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
si.RecordedMinutesTotal = totalMinutesGeleistet;
|
||||
|
||||
//decimal? maxAmount = CalculateMaxAmount(si, apList);
|
||||
var gesamtListe = new List<ApprovalPeriod>();
|
||||
gesamtListe.AddRange(apListFLS.Where(a => a.RecordedMinutes > 0));
|
||||
|
||||
@@ -484,9 +484,9 @@ namespace BeWo.Service.Invoicing
|
||||
}
|
||||
}
|
||||
|
||||
si.ApprovedFLSWithActualHourlyRate = Math.Round(si.ApprovedFLSWithActualHourlyRate, 4, MidpointRounding.AwayFromZero);
|
||||
si.ApprovedFLSWithHourlyRate3 = Math.Round(si.ApprovedFLSWithHourlyRate3, 4, MidpointRounding.AwayFromZero);
|
||||
si.ApprovedFLSWithOldHourlyRate = Math.Round(si.ApprovedFLSWithOldHourlyRate, 4, MidpointRounding.AwayFromZero);
|
||||
si.ApprovedFLSWithActualHourlyRate = Math.Round(si.ApprovedFLSWithActualHourlyRate, 2, MidpointRounding.AwayFromZero);
|
||||
si.ApprovedFLSWithHourlyRate3 = Math.Round(si.ApprovedFLSWithHourlyRate3, 2, MidpointRounding.AwayFromZero);
|
||||
si.ApprovedFLSWithOldHourlyRate = Math.Round(si.ApprovedFLSWithOldHourlyRate, 2, MidpointRounding.AwayFromZero);
|
||||
|
||||
decimal rf = 1;
|
||||
if (si.RateFactor.HasValue && si.RateFactor.Value != 0)
|
||||
@@ -903,17 +903,19 @@ namespace BeWo.Service.Invoicing
|
||||
{
|
||||
if (ii.UnitCount.HasValue)
|
||||
{
|
||||
var unitCountBudget = Math.Round(ii.UnitCountBudget ?? ii.UnitCount ?? 0, 2, MidpointRounding.AwayFromZero);
|
||||
var unitCountBudget = Math.Round(ii.UnitCountBudget ?? ii.UnitCount ?? 0, 2, MidpointRounding.AwayFromZero);
|
||||
if (maxApprovedFls < unitCountBudget)
|
||||
unitCountBudget = maxApprovedFls;
|
||||
|
||||
maxApprovedFls -= unitCountBudget;
|
||||
|
||||
|
||||
ii.UnitCount = Math.Round(ii.UnitCount.Value, 2, MidpointRounding.AwayFromZero);
|
||||
//if (unitCountBudget < ii.UnitCount)
|
||||
//{
|
||||
// ii.UnitCount = unitCountBudget;
|
||||
//}
|
||||
if (ii.AmountPerUnit.HasValue)
|
||||
if (ii.AmountPerUnit.HasValue)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(ii.ItemDescription) && ii.ItemDescription == "Fehlkontakte" && ii.ProzentAbrechenbar.HasValue)
|
||||
{
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace BeWo.Service.Plugins
|
||||
//t = "9098141768"; // Fib e.V. Marburg
|
||||
//t = "1505148718"; // VSD Hamm
|
||||
//t = "5926081834"; // Spektrum
|
||||
//t = "1378137009"; // BeWo Direkt+
|
||||
//t = "1378137009"; // BeWo Direkt
|
||||
//t = "3010479871"; // Aachener Verein
|
||||
//t = "3849764093"; // Club 74
|
||||
//t = "5805202339"; // Wegweiser Betreuungsdienst
|
||||
|
||||
@@ -386,11 +386,13 @@
|
||||
<Compile Include="Import\AvisImport\AviseImporter.cs" />
|
||||
<Compile Include="Import\AvisImport\HilfeplanInfo.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisTextReader.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisTextAbschnitt.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisTextAbschnittReader.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisMonatGesamt.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisKlientGesamt.cs" />
|
||||
<Compile Include="Import\AvisImport\LvrAvisPdfReader.cs" />
|
||||
<Compile Include="Import\AvisImport\Avis.cs" />
|
||||
<Compile Include="Import\TextAbschnittReader.cs" />
|
||||
<Compile Include="Import\TextAbschnitt.cs" />
|
||||
<Compile Include="Import\Perseh\PersehReader.cs" />
|
||||
<Compile Include="Invoicing\ApprovalPeriod.cs" />
|
||||
<Compile Include="Invoicing\GeneralInvoiceCreation.cs" />
|
||||
|
||||
@@ -168,6 +168,9 @@ namespace BS.Shared.DataContracts
|
||||
[DataMember]
|
||||
public decimal RecordedBillableFLSNetto { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public decimal RecordedMinutesTotal { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public decimal RecordedBillableFLSNotBillableCustomerAbsent { get; set; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user