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

This commit is contained in:
2026-03-04 12:21:32 +01:00
71 changed files with 4879 additions and 256 deletions

View File

@@ -56,7 +56,7 @@ namespace BeWo
public static LoginControl LoginControl;
public static MainControl MainControl;
public static string ShortVersion = "3.30";
public static string ShortVersion = "3.31";
public static string Version => BeWoAppInfo.BeWoAppVersion.ToString();
public static int RenderTier = 0;

View File

@@ -62,7 +62,7 @@
Content="Bearbeiten aktivieren"
IsChecked="{Binding IsEditingMode}"
ToolTip="Wenn der Bearbeiten Modus aktiviert ist, können Sie Elemente mit Drag und Drop verschieben"
Visibility="Visible" />
Visibility="Collapsed" />
<Button
Style="{StaticResource ButtonPreviousStyle}"

View File

@@ -92,7 +92,7 @@
Grid.Column="2"
Margin="3"
IsChecked="{Binding ViewModel.IsPublic}"
IsEnabled="{Binding ViewModel.CanEdit, UpdateSourceTrigger=PropertyChanged}" />
IsEnabled="{Binding ViewModel.CanShareEdit, UpdateSourceTrigger=PropertyChanged}" />
<Label Grid.Row="5" Grid.Column="0">Favorite</Label>
<dxe:CheckEdit

View File

@@ -3,6 +3,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ai="clr-namespace:BeWo.View.Controls.AI"
xmlns:ai1="clr-namespace:BeWo.AI.Controls"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:detail="clr-namespace:BeWo.View.Detail"
@@ -25,8 +26,7 @@
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:ve="http://schemas.devexpress.com/winfx/2008/xaml/docking/visualelements"
xmlns:zeit="clr-namespace:BeWo.View.Detail.Zeiterfassung"
xmlns:ai1="clr-namespace:BeWo.AI.Controls"
xmlns:zeit="clr-namespace:BeWo.View.Detail.Zeiterfassung"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
@@ -1723,7 +1723,7 @@
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}"
Style="{StaticResource PrimaryButton}" />
<ai1:VoiceToTextButtonControl TargetTextBox="{Binding ElementName=dokumentationsTextBox}"/>
<ai1:VoiceToTextButtonControl TargetTextBox="{Binding ElementName=dokumentationsTextBox}" />
</StackPanel>
<Button

View File

@@ -110,6 +110,11 @@ namespace BeWo.ViewModel
}
}
public bool CanShareEdit
{
get => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteinShare);
}
public bool CanEdit
{
get => DataContract.CanEdit;

View File

@@ -288,9 +288,9 @@ namespace BeWo.ViewModel
return false;
}
private static bool IsAiModuleRight(UserRightType right) =>
ContainsRight(right, UserRightType.AiModuleView, UserRightType.AiModuleChatAdd, UserRightType.AiModuleChatDelete, UserRightType.AiModuleChatEdit, UserRightType.AiModuleChatClone);
ContainsRight(right, UserRightType.AiModuleView, UserRightType.AiModuleChatAdd, UserRightType.AiModuleChatDelete, UserRightType.AiModuleChatEdit);
private static bool IsAiModuleSettingRight(UserRightType right) =>
ContainsRight(right, UserRightType.AiModuleViewSetting);
ContainsRight(right);
private static bool ContainsRight(UserRightType right, params UserRightType[] rightTypes)
{

View File

@@ -40,9 +40,9 @@ namespace BeWo.ViewModel.View.AI
ReloadConversationsCommand = new DelegateCommand(ReloadConversations);
ReloadModelsCommand = new DelegateCommand(ReloadModels);
OpenSettingCommand = new DelegateCommand(OpenSetting, () => (BeWoApp.AppSettings?.ModuleAiSettingsEnabled ?? true) && BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleViewSetting));
OpenSettingCommand = new DelegateCommand(OpenSetting, () => BeWoApp.AppSettings?.ModuleAiSettingsEnabled ?? false);
RenameCommand = new DelegateCommand(Rename, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleChatEdit) && ListVM.SelectedVM is object);
OpenCloneCommand = new DelegateCommand(OpenClone, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleChatClone) && ListVM.SelectedVM is object && BeWoAppInfo.IsInAiDeveloperMode);
OpenCloneCommand = new DelegateCommand(OpenClone, () => ListVM.SelectedVM is object && BeWoAppInfo.IsInAiDeveloperMode);
CloneCommand = new DelegateCommand(Clone);
AskDeleteCommand = new DelegateCommand(AskDelete, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleChatDelete) && ListVM.SelectedVM is object);

View File

@@ -81,7 +81,7 @@ namespace BeWo.ViewModel.View.Administration
DeletePromptCommand = new DelegateCommand(OpenDeletePromptDialog, canOpenDeletePromptDialog, false);
ChangeFavoritenStatePromptCommand = new DelegateCommand(ChangeFavoritenStatePrompt, canChangeFavoritenStatePrompt, false);
IsEditingMode = true;
IsEditingMode = BeWoApp.HasLoggedOnUserRight(UserRightType.AiModulePromptbausteineEdit);
}
public override bool IsDirty
@@ -110,6 +110,7 @@ namespace BeWo.ViewModel.View.Administration
CopyPromptCommand.RaiseCanExecuteChanged();
PastePromptCommand.RaiseCanExecuteChanged();
DeletePromptCommand.RaiseCanExecuteChanged();
ChangeFavoritenStatePromptCommand.RaiseCanExecuteChanged();
}
public void SaveVMList()
@@ -279,6 +280,7 @@ namespace BeWo.ViewModel.View.Administration
{
var sel_folder = SelectedFolder;
var sel_dc = sel_folder.CopyToEmptyDataContract();
sel_dc.CanEdit = SelectedFolder.CanEdit;
var edit_vm = new AiPromptbausteinFolderVM(sel_dc);
var vm = new AiPromptbausteinFolderViewModel(edit_vm, false);
@@ -362,6 +364,7 @@ namespace BeWo.ViewModel.View.Administration
{
var sel_prompt = SelectedPrompt;
var sel_dc = sel_prompt.CopyToEmptyDataContract();
sel_dc.CanEdit = SelectedPrompt.CanEdit;
var edit_vm = new AiPromptbausteinPromptVM(sel_dc);
var vm = new AiPromptbausteinPromptViewModel(edit_vm, false);
@@ -411,6 +414,7 @@ namespace BeWo.ViewModel.View.Administration
copied_dc.Version = 0;
copied_dc.ParentFolderOid = SelectedFolder.DataContract.Oid;
copied_dc.ActionType = AiActionType;
copied_dc.PromptId = null;
var copied_vm = new AiPromptbausteinPromptVM(copied_dc);
SelectedFolder.SubPrompts.VMList.Add(copied_vm);

View File

@@ -967,6 +967,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerUtils", "Server\Compo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BWSBetreuenWohnenSoziales", "ReportImp\BWSBetreuenWohnenSoziales\BWSBetreuenWohnenSoziales.csproj", "{5604BF7F-B462-45CF-B6F6-920142605B11}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiakonieWerkEssen", "ReportImp\DiakoniewerkEssen\DiakonieWerkEssen.csproj", "{F66F68C1-14A5-493E-8592-C218CF97E326}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PariMobil", "ReportImp\PariMobil\PariMobil.csproj", "{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OwnSoftTestSoziotherapie", "ReportImp\OwnSoftTestSoziotherapie\OwnSoftTestSoziotherapie.csproj", "{18CE9CAC-D867-4CC6-A24B-892C3B36D189}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -11850,6 +11856,78 @@ Global
{5604BF7F-B462-45CF-B6F6-920142605B11}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{5604BF7F-B462-45CF-B6F6-920142605B11}.Release|x86.ActiveCfg = Release|Any CPU
{5604BF7F-B462-45CF-B6F6-920142605B11}.Release|x86.Build.0 = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|.NET.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|.NET.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|x86.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Debug|x86.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|.NET.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.DebugRemote|x86.Build.0 = Debug|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|.NET.ActiveCfg = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|.NET.Build.0 = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|Any CPU.Build.0 = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|x86.ActiveCfg = Release|Any CPU
{F66F68C1-14A5-493E-8592-C218CF97E326}.Release|x86.Build.0 = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|.NET.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|.NET.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|x86.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Debug|x86.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|.NET.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.DebugRemote|x86.Build.0 = Debug|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|.NET.ActiveCfg = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|.NET.Build.0 = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|Any CPU.Build.0 = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|x86.ActiveCfg = Release|Any CPU
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}.Release|x86.Build.0 = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|.NET.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|.NET.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|x86.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Debug|x86.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|.NET.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.DebugRemote|x86.Build.0 = Debug|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|.NET.ActiveCfg = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|.NET.Build.0 = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|Any CPU.Build.0 = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|x86.ActiveCfg = Release|Any CPU
{18CE9CAC-D867-4CC6-A24B-892C3B36D189}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -12328,6 +12406,9 @@ Global
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9} = {C9BAF7C5-797E-4693-8B31-544F90EC0B1C}
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57} = {C9BAF7C5-797E-4693-8B31-544F90EC0B1C}
{5604BF7F-B462-45CF-B6F6-920142605B11} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{F66F68C1-14A5-493E-8592-C218CF97E326} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{18CE9CAC-D867-4CC6-A24B-892C3B36D189} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -195,6 +195,8 @@ namespace BeWo.Data.Security
return "3.29";
if (isRightVersion330(r))
return "3.30";
if (isRightVersion331(r))
return "3.31";
return BASE_VERSION;
}
@@ -229,18 +231,23 @@ namespace BeWo.Data.Security
{
return r == UserRightType.KalenderInAbwesenheitenUebernehmen
|| r == UserRightType.AiModuleView
|| r == UserRightType.AiModuleChatClone
|| r == UserRightType.AiModuleViewSetting
//|| r == UserRightType.AiModuleChatClone
//|| r == UserRightType.AiModuleViewSetting
|| r == UserRightType.AiModuleChatAdd
|| r == UserRightType.AiModuleChatDelete
|| r == UserRightType.AiModuleChatEdit
|| r == UserRightType.AiModulePromptbausteineAdd
//|| r == UserRightType.AiModulePromptbausteineAdd
|| r == UserRightType.AiModulePromptbausteineEdit
|| r == UserRightType.AiModulePromptbausteineRemove
|| r == UserRightType.AiModulePromptbausteineSeeAll
//|| r == UserRightType.AiModulePromptbausteineRemove
//|| r == UserRightType.AiModulePromptbausteineSeeAll
|| r == UserRightType.AiModulePromptbausteineView
//|| r == UserRightType.AiModulePromptbausteineExecute
|| r == UserRightType.AiVoiceView;
}
private static bool isRightVersion331(UserRightType r)
{
return r == UserRightType.AiModulePromptbausteinShare;
}
}
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<NameOfLastUsedPublishProfile>C:\Projects\Bewo\BeWo - Main\Host\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>

View File

@@ -127,6 +127,7 @@ namespace DiakonieLandshut
this.PageHeader = new DevExpress.XtraReports.UI.PageHeaderBand();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.picMasterSilberhorn = new DevExpress.XtraReports.UI.XRPictureBox();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -547,6 +548,7 @@ namespace DiakonieLandshut
// topMarginBand1
//
this.topMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.picMasterSilberhorn,
this.picMasterBayir,
this.picMasterBogner,
this.picMasterHeller,
@@ -1138,6 +1140,15 @@ namespace DiakonieLandshut
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.Text = "Kostenträger:";
//
// picMasterSilberhorn
//
this.picMasterSilberhorn.ImageSource = new DevExpress.XtraPrinting.Drawing.ImageSource("img", resources.GetString("picMasterSilberhorn.ImageSource"));
this.picMasterSilberhorn.LocationFloat = new DevExpress.Utils.PointFloat(387.58F, 0F);
this.picMasterSilberhorn.Name = "picMasterSilberhorn";
this.picMasterSilberhorn.SizeF = new System.Drawing.SizeF(41.62585F, 41.56215F);
this.picMasterSilberhorn.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picMasterSilberhorn.Visible = false;
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1279,5 +1290,6 @@ namespace DiakonieLandshut
private DevExpress.XtraReports.UI.XRLabel lblUnterschriftKlient;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell32;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell33;
private DevExpress.XtraReports.UI.XRPictureBox picMasterSilberhorn;
}
}

View File

@@ -191,6 +191,10 @@ namespace DiakonieLandshut
else if (maLastName.Contains("Bayir"))
{
xrBox.Image = picMasterBayir.Image;
}
else if (maLastName.Contains("Silberhorn"))
{
xrBox.Image = picMasterSilberhorn.Image;
}
}
else

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{F66F68C1-14A5-493E-8592-C218CF97E326}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KundeXyz</RootNamespace>
<AssemblyName>0000000000_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Export, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Invoicing\CustomInvoiceCreation.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="Invoicing\CustomLWLDiggaBerechnung.cs" />
<Compile Include="Invoicing\SettlementInvoiceCreation.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Reporting\CustomMitarbeiterstundenkontoBerechnung.cs" />
<Compile Include="Reporting\CustomReportCreator.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
using Service.Invoicing;
namespace TemplateNeuKunde.Invoicing
{
// public class CustomInvoiceCreation : InvoiceCreation
//{
// //public override void SetInvoiceId(ServiceInvoice invoice)
// //{
// // //invoice.InvoiceBase.InvoiceId = "SBD";
// // //invoice.InvoiceBase.InvoiceTypeText = "";
// //}
// // //Setze für Selbstzahler die Adresse des Klienten
// // public override void SetRecipientInformation(ServiceInvoice serviceInvoice, CostBearer costBearer)
// // {
// // if (costBearer.Organisation.Name == "Selbstzahler")
// // {
// // serviceInvoice.InvoiceBase.RecipientOrganisationOid = costBearer.Organisation.Oid;
// // if (serviceInvoice.InvoiceBase.CostBearer2SupportConcept != null)
// // {
// // var cust = serviceInvoice.InvoiceBase.CostBearer2SupportConcept.SupportConcept.Customer;
// // if (cust.Person.InvoiceAddress != null)
// // {
// // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.InvoiceAddress.CopyToNew();
// // }
// // else if (cust.Person.Address != null)
// // {
// // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.Address.CopyToNew();
// // }
// // serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.FirstName;
// // serviceInvoice.InvoiceBase.RecipientPersonLastName = cust.Person.LastName;
// // serviceInvoice.InvoiceBase.RecipientCustomerOid = cust.Oid;
// // }
// // }
// // }
// }
}

View File

@@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace TemplateNeuKunde.Invoicing
{
public class CustomInvoiceFactory : InvoiceFactory
{
// public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
// {
////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie einer Bewilligung abhängt
//foreach (var item in supportConcepts2ServiceRecords)
//{
// var csc = item.Key;
// var cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(csc.CostBearerRelOids[0]);
// foreach (var scap in cb2sc.ApprovalPeriodList)
// {
// if (scap.ServiceCategory != null)
// {
// var ic = GetInvoiceCreatorForCategory(scap.ServiceCategory.Name);
// if (ic != null)
// return ic;
// }
// }
//}
////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie oder Organisation eines ServiceRecords abhängt
//foreach (var list in supportConcepts2ServiceRecords.Values)
// {
// foreach (var sr in list)
// {
// //Hier wird Kategorie geprüft
// var ic = GetInvoiceCreatorForCategory(sr.ServiceDescription.Category.Name);
// if (ic != null)
// return ic;
// //Hier wird Organisation geprüft
// if (sr.CostBearer.Name.ToLower().Contains("selbstzahler"))
// {
// return new CustomInvoiceCreation();
// }
// }
// }
// return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords);
// }
// private InvoiceCreation GetInvoiceCreatorForCategory(String catName)
// {
// if (!String.IsNullOrEmpty(catName))
// {
// String cat = catName.ToLower().Trim();
// if (cat.IndexOf("assistenz") >= 0)
// return new CustomInvoiceCreation();
// }
// return null;
// }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace TemplateNeuKunde.Invoicing
{
public class CustomLWLDiggaBerechnung : LWLDiggaBerechnung
{
public override void InitBerechnung()
{
//this.Umstellungsdatum = new DateTime(2025, 1, 1);
}
}
}

View File

@@ -0,0 +1,51 @@
//using BeWo.Data.Entities;
//using BeWo.Service.Invoicing;
//using BS.Shared.DataContracts;
//using BS.Shared.Services;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//namespace TemplateNeuKunde.Invoicing
//{
// public class CustomSettlementInvoiceCreation : SettlementInvoiceCreation
// {
// public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
// {
// return false;
// }
//public override bool IsServiceRecordBillable(ServiceRecord iRecord)
//{
// if (iRecord.ServiceDescription.ServiceCategory.Name.Contains("Assistenz"))
// {
// return false;
// }
// return true;
//}
//public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
//{
// si.ApprovedFLSWeekly = 0;
// si.ApprovedFLS = 0;
// foreach (var sp in relDC.ApprovalPeriodList)
// {
// if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
// {
// si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
// decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
// flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
// si.ApprovedFLS += flsTotal;
// }
// }
//}
//public override IList<ServiceRecord> GetBillableServiceRecords(CostBearer2SupportConcept c2s)
//{
// return c2s.ServiceRecords.OrderBy(s => s.Start).Where(s => !s.ServiceDescription.ServiceCategory.Name.ToLower().Contains("assistenz")).ToList();
//}
// }
//}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("KundeXyz")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KundeXyz")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BS.Shared.Extensions;
namespace TemplateNeuKunde.Reporting
{
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{
//Wenn halbe Feiertage konfiguriert werden sollen, muss diese Methode auch im VacationService einkommentiert werden
//public override decimal GetFeiertagsFaktor(DateTime start)
//{
// if (start.Month == 12)
// {
// if (start.Day == 24 || start.Day == 31)
// {
// return 0.5m;
// }
// }
// return base.GetFeiertagsFaktor(start);
//}
}
}

View File

@@ -0,0 +1,201 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.DefaultReports;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using DevExpress.XtraReports.UI;
namespace TemplateNeuKunde.Reporting
{
//public class CustomReportCreator : DefaultReportCreator
//{
// //Einkommentiere für LWL Prüfliste, ZAD Nummer und ServiceDescription ergänzen
// //SQL Queries:
// //INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`SQL`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`)
// //VALUES(500,24,0,'LWL Quittierungsbelege','select \':Von\', \':Bis\', \':Klient/in\'','direct', NULL, NULL, NULL,1,1, NULL,'1', NULL, NULL, NULL);
// //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(4,500,25,'Von_Bis',5, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
// //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(5,500,25,'Klient/in',2, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
// //public override XtraReport CreateQueryReport(long queryOid, string queryReportId)
// //{
// // if (queryOid == 500)
// // {
// // return CreateLwlPruefliste(CreateQueryRO(queryOid, queryReportId));
// // }
// // return base.CreateQueryReport(queryOid, queryReportId);
// //}
// //private LwlPruefliste CreateLwlPruefliste(QueryRO queryRo)
// //{
// // var liste = new LwlPruefliste();
// // if (queryRo.Rows.Count > 0)
// // {
// // DateTime start = DateTime.MaxValue;
// // DateTime end = DateTime.MinValue;
// // if (queryRo.Rows[0].Field1 != null)
// // {
// // DateTime.TryParse(queryRo.Rows[0].Field1.ToString(), out start);
// // }
// // if (queryRo.Rows[0].Field2 != null)
// // {
// // DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out end);
// // }
// // long? customerOid = null;
// // if (queryRo.Rows[0].Field3.ToString() == "0")
// // {
// // var masterReport = new LwlPruefliste();
// // //masterReport.CreateDocument();
// // var customerList = DAOFactory.GenericDAO.GetAllActive<Customer>();
// // var customerListOrd = customerList.OrderBy(c => c.Person.LastNameFirstName).ToList();
// // foreach (var c in customerListOrd)
// // {
// // var ro = LwlPrueflisteRO.Create(start, end, "9011113", c.Oid);
// // if (ro.ServiceRecords != null && ro.ServiceRecords.Count > 0)
// // {
// // try
// // {
// // liste = new LwlPruefliste();
// // liste.SetReportDataSource(ro);
// // liste.CreateDocument();
// // masterReport.Pages.AddRange(liste.Pages);
// // }
// // catch
// // {
// // // ignore - z.B. kein Hilfeplan
// // }
// // }
// // }
// // return (LwlPruefliste)masterReport;
// // }
// // if (queryRo.Rows[0].Field3 != null)
// // {
// // if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut))
// // {
// // customerOid = oidOut;
// // }
// // var ro = LwlPrueflisteRO.Create(start, end, "9011113", customerOid);
// // liste.SetReportDataSource(ro);
// // return liste;
// // }
// // }
// // return liste;
// //}
// //Einkommentiere für LWL 2. Seite mit Anhang für Budgetnachweise
// //public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid)
// //{
// // return base.CreateSettlementReport(dcId, invoiceBaseOid, true);
// //}
// //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);
// // if (lROs.Count > 0)
// // {
// // var rootReport = CreateServicesOverviewReportForRo(lROs[0], serviceCategoryOid);
// // rootReport.CreateDocument();
// // for (int i = 1; i < lROs.Count; i++)
// // {
// // var lNext = CreateServicesOverviewReportForRo(lROs[i], serviceCategoryOid);
// // 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();
// //}
//public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, String reportId)
//{
// return CreateServicesOverviewReportForRo(ro, null);
//}
// //private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
// //{
// // IBeWoReport<ServicesOverviewRO> report = null;
// // String kt = "";
// // if (!String.IsNullOrWhiteSpace(ro.Costbearer))
// // kt = ro.Costbearer.Trim();
// // String function = "";
// // if (ro.CostBearer2SupportConceptList != null)
// // {
// // foreach (var c2s in ro.CostBearer2SupportConceptList)
// // {
// // if (c2s.CostBearer.Organisation.Function != null && !String.IsNullOrWhiteSpace(ro.Costbearer) && c2s.CostBearer.Organisation.Name == ro.Costbearer)
// // function = c2s.CostBearer.Organisation.Function.Value;
// // }
// // }
// // if (kt == "Kreisverwaltung Mainz-Bingen")
// // report = new AlzeyTeilhabe.StundenzettelBi2();
// // if (report == null && function == "Kostenträger Soziotherapie")
// // report = new StundenzettelSoziotherapie();
// // if (report == null)
// // report = new AlzeyTeilhabe.StundenzettelWo();
// // report.SetReportDataSource(ro);
// // return report as XtraReport;
// //}
//}
}

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -240,7 +240,8 @@ namespace DiakonischesWerkMuelheimTwg
this.lblAbrechnungTitel.SizeF = new System.Drawing.SizeF(650F, 21.20831F);
this.lblAbrechnungTitel.StylePriority.UseBackColor = false;
this.lblAbrechnungTitel.StylePriority.UseFont = false;
this.lblAbrechnungTitel.Text = "[BusinessPartnerId] / Rechnung über Barbetrag [InvoiceDateTime!MMMM yyyy]";
this.lblAbrechnungTitel.Text = "[BusinessPartnerId] / Rechnung: [InvoiceNumber] über Barbetrag [InvoiceDateTime!M" +
"MMM yyyy]";
this.lblAbrechnungTitel.WordWrap = false;
//
// xrLabel7

View File

@@ -62,6 +62,8 @@ namespace DiakonischesWerkMuelheimTwg
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.lbl2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
@@ -149,6 +151,8 @@ namespace DiakonischesWerkMuelheimTwg
// Page1
//
this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel12,
this.xrLabel10,
this.xrLabel9,
this.xrLabel1,
this.xrLabel6,
@@ -415,11 +419,11 @@ namespace DiakonischesWerkMuelheimTwg
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(429.5001F, 56.50005F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(121.5419F, 23.00001F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(247.4995F, 23.00002F);
this.xrLabel8.StylePriority.UseBorders = false;
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.Text = "xrLabel8";
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// lbl2
//
@@ -431,6 +435,36 @@ namespace DiakonischesWerkMuelheimTwg
this.lbl2.StylePriority.UseFont = false;
this.lbl2.Text = "Dienstleistungsstunden als unmittelbare Betreuungsleistungen des Betreuten Wohnen" +
"s erbracht.";
//
// xrLabel10
//
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceNumber")});
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(429.5001F, 79.50007F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(247.4994F, 23.00001F);
this.xrLabel10.StylePriority.UseBorders = false;
this.xrLabel10.StylePriority.UseTextAlignment = false;
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrLabel10.TextFormatString = "Rechnungsnr. {0}";
//
// xrLabel12
//
this.xrLabel12.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "BusinessPartnerId")});
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(429.5001F, 102.5001F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(247.4994F, 23.00001F);
this.xrLabel12.StylePriority.UseBorders = false;
this.xrLabel12.StylePriority.UseTextAlignment = false;
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrLabel12.TextFormatString = "{0}";
//
// bindingSource1
//
@@ -444,6 +478,8 @@ namespace DiakonischesWerkMuelheimTwg
this.topMarginBand1,
this.bottomMarginBand1,
this.Page1});
this.ComponentStorage.AddRange(new System.ComponentModel.IComponent[] {
this.bindingSource1});
this.DataSource = this.bindingSource1;
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
this.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
@@ -496,5 +532,7 @@ namespace DiakonischesWerkMuelheimTwg
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
}
}

View File

@@ -73,30 +73,113 @@ namespace HshCologne.Invoicing
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc)
{
// normale Items + 2 verschiedene Sorten Fahrtpauschalen + besondere Logik im Fall von Leistungskategorie FAM (Tagespauschale pro Tag mit Leistungskategorie)
var list = new List<InvoiceItem>();
foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod)
// Zusätzlich haben die ein paar Sonderfälle, wo sie im Teilstationären Bereich auch Wochenend- und Feiertagszuschläge abrechnen dürfen
// Wir haben dafür im Hilfeplan das Feld Beratung benötigt in "Mit Wochenendzuschlägen" umbenannt
bool zuschlag = false;
if (scap.CostBearer2SupportConcept.SupportConcept.ConsultingNeeded.HasValue && scap.CostBearer2SupportConcept.SupportConcept.ConsultingNeeded.Value)
{
// Für alle Leistungskategorien normal, außer für FAM - da wird pro geleistetem Tag abgerechnet
if (iServiceRecord.ServiceDescription.Category.IsBillable)
zuschlag = true;
_vs = PluginLoader.FindClass<VacationService>();
}
var list = new List<InvoiceItem>();
if (zuschlag) // Abrechnung von Wochenend- und Feiertagszuschlägen im Teilstationärenbereich
{
foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod)
{
if (!iServiceRecord.AlreadyAccounted)
if (iServiceRecord.ServiceDescription.Category.IsBillable && !iServiceRecord.AlreadyAccounted)
{
InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc);
if (invoiceItem != null)
InvoiceItem ii = CreateInvoiceItem(iServiceRecord, scap, calc);
if (ii != null)
{
list.Add(invoiceItem);
}
// Die haben ein paar Sonderfälle, wo sie im Teilstationären Bereich auch Wochenend- und Feiertagszuschläge abrechnen dürfen
// Wir haben dafür im Hilfeplan das Feld Beratung benötigt in "Mit Wochenendzuschlägen" umbenannt
if (scap.CostBearer2SupportConcept.SupportConcept.ConsultingNeeded.HasValue
&& scap.CostBearer2SupportConcept.SupportConcept.ConsultingNeeded.Value)
{
_vs = PluginLoader.FindClass<VacationService>();
var zv = BerechneZuschlag(iServiceRecord);
if (zv.MinutenGesamt == zv.MinutenNormal) // keine Änderung nötig, normale Arbeitszeit
{
list.Add(ii);
}
else if (zv.MinutenSamstag13_24 > 0) // Samstags ab 13 Uhr Zuschlag 20 %
{
if (zv.MinutenSamstag13_24 != zv.MinutenGesamt)
{
var iiCopy = new InvoiceItem();
CopyInvoiceItem(ii, iiCopy);
ii.UnitCount = Math.Round((decimal)zv.MinutenSamstag13_24/60, 2, MidpointRounding.AwayFromZero);
iiCopy.UnitCount = Math.Round((decimal)zv.MinutenNormal / 60, 2, MidpointRounding.AwayFromZero);
iiCopy.AmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
iiCopy.GrossAmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
iiCopy.UnitDescription = "Samstag bis 13 Uhr";
list.Add(iiCopy);
}
ii.AmountPerUnit = Math.Round(ii.AmountPerUnit.Value * 1.2m, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.UnitDescription = "Samstag ab 13 Uhr";
list.Add(ii);
}
else if (zv.MinutenSonntag > 0)// Sonntags Zuschlag 25 %
{
if (zv.MinutenSonntag != zv.MinutenGesamt)
{
var iiCopy = new InvoiceItem();
CopyInvoiceItem(ii, iiCopy);
ii.UnitCount = Math.Round((decimal)zv.MinutenSonntag / 60, 2, MidpointRounding.AwayFromZero);
iiCopy.UnitCount = Math.Round((decimal)zv.MinutenNormal / 60, 2, MidpointRounding.AwayFromZero);
iiCopy.AmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
iiCopy.GrossAmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
list.Add(iiCopy);
}
ii.AmountPerUnit = Math.Round(ii.AmountPerUnit.Value * 1.25m, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.UnitDescription = "Sonntag ganztags";
list.Add(ii);
}
else if (zv.MinutenFeiertag > 0)// Feiertag Zuschlag 50 %
{
if (zv.MinutenFeiertag != zv.MinutenGesamt)
{
var iiCopy = new InvoiceItem();
CopyInvoiceItem(ii, iiCopy);
ii.UnitCount = Math.Round((decimal)zv.MinutenFeiertag / 60, 2, MidpointRounding.AwayFromZero);
iiCopy.UnitCount = Math.Round((decimal)zv.MinutenNormal / 60, 2, MidpointRounding.AwayFromZero);
iiCopy.AmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
iiCopy.GrossAmountTotal = iiCopy.AmountPerUnit * iiCopy.UnitCount;
list.Add(iiCopy);
}
ii.AmountPerUnit = Math.Round(ii.AmountPerUnit.Value * 1.5m, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.UnitDescription = "Gesetzlicher Feiertag";
list.Add(ii);
}
}
iServiceRecord.AlreadyAccounted = true;
}
}
}
else
{
foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod)
{
// Für alle Leistungskategorien normal, außer für FAM - da wird pro geleistetem Tag abgerechnet
if (iServiceRecord.ServiceDescription.Category.IsBillable)
{
if (!iServiceRecord.AlreadyAccounted)
{
InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc);
if (invoiceItem != null)
{
list.Add(invoiceItem);
}
iServiceRecord.AlreadyAccounted = true;
}
}
}
}
if (serviceRecordsInPeriod != null && serviceRecordsInPeriod.Count > 0)
{
// Fahrtkosten aus eingetragenen Kilometern
@@ -127,7 +210,7 @@ namespace HshCologne.Invoicing
int count = serviceRecordsInPeriod.Count(sr => leistungen.Contains(sr.ServiceDescription.Name));
custKm = custKm * count;
var fitem = CreateFahrkostenInvoiceItem(serviceRecordsInPeriod, scap, calc, custKm);
if (fitem != null)
if (fitem != null && list.Count > 0) // für den Fall das mal sich eine fehlerhafte Bewilligung eingeschlichen hat, werden die Fahrten nur einmal berücksichtigt
{
list.Add(fitem);
}
@@ -368,109 +451,134 @@ namespace HshCologne.Invoicing
return itemList;
}
// public virtual Zeitverteilung2 BerechneZuschlag(ServiceRecord sr)
// {
// Zeitverteilung2 zv = new Zeitverteilung2();
// DateTime datum = sr.Start.Value;
// var duration = GetDuration(sr);
// if (duration > 0)
// {
// if (_vs.IstFeiertag(datum))
// {
// zv.MinutenFeiertag = CheckUhrzeiten(datum, 0, 24, (double)duration);
// }
// else if (sr.Start.Value.DayOfWeek == DayOfWeek.Sunday)
// {
// zv.MinutenSonntag = CheckUhrzeiten(datum, 6, 22, (double)duration);
// }
// else if (sr.Start.Value.DayOfWeek == DayOfWeek.Saturday)
// {
// zv.MinutenSamstag13_24 = CheckUhrzeiten(datum, 13, 24, (double)duration);
// }
// }
public virtual Zeitverteilung2 BerechneZuschlag(ServiceRecordDC sr)
{
Zeitverteilung2 zv = new Zeitverteilung2();
DateTime datum = sr.Start.Value;
var duration = GetDuration(sr);
if (duration > 0)
{
if (_vs.IstFeiertag(datum))
{
zv.MinutenFeiertag = CheckUhrzeiten(datum, 0, 24, (double)duration);
}
else if (sr.Start.Value.DayOfWeek == DayOfWeek.Sunday)
{
zv.MinutenSonntag = CheckUhrzeiten(datum, 0, 24, (double)duration);
}
else if (sr.Start.Value.DayOfWeek == DayOfWeek.Saturday)
{
zv.MinutenSamstag13_24 = CheckUhrzeiten(datum, 13, 24, (double)duration);
}
zv.MinutenNormal = (double)duration - zv.MinutenFeiertag - zv.MinutenSamstag13_24 - zv.MinutenSonntag;
zv.MinutenGesamt = (double)duration;
}
// return zv;
// }
return zv;
}
// private decimal GetDuration(ServiceRecord sr)
// {
// decimal duration = 0;
private decimal GetDuration(ServiceRecordDC sr)
{
decimal duration = 0;
// if (sr.GroupRoundedDuration.HasValue)
// {
// duration = sr.GroupRoundedDuration.Value;
// }
// else
// {
// duration = sr.RoundedDuration;
// }
// if (sr.ServiceDescription != null && sr.ServiceDescription.ServiceCategory != null)
// {
// var p = sr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
// if (sr.ServiceDescription.ProzentAbrechnung.HasValue)
// {
// p = sr.ServiceDescription.ProzentAbrechnung.Value;
// }
if (sr.GroupRoundedDuration.HasValue)
{
duration = sr.GroupRoundedDuration.Value;
}
else
{
duration = sr.RoundedDuration;
}
if (sr.ServiceDescription != null && sr.ServiceDescription.Category != null)
{
var p = sr.ServiceDescription.Category.Percentage;
if (sr.ServiceDescription.ProzentAbrechnung.HasValue)
{
p = sr.ServiceDescription.ProzentAbrechnung.Value;
}
// if (p != 100 && p > 0)
// {
// duration *= p / 100;
// }
// }
if (p != 100 && p > 0)
{
duration *= p / 100;
}
}
// return duration;
// }
return duration;
}
// private double CheckUhrzeiten(DateTime start, int startStunde, int endStunde, double minuten)
// {
// if (startStunde > endStunde) //Nachts
// {
// DateTime nachtStartDt = start.Date.AddHours(startStunde);
// DateTime nachtEndDt = start.Date.AddDays(1).AddHours(endStunde);
// DateTime dtEnd = start.AddMinutes(minuten);
private double CheckUhrzeiten(DateTime start, int startStunde, int endStunde, double minuten)
{
if (startStunde > endStunde) //Nachts
{
DateTime nachtStartDt = start.Date.AddHours(startStunde);
DateTime nachtEndDt = start.Date.AddDays(1).AddHours(endStunde);
DateTime dtEnd = start.AddMinutes(minuten);
// double minutes = GetOverlappingMinutes(start, dtEnd, nachtStartDt, nachtEndDt);
// minutes += GetOverlappingMinutes(start, dtEnd, nachtStartDt.AddDays(-1), nachtEndDt.AddDays(-1));
// minutes += GetOverlappingMinutes(start, dtEnd, nachtStartDt.AddDays(1), nachtEndDt.AddDays(1));
double minutes = GetOverlappingMinutes(start, dtEnd, nachtStartDt, nachtEndDt);
minutes += GetOverlappingMinutes(start, dtEnd, nachtStartDt.AddDays(-1), nachtEndDt.AddDays(-1));
minutes += GetOverlappingMinutes(start, dtEnd, nachtStartDt.AddDays(1), nachtEndDt.AddDays(1));
// return minutes;
// }
// else
// {
// DateTime tagsStartDt = start.Date.AddHours(startStunde);
// DateTime tagsEndDt = start.Date.AddHours(endStunde);
// DateTime dtEnd = start.AddMinutes(minuten);
// double minutes = GetOverlappingMinutes(start, dtEnd, tagsStartDt, tagsEndDt);
return minutes;
}
else
{
DateTime tagsStartDt = start.Date.AddHours(startStunde);
DateTime tagsEndDt = start.Date.AddHours(endStunde);
DateTime dtEnd = start.AddMinutes(minuten);
double minutes = GetOverlappingMinutes(start, dtEnd, tagsStartDt, tagsEndDt);
// return minutes;
// }
// }
return minutes;
}
}
// private double GetOverlappingMinutes(DateTime start, DateTime end, DateTime start2, DateTime end2)
// {
// if (end > start2 && start < end2)
// {
// DateTime dtStart = start;
// if (dtStart < start2)
// dtStart = start2;
private double GetOverlappingMinutes(DateTime start, DateTime end, DateTime start2, DateTime end2)
{
if (end > start2 && start < end2)
{
DateTime dtStart = start;
if (dtStart < start2)
dtStart = start2;
// DateTime dtEnd = end;
// if (dtEnd > end2)
// dtEnd = end2;
// TimeSpan ts = dtEnd.Subtract(dtStart);
DateTime dtEnd = end;
if (dtEnd > end2)
dtEnd = end2;
TimeSpan ts = dtEnd.Subtract(dtStart);
// return ts.TotalMinutes;
// }
return ts.TotalMinutes;
}
// return 0;
// }
//}
return 0;
}
//public class Zeitverteilung2
//{
// public double MinutenSamstag13_24 { get; set; }
// public double MinutenSonntag { get; set; }
// public double MinutenFeiertag { get; set; }
//}
private void CopyInvoiceItem(InvoiceItem existingItem, InvoiceItem copyItem)
{
copyItem.AccountingInterval = existingItem.AccountingInterval;
copyItem.AmountPerUnit = existingItem.AmountPerUnit;
copyItem.AmountTotal = existingItem.AmountTotal;
copyItem.ApprovalUnit = existingItem.AccountingInterval;
copyItem.ApprovedPerUnit = existingItem.ApprovedPerUnit;
copyItem.GrossAmountTotal = existingItem.GrossAmountTotal;
copyItem.ItemDescription = existingItem.ItemDescription;
copyItem.ItemPeriodEnd = existingItem.ItemPeriodEnd;
copyItem.ItemPeriodStart = existingItem.ItemPeriodStart;
copyItem.MaxApprovedAmount = existingItem.MaxApprovedAmount;
copyItem.MaxApprovedUnitCount = existingItem.MaxApprovedUnitCount;
copyItem.RateFactor = existingItem.RateFactor;
copyItem.ReceivedAmount = existingItem.ReceivedAmount;
copyItem.SupportConceptApprovalPeriodOid = existingItem.SupportConceptApprovalPeriodOid;
copyItem.UnitCount = existingItem.UnitCount;
copyItem.UnitDescription = existingItem.UnitDescription;
copyItem.Notice = existingItem.Notice;
copyItem.ServiceRecord = existingItem.ServiceRecord;
}
public class Zeitverteilung2
{
public double MinutenSamstag13_24 { get; set; }
public double MinutenSonntag { get; set; }
public double MinutenFeiertag { get; set; }
public double MinutenNormal { get; set; }
public double MinutenGesamt { get; set; }
}
}
}

View File

@@ -30,9 +30,9 @@ namespace LebenshilfeWolfsburg.Reporting
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary2 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary3 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
@@ -44,6 +44,7 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell33 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -57,6 +58,7 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.columnWegepauschaleQuali = new DevExpress.XtraReports.UI.XRTableCell();
@@ -91,6 +93,7 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrPictureBox3 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
@@ -103,10 +106,9 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.wennGruppeAnzPersonen = new DevExpress.XtraReports.UI.CalculatedField();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.Erlaeuterung = new DevExpress.XtraReports.UI.CalculatedField();
this.Gruppenangebot = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -200,7 +202,7 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell14.StylePriority.UseTextAlignment = false;
this.xrTableCell14.Text = "xrTableCell14";
this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell14.Weight = 0.0818910743966614D;
this.xrTableCell14.Weight = 0.081322979871435414D;
//
// xrTableCell2
//
@@ -211,12 +213,12 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell2.StylePriority.UseFont = false;
this.xrTableCell2.StylePriority.UseTextAlignment = false;
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell2.Weight = 0.11870551698505645D;
this.xrTableCell2.Weight = 0.11927361151028244D;
//
// xrTableCell10
//
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Notice3")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Gruppenangebot")});
this.xrTableCell10.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.StylePriority.UseFont = false;
@@ -236,6 +238,20 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell12.Weight = 0.10843058021456664D;
//
// xrTableCell16
//
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.GroupRoundedDuration")});
this.xrTableCell16.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell16.Multiline = true;
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.StylePriority.UseFont = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "xrTableCell16";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell16.TextFormatString = "{0:#.##}";
this.xrTableCell16.Weight = 0.1626457680127131D;
//
// xrTableCell15
//
this.xrTableCell15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
@@ -287,7 +303,7 @@ namespace LebenshilfeWolfsburg.Reporting
// xrTableCell50
//
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Notice")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Erlaeuterung")});
this.xrTableCell50.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell50.Name = "xrTableCell50";
this.xrTableCell50.StylePriority.UseBorders = false;
@@ -433,6 +449,25 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell6.Weight = 0.23987974563492123D;
//
// xrTableCell9
//
this.xrTableCell9.BackColor = System.Drawing.Color.Transparent;
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell9.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell9.Multiline = true;
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 0, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBackColor = false;
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "Summe: Dauer in Minuten direkt mit mehreren IP bei Gruppenangebot ";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell9.Weight = 0.35981960443848743D;
//
// xrTableCell7
//
this.xrTableCell7.BackColor = System.Drawing.Color.Transparent;
@@ -955,6 +990,31 @@ namespace LebenshilfeWolfsburg.Reporting
this.GroupFooter1.KeepTogether = true;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrLabel12
//
this.xrLabel12.BackColor = System.Drawing.Color.Transparent;
this.xrLabel12.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel12.BorderWidth = 2F;
this.xrLabel12.CanGrow = false;
this.xrLabel12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.GroupRoundedDuration")});
this.xrLabel12.Font = new DevExpress.Drawing.DXFont("Calibri", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(364.9999F, 0F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.SizeF = new System.Drawing.SizeF(121.0002F, 21F);
this.xrLabel12.StylePriority.UseBackColor = false;
this.xrLabel12.StylePriority.UseBorders = false;
this.xrLabel12.StylePriority.UseBorderWidth = false;
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.StylePriority.UsePadding = false;
this.xrLabel12.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:0.##}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrLabel12.Summary = xrSummary1;
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel11
//
this.xrLabel11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
@@ -1150,68 +1210,23 @@ namespace LebenshilfeWolfsburg.Reporting
this.wennGruppeAnzPersonen.Expression = "Iif([CustomerCount] > 1,[CustomerCount],\'\')";
this.wennGruppeAnzPersonen.Name = "wennGruppeAnzPersonen";
//
// xrTableCell9
// Erlaeuterung
//
this.xrTableCell9.BackColor = System.Drawing.Color.Transparent;
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell9.Font = new DevExpress.Drawing.DXFont("Calibri", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell9.Multiline = true;
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 0, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBackColor = false;
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "Summe: Dauer in Minuten direkt mit mehreren IP bei Gruppenangebot ";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell9.Weight = 0.35981960443848743D;
this.Erlaeuterung.DataMember = "Services";
this.Erlaeuterung.Expression = "Iif([StartDate].[Year] >= 2026 && [StartDate].[Month] >= 2, [Notice3] , [Notice])" +
"\n";
this.Erlaeuterung.Name = "Erlaeuterung";
//
// xrTableCell16
// Gruppenangebot
//
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.GroupRoundedDuration")});
this.xrTableCell16.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell16.Multiline = true;
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.StylePriority.UseFont = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "xrTableCell16";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell16.TextFormatString = "{0:#.##}";
this.xrTableCell16.Weight = 0.1626457680127131D;
this.Gruppenangebot.DataMember = "Services";
this.Gruppenangebot.Expression = "Iif([IsGroup] == true,\'1\',\'\')";
this.Gruppenangebot.Name = "Gruppenangebot";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// xrLabel12
//
this.xrLabel12.BackColor = System.Drawing.Color.Transparent;
this.xrLabel12.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel12.BorderWidth = 2F;
this.xrLabel12.CanGrow = false;
this.xrLabel12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.GroupRoundedDuration")});
this.xrLabel12.Font = new DevExpress.Drawing.DXFont("Calibri", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(364.9999F, 0F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.SizeF = new System.Drawing.SizeF(121.0002F, 21F);
this.xrLabel12.StylePriority.UseBackColor = false;
this.xrLabel12.StylePriority.UseBorders = false;
this.xrLabel12.StylePriority.UseBorderWidth = false;
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.StylePriority.UsePadding = false;
this.xrLabel12.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:0.##}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrLabel12.Summary = xrSummary1;
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// Leistungsnachweis2024
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1223,7 +1238,9 @@ namespace LebenshilfeWolfsburg.Reporting
this.GroupFooter1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldKontaktArt,
this.wennGruppeAnzPersonen});
this.wennGruppeAnzPersonen,
this.Erlaeuterung,
this.Gruppenangebot});
this.DataSource = this.bindingSource1;
this.DisplayName = "Leistungsnachweis";
this.Font = new DevExpress.Drawing.DXFont("Calibri", 11F);
@@ -1322,5 +1339,7 @@ namespace LebenshilfeWolfsburg.Reporting
private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.CalculatedField Erlaeuterung;
private DevExpress.XtraReports.UI.CalculatedField Gruppenangebot;
}
}

View File

@@ -46,11 +46,11 @@ namespace LebenshilfeWolfsburg.Reporting
minuten += sd.Minutes;
ServicesOverviewRO.CreateSignatureString(sd);
sd.Notice3 = "";
if (sd.IsGroup)
{
sd.Notice3 = "1";
}
//sd.Notice3 = "";
//if (sd.IsGroup)
//{
// sd.Notice3 = "1";
//}
// Felder für Wegepauschale setzen (Wenn FLS FaceToFace und keine Gruppe)
sd.Notice4 = "";

View File

@@ -64,7 +64,6 @@ namespace LebenshilfeWolfsburg.Reporting
this.columnWegepauschaleQuali = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
@@ -107,6 +106,9 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.wennGruppeAnzPersonen = new DevExpress.XtraReports.UI.CalculatedField();
this.Erlaeuterung = new DevExpress.XtraReports.UI.CalculatedField();
this.Gruppenangebot = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -216,7 +218,7 @@ namespace LebenshilfeWolfsburg.Reporting
// xrTableCell10
//
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Notice3")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Gruppenangebot")});
this.xrTableCell10.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.StylePriority.UseFont = false;
@@ -301,7 +303,7 @@ namespace LebenshilfeWolfsburg.Reporting
// xrTableCell50
//
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Notice")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Erlaeuterung")});
this.xrTableCell50.Font = new DevExpress.Drawing.DXFont("Calibri", 10F);
this.xrTableCell50.Name = "xrTableCell50";
this.xrTableCell50.StylePriority.UseBorders = false;
@@ -558,10 +560,6 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell32.Weight = 1.0176190645501537D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
@@ -1212,6 +1210,23 @@ namespace LebenshilfeWolfsburg.Reporting
this.wennGruppeAnzPersonen.Expression = "Iif([CustomerCount] > 1,[CustomerCount],\'\')";
this.wennGruppeAnzPersonen.Name = "wennGruppeAnzPersonen";
//
// Erlaeuterung
//
this.Erlaeuterung.DataMember = "Services";
this.Erlaeuterung.Expression = "Iif([StartDate].[Year] >= 2026 & [StartDate].[Month] >= 2, [Notice3] , [Notice])\n" +
"";
this.Erlaeuterung.Name = "Erlaeuterung";
//
// Gruppenangebot
//
this.Gruppenangebot.DataMember = "Services";
this.Gruppenangebot.Expression = "Iif([IsGroup] == true,\'1\',\'\')";
this.Gruppenangebot.Name = "Gruppenangebot";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// Leistungsnachweis2024Ass
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1223,7 +1238,9 @@ namespace LebenshilfeWolfsburg.Reporting
this.GroupFooter1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldKontaktArt,
this.wennGruppeAnzPersonen});
this.wennGruppeAnzPersonen,
this.Erlaeuterung,
this.Gruppenangebot});
this.DataSource = this.bindingSource1;
this.DisplayName = "Leistungsnachweis";
this.Font = new DevExpress.Drawing.DXFont("Calibri", 11F);
@@ -1322,5 +1339,7 @@ namespace LebenshilfeWolfsburg.Reporting
private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.CalculatedField Erlaeuterung;
private DevExpress.XtraReports.UI.CalculatedField Gruppenangebot;
}
}

View File

@@ -46,11 +46,11 @@ namespace LebenshilfeWolfsburg.Reporting
minuten += sd.Minutes;
ServicesOverviewRO.CreateSignatureString(sd);
sd.Notice3 = "";
//sd.Notice3 = "";
sd.Notice4 = "";
if (sd.IsGroup)
{
sd.Notice3 = "1";
//sd.Notice3 = "1";
sd.Notice4 = sd.EmployeeCount.ToString();
}
// Felder für Ausfallstundnen setzen

View File

@@ -31,6 +31,7 @@ namespace LebenshilfeWolfsburg.Reporting
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Stundenzettel));
DevExpress.XtraReports.UI.XRWatermark xrWatermark1 = new DevExpress.XtraReports.UI.XRWatermark();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrTableServiceRecords1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -49,7 +50,6 @@ namespace LebenshilfeWolfsburg.Reporting
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail2 = new DevExpress.XtraReports.UI.DetailBand();
@@ -91,11 +91,12 @@ namespace LebenshilfeWolfsburg.Reporting
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.fieldArtDerLeistung = new DevExpress.XtraReports.UI.CalculatedField();
this.Erlaeuterung = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -312,10 +313,6 @@ namespace LebenshilfeWolfsburg.Reporting
this.GroupHeader1.RepeatEveryPage = true;
this.GroupHeader1.StylePriority.UseFont = false;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
@@ -804,10 +801,14 @@ namespace LebenshilfeWolfsburg.Reporting
// Erlaeuterung
//
this.Erlaeuterung.DataMember = "Services";
this.Erlaeuterung.Expression = "Iif([StartDate].[Year] >= 2026, [Notice3] , [Notice])";
this.Erlaeuterung.Expression = "Iif([StartDate].[Year] >= 2026 & [StartDate].[Month] >= 2, [Notice3] , [Notice])";
this.Erlaeuterung.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.Erlaeuterung.Name = "Erlaeuterung";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -834,11 +835,13 @@ namespace LebenshilfeWolfsburg.Reporting
this.PageWidth = 1169;
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
this.Version = "23.2";
xrWatermark1.Id = "Watermark1";
this.Watermarks.Add(xrWatermark1);
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}

View File

@@ -18,6 +18,33 @@ namespace NovaSelbstbestimmtLebenUG.Invoicing
private DateTime? accountingPeriodStart = null;
private DateTime? accountingPeriodEnd = null;
public override ServiceInvoice CreateSingleInvoice(int invoiceCounter, CostBearer costBearer, DateTimeSpan invoicePeriod, CompactSupportConceptDC supportConcept, List<ServiceRecordDC> serviceRecords)
{
if (!supportConcept.IsDeleted && !supportConcept.IsArchived)
{
var invoice = new ServiceInvoice();
var supportConceptList = new List<CompactSupportConceptDC> { supportConcept };
SetSenderInformation(invoice);
SetInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConceptList);
SetSingleInvoiceBaseData(invoiceCounter, invoice, costBearer, invoicePeriod, supportConcept);
SetRecipientInformation(invoice, costBearer);
SetServiceInvoicePeriods(invoice, invoice.InvoiceBase.CostBearer2SupportConcept, invoicePeriod,
serviceRecords);
SetServiceInvoicePeriodAmounts(invoice);
SetAmountAdvancePayments(invoice);
return invoice;
}
return null;
}
public override void SetInvoiceBaseData(int invoiceCounter, ServiceInvoice invoice, CostBearer costBearer, DateTimeSpan invoicePeriod,
IList<CompactSupportConceptDC> supportConceptList)
{

View File

@@ -31,6 +31,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -39,6 +40,7 @@
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpo.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />

View File

@@ -94,6 +94,11 @@ namespace BeWo.Report.DefaultReports
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbschlagszahlungenValue = new DevExpress.XtraReports.UI.XRLabel();
this.lblEndbetragValue = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbschlagszahlungenText = new DevExpress.XtraReports.UI.XRLabel();
this.lblEndbetragText = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
@@ -458,7 +463,7 @@ namespace BeWo.Report.DefaultReports
// xrLabel15
//
this.xrLabel15.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 169.6667F);
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 185.2917F);
this.xrLabel15.Name = "xrLabel15";
this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel15.SizeF = new System.Drawing.SizeF(175F, 17F);
@@ -468,7 +473,7 @@ namespace BeWo.Report.DefaultReports
// xrTable4
//
this.xrTable4.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 123.8334F);
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 155.0834F);
this.xrTable4.Name = "xrTable4";
this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow10,
@@ -520,7 +525,7 @@ namespace BeWo.Report.DefaultReports
// xrLabel9
//
this.xrLabel9.Font = new DevExpress.Drawing.DXFont("Verdana", 10F, DevExpress.Drawing.DXFontStyle.Italic);
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 98.83336F);
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 130.0833F);
this.xrLabel9.Name = "xrLabel9";
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel9.SizeF = new System.Drawing.SizeF(250F, 17F);
@@ -633,7 +638,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell33.StylePriority.UseTextAlignment = false;
this.xrTableCell33.Text = "Stunden";
this.xrTableCell33.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell33.Weight = 0.2893277257020575D;
this.xrTableCell33.Weight = 0.25367644132129874D;
//
// xrTableCell34
//
@@ -651,7 +656,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell34.StylePriority.UseTextAlignment = false;
this.xrTableCell34.Text = "Gesamt";
this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell34.Weight = 0.31923915575667006D;
this.xrTableCell34.Weight = 0.35489044013742888D;
//
// DetailReport2
//
@@ -757,7 +762,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell44.StylePriority.UseTextAlignment = false;
this.xrTableCell44.Text = "xrTableCell44";
this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell44.Weight = 0.2893277257020575D;
this.xrTableCell44.Weight = 0.25367644132129874D;
//
// xrTableCell47
//
@@ -773,11 +778,16 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell47.StylePriority.UsePadding = false;
this.xrTableCell47.StylePriority.UseTextAlignment = false;
this.xrTableCell47.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell47.Weight = 0.31923915575667006D;
this.xrTableCell47.Weight = 0.35489044013742888D;
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel10,
this.lblAbschlagszahlungenText,
this.lblEndbetragText,
this.lblEndbetragValue,
this.lblAbschlagszahlungenValue,
this.xrLabel5,
this.xrLabel1,
this.xrLabel9,
@@ -790,11 +800,11 @@ namespace BeWo.Report.DefaultReports
// xrLabel5
//
this.xrLabel5.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 41.20833F);
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 82.875F);
this.xrLabel5.Multiline = true;
this.xrLabel5.Name = "xrLabel5";
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(677.0001F, 39.91668F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(677.0001F, 36.79167F);
this.xrLabel5.StylePriority.UseFont = false;
this.xrLabel5.Text = "Bitte überweisen Sie den offenen Betrag an unser Konto mit der IBAN:\r\nDE52 2805 0" +
"100 0095 9964 27";
@@ -802,17 +812,95 @@ namespace BeWo.Report.DefaultReports
// xrLabel1
//
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim", "Gesamtsumme: {0}")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")});
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(420.9999F, 0F);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(573.1402F, 0F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(255.8333F, 25F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(103.8598F, 21.875F);
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UsePadding = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.Text = "xrLabel1";
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrLabel1.TextFormatString = "{0}";
//
// lblAbschlagszahlungenValue
//
this.lblAbschlagszahlungenValue.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountAdvancedPayments")});
this.lblAbschlagszahlungenValue.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
this.lblAbschlagszahlungenValue.LocationFloat = new DevExpress.Utils.PointFloat(573.1353F, 21.87496F);
this.lblAbschlagszahlungenValue.Name = "lblAbschlagszahlungenValue";
this.lblAbschlagszahlungenValue.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.lblAbschlagszahlungenValue.SizeF = new System.Drawing.SizeF(103.6979F, 21.87999F);
this.lblAbschlagszahlungenValue.StylePriority.UseFont = false;
this.lblAbschlagszahlungenValue.StylePriority.UsePadding = false;
this.lblAbschlagszahlungenValue.StylePriority.UseTextAlignment = false;
this.lblAbschlagszahlungenValue.Text = "xrLabel1";
this.lblAbschlagszahlungenValue.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.lblAbschlagszahlungenValue.TextFormatString = "{0}";
this.lblAbschlagszahlungenValue.Visible = false;
//
// lblEndbetragValue
//
this.lblEndbetragValue.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "NetClaim")});
this.lblEndbetragValue.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
this.lblEndbetragValue.LocationFloat = new DevExpress.Utils.PointFloat(573.1353F, 43.755F);
this.lblEndbetragValue.Name = "lblEndbetragValue";
this.lblEndbetragValue.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.lblEndbetragValue.SizeF = new System.Drawing.SizeF(103.6979F, 21.87998F);
this.lblEndbetragValue.StylePriority.UseFont = false;
this.lblEndbetragValue.StylePriority.UsePadding = false;
this.lblEndbetragValue.StylePriority.UseTextAlignment = false;
this.lblEndbetragValue.Text = "xrLabel1";
this.lblEndbetragValue.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.lblEndbetragValue.TextFormatString = "{0}";
this.lblEndbetragValue.Visible = false;
//
// xrLabel10
//
this.xrLabel10.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 0F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(374.7449F, 21.875F);
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.StylePriority.UsePadding = false;
this.xrLabel10.StylePriority.UseTextAlignment = false;
this.xrLabel10.Text = "Gesamtsumme:";
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrLabel10.TextFormatString = "Gesamtsumme";
//
// lblAbschlagszahlungenText
//
this.lblAbschlagszahlungenText.Font = new DevExpress.Drawing.DXFont("Verdana", 9F);
this.lblAbschlagszahlungenText.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 21.87503F);
this.lblAbschlagszahlungenText.Name = "lblAbschlagszahlungenText";
this.lblAbschlagszahlungenText.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.lblAbschlagszahlungenText.SizeF = new System.Drawing.SizeF(374.74F, 21.88F);
this.lblAbschlagszahlungenText.StylePriority.UseFont = false;
this.lblAbschlagszahlungenText.StylePriority.UsePadding = false;
this.lblAbschlagszahlungenText.StylePriority.UseTextAlignment = false;
this.lblAbschlagszahlungenText.Text = "abzgl. Abschlagszahlungen:";
this.lblAbschlagszahlungenText.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.lblAbschlagszahlungenText.TextFormatString = " {0}";
this.lblAbschlagszahlungenText.Visible = false;
//
// lblEndbetragText
//
this.lblEndbetragText.Font = new DevExpress.Drawing.DXFont("Verdana", 9F, DevExpress.Drawing.DXFontStyle.Bold);
this.lblEndbetragText.LocationFloat = new DevExpress.Utils.PointFloat(198.3953F, 43.755F);
this.lblEndbetragText.Name = "lblEndbetragText";
this.lblEndbetragText.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.lblEndbetragText.SizeF = new System.Drawing.SizeF(374.74F, 21.88F);
this.lblEndbetragText.StylePriority.UseFont = false;
this.lblEndbetragText.StylePriority.UsePadding = false;
this.lblEndbetragText.StylePriority.UseTextAlignment = false;
this.lblEndbetragText.Text = "Endsumme:";
this.lblEndbetragText.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.lblEndbetragText.Visible = false;
//
// bindingSource1
//
@@ -832,7 +920,7 @@ namespace BeWo.Report.DefaultReports
this.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.ruleRateFactorNull});
this.Margins = new DevExpress.Drawing.DXMargins(53F, 39F, 157.5001F, 120.4999F);
this.Margins = new DevExpress.Drawing.DXMargins(53F, 32F, 157.5001F, 120.4999F);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
@@ -913,5 +1001,10 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.XRLabel lblEndbetragValue;
private DevExpress.XtraReports.UI.XRLabel lblAbschlagszahlungenValue;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel lblAbschlagszahlungenText;
private DevExpress.XtraReports.UI.XRLabel lblEndbetragText;
}
}

View File

@@ -33,6 +33,14 @@ namespace BeWo.Report.DefaultReports
SetzeAdresse(pRO);
if (pRO.AmountAdvancedPayments != null && pRO.AmountAdvancedPayments != "0,00 €")
{
lblAbschlagszahlungenValue.Visible = true;
lblAbschlagszahlungenText.Visible = true;
lblEndbetragValue.Visible = true;
lblEndbetragText.Visible = true;
}
this.bindingSource1.DataSource = pRO;
}

View File

@@ -0,0 +1,21 @@
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
namespace OwnSoftSoziotherapie.Calculations
{
public class CustomGroupDurationCalculator : GroupDurationCalculator
{
public override void CalculateGroupDuration(ServiceRecordGroup group)
{
base.CalculateGroupDuration(group);
foreach (var sr in group.ServiceRecordList)
{
if (sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("soziotherapie"))
{
sr.RoundedDuration = sr.GroupRoundedDuration.Value;
}
}
}
}
}

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace OwnSoftSoziotherapie.Invoicing
{
public class CustomInvoiceFactory : InvoiceFactory
{
public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
{
foreach (var list in supportConcepts2ServiceRecords.Values)
{
foreach (var sr in list)
{
var cat = sr.ServiceDescription.Category;
if (sr.CostBearer != null && !sr.CostBearer.Name.Contains("LWL") && !sr.CostBearer.Name.Contains("LVR") &&
!String.IsNullOrEmpty(cat.Name) && cat.Name.ToLower().Contains("soziotherapie"))
{
return new SoziotherapieInvoiceCreation();
}
}
}
return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords);
}
}
}

View File

@@ -0,0 +1,170 @@
using System;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using System.Text.RegularExpressions;
using System.IO;
using DevExpress.XtraPrinting.Drawing;
namespace OwnSoftTestSoziotherapie
{
public partial class LeistungsnachweisSoziotherapie : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
{
public LeistungsnachweisSoziotherapie()
{
InitializeComponent();
}
public void SetReportDataSource(ServicesOverviewRO pRO)
{
if (pRO.Mandator.Logo?.Original is object)
xrPictureBox3.ImageSource = new ImageSource(false, pRO.Mandator.Logo.Original);
double gesamt = 0;
double gesamtGruppe = 0;
if (pRO.Services != null)
{
foreach (ServicesOverviewRO.ServiceDetail s in pRO.Services)
{
ServicesOverviewRO.CreateSignatureString(s);
var serviceRecord = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(s.ServiceRecordOid);
pRO.ReferenceNumber = serviceRecord.CostBearer2SupportConcept.CustomerReferenceNumber;
if (serviceRecord.CostBearer2SupportConcept.ApprovedStartDate != null)
pRO.ApprovedStartDate = String.Format("{0:dd.MM.yyyy}", serviceRecord.CostBearer2SupportConcept.ApprovedStartDate);
if (serviceRecord.CostBearer2SupportConcept.ApprovedEndDate != null)
pRO.ApprovedEndDate = String.Format("{0:dd.MM.yyyy}", serviceRecord.CostBearer2SupportConcept.ApprovedEndDate);
var srDc = MapperFactory.ServiceRecordDC_ServiceRecord.MapToNewDC(serviceRecord);
s.GoalList = String.Empty;
if (srDc.Goals != null && srDc.Goals.Count > 0)
{
foreach (var goal in srDc.Goals)
{
if (!String.IsNullOrEmpty(goal.Abbreviation))
{
if (s.GoalList.Length > 0)
s.GoalList += ", ";
s.GoalList += goal.Abbreviation;
}
}
}
if (s.ServiceDescription.Contains("Gruppe"))
{
s.IsGroup = true;
gesamtGruppe += s.Minutes;
s.ServiceDescription = "E";
if (s.Minutes <= 45)
s.Notice5 = "2002678";
else if (s.Minutes <= 60)
s.Notice5 = "2002677";
else
s.Notice5 = "2002672";
}
else
{
gesamt += s.Minutes;
}
if (s.ServiceDescription.Contains("Video"))
{
s.ServiceDescription = "V";
if (s.Minutes <= 30)
{
s.Notice5 = "2001615";
}
else
{
s.Notice5 = "2001616";
}
}
else if (s.ServiceDescription.Contains("Telefon"))
{
s.ServiceDescription = "T";
if (s.Minutes <= 30)
{
s.Notice5 = "2001618";
}
else
{
s.Notice5 = "2001617";
}
}
else if (s.ServiceDescription.Contains("Aufsuchende Prob"))
{
s.ServiceDescription = "A";
s.Notice5 = "2001607";
}
else
{
if (s.ServiceDescription.Contains("Büro"))
{
s.ServiceDescription = "E";
}
else if (s.ServiceDescription.Contains("Aufsuchend"))
{
s.ServiceDescription = "A";
}
if (s.Minutes <= 10)
{
s.Notice5 = "2001613";
}
else if (s.Minutes <= 30)
{
s.Notice5 = "2001612";
}
else if (s.Minutes <= 45)
{
s.Notice5 = "2001611";
}
else
{
s.Notice5 = "2001610";
}
}
}
}
cellGesamt.Text = String.Format("{0:0.00}", gesamt / 60);
if (gesamtGruppe > 0)
{
cellGesamtGruppe.Text = String.Format("{0:0.00}", gesamtGruppe / 90);
}
this.bindingSource1.DataSource = pRO;
}
private void picSignature_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e)
{
XRPictureBox xrBox = sender as XRPictureBox;
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);
System.Drawing.Image img = ByteArrayToImage(binData);
xrBox.Image = Utils.CropImage(img);
}
else
{
xrBox.Image = null;
}
}
public System.Drawing.Image ByteArrayToImage(byte[] byteArrayIn)
{
using (var memoryStream = new MemoryStream(byteArrayIn))
{
return System.Drawing.Image.FromStream(memoryStream);
}
}
}
}

File diff suppressed because it is too large Load Diff

View 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>

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{18CE9CAC-D867-4CC6-A24B-892C3B36D189}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OwnSoftTestSoziotherapie</RootNamespace>
<AssemblyName>8882629942_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Export, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Calculations\CustomGroupDurationCalculator.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="LeistungsnachweisSoziotherapie.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="LeistungsnachweisSoziotherapie.designer.cs">
<DependentUpon>LeistungsnachweisSoziotherapie.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Reporting\CustomReportCreator.cs" />
<Compile Include="SoziotherapieRechnung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SoziotherapieRechnung.Designer.cs">
<DependentUpon>SoziotherapieRechnung.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LeistungsnachweisSoziotherapie.resx">
<DependentUpon>LeistungsnachweisSoziotherapie.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="SoziotherapieRechnung.resx">
<DependentUpon>SoziotherapieRechnung.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("OwnSoftTestSoziotherapie")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OwnSoftTestSoziotherapie")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1 @@
DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -0,0 +1,166 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.DefaultReports;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BS.Shared.DataContracts;
using DevExpress.XtraReports.UI;
namespace OwnSoftTestSoziotherapie
{
public class CustomReportCreator : DefaultReportCreator
{
public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid)
{
long result;
Settlement2DC lSettlementDC;
string cbName;
if (invoiceBaseOid.HasValue && invoiceBaseOid.Value > 0)
{
long invoiceOid = invoiceBaseOid.Value;
var ib = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(invoiceOid);
cbName = ib.CostBearer2SupportConcept.CostBearer.Organisation.Name;
}
else
{
Int64.TryParse(dcId, out result);
lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.GenericDAO.LoadByID<SettlementInvoice>(result));
cbName = lSettlementDC.RecipientOrganisation;
}
if (cbName.Contains("Landschaftsverband Westfalen-Lippe") || cbName == "LWL")
return base.CreateSettlementReport(dcId, invoiceBaseOid, true);
return base.CreateSettlementReport(dcId, invoiceBaseOid, false);
}
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);
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)
{
ServicesOverviewRO defaultRo = ServicesOverviewRO.CopyFromRO(ro);
ServicesOverviewRO sozioRo = ServicesOverviewRO.CopyFromRO(ro);
if (ro.Services != null)
{
foreach (ServicesOverviewRO.ServiceDetail s in ro.Services)
{
ServicesOverviewRO.CreateSignatureString(s);
if (s.ServiceCategory.ToLower().Contains("sozio"))
{
sozioRo.Services.Add(s);
}
else
{
defaultRo.Services.Add(s);
}
}
}
XtraReport report = null;
report = AddReportToReport<Quittierungsbeleg>(report, defaultRo);
report = AddReportToReport<LeistungsnachweisSoziotherapie>(report, sozioRo);
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;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
using System;
using System.Text;
namespace OwnSoftTestSoziotherapie
{
[IDSpecificClass(Identifier = "RechnungSoziotherapie")]
public partial class SoziotherapieRechnung : XtraReport, IBeWoReport<ServiceInvoiceRO>
{
public SoziotherapieRechnung()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
string poBox = null;
if (pRO.InvoiceBase.RecipientContactInformations.Count > 0)
{
foreach (var i in pRO.InvoiceBase.RecipientContactInformations)
{
if (i.ContactType == BS.Shared.ContactType.private_POBox)
poBox = i.ContactValue;
}
}
StringBuilder sb = new StringBuilder();
if (!String.IsNullOrEmpty(pRO.RecipientOrganisation))
{
sb.AppendLine(pRO.RecipientOrganisation);
}
if (!String.IsNullOrEmpty(pRO.RecipientAddressLine1))
{
sb.AppendLine(pRO.RecipientAddressLine1);
}
if (!String.IsNullOrEmpty(pRO.RecipientContactPerson))
{
sb.AppendLine(pRO.RecipientContactPerson);
}
if (!String.IsNullOrEmpty(pRO.RecipientDivision) && !String.IsNullOrEmpty(pRO.RecipientOrganisation))
{
sb.AppendLine(pRO.RecipientDivision);
}
if (!String.IsNullOrEmpty(poBox))
{
sb.AppendLine(poBox);
}
else if (!String.IsNullOrEmpty(pRO.RecipientPoBox))
{
sb.AppendLine(pRO.RecipientPoBox);
}
else if (!String.IsNullOrEmpty(pRO.RecipientStreet))
{
sb.AppendLine(pRO.RecipientStreet);
}
if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown))
{
sb.AppendLine("");
sb.AppendLine(pRO.RecipientPostCodeAndTown);
}
lblAdresse.Text = sb.ToString();
decimal hours = 0;
if (pRO.ServiceInvoicePeriods != null)
{
foreach (var sip in pRO.ServiceInvoicePeriods)
{
foreach (var ii in sip.ServiceInvoiceItems)
{
hours += ii.Hours ?? 0;
if (ii.UnitDescription == null || !ii.UnitDescription.StartsWith("GPos"))
{
ii.UnitDescription = "";
}
// Einheit setzen
ii.HourlyRateString = "Stunden";
if (ii.ServiceDescription != null && ii.ServiceDescription.ToLower().Contains("hausbesuchspauschale"))
{
ii.HourlyRateString = "";
}
}
}
}
if (String.IsNullOrEmpty(pRO.Notice))
{
xrLabel5.Visible = false;
}
this.bindingSource1.DataSource = pRO;
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
using Service.Invoicing;
namespace TemplateNeuKunde.Invoicing
{
// public class CustomInvoiceCreation : InvoiceCreation
//{
// //public override void SetInvoiceId(ServiceInvoice invoice)
// //{
// // //invoice.InvoiceBase.InvoiceId = "SBD";
// // //invoice.InvoiceBase.InvoiceTypeText = "";
// //}
// // //Setze für Selbstzahler die Adresse des Klienten
// // public override void SetRecipientInformation(ServiceInvoice serviceInvoice, CostBearer costBearer)
// // {
// // if (costBearer.Organisation.Name == "Selbstzahler")
// // {
// // serviceInvoice.InvoiceBase.RecipientOrganisationOid = costBearer.Organisation.Oid;
// // if (serviceInvoice.InvoiceBase.CostBearer2SupportConcept != null)
// // {
// // var cust = serviceInvoice.InvoiceBase.CostBearer2SupportConcept.SupportConcept.Customer;
// // if (cust.Person.InvoiceAddress != null)
// // {
// // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.InvoiceAddress.CopyToNew();
// // }
// // else if (cust.Person.Address != null)
// // {
// // serviceInvoice.InvoiceBase.RecipientAddress = cust.Person.Address.CopyToNew();
// // }
// // serviceInvoice.InvoiceBase.RecipientPersonFirstName = cust.Person.FirstName;
// // serviceInvoice.InvoiceBase.RecipientPersonLastName = cust.Person.LastName;
// // serviceInvoice.InvoiceBase.RecipientCustomerOid = cust.Oid;
// // }
// // }
// // }
// }
}

View File

@@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace TemplateNeuKunde.Invoicing
{
public class CustomInvoiceFactory : InvoiceFactory
{
// public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
// {
////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie einer Bewilligung abhängt
//foreach (var item in supportConcepts2ServiceRecords)
//{
// var csc = item.Key;
// var cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(csc.CostBearerRelOids[0]);
// foreach (var scap in cb2sc.ApprovalPeriodList)
// {
// if (scap.ServiceCategory != null)
// {
// var ic = GetInvoiceCreatorForCategory(scap.ServiceCategory.Name);
// if (ic != null)
// return ic;
// }
// }
//}
////Hier einkommentieren, wenn die Rechnungserstellung von einer bestimmten Kategorie oder Organisation eines ServiceRecords abhängt
//foreach (var list in supportConcepts2ServiceRecords.Values)
// {
// foreach (var sr in list)
// {
// //Hier wird Kategorie geprüft
// var ic = GetInvoiceCreatorForCategory(sr.ServiceDescription.Category.Name);
// if (ic != null)
// return ic;
// //Hier wird Organisation geprüft
// if (sr.CostBearer.Name.ToLower().Contains("selbstzahler"))
// {
// return new CustomInvoiceCreation();
// }
// }
// }
// return base.CreateInvoiceCreator(specificId, tenant, supportConcepts2ServiceRecords);
// }
// private InvoiceCreation GetInvoiceCreatorForCategory(String catName)
// {
// if (!String.IsNullOrEmpty(catName))
// {
// String cat = catName.ToLower().Trim();
// if (cat.IndexOf("assistenz") >= 0)
// return new CustomInvoiceCreation();
// }
// return null;
// }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace TemplateNeuKunde.Invoicing
{
public class CustomLWLDiggaBerechnung : LWLDiggaBerechnung
{
public override void InitBerechnung()
{
//this.Umstellungsdatum = new DateTime(2025, 1, 1);
}
}
}

View File

@@ -0,0 +1,51 @@
//using BeWo.Data.Entities;
//using BeWo.Service.Invoicing;
//using BS.Shared.DataContracts;
//using BS.Shared.Services;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//namespace TemplateNeuKunde.Invoicing
//{
// public class CustomSettlementInvoiceCreation : SettlementInvoiceCreation
// {
// public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
// {
// return false;
// }
//public override bool IsServiceRecordBillable(ServiceRecord iRecord)
//{
// if (iRecord.ServiceDescription.ServiceCategory.Name.Contains("Assistenz"))
// {
// return false;
// }
// return true;
//}
//public override void CalculateSettlementInvoiceApprovedAmounts(Settlement2DC si, SupportConceptCostBearerRelDC relDC, Calculations calc)
//{
// si.ApprovedFLSWeekly = 0;
// si.ApprovedFLS = 0;
// foreach (var sp in relDC.ApprovalPeriodList)
// {
// if (sp.ServiceCategory == null || !sp.ServiceCategory.Name.Contains("Assistenz"))
// {
// si.ApprovedFLSWeekly += calc.GetApprovedHoursPerWeek(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
// decimal flsTotal = calc.GetApprovedHoursTotal(sp, relDC.CostBearer.CostRatePeriods) ?? 0m;
// flsTotal = Math.Round(flsTotal, 2, MidpointRounding.AwayFromZero);
// si.ApprovedFLS += flsTotal;
// }
// }
//}
//public override IList<ServiceRecord> GetBillableServiceRecords(CostBearer2SupportConcept c2s)
//{
// return c2s.ServiceRecords.OrderBy(s => s.Start).Where(s => !s.ServiceDescription.ServiceCategory.Name.ToLower().Contains("assistenz")).ToList();
//}
// }
//}

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8F8C0B60-2358-43AE-9D4E-7BDE8A4777A1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KundeXyz</RootNamespace>
<AssemblyName>0000000000_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\CustomerDlls\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v23.2.Export, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Invoicing\CustomInvoiceCreation.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="Invoicing\CustomLWLDiggaBerechnung.cs" />
<Compile Include="Invoicing\SettlementInvoiceCreation.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Reporting\CustomMitarbeiterstundenkontoBerechnung.cs" />
<Compile Include="Reporting\CustomReportCreator.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("KundeXyz")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KundeXyz")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BS.Shared.Extensions;
namespace TemplateNeuKunde.Reporting
{
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{
//Wenn halbe Feiertage konfiguriert werden sollen, muss diese Methode auch im VacationService einkommentiert werden
//public override decimal GetFeiertagsFaktor(DateTime start)
//{
// if (start.Month == 12)
// {
// if (start.Day == 24 || start.Day == 31)
// {
// return 0.5m;
// }
// }
// return base.GetFeiertagsFaktor(start);
//}
}
}

View File

@@ -0,0 +1,201 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.DefaultReports;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using DevExpress.XtraReports.UI;
namespace TemplateNeuKunde.Reporting
{
//public class CustomReportCreator : DefaultReportCreator
//{
// //Einkommentiere für LWL Prüfliste, ZAD Nummer und ServiceDescription ergänzen
// //SQL Queries:
// //INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`SQL`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`)
// //VALUES(500,24,0,'LWL Quittierungsbelege','select \':Von\', \':Bis\', \':Klient/in\'','direct', NULL, NULL, NULL,1,1, NULL,'1', NULL, NULL, NULL);
// //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(4,500,25,'Von_Bis',5, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
// //INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(5,500,25,'Klient/in',2, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
// //public override XtraReport CreateQueryReport(long queryOid, string queryReportId)
// //{
// // if (queryOid == 500)
// // {
// // return CreateLwlPruefliste(CreateQueryRO(queryOid, queryReportId));
// // }
// // return base.CreateQueryReport(queryOid, queryReportId);
// //}
// //private LwlPruefliste CreateLwlPruefliste(QueryRO queryRo)
// //{
// // var liste = new LwlPruefliste();
// // if (queryRo.Rows.Count > 0)
// // {
// // DateTime start = DateTime.MaxValue;
// // DateTime end = DateTime.MinValue;
// // if (queryRo.Rows[0].Field1 != null)
// // {
// // DateTime.TryParse(queryRo.Rows[0].Field1.ToString(), out start);
// // }
// // if (queryRo.Rows[0].Field2 != null)
// // {
// // DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out end);
// // }
// // long? customerOid = null;
// // if (queryRo.Rows[0].Field3.ToString() == "0")
// // {
// // var masterReport = new LwlPruefliste();
// // //masterReport.CreateDocument();
// // var customerList = DAOFactory.GenericDAO.GetAllActive<Customer>();
// // var customerListOrd = customerList.OrderBy(c => c.Person.LastNameFirstName).ToList();
// // foreach (var c in customerListOrd)
// // {
// // var ro = LwlPrueflisteRO.Create(start, end, "9011113", c.Oid);
// // if (ro.ServiceRecords != null && ro.ServiceRecords.Count > 0)
// // {
// // try
// // {
// // liste = new LwlPruefliste();
// // liste.SetReportDataSource(ro);
// // liste.CreateDocument();
// // masterReport.Pages.AddRange(liste.Pages);
// // }
// // catch
// // {
// // // ignore - z.B. kein Hilfeplan
// // }
// // }
// // }
// // return (LwlPruefliste)masterReport;
// // }
// // if (queryRo.Rows[0].Field3 != null)
// // {
// // if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut))
// // {
// // customerOid = oidOut;
// // }
// // var ro = LwlPrueflisteRO.Create(start, end, "9011113", customerOid);
// // liste.SetReportDataSource(ro);
// // return liste;
// // }
// // }
// // return liste;
// //}
// //Einkommentiere für LWL 2. Seite mit Anhang für Budgetnachweise
// //public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid)
// //{
// // return base.CreateSettlementReport(dcId, invoiceBaseOid, true);
// //}
// //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);
// // if (lROs.Count > 0)
// // {
// // var rootReport = CreateServicesOverviewReportForRo(lROs[0], serviceCategoryOid);
// // rootReport.CreateDocument();
// // for (int i = 1; i < lROs.Count; i++)
// // {
// // var lNext = CreateServicesOverviewReportForRo(lROs[i], serviceCategoryOid);
// // 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();
// //}
//public override XtraReport CreateReportForServicesOverviewRo(ServicesOverviewRO ro, String reportId)
//{
// return CreateServicesOverviewReportForRo(ro, null);
//}
// //private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
// //{
// // IBeWoReport<ServicesOverviewRO> report = null;
// // String kt = "";
// // if (!String.IsNullOrWhiteSpace(ro.Costbearer))
// // kt = ro.Costbearer.Trim();
// // String function = "";
// // if (ro.CostBearer2SupportConceptList != null)
// // {
// // foreach (var c2s in ro.CostBearer2SupportConceptList)
// // {
// // if (c2s.CostBearer.Organisation.Function != null && !String.IsNullOrWhiteSpace(ro.Costbearer) && c2s.CostBearer.Organisation.Name == ro.Costbearer)
// // function = c2s.CostBearer.Organisation.Function.Value;
// // }
// // }
// // if (kt == "Kreisverwaltung Mainz-Bingen")
// // report = new AlzeyTeilhabe.StundenzettelBi2();
// // if (report == null && function == "Kostenträger Soziotherapie")
// // report = new StundenzettelSoziotherapie();
// // if (report == null)
// // report = new AlzeyTeilhabe.StundenzettelWo();
// // report.SetReportDataSource(ro);
// // return report as XtraReport;
// //}
//}
}

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,18 @@
using BeWo.Service.Plugins;
using BS.Shared.DataContracts;
namespace VSDHammReports.Calculation
{
public class CustomGroupDurationCalculator : GroupDurationCalculator
{
public override GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration)
{
return new GroupDurationDC()
{
SingleDuration = (totalDuration * employeeCount) / personCount,
TotalDuration = totalDuration
};
}
}
}

View File

@@ -71,6 +71,7 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Calculations\CustomGroupDurationCalculator.cs" />
<Compile Include="Calculations\VSDCalculations.cs" />
<Compile Include="CollectiveBillingReport.cs">
<SubType>Component</SubType>

View File

@@ -78,12 +78,6 @@
<Compile Include="ApiFacade\JsonHttpClientFacade.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="README.txt" />
</ItemGroup>
@@ -94,5 +88,11 @@
<ItemGroup>
<Folder Include="Core\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -14,6 +14,8 @@ namespace BeWo.Service.Core
public static FileLogger WCFErrorLogger { get; } = new FileLogger(BeWoServerPathHelper.GetWCFErrorLogFile());
public static FileLogger JsonErrorLogger { get; } = new FileLogger(BeWoServerPathHelper.GetJsonErrorLogFile());
//public static FileLogger AiLogger { get; } = new FileLogger(BeWoServerPathHelper.GetAiServiceLogFile());
public static FileLogger GetRequestLogger()
{
var filePath = BeWoServerPathHelper.GetUniqueRequestLogFile();

View File

@@ -1,10 +1,13 @@
using AICore.Facade;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Utils;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceProxy;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.Extensions;
using System;
@@ -20,6 +23,8 @@ namespace BeWo.Service.Plugins
{
public class AiPromptbausteineService
{
public string Tenant => MultitenancyOperationContextExt.Current?.Tenant;
public IEnumerable<AiPromptbausteinFolderDC> GetAiPromptbausteinFolder(AiActionType aiActionType)
{
var own_bib = getOwnFolder(aiActionType);
@@ -239,9 +244,21 @@ namespace BeWo.Service.Plugins
}
private List<AiPromptbausteinPromptDC> getOwnSoftPrompts(AiActionType aiActionType)
{
var client = new AiPromptsApiClient();
var response = client.GetAiPrompts(aiActionType);
return response?.ToList() ?? new List<AiPromptbausteinPromptDC>();
try
{
var client = new AiPromptsApiClient();
var response = client.GetAiPrompts(aiActionType);
return response?.ToList() ?? new List<AiPromptbausteinPromptDC>();
}
catch(Exception ex)
{
throw ex;
//var error = ex.ToString();
//Core.Utils.SendErrorMail("subject - test", "body - test");
//MailUtils.SendAiModuleErrorMail("GetOwnSoftPrompts", error, Tenant);
}
return new List<AiPromptbausteinPromptDC>();
}
}
}

View File

@@ -23,7 +23,7 @@ namespace BeWo.Service.ServiceContracts.Enhanced
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModuleViewSetting)]
//[RequireWcfAuthorization(UserRightType.AiModuleViewSetting)]
AiConfigDC UpdateAiConfig(AiConfigDC toUpdate);
[FaultContract(typeof(BeWoFault))]
@@ -48,7 +48,7 @@ namespace BeWo.Service.ServiceContracts.Enhanced
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModuleChatClone)]
//[RequireWcfAuthorization(UserRightType.AiModuleChatClone)]
AiConversationDC CloneAiConversation(long conversation_oid, long? message_oid);
[FaultContract(typeof(BeWoFault))]
@@ -78,12 +78,12 @@ namespace BeWo.Service.ServiceContracts.Enhanced
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineAdd)]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineEdit)]
IEnumerable<AiPromptbausteinFolderDC> InsertAiPromptbausteinFolder(IEnumerable<AiPromptbausteinFolderDC> folders);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineAdd)]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineEdit)]
IEnumerable<AiPromptbausteinPromptDC> InsertAiPromptbausteinPrompt(IEnumerable<AiPromptbausteinPromptDC> prompts);
[FaultContract(typeof(BeWoFault))]
@@ -98,12 +98,12 @@ namespace BeWo.Service.ServiceContracts.Enhanced
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineRemove)]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineEdit)]
void DeleteAiPromptbausteinFolder(Dictionary<long, long> oid2version);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineRemove)]
[RequireWcfAuthorization(UserRightType.AiModulePromptbausteineEdit)]
void DeleteAiPromptbausteinPrompt(Dictionary<long, long> oid2version);
[FaultContract(typeof(BeWoFault))]

View File

@@ -84,7 +84,7 @@ namespace BS.Shared.AppSender
}
catch (Exception e)
{
throw new GkvException(e.Message, "KundenApp");
throw new GkvException(e.ToString() + $" ({url})", "KundenApp");
}
if (app8_response is null)

View File

@@ -644,16 +644,17 @@ namespace BS.Shared
AiModuleChatAdd = 201001,
AiModuleChatEdit = 201002,
AiModuleChatDelete = 201003,
AiModuleViewSetting = 201005,
AiModuleChatClone = 201006,
//AiModuleViewSetting = 201005,
//AiModuleChatClone = 201006,
AiModulePromptbausteineView = 201007,
AiModulePromptbausteineAdd = 201008,
//AiModulePromptbausteineAdd = 201008,
AiModulePromptbausteineEdit = 201009,
AiModulePromptbausteineRemove = 201010,
AiModulePromptbausteineSeeAll = 201011,
//AiModulePromptbausteineExecute = 201012,
AiVoiceView= 201020,
//AiModulePromptbausteineRemove = 201010,
//AiModulePromptbausteineSeeAll = 201011,
//AiModulePromptbausteineExecute = 201012,
AiModulePromptbausteinShare = 201013,
AiVoiceView = 201020,
}
public enum PersonType

View File

@@ -65,7 +65,7 @@ namespace BS.Shared.Core
var setting = ConfigurationManager.AppSettings.Get(setting_path);
if (bool.TryParse(setting, out var rtn))
return rtn;
return true;
return false;
}
private static string GetSendMailModuleUser(string key)
{

View File

@@ -687,7 +687,17 @@ namespace BS.Shared.Core
{
var dict = new Dictionary<UserRightType, String>();
var action_keywords = new string[] { "ansehen", "verwalten", "anlegen", "bearbeiten", "löschen", "senden", "klonen", "alle ansehen", "ausführen" };
var action_keywords = new string[] {
"ansehen", //0
"verwalten", //1
"anlegen", //2
"bearbeiten", //3
"löschen", //4
"senden", //5
"klonen", //6
"alle ansehen", //7
"ausführen", //8
};
dict.Add(UserRightType.CreateAll, Translator.Translate("Alles anlegen"));
@@ -769,17 +779,18 @@ namespace BS.Shared.Core
dict.Add(UserRightType.AiModuleView, Translator.Translate($"KI-Chat verwenden {action_keywords[0]}"));
dict.Add(UserRightType.AiModuleChatAdd, Translator.Translate($"KI-Konversationen/Nachrichten {action_keywords[2]}"));
dict.Add(UserRightType.AiModuleChatClone, Translator.Translate($"KI-Konversationen/Nachrichten {action_keywords[6]}"));
//dict.Add(UserRightType.AiModuleChatClone, Translator.Translate($"KI-Konversationen/Nachrichten {action_keywords[6]}"));
dict.Add(UserRightType.AiModuleChatEdit, Translator.Translate($"KI-Konversationen/Nachrichten {action_keywords[3]}"));
dict.Add(UserRightType.AiModuleChatDelete, Translator.Translate($"KI-Konversationen/Nachrichten {action_keywords[4]}"));
dict.Add(UserRightType.AiModuleViewSetting, Translator.Translate($"KI-Einstellungen {action_keywords[0]}"));
//dict.Add(UserRightType.AiModuleViewSetting, Translator.Translate($"KI-Einstellungen {action_keywords[0]}"));
dict.Add(UserRightType.AiModulePromptbausteineView, Translator.Translate($"KI-Promptbausteine {action_keywords[0]}"));
dict.Add(UserRightType.AiModulePromptbausteineAdd, Translator.Translate($"KI-Promptbaustein {action_keywords[2]}"));
//dict.Add(UserRightType.AiModulePromptbausteineAdd, Translator.Translate($"KI-Promptbaustein {action_keywords[2]}"));
dict.Add(UserRightType.AiModulePromptbausteineEdit, Translator.Translate($"KI-Promptbaustein {action_keywords[3]}"));
dict.Add(UserRightType.AiModulePromptbausteineRemove, Translator.Translate($"KI-Promptbaustein {action_keywords[4]}"));
dict.Add(UserRightType.AiModulePromptbausteineSeeAll, Translator.Translate($"KI-Promptbausteine {action_keywords[7]}"));
//dict.Add(UserRightType.AiModulePromptbausteineRemove, Translator.Translate($"KI-Promptbaustein {action_keywords[4]}"));
//dict.Add(UserRightType.AiModulePromptbausteineSeeAll, Translator.Translate($"KI-Promptbausteine {action_keywords[7]}"));
//dict.Add(UserRightType.AiModulePromptbausteineExecute, Translator.Translate($"KI-Promptbausteine {action_keywords[8]}"));
dict.Add(UserRightType.AiModulePromptbausteinShare, Translator.Translate($"KI-Promptbausteine freigeben"));
dict.Add(UserRightType.PersonView_Create, Translator.Translate("Personen anlegen"));
dict.Add(UserRightType.PersonView_Delete, Translator.Translate("Personen löschen"));

View File

@@ -15,6 +15,10 @@ namespace BS.Shared.Core
{
private static readonly Module _GKV_Module = new Module("Gkv", "GKV/EDI/EDAT");
private static readonly Module _GKV_Module2 = new Module("GkvTest", "GKV/EDI/EDAT");
private static readonly Module _AI_Module = new Module("Ai", "AI");
public static bool SendAiModuleErrorMail(string title, string body, string tenant)
=> SendModuleErrorMail(_AI_Module, title, body, tenant);
public static bool SendGkvModuleErrorMail(string title, Exception e, string tenant)
=> SendGkvModuleErrorMail(title, "Exception gefunden: " + e.ToString(), tenant);
@@ -48,9 +52,13 @@ namespace BS.Shared.Core
body += "\n\n" + tenant_str;
string server = AppRequestSender.GetServerFromTenant(tenant);
string server_str = "Server: " + (server ?? "unkown");
string server_str = "Kundenserver: " + (server ?? "unkown");
body += "\n" + server_str;
string hostname = Dns.GetHostName();
string hostname_str = "Hostname: " + (hostname ?? "unknown");
body += "\n" + hostname_str;
return SendEmail(subject, body, toAddress, senderName, senderEMail, smtpServer, smtpUser, smtpPassword, sendAsync);
}