CB Jede Menge Reports und die Rating Änderungen

This commit is contained in:
Christian
2020-08-17 15:50:00 +02:00
parent dba047c59b
commit 0f565685b0
552 changed files with 154572 additions and 7279 deletions

18
.gitignore vendored
View File

@@ -442,4 +442,20 @@
/ReportImp/LebenshilfeWolfsburg/obj/Release
/ReportImp/SichtWeise/obj/Debug
/ReportImp/SichtWeise/obj/Release
/packages
/packages
/ReportImp/BfpDus/obj/Debug
/ReportImp/BfpDus/obj/Release
/ReportImp/DiakonischesWerkWesel/obj/Debug
/ReportImp/DiakonischesWerkWesel/obj/Release
/ReportImp/KcmGmbH/obj/Debug
/ReportImp/KcmGmbH/obj/Release
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Debug
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Release
/ReportImp/PraunheimerWerkstaetten3/obj/Debug
/ReportImp/PraunheimerWerkstaetten3/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Debug
/ReportImp/RosegGmbH/obj/Debug
/ReportImp/RosegGmbH/obj/Release
/ReportImp/VkmHamm2/obj/Debug
/ReportImp/VkmHamm2/obj/Release

View File

@@ -43,12 +43,12 @@
<TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName>
<PublisherName>beyondSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.179</MinimumRequiredVersion>
<MinimumRequiredVersion>2.0.1.184</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>180</ApplicationRevision>
<ApplicationRevision>185</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -150,6 +150,9 @@
<Reference Include="PresentationFramework.Luna">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="RestSharp">
<HintPath>..\..\BeWo 2.0\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
@@ -288,6 +291,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DienstView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -356,10 +363,22 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\SupportConceptGoalRatingView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\HomeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Report\Rating\RatingReportView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\StundenplanView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -806,8 +825,12 @@
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\DienstVM.cs" />
<Compile Include="ViewModel\BudgetVM.cs" />
<Compile Include="ViewModel\RatingTypeVM.cs" />
<Compile Include="ViewModel\ListViewModel\GoalRatingListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingTypeListVM.cs" />
<Compile Include="ViewModel\ListViewModel\DienstListVM.cs" />
<Compile Include="ViewModel\ListViewModel\BudgetListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingListVM.cs" />
<Compile Include="ViewModel\NotizenKategorieVM.cs" />
<Compile Include="ViewModel\NotizenEintragVM.cs" />
<Compile Include="ViewModel\FeiertagVM.cs" />
@@ -830,6 +853,8 @@
<Compile Include="ViewModel\ListViewModel\NotizenEintragListVM.cs" />
<Compile Include="ViewModel\ListViewModel\FeiertagListVM.cs" />
<Compile Include="ViewModel\QuittierungsCheckVM.cs" />
<Compile Include="ViewModel\GoalRatingVM.cs" />
<Compile Include="ViewModel\RatingVM.cs" />
<Compile Include="ViewModel\TokenVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitListVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitEintragListVM.cs" />
@@ -897,6 +922,9 @@
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingTypeView.xaml.cs">
<DependentUpon>RatingTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DienstView.xaml.cs">
<DependentUpon>DienstView.xaml</DependentUpon>
</Compile>
@@ -951,10 +979,19 @@
<Compile Include="View\Detail\Report\TimeSheetMailView.xaml.cs">
<DependentUpon>TimeSheetMailView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingEditView.xaml.cs">
<DependentUpon>RatingEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\SupportConceptGoalRatingView.xaml.cs">
<DependentUpon>SupportConceptGoalRatingView.xaml</DependentUpon>
</Compile>
<Compile Include="View\HomeView.xaml.cs">
<DependentUpon>HomeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Sorter\UserSorter.cs" />
<Compile Include="View\Report\Rating\RatingReportView.xaml.cs">
<DependentUpon>RatingReportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\StundenplanView.xaml.cs">
<DependentUpon>StundenplanView.xaml</DependentUpon>
</Compile>
@@ -2779,6 +2816,13 @@
<ItemGroup>
<Resource Include="Ressources\Icons\Paste24.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\Favorites16.png" />
<Resource Include="Ressources\Icons\Favorites32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\FavoritesDisabled32.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@@ -500,16 +500,15 @@ namespace BeWo
{
int i;
if (url.IndexOf("fortis") < 0)
{
if (Int32.TryParse(url, out i))
url = "app" + url;
if (Int32.TryParse(url, out i))
url = "app" + url;
if (url.IndexOf('.') < 0)
{
url += ".bewoplaner.de";
}
if (url.IndexOf('.') < 0)
{
url += ".bewoplaner.de";
}
//if (url.IndexOf("/service45") < 0)
//{
// url += "/service45";
@@ -519,9 +518,7 @@ namespace BeWo
url += "/servicesbd";
}
if (ServerAddress == "10.0.116.4") //LH Würzburg
return new Uri(String.Format("http://{0}", url));
return new Uri(String.Format("https://{0}", url));
return new Uri(String.Format("https://{0}", url));
}
return new Uri(url);
}
@@ -984,22 +981,31 @@ namespace BeWo
}
}
public static string GetChatServerURL()
{
if (chatServerURL.IsNullOrEmpty())
{
#if DEBUG
Login login = new Login("5473568546");
#else
Login login = new Login(BeWoApp.Tenant);
#endif
chatServerURL = login.ServerUrl;
}
return chatServerURL;
}
public static void GetChatServerUrlAsync(Action<string> callback)
{
if (string.IsNullOrWhiteSpace(chatServerURL))
{
var tenant = Tenant;
public static void Cleanup()
#if DEBUG
tenant = "5473568546";
#endif
var login = new Login(tenant, serverUrl =>
{
if (!string.IsNullOrWhiteSpace(serverUrl))
{
callback(serverUrl);
}
});
}
else
{
callback?.Invoke(chatServerURL);
}
}
public static void Cleanup()
{
_lockedContent = null;
LoginControl = null;

View File

@@ -52,6 +52,7 @@ using DevExpress.Xpf.Bars;
using DevExpress.Xpf.DocumentViewer;
using DevExpress.Xpf.Printing.PreviewControl.Bars;
using DevExpress.XtraScheduler;
using RestSharp;
using Control = System.Windows.Controls.Control;
using Utils = BS.Shared.Core.Utils;
@@ -2102,35 +2103,49 @@ namespace BeWo.Core
}
}
public static void OwnChatSynchronisationVeranlassen()
{
{
if (!BeWoApp.Mandator.Apikey.IsNullOrEmpty())
{
try
{
var serverUrl = BeWoApp.GetChatServerURL();
var tenant = BeWoApp.Tenant;
if (!String.IsNullOrEmpty(serverUrl))
{
#if DEBUG
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/5473568546";
#else
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/" + BeWoApp.Tenant;
tenant = "5473568546";
#endif
WebRequest request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
BeWoApp.GetChatServerUrlAsync(serverUrl =>
{
var client = new RestClient($"{serverUrl}/api/ownchat/sync/schedule/{BeWoApp.Mandator.Apikey}/{tenant}");
var request = new RestRequest();
var response = request.GetResponse();
response.Close();
response.Dispose();
}
client.ExecuteAsync(request, null);
});
// var serverUrl = BeWoApp.GetChatServerURL();
// if (!string.IsNullOrEmpty(serverUrl))
// {
//#if DEBUG
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/5473568546";
//#else
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/" + BeWoApp.Tenant;
//#endif
// WebRequest request = WebRequest.Create(endurl);
// request.Credentials = CredentialCache.DefaultCredentials;
// var response = request.GetResponse();
// response.Close();
// response.Dispose();
//}
}
catch (Exception e)
catch (Exception exception)
{
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
}
}

View File

@@ -38,7 +38,9 @@ namespace BeWo.Core.Service
private List<CompactEmployeeDC> mTeamMembers;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private List<RatingTypeDC> mRatingTypes;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private Cache()
{
@@ -63,6 +65,7 @@ namespace BeWo.Core.Service
this.ClearCustomers();
this.ClearWohnheims();
ClearResources();
ClearRatingTypes();
}
public void ClearAllValueListEntries()
@@ -115,7 +118,12 @@ namespace BeWo.Core.Service
mCats2ResInDic = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
public void ClearRatingTypes()
{
mRatingTypes = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
{
if (this.mActiveSupportConceptCostbearerList == null)
{
@@ -247,6 +255,16 @@ namespace BeWo.Core.Service
}
}
public List<RatingTypeDC> GetAllRatingTypeList()
{
if(mRatingTypes == null)
{
ServiceFacade.DoOperationsServiceSync(cs => mRatingTypes = cs.GetAllRatingTypes());
}
return mRatingTypes;
}
public void GetServiceCategoryDescriptionDict(Action<Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>> callback)
{
if (this.mServiceCategoryDescriptionDict == null)

View File

@@ -302,7 +302,7 @@ namespace BeWo.Core.Service
{
ValueListEntryDC copyVe = new ValueListEntryDC();
copyVe.Abbreviation = ve.Abbreviation;
copyVe.Rating = copyRating ? ve.Rating : null;
copyVe.RatingTypeOid = copyRating ? ve.RatingTypeOid : null;
copyVe.Notice = ve.Notice;
copyVe.IsSystemEntry = ve.IsSystemEntry;
copyVe.ParentOid = ve.ParentOid;

View File

@@ -91,7 +91,16 @@ namespace BeWo.Core.Service
if (existingGoal.Equals(goal.GoalEntryDC))
{
goal.IsChecked = true;
goal.GoalEntryDC.Rating = existingGoal.Rating;
goal.GoalEntryDC.RatingTypeOid = existingGoal.RatingTypeOid;
if (existingGoal.RatingTypeOid.HasValue)
{
var rdc = Cache.GetInstance().GetAllRatingTypeList()
.FirstOrDefault(r => r.RatingTypeOid == existingGoal.RatingTypeOid);
if (rdc != null)
{
goal.RatingName = rdc.DisplayName;
}
}
}
}

View File

@@ -36,6 +36,8 @@ namespace BeWo.Core
}
}
public bool IsHidden { get; set; }
public BindingList<SupportConceptGoalTreeItem> Items
{
get => _Children ?? (_Children = new BindingList<SupportConceptGoalTreeItem>());

View File

@@ -181,37 +181,7 @@ namespace BeWo
{
}
if (ProfileList.Count == 0 || String.IsNullOrEmpty(ProfileList[0].Tenant))
{
//LH Würzburg Hack:
if (ApplicationDeployment.IsNetworkDeployed)
{
Uri uri = ApplicationDeployment.CurrentDeployment.ActivationUri;
if (uri == null)
{
uri = ApplicationDeployment.CurrentDeployment.UpdateLocation;
}
if (uri != null)
{
if (uri.Host.IndexOf("10.0.116.4") >= 0 || uri.Host.IndexOf("lebenshilfe-wuerzburg") >= 0)
{
BeWoProfile bp = new BeWoProfile("Lebenshilfe Würzburg", "10.0.116.4", "1");
ProfileList.Add(bp);
SaveProfileListToFile();
}
else if (uri.Host.IndexOf("fortis") >= 0)
{
BeWoProfile bp = new BeWoProfile("Fortis", "fortis-bewoplaner.fortis-ev.org.local", "4526293996");
ProfileList.Add(bp);
SaveProfileListToFile();
}
}
}
}
// IP-Adresse holen
try
@@ -288,16 +258,17 @@ namespace BeWo
Loaded += LoginControl_Loaded;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
PinCertificate();
if (!IsTechSupport)
return;
linkLine.Margin = new Thickness(linkLine.Margin.Left, linkLine.Margin.Top + 25, linkLine.Margin.Right, linkLine.Margin.Bottom);
gridLogin.Height += 25;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
PinCertificate();
}

View File

@@ -77,8 +77,8 @@ namespace BeWo
KeyDown += MainControl_KeyDown;
NavigateToHomeView();
EditorLocalizer.Active = new CustomDXEditorLocalizer();
SchedulerControlLocalizer.Active = new CustomSchedulerLocalizer();
//EditorLocalizer.Active = new CustomDXEditorLocalizer();
//SchedulerControlLocalizer.Active = new CustomSchedulerLocalizer();
//GridControlLocalizer.Active = new CustomGridLocalizer();

View File

@@ -1,5 +1,6 @@
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows;
using BeWo.Core.Config;
using BeWo.MultiLanguage;
@@ -18,7 +19,6 @@ namespace BeWo
InitializeComponent();
ApplicationThemeHelper.ApplicationThemeName = "Office2010Black";
ShowLoginControl();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -2790,6 +2790,8 @@
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn2"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
@@ -2802,7 +2804,9 @@
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Source="..\Ressources\Icons\AnonymousUserDisabled.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5, 0.5" />
<TextBlock x:Name="txtDetail1" Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock x:Name="txtDetail2" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Text="{Binding Path=Details2}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock x:Name="txtDetail3" Grid.Row="0" Grid.Column="3" Grid.RowSpan="2" Text="{Binding Path=Details3}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2814,7 +2818,7 @@
Anonymisieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2826,7 +2830,7 @@
Endgültig löschen
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="6" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2838,7 +2842,7 @@
Reaktivieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="7" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<Hyperlink Click="Hyperlink_Employee_Print_Click" TargetName="_NewWindow" Foreground="#FFFFFFFF" Tag="{Binding}">
Drucken
</Hyperlink>
@@ -2850,9 +2854,13 @@
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FF808080" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDeleted}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FFF97E7B" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
@@ -3180,10 +3188,7 @@
<Canvas Grid.Column="1" Width="14" Margin="2,2,2,2">
<Ellipse Stroke="#FF7C7C7C" Height="10" Width="10" StrokeThickness="2" Fill="{x:Null}" />
<Line Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF7C7C7C" Canvas.Left="6" Canvas.Top="7.4" Y1="0" Y2="5" StrokeThickness="3" X2="4" />
</Canvas>
</Grid>
</Border>

View File

@@ -53,7 +53,11 @@ namespace BeWo.View
{
try
{
DragMove();
var p = e.GetPosition(this);
if (p.Y <= 40)
{
DragMove();
}
}
catch (Exception){}
}

View File

@@ -150,15 +150,9 @@
</Popup>
<Popup x:Name="RatingPopup" StaysOpen="False" Placement="MousePoint" Width="400" Height="200" >
<Border Background="{StaticResource ObjectEditBackgroundBrush}">
<StackPanel Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="-1" Content="Keine Bewertung" IsChecked="True"></RadioButton>
<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
<RadioButton x:Name="RadioButton1" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="1" Content="xxx.1 - Problem leicht ausgeprägt (schwach, gering ...) 5 bis 24 %"></RadioButton>
<RadioButton x:Name="RadioButton2" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="2" Content="xxx.2 - Problem mäßig ausgeprägt (mittel, ziemlich ...) 25 bis 49 %"></RadioButton>
<RadioButton x:Name="RadioButton3" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="3" Content="xxx.3 - Problem erheblich ausgeprägt (hoch, äußerst ...) 50 bis 95 %"></RadioButton>
<RadioButton x:Name="RadioButton4" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="4" Content="xxx.4 - Problem voll ausgeprägt (komplett, total ...) 96 bis 100 %"></RadioButton>
<RadioButton x:Name="RadioButton8" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="8" Content="xxx.8 - Nicht spezifiziert"></RadioButton>
<RadioButton x:Name="RadioButton9" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="9" Content="xxx.9 - Nicht anwendbar"></RadioButton>
<StackPanel x:Name="ratingPanel" Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Content="Keine Bewertung" IsChecked="True"></RadioButton>
</StackPanel>
</Border>

View File

@@ -5,7 +5,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using BeWo.Core.Service;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
@@ -40,6 +40,26 @@ namespace BeWo.View.Controls
{
InitializeComponent();
DataContext = this;
InitRatings();
}
private void InitRatings()
{
ratingPanel.Children.Clear();
var ratingList = Cache.GetInstance().GetAllRatingTypeList();
foreach (var r in ratingList)
{
//<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
var rb = new RadioButton();
rb.Margin = new Thickness(3);
rb.FontSize = 12;
rb.Click += RatingButton_OnClick;
rb.Tag = r;
rb.Content = r.DisplayName;
ratingPanel.Children.Add(rb);
}
}
private void ShowCheckedValues()
@@ -187,33 +207,24 @@ namespace BeWo.View.Controls
RatingPopup.IsOpen = visible;
RadioButtonNone.IsChecked = true;
if (lastCheckedSupportConceptGoal.GoalEntryDC.Rating != null)
if (lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid.HasValue)
{
switch (lastCheckedSupportConceptGoal.GoalEntryDC.Rating.Value)
foreach (var c in ratingPanel.Children)
{
case 0:
RadioButton0.IsChecked = true;
break;
case 1:
RadioButton1.IsChecked = true;
break;
case 2:
RadioButton2.IsChecked = true;
break;
case 3:
RadioButton3.IsChecked = true;
break;
case 4:
RadioButton4.IsChecked = true;
break;
case 8:
RadioButton8.IsChecked = true;
break;
case 9:
RadioButton9.IsChecked = true;
break;
RadioButton rb = c as RadioButton;
if (rb != null && rb.Tag != null)
{
RatingTypeDC rbRating = rb.Tag as RatingTypeDC;
if (rbRating != null && rbRating.RatingTypeOid ==
lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid)
{
rb.IsChecked = true;
}
}
}
}
}
@@ -305,11 +316,11 @@ namespace BeWo.View.Controls
RadioButton rb = sender as RadioButton;
if (rb.Tag != null)
{
int rating = 0;
if (Int32.TryParse(rb.Tag.ToString(), out rating))
var rt = rb.Tag as RatingTypeDC;
if (rt != null)
{
lastCheckedSupportConceptGoal.SetRating(rating);
lastCheckedSupportConceptGoal.SetRatingType(rt);
}
}
}

View File

@@ -9,6 +9,8 @@ using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using BeWo.Core.Service;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.Translation;
using DevExpress.Data.Helpers;
@@ -26,29 +28,17 @@ namespace BeWo.View.Controls
public event Action CancelButtonClicked;
public event Action ActionButtonClicked;
private List<GoalRating> _Ratings;
public GoalRatingControl()
{
InitializeComponent();
InitRatings();
ColumnRating.EditSettings = new ComboBoxEditSettings { ItemsSource = _Ratings, IsTextEditable = false };
ColumnRating.EditSettings = new ComboBoxEditSettings { ItemsSource = Cache.GetInstance().GetAllRatingTypeList(), IsTextEditable = false };
IsDirty = false;
}
private void InitRatings()
{
_Ratings = new List<GoalRating>();
_Ratings.Add(new GoalRating { RatingValue = -1, RatingName = "Keine Bewertung"});
_Ratings.Add(new GoalRating { RatingValue = 0, RatingName = "xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %" });
_Ratings.Add(new GoalRating { RatingValue = 1, RatingName = "xxx.1 - Problem leicht ausgeprägt (schwach, gering ...) 5 bis 24 %" });
_Ratings.Add(new GoalRating { RatingValue = 2, RatingName = "xxx.2 - Problem mäßig ausgeprägt (mittel, ziemlich ...) 25 bis 49 %" });
_Ratings.Add(new GoalRating { RatingValue = 3, RatingName = "xxx.3 - Problem erheblich ausgeprägt (hoch, äußerst ...) 50 bis 95 %" });
_Ratings.Add(new GoalRating { RatingValue = 4, RatingName = "xxx.4 - Problem voll ausgeprägt (komplett, total ...) 96 bis 100 %" });
_Ratings.Add(new GoalRating { RatingValue = 8, RatingName = "xxx.8 - Nicht spezifiziert" });
_Ratings.Add(new GoalRating { RatingValue = 9, RatingName = "xxx.9 - Nicht anwendbar" });
}
public List<SupportConceptGoalDC> Goals
{
get { return _Goals;}
@@ -69,7 +59,7 @@ namespace BeWo.View.Controls
entry.Name = goal.DetailDescription;
if (goal.HasRating)
{
entry.GoalRating = _Ratings.FirstOrDefault(r => r.RatingValue == goal.GoalEntryDC.Rating.Value);
entry.RatingType = Cache.GetInstance().GetAllRatingTypeList().FirstOrDefault(r => r.RatingTypeOid == goal.GoalEntryDC.RatingTypeOid);
}
entries.Add(entry);
@@ -120,13 +110,13 @@ namespace BeWo.View.Controls
{
foreach (var e in Entries)
{
if (e.GoalRating != null)
if (e.RatingType != null)
{
e.Goal.SetRating(e.GoalRating.RatingValue);
e.Goal.SetRatingType(e.RatingType);
}
else
{
e.Goal.SetRating(null);
e.Goal.SetRatingType(null);
}
}
}
@@ -137,34 +127,7 @@ namespace BeWo.View.Controls
{
public SupportConceptGoalDC Goal { get; set; }
public String Name { get; set; }
public GoalRating GoalRating { get; set; }
}
public class GoalRating
{
public int RatingValue { get; set; }
public String RatingName { get; set; }
public override string ToString()
{
return RatingName;
}
public override bool Equals(object obj)
{
var gr = obj as GoalRating;
if (gr != null)
{
return this.RatingName.Equals(((GoalRating) obj).RatingName);
}
return false;
}
public override int GetHashCode()
{
return RatingName.GetHashCode();
}
public RatingTypeDC RatingType { get; set; }
}
}

View File

@@ -4,6 +4,7 @@
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localsearch="clr-namespace:BeWo.View.Search"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True" >
<Grid>
@@ -20,7 +21,7 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Foreground="Black" FontSize="12" Grid.Column="0" VerticalAlignment="Center" Text="Hilfeplan:" />
<TextBlock Foreground="Black" FontSize="12" Grid.Column="0" VerticalAlignment="Center" Text="{markup:Translate Hilfeplan:}" />
<uc:PopUpEdit x:Name="popupedit_CostBeaerer" Width="250" Height="23" Margin="3" Grid.Column="1"
IsReadOnly="True" DeleteButtonVisibility="Collapsed"
PopUpClick="popupedit_CostBeaerer_PopUpClick" MaxWidth="300"

View File

@@ -1,4 +1,5 @@
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.SettlementInvoiceView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:localViewModel="clr-namespace:BeWo.ViewModel" xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting" xmlns:val="clr-namespace:BeWo.Validation" xmlns:localsearch="clr-namespace:BeWo.View.Search" xmlns:proxy="clr-namespace:BeWo.ServiceProxy" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:r="clr-namespace:BeWo.Security" VerticalAlignment="Stretch" Focusable="True" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic">
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.SettlementInvoiceView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:localViewModel="clr-namespace:BeWo.ViewModel" xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting" xmlns:val="clr-namespace:BeWo.Validation" xmlns:localsearch="clr-namespace:BeWo.View.Search" xmlns:proxy="clr-namespace:BeWo.ServiceProxy" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:r="clr-namespace:BeWo.Security" VerticalAlignment="Stretch" Focusable="True" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup">
<Grid>
@@ -17,7 +18,7 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Foreground="Black" FontSize="12" VerticalAlignment="Center" Text="Hilfeplan:" />
<TextBlock Foreground="Black" FontSize="12" VerticalAlignment="Center" Text="{markup:Translate Hilfeplan:}" />
<uc:PopUpEdit x:Name="popupedit_CostBeaerer" Width="250" Height="23" Margin="3"
Grid.Column="1" IsReadOnly="True" DeleteButtonVisibility="Collapsed"

View File

@@ -67,7 +67,7 @@
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Date" Header="Datum" Width="150" EditSettings="{dxe:DateSettings DisplayFormat=d}" />
<dxg:GridColumn FieldName="Betrag" Header="Betrag" Width="150" EditSettings="{dxe:TextSettings DisplayFormat=f}" />
<dxg:GridColumn FieldName="Betrag" Header="Stunden" Width="150" EditSettings="{dxe:TextSettings DisplayFormat=f2, Mask=f2, MaskType=Numeric}" />
<dxg:GridColumn x:Name="gridcolumn_auszahlungsart" FieldName="Auszahlungsart" Header="Art der Auszahlung" Width="150" />
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" Width="550" />
</dxg:GridControl.Columns>

View File

@@ -59,7 +59,7 @@ namespace BeWo.View.Detail
private void IterateThroughSelectedGoalsAndMassnahmen(SupportConceptGoalTreeItem item, ObservableCollection<SupportConceptGoalTreeItem> list)
{
if (item.IsChecked)
if (item.IsChecked && item.Items.Count == 0)
{
list.Add(item);
}
@@ -113,11 +113,17 @@ namespace BeWo.View.Detail
private void CheckAllGoalTreeItems(bool check)
{
var allItems = TreeView.ItemsSource as IList<SupportConceptGoalTreeItem>;
var allItems = TreeView.ItemsSource as ObservableCollection<SupportConceptGoalTreeItem>;
foreach (var item in allItems)
var test = TreeView.ItemsSource;
foreach (var item in TreeView.ItemsSource)
{
item.IsChecked = check;
var goal = item as SupportConceptGoalTreeItem;
if (goal != null)
{
goal.IsChecked = check;
}
}
}

View File

@@ -25,7 +25,7 @@
<Label Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding Pattern}" />
<Label Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2"
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False"
Height="23" Width="200" EditValue="{Binding Path=CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding Use}" />

View File

@@ -139,7 +139,7 @@
<Label Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding InvoiceNumber.Pattern}" />
<Label Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2"
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False"
Height="23" Width="200" EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding InvoiceNumber.Use}" />

View File

@@ -510,9 +510,10 @@ namespace BeWo.View.Detail
foreach (var goal in ViewModel.VMList.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalType)))
{
var item = new SupportConceptGoalTreeItem { GoalEntryVM = goal };
if (goal.ParentEntry == null || !dictOid2TreeItem.ContainsKey(goal.ParentEntry.ValueListEntryOid.Value))
if (goal.ParentEntry == null || !goal.ParentEntry.ValueListEntryOid.HasValue || !dictOid2TreeItem.ContainsKey(goal.ParentEntry.ValueListEntryOid.Value))
{
iGoalList.Add(item);
}

View File

@@ -0,0 +1,665 @@
<localView:BeWoView x:Class="BeWo.View.Detail.RatingEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewControls="clr-namespace:BeWo.View.Controls"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxre="http://schemas.devexpress.com/winfx/2008/xaml/richedit"
xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid>
<!--uc:ShadowChrome-->
<Grid Margin="0,3,0,0" Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="Yellow" Height="6" />
<Grid x:Name="rootGrid" Grid.Row="1" Margin="10,10,10,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid x:Name="GridOben">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid VerticalAlignment="Top" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Datum" />
<Label Grid.Column="0" Grid.Row="1" Content="Bezeichnung" />
<dxe:DateEdit Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3"
x:Name="datepicker_newDate1"
EditValue="{val:ValidationBinding Mode=TwoWay, Path=StartDate}"
Height="23" Margin="3,0,3,3" MaskType="DateTimeAdvancingCaret" Width="150" HorizontalAlignment="Left"/>
<dxe:TextEdit EditValue="{Binding Mode=TwoWay, Path=DisplayName, UpdateSourceTrigger=PropertyChanged}"
x:Name="startTime1" Grid.Column="1" Grid.Row="1"
Height="23"
Margin="3,0,3,3"/>
</Grid>
<dxg:GridControl ItemsSource="{Binding GoalRatingList.VMList}" Grid.Row="1" Margin="0,10,0,0">
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True"
NavigationStyle="Cell" ShowGroupPanel="False"
/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="GoalEntry" Header="Ziel" ReadOnly="True" MinWidth="60" Width="300" />
<dxg:GridColumn FieldName="RatingType" Header="Bewertung" Width="300" x:Name="ColumnRatingType">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings x:Name="ColumnRatingTypeComboBox"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Notice" Header="Bemerkungen" MinWidth="60" Width="400" />
</dxg:GridControl.Columns>
</dxg:GridControl>
</Grid>
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TabControl Grid.Row="1">
<TabItem Header="Bemerkungen" x:Name="TabitemRtf1Note" Visibility="Visible" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<dxb:BarManager ToolbarGlyphSize="Small" x:Name="barManager" AllowQuickCustomization="False" AllowHotCustomization="False" AllowCustomization="False">
<dxb:BarManager.Resources>
<dxre:RichEditUICommand x:Key="commands"/>
<dxre:RichEditStringIdConverter x:Key="stringIdConverter"/>
<dxre:DefaultBarItemDataTemplates x:Key="defaultBarItemTemplates"/>
</dxb:BarManager.Resources>
<dxb:BarManager.Bars>
<dxb:Bar x:Name="barClipboard" Caption="{Binding ConverterParameter=Caption_GroupClipboard, Converter={StaticResource stringIdConverter}, Mode=OneTime, Source={StaticResource stringIdConverter}}">
<dxb:Bar.DockInfo>
<dxb:BarDockInfo ContainerType="Top"/>
</dxb:Bar.DockInfo>
<dxb:Bar.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biEditPaste"/>
<dxb:BarButtonItemLink BarItemName="biEditCut"/>
<dxb:BarButtonItemLink BarItemName="biEditCopy"/>
</dxb:Bar.ItemLinks>
</dxb:Bar>
<dxb:Bar x:Name="barFont" Caption="{Binding ConverterParameter=Caption_GroupFont, Converter={StaticResource stringIdConverter}, Mode=OneTime, Source={StaticResource stringIdConverter}}">
<dxb:Bar.DockInfo>
<dxb:BarDockInfo ContainerType="Top"/>
</dxb:Bar.DockInfo>
<dxb:Bar.ItemLinks>
<dxb:BarEditItemLink BarItemName="biFormatFontName"/>
<dxb:BarEditItemLink BarItemName="biFormatFontSize"/>
<dxb:BarButtonItemLink BarItemName="biFormatIncreaseFontSize"/>
<dxb:BarButtonItemLink BarItemName="biFormatDecreaseFontSize"/>
<dxb:BarButtonItemLink BarItemName="biFormatClearFormatting"/>
<dxb:BarCheckItemLink BarItemName="biFormatFontBold"/>
<dxb:BarCheckItemLink BarItemName="biFormatFontItalic"/>
<dxb:BarCheckItemLink BarItemName="biFormatFontUnderline"/>
<dxb:BarCheckItemLink BarItemName="biFormatFontStrikeout"/>
<dxb:BarSubItemLink BarItemName="biEditChangeCase"/>
<dxre:BarSplitButtonColorEditItemLink BarItemName="biFormatFontHighlightColor"/>
<dxre:BarSplitButtonColorEditItemLink BarItemName="biFormatFontForeColor"/>
<dxb:BarButtonItemLink BarItemName="biFormatFont"/>
</dxb:Bar.ItemLinks>
</dxb:Bar>
<dxb:Bar x:Name="barParagraph" Caption="{Binding ConverterParameter=Caption_GroupParagraph, Converter={StaticResource stringIdConverter}, Mode=OneTime, Source={StaticResource stringIdConverter}}">
<dxb:Bar.DockInfo>
<dxb:BarDockInfo ContainerType="Top" Row="1"/>
</dxb:Bar.DockInfo>
<dxb:Bar.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biFormatBulletedList"/>
<dxb:BarCheckItemLink BarItemName="biFormatNumberingList"/>
<dxb:BarCheckItemLink BarItemName="biFormatMultilevelList"/>
<dxb:BarButtonItemLink BarItemName="biFormatDecreaseIndent"/>
<dxb:BarButtonItemLink BarItemName="biFormatIncreaseIndent"/>
<dxb:BarCheckItemLink BarItemName="biViewShowWhitespace"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphAlignLeft"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphAlignCenter"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphAlignRight"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphAlignJustify"/>
<dxb:BarSubItemLink BarItemName="biFormatParagraphLineSpacing"/>
<dxre:BarSplitButtonColorEditItemLink BarItemName="biFormatParagraphBackColor"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraph"/>
</dxb:Bar.ItemLinks>
</dxb:Bar>
<dxb:Bar x:Name="barEditing" Caption="{Binding ConverterParameter=Caption_GroupEditing, Converter={StaticResource stringIdConverter}, Mode=OneTime, Source={StaticResource stringIdConverter}}">
<dxb:Bar.DockInfo>
<dxb:BarDockInfo ContainerType="Top" Row="1"/>
</dxb:Bar.DockInfo>
<dxb:Bar.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biEditFind"/>
<dxb:BarButtonItemLink BarItemName="biEditReplace"/>
<dxb:BarButtonItemLink BarItemName="biInsertPageBreak"/>
<dxb:BarButtonItemLink BarItemName="biInsertTable"/>
</dxb:Bar.ItemLinks>
</dxb:Bar>
<dxb:Bar x:Name="barZoom" Caption="{Binding ConverterParameter=Caption_GroupZoom, Converter={StaticResource stringIdConverter}, Mode=OneTime, Source={StaticResource stringIdConverter}}">
<dxb:Bar.DockInfo>
<dxb:BarDockInfo ContainerType="Top" Row="1"/>
</dxb:Bar.DockInfo>
<dxb:Bar.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biViewZoomOut"/>
<dxb:BarButtonItemLink BarItemName="biViewZoomIn"/>
</dxb:Bar.ItemLinks>
</dxb:Bar>
</dxb:BarManager.Bars>
<dxb:BarManager.Items>
<dxb:BarButtonItem x:Name="biFileNew" Command="{Binding FileNew, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFileOpen" Command="{Binding FileOpen, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFileSave" Command="{Binding FileSave, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFileSaveAs" Command="{Binding FileSaveAs, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFileQuickPrint" Command="{Binding FileQuickPrint, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFilePrint" Command="{Binding FilePrint, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFilePrintPreview" Command="{Binding FilePrintPreview, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditUndo" Command="{Binding EditUndo, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditRedo" Command="{Binding EditRedo, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFileDocumentProperties" Command="{Binding FileDocumentProperties, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditPaste" Command="{Binding EditPaste, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditCut" Command="{Binding EditCut, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditCopy" Command="{Binding EditCopy, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditPasteSpecial" Command="{Binding EditPasteSpecial, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarEditItem x:Name="biFormatFontName" Content="" Command="{Binding FormatFontName, Mode=OneTime, Source={StaticResource commands}}" EditWidth="150">
<dxb:BarEditItem.EditSettings>
<dxre:FontComboBoxEditSettings/>
</dxb:BarEditItem.EditSettings>
</dxb:BarEditItem>
<dxb:BarEditItem x:Name="biFormatFontSize" Content="" Command="{Binding FormatFontSize, Mode=OneTime, Source={StaticResource commands}}" EditWidth="50">
<dxb:BarEditItem.EditSettings>
<dxre:FontSizeComboBoxEditSettings x:Name="FontSizeComboBox" />
</dxb:BarEditItem.EditSettings>
</dxb:BarEditItem>
<dxb:BarButtonItem x:Name="biFormatIncreaseFontSize" Command="{Binding FormatIncreaseFontSize, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatDecreaseFontSize" Command="{Binding FormatDecreaseFontSize, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatClearFormatting" Command="{Binding FormatClearFormatting, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontBold" Command="{Binding FormatFontBold, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontItalic" Command="{Binding FormatFontItalic, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontUnderline" Command="{Binding FormatFontUnderline, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontDoubleUnderline" Command="{Binding FormatFontDoubleUnderline, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontStrikeout" Command="{Binding FormatFontStrikeout, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontDoubleStrikeout" Command="{Binding FormatFontDoubleStrikeout, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontSuperscript" Command="{Binding FormatFontSuperscript, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatFontSubscript" Command="{Binding FormatFontSubscript, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biEditChangeCase" Command="{Binding EditChangeCase, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biEditMakeUpperCase"/>
<dxb:BarButtonItemLink BarItemName="biEditMakeLowerCase"/>
<dxb:BarButtonItemLink BarItemName="biEditToggleCase"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biEditMakeUpperCase" Command="{Binding EditMakeUpperCase, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditMakeLowerCase" Command="{Binding EditMakeLowerCase, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditToggleCase" Command="{Binding EditToggleCase, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarSplitButtonColorEditItem x:Name="biFormatFontHighlightColor" Command="{Binding FormatFontHighlightColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit ChipSize="Large" ChipMargin="5" ColumnCount="5" EditValue="{Binding EditValue, ElementName=biFormatFontHighlightColor, Mode=TwoWay}" ShowMoreColorsButton="False" ShowDefaultColorButton="False" ShowNoColorButton="True" ShowBorder="False">
<dxe:ColorEdit.Palettes>
<dxre:CharactersBackgroundColorPaletteCollection/>
</dxe:ColorEdit.Palettes>
</dxe:ColorEdit>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxre:BarSplitButtonColorEditItem x:Name="biFormatFontForeColor" Command="{Binding FormatFontForeColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biFormatFontForeColor, Mode=TwoWay}" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxb:BarButtonItem x:Name="biFormatFont" Command="{Binding FormatFont, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatBulletedList" Command="{Binding FormatBulletedList, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatNumberingList" Command="{Binding FormatNumberingList, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatMultilevelList" Command="{Binding FormatMultilevelList, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatDecreaseIndent" Command="{Binding FormatDecreaseIndent, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatIncreaseIndent" Command="{Binding FormatIncreaseIndent, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewShowWhitespace" Command="{Binding ViewShowWhitespace, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphAlignLeft" Command="{Binding FormatParagraphAlignLeft, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphAlignCenter" Command="{Binding FormatParagraphAlignCenter, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphAlignRight" Command="{Binding FormatParagraphAlignRight, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphAlignJustify" Command="{Binding FormatParagraphAlignJustify, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biFormatParagraphLineSpacing" Command="{Binding FormatParagraphLineSpacing, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphLineSpacingSingle"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphLineSpacingSesquialteral"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphLineSpacingDouble"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphLineSpacingCustomize"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphAddSpacingBefore"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphRemoveSpacingBefore"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphAddSpacingAfter"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphRemoveSpacingAfter"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biFormatParagraphLineSpacingSingle" Command="{Binding FormatParagraphLineSpacingSingle, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphLineSpacingSesquialteral" Command="{Binding FormatParagraphLineSpacingSesquialteral, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphLineSpacingDouble" Command="{Binding FormatParagraphLineSpacingDouble, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphLineSpacingCustomize" Command="{Binding FormatParagraphLineSpacingCustomize, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphAddSpacingBefore" Command="{Binding FormatParagraphAddSpacingBefore, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphRemoveSpacingBefore" Command="{Binding FormatParagraphRemoveSpacingBefore, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphAddSpacingAfter" Command="{Binding FormatParagraphAddSpacingAfter, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphRemoveSpacingAfter" Command="{Binding FormatParagraphRemoveSpacingAfter, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarSplitButtonColorEditItem x:Name="biFormatParagraphBackColor" Command="{Binding FormatParagraphBackColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biFormatParagraphBackColor, Mode=TwoWay}" ShowDefaultColorButton="False" ShowNoColorButton="True" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxb:BarButtonItem x:Name="biFormatParagraph" Command="{Binding FormatParagraph, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarEditItem x:Name="biFormatFontStyle" Content="" Command="{Binding FormatFontStyle, Mode=OneTime, Source={StaticResource commands}}" EditWidth="150">
<dxb:BarEditItem.EditSettings>
<dxre:RichEditStyleComboBoxEditSettings x:Name="RichEditStyleComboBox"/>
</dxb:BarEditItem.EditSettings>
</dxb:BarEditItem>
<dxb:BarButtonItem x:Name="biFormatEditFontStyle" Command="{Binding FormatEditFontStyle, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditFind" Command="{Binding EditFind, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biEditReplace" Command="{Binding EditReplace, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertPageBreak" Command="{Binding InsertPageBreak, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertTable" Command="{Binding InsertTable, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertPicture" Command="{Binding InsertPicture, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertFloatingPicture" Command="{Binding InsertFloatingPicture, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertBookmark" Command="{Binding InsertBookmark, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertHyperlink" Command="{Binding InsertHyperlink, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertHeader" Command="{Binding InsertHeader, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertFooter" Command="{Binding InsertFooter, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertPageNumber" Command="{Binding InsertPageNumber, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertPageCount" Command="{Binding InsertPageCount, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertTextBox" Command="{Binding InsertTextBox, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertSymbol" Command="{Binding InsertSymbol, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPageLayoutMargins" Command="{Binding PageLayoutMargins, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biPageLayoutNormalMargins"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutNarrowMargins"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutModerateMargins"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutWideMargins"/>
<dxb:BarButtonItemLink BarItemName="biPageLayoutPageMarginsOptions"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biPageLayoutNormalMargins" ContentTemplate="{Binding SectionMarginBarItemContentTemplate, Mode=OneTime, Source={StaticResource defaultBarItemTemplates}}" Command="{Binding PageLayoutNormalMargins, Mode=OneTime, Source={StaticResource commands}}" GlyphSize="Large"/>
<dxb:BarCheckItem x:Name="biPageLayoutNarrowMargins" ContentTemplate="{Binding SectionMarginBarItemContentTemplate, Mode=OneTime, Source={StaticResource defaultBarItemTemplates}}" Command="{Binding PageLayoutNarrowMargins, Mode=OneTime, Source={StaticResource commands}}" GlyphSize="Large"/>
<dxb:BarCheckItem x:Name="biPageLayoutModerateMargins" ContentTemplate="{Binding SectionMarginBarItemContentTemplate, Mode=OneTime, Source={StaticResource defaultBarItemTemplates}}" Command="{Binding PageLayoutModerateMargins, Mode=OneTime, Source={StaticResource commands}}" GlyphSize="Large"/>
<dxb:BarCheckItem x:Name="biPageLayoutWideMargins" ContentTemplate="{Binding SectionMarginBarItemContentTemplate, Mode=OneTime, Source={StaticResource defaultBarItemTemplates}}" Command="{Binding PageLayoutWideMargins, Mode=OneTime, Source={StaticResource commands}}" GlyphSize="Large"/>
<dxb:BarButtonItem x:Name="biPageLayoutPageMarginsOptions" Command="{Binding PageLayoutPageMarginsOptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPageLayoutOrientation" Command="{Binding PageLayoutOrientation, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biPageLayoutPortraitOrientation"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutLandscapeOrientation"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biPageLayoutPortraitOrientation" Command="{Binding PageLayoutPortraitOrientation, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutLandscapeOrientation" Command="{Binding PageLayoutLandscapeOrientation, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPageLayoutSize" Command="{Binding PageLayoutSize, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxre:PaperKindBarListItemLink BarItemName="biPageLayoutSizeList"/>
<dxb:BarButtonItemLink BarItemName="biPageLayoutPagePaperOptions"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxre:PaperKindBarListItem x:Name="biPageLayoutSizeList" />
<dxb:BarButtonItem x:Name="biPageLayoutPagePaperOptions" Command="{Binding PageLayoutPagePaperOptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPageLayoutColumns" Command="{Binding PageLayoutColumns, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biPageLayoutOneColumn"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutTwoColumns"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutThreeColumns"/>
<dxb:BarButtonItemLink BarItemName="biPageLayoutColumnsOptions"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biPageLayoutOneColumn" Command="{Binding PageLayoutOneColumn, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutTwoColumns" Command="{Binding PageLayoutTwoColumns, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutThreeColumns" Command="{Binding PageLayoutThreeColumns, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPageLayoutColumnsOptions" Command="{Binding PageLayoutColumnsOptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biInsertBreak" Command="{Binding InsertBreak, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biInsertPageBreak"/>
<dxb:BarButtonItemLink BarItemName="biInsertColumnBreak"/>
<dxb:BarButtonItemLink BarItemName="biInsertSectionBreakNextPage"/>
<dxb:BarButtonItemLink BarItemName="biInsertSectionBreakContinuous"/>
<dxb:BarButtonItemLink BarItemName="biInsertSectionBreakEvenPage"/>
<dxb:BarButtonItemLink BarItemName="biInsertSectionBreakOddPage"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biInsertColumnBreak" Command="{Binding InsertColumnBreak, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertSectionBreakNextPage" Command="{Binding InsertSectionBreakNextPage, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertSectionBreakContinuous" Command="{Binding InsertSectionBreakContinuous, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertSectionBreakEvenPage" Command="{Binding InsertSectionBreakEvenPage, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biInsertSectionBreakOddPage" Command="{Binding InsertSectionBreakOddPage, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPageLayoutLineNumbering" Command="{Binding PageLayoutLineNumbering, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biPageLayoutLineNumberingNone"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutLineNumberingContinuous"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutLineNumberingRestartNewPage"/>
<dxb:BarCheckItemLink BarItemName="biPageLayoutLineNumberingRestartNewSection"/>
<dxb:BarCheckItemLink BarItemName="biFormatParagraphSuppressLineNumbers"/>
<dxb:BarButtonItemLink BarItemName="biPageLayoutLineNumberingOptions"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biPageLayoutLineNumberingNone" Command="{Binding PageLayoutLineNumberingNone, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutLineNumberingContinuous" Command="{Binding PageLayoutLineNumberingContinuous, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutLineNumberingRestartNewPage" Command="{Binding PageLayoutLineNumberingRestartNewPage, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPageLayoutLineNumberingRestartNewSection" Command="{Binding PageLayoutLineNumberingRestartNewSection, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biFormatParagraphSuppressLineNumbers" Command="{Binding FormatParagraphSuppressLineNumbers, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPageLayoutLineNumberingOptions" Command="{Binding PageLayoutLineNumberingOptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarButtonColorEditItem x:Name="biPageLayoutPageColor" Command="{Binding PageLayoutPageColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biPageLayoutPageColor, Mode=TwoWay}" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarButtonColorEditItem>
<dxb:BarButtonItem x:Name="biReferencesInsertTableOfContents" Command="{Binding ReferencesInsertTableOfContents, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biReferencesAddParagraphsToTableOfContents" Command="{Binding ReferencesAddParagraphsToTableOfContents, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetBodyTextLevel"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading1Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading2Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading3Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading4Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading5Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading6Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading7Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading8Level"/>
<dxb:BarButtonItemLink BarItemName="biFormatParagraphSetHeading9Level"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biFormatParagraphSetBodyTextLevel" Command="{Binding FormatParagraphSetBodyTextLevel, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading1Level" Command="{Binding FormatParagraphSetHeading1Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading2Level" Command="{Binding FormatParagraphSetHeading2Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading3Level" Command="{Binding FormatParagraphSetHeading3Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading4Level" Command="{Binding FormatParagraphSetHeading4Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading5Level" Command="{Binding FormatParagraphSetHeading5Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading6Level" Command="{Binding FormatParagraphSetHeading6Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading7Level" Command="{Binding FormatParagraphSetHeading7Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading8Level" Command="{Binding FormatParagraphSetHeading8Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biFormatParagraphSetHeading9Level" Command="{Binding FormatParagraphSetHeading9Level, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesUpdateTableOfContents" Command="{Binding ReferencesUpdateTableOfContents, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biReferencesInsertCaptionPlaceholder" Command="{Binding ReferencesInsertCaptionPlaceholder, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertFiguresCaption"/>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertTablesCaption"/>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertEquationsCaption"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biReferencesInsertFiguresCaption" Command="{Binding ReferencesInsertFiguresCaption, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesInsertTablesCaption" Command="{Binding ReferencesInsertTablesCaption, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesInsertEquationsCaption" Command="{Binding ReferencesInsertEquationsCaption, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biReferencesInsertTableOfFiguresPlaceholder" Command="{Binding ReferencesInsertTableOfFiguresPlaceholder, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertTableOfFigures"/>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertTableOfTables"/>
<dxb:BarButtonItemLink BarItemName="biReferencesInsertTableOfEquations"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biReferencesInsertTableOfFigures" Command="{Binding ReferencesInsertTableOfFigures, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesInsertTableOfTables" Command="{Binding ReferencesInsertTableOfTables, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesInsertTableOfEquations" Command="{Binding ReferencesInsertTableOfEquations, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReferencesUpdateTableOfCaptions" Command="{Binding ReferencesUpdateTableOfCaptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:InsertMergeFieldsBarSubItem x:Name="biMailMergeInsertFieldPlaceholder" Command="{Binding MailMergeInsertFieldPlaceholder, Mode=OneTime, Source={StaticResource commands}}" />
<dxb:BarCheckItem x:Name="biMailMergeViewMergedData" Command="{Binding MailMergeViewMergedData, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeShowAllFieldCodes" Command="{Binding MailMergeShowAllFieldCodes, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeShowAllFieldResults" Command="{Binding MailMergeShowAllFieldResults, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeFirstDataRecord" Command="{Binding MailMergeFirstDataRecord, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergePreviousDataRecord" Command="{Binding MailMergePreviousDataRecord, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeNextDataRecord" Command="{Binding MailMergeNextDataRecord, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeLastDataRecord" Command="{Binding MailMergeLastDataRecord, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biMailMergeSaveDocumentAs" Command="{Binding MailMergeSaveDocumentAs, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biCheckSpelling" Command="{Binding CheckSpelling, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewProtectDocument" Command="{Binding ReviewProtectDocument, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewEditPermissionRange" Command="{Binding ReviewEditPermissionRange, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewUnprotectDocument" Command="{Binding ReviewUnprotectDocument, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewNewComment" Command="{Binding ReviewNewComment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biReviewDeleteCommentsPlaceholder" Command="{Binding ReviewDeleteCommentsPlaceholder, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biReviewDeleteOneComment"/>
<dxb:BarButtonItemLink BarItemName="biReviewDeleteAllCommentsShown"/>
<dxb:BarButtonItemLink BarItemName="biReviewDeleteAllComments"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biReviewDeleteOneComment" Command="{Binding ReviewDeleteOneComment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewDeleteAllCommentsShown" Command="{Binding ReviewDeleteAllCommentsShown, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewDeleteAllComments" Command="{Binding ReviewDeleteAllComments, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewPreviousComment" Command="{Binding ReviewPreviousComment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biReviewNextComment" Command="{Binding ReviewNextComment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biReviewViewComment" Command="{Binding ReviewViewComment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:ReviewersBarSubItem x:Name="biReviewReviewers" Command="{Binding ReviewReviewers, Mode=OneTime, Source={StaticResource commands}}" />
<dxb:BarCheckItem x:Name="biReviewReviewingPane" Command="{Binding ReviewReviewingPane, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewDraft" Command="{Binding ViewDraft, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewPrintLayout" Command="{Binding ViewPrintLayout, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewSimple" Command="{Binding ViewSimple, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewHorizontalRuler" Command="{Binding ViewHorizontalRuler, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biViewVerticalRuler" Command="{Binding ViewVerticalRuler, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biViewZoomOut" Command="{Binding ViewZoomOut, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biViewZoomIn" Command="{Binding ViewZoomIn, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biGoToHeader" Command="{Binding GoToHeader, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biGoToFooter" Command="{Binding GoToFooter, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biHeaderFooterGoToPrevious" Command="{Binding HeaderFooterGoToPrevious, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biHeaderFooterGoToNext" Command="{Binding HeaderFooterGoToNext, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biHeaderFooterLinkToPrevious" Command="{Binding HeaderFooterLinkToPrevious, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biHeaderFooterDifferentFirstPage" Command="{Binding HeaderFooterDifferentFirstPage, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biHeaderFooterDifferentOddEvenPages" Command="{Binding HeaderFooterDifferentOddEvenPages, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biHeaderFooterClose" Command="{Binding HeaderFooterClose, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarSplitButtonColorEditItem x:Name="biTableChangeCellsShading" Command="{Binding TableChangeCellsShading, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biTableChangeCellsShading, Mode=TwoWay}" ShowDefaultColorButton="False" ShowNoColorButton="True" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxb:BarSubItem x:Name="biTableChangeBorders" Command="{Binding TableChangeBorders, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biTableToggleBottomBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleTopBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleLeftBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleRightBorder"/>
<dxb:BarButtonItemLink BarItemName="biTableResetAllBorders"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleAllBorders"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleOutsideBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleInsideBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleInsideHorizontalBorder"/>
<dxb:BarCheckItemLink BarItemName="biTableToggleInsideVerticalBorder"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biTableToggleBottomBorder" Command="{Binding TableToggleBottomBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleTopBorder" Command="{Binding TableToggleTopBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleLeftBorder" Command="{Binding TableToggleLeftBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleRightBorder" Command="{Binding TableToggleRightBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableResetAllBorders" Command="{Binding TableResetAllBorders, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleAllBorders" Command="{Binding TableToggleAllBorders, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleOutsideBorder" Command="{Binding TableToggleOutsideBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleInsideBorder" Command="{Binding TableToggleInsideBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleInsideHorizontalBorder" Command="{Binding TableToggleInsideHorizontalBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleInsideVerticalBorder" Command="{Binding TableToggleInsideVerticalBorder, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarSplitButtonColorEditItem x:Name="biTableChangeCellsBorderColor" Command="{Binding TableChangeCellsBorderColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biTableChangeCellsBorderColor, Mode=TwoWay}" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxb:BarSubItem x:Name="biTableSelectElement" Command="{Binding TableSelectElement, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biTableSelectCell"/>
<dxb:BarCheckItemLink BarItemName="biTableSelectColumn"/>
<dxb:BarCheckItemLink BarItemName="biTableSelectRow"/>
<dxb:BarCheckItemLink BarItemName="biTableSelect"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biTableSelectCell" Command="{Binding TableSelectCell, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableSelectColumn" Command="{Binding TableSelectColumn, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableSelectRow" Command="{Binding TableSelectRow, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableSelect" Command="{Binding TableSelect, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleShowGridlines" Command="{Binding TableToggleShowGridlines, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableProperties" Command="{Binding TableProperties, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biTableDeleteElement" Command="{Binding TableDeleteElement, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biTableDeleteCell"/>
<dxb:BarCheckItemLink BarItemName="biTableDeleteColumn"/>
<dxb:BarCheckItemLink BarItemName="biTableDeleteRow"/>
<dxb:BarCheckItemLink BarItemName="biTableDelete"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biTableDeleteCell" Command="{Binding TableDeleteCell, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableDeleteColumn" Command="{Binding TableDeleteColumn, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableDeleteRow" Command="{Binding TableDeleteRow, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableDelete" Command="{Binding TableDelete, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableInsertRowAbove" Command="{Binding TableInsertRowAbove, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableInsertRowBelow" Command="{Binding TableInsertRowBelow, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableInsertColumnToLeft" Command="{Binding TableInsertColumnToLeft, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableInsertColumnToRight" Command="{Binding TableInsertColumnToRight, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableInsertCells" Command="{Binding TableInsertCells, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableMergeCells" Command="{Binding TableMergeCells, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableSplitCells" Command="{Binding TableSplitCells, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableSplit" Command="{Binding TableSplit, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biToggleTableAutoFit" Command="{Binding ToggleTableAutoFit, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biToggleTableAutoFitContents"/>
<dxb:BarCheckItemLink BarItemName="biToggleTableAutoFitWindow"/>
<dxb:BarCheckItemLink BarItemName="biToggleTableFixedColumnWidth"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biToggleTableAutoFitContents" Command="{Binding ToggleTableAutoFitContents, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biToggleTableAutoFitWindow" Command="{Binding ToggleTableAutoFitWindow, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biToggleTableFixedColumnWidth" Command="{Binding ToggleTableFixedColumnWidth, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsTopLeftAlignment" Command="{Binding TableToggleCellsTopLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsTopCenterAlignment" Command="{Binding TableToggleCellsTopCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsTopRightAlignment" Command="{Binding TableToggleCellsTopRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsMiddleLeftAlignment" Command="{Binding TableToggleCellsMiddleLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsMiddleCenterAlignment" Command="{Binding TableToggleCellsMiddleCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsMiddleRightAlignment" Command="{Binding TableToggleCellsMiddleRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsBottomLeftAlignment" Command="{Binding TableToggleCellsBottomLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsBottomCenterAlignment" Command="{Binding TableToggleCellsBottomCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biTableToggleCellsBottomRightAlignment" Command="{Binding TableToggleCellsBottomRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biTableOptions" Command="{Binding TableOptions, Mode=OneTime, Source={StaticResource commands}}"/>
<dxre:BarSplitButtonColorEditItem x:Name="biPictureShapeFillColor" Command="{Binding PictureShapeFillColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biPictureShapeFillColor, Mode=TwoWay}" ShowDefaultColorButton="False" ShowNoColorButton="True" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxre:BarSplitButtonColorEditItem x:Name="biPictureShapeOutlineColor" Command="{Binding PictureShapeOutlineColor, Mode=OneTime, Source={StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue="{Binding EditValue, ElementName=biPictureShapeOutlineColor, Mode=TwoWay}" ShowDefaultColorButton="False" ShowNoColorButton="True" ShowBorder="False"/>
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxb:BarSubItem x:Name="biPictureWrapText" Command="{Binding PictureWrapText, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextSquare"/>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextTight"/>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextThrough"/>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextTopAndBottom"/>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextBehind"/>
<dxb:BarCheckItemLink BarItemName="biPictureWrapTextInFrontOf"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name="biPictureWrapTextSquare" Command="{Binding PictureWrapTextSquare, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPictureWrapTextTight" Command="{Binding PictureWrapTextTight, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPictureWrapTextThrough" Command="{Binding PictureWrapTextThrough, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPictureWrapTextTopAndBottom" Command="{Binding PictureWrapTextTopAndBottom, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPictureWrapTextBehind" Command="{Binding PictureWrapTextBehind, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarCheckItem x:Name="biPictureWrapTextInFrontOf" Command="{Binding PictureWrapTextInFrontOf, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPicturePosition" Command="{Binding PicturePosition, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biPictureTopLeftAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureTopCenterAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureTopRightAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureMiddleLeftAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureMiddleCenterAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureMiddleRightAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureBottomLeftAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureBottomCenterAlignment"/>
<dxb:BarButtonItemLink BarItemName="biPictureBottomRightAlignment"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biPictureTopLeftAlignment" Command="{Binding PictureTopLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureTopCenterAlignment" Command="{Binding PictureTopCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureTopRightAlignment" Command="{Binding PictureTopRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureMiddleLeftAlignment" Command="{Binding PictureMiddleLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureMiddleCenterAlignment" Command="{Binding PictureMiddleCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureMiddleRightAlignment" Command="{Binding PictureMiddleRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureBottomLeftAlignment" Command="{Binding PictureBottomLeftAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureBottomCenterAlignment" Command="{Binding PictureBottomCenterAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureBottomRightAlignment" Command="{Binding PictureBottomRightAlignment, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPictureBringForwardPlaceholder" Command="{Binding PictureBringForwardPlaceholder, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biPictureBringForward"/>
<dxb:BarButtonItemLink BarItemName="biPictureBringToFront"/>
<dxb:BarButtonItemLink BarItemName="biPictureBringInFrontOfText"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biPictureBringForward" Command="{Binding PictureBringForward, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureBringToFront" Command="{Binding PictureBringToFront, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureBringInFrontOfText" Command="{Binding PictureBringInFrontOfText, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarSubItem x:Name="biPictureSendBackwardPlaceholder" Command="{Binding PictureSendBackwardPlaceholder, Mode=OneTime, Source={StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName="biPictureSendBackward"/>
<dxb:BarButtonItemLink BarItemName="biPictureSendToBack"/>
<dxb:BarButtonItemLink BarItemName="biPictureSendBehindText"/>
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name="biPictureSendBackward" Command="{Binding PictureSendBackward, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureSendToBack" Command="{Binding PictureSendToBack, Mode=OneTime, Source={StaticResource commands}}"/>
<dxb:BarButtonItem x:Name="biPictureSendBehindText" Command="{Binding PictureSendBehindText, Mode=OneTime, Source={StaticResource commands}}"/>
</dxb:BarManager.Items>
<!--<DockPanel>
<dxre:RichEditControl x:Name="richEditControl" BarManager="{Binding ElementName=barManager, Mode=OneTime}" CommandBarStyle="Empty" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" />
</DockPanel>-->
</dxb:BarManager>
<DockPanel Grid.Row="1">
<dxre:RichEditControl x:Name="richEditControl1" BarManager="{Binding ElementName=barManager, Mode=OneTime}" CommandBarStyle="Empty" ActiveViewType="Simple" ShowBorder="False" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" ContentChanged="RichEditControl_OnContentChanged"/>
</DockPanel>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Grid>
</Grid>
<Border Grid.Row="2" Grid.ColumnSpan="3" Height="40" Margin="0,10,0,0" VerticalAlignment="Stretch" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#33FFFFFF" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Grid.ColumnSpan="3" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Center" Height="Auto" Margin="5,10,0,0" HorizontalAlignment="Right">
<Button x:Name="btnSave" Content="Übernehmen und schließen" Margin="0,0,3,0" Height="25" Click="BtnSave_OnClick"/>
<Button x:Name="btnClose" Content="Abbrechen" Margin="0,0,3,0" Height="25" Click="BtnClose_OnClick"/>
</StackPanel>
</Grid>
<!--/uc:ShadowChrome-->
</Grid>
</localView:BeWoView>

View File

@@ -0,0 +1,139 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using BeWo.Controls;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.View.Search;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Services;
using BS.Shared.Translation;
using DevExpress.Xpf.RichEdit;
using SupportConceptService = BeWo.Core.Service.SupportConceptService;
namespace BeWo.View.Detail
{
public partial class RatingEditView
{
public event Action ButtonSavedClicked;
public event Action ButtonCancelClicked;
private RatingVM _RatingVM;
public RatingEditView()
{
InitializeComponent();
}
public override bool CanDelete
{
get
{
return false;
}
}
public override bool IsDirty
{
get
{
//if (ViewModel.SelectedVMForEditing != null && _SelectedEmployee != null &&
// !_SelectedEmployee.Equals(ViewModel.SelectedVMForEditing.Employee))
// return true;
return _RatingVM != null && _RatingVM.IsDirty;
}
}
public override string SaveObjectName
{
get
{
return Translator.Translate("dieser Bewertung");
}
}
public override string Title
{
get
{
return Translator.Translate("Bewertung bearbeiten");
}
}
public RatingVM ViewModel { get; set; }
public void InitView(RatingVM rating)
{
InitializeComponent();
_RatingVM = rating;
DataContext = rating;
ViewModel = rating;
ColumnRatingTypeComboBox.ItemsSource = rating.GoalRatingList.AllRatingTypes;
richEditControl1.RtfText = rating.RTFNotice;
Focus();
//ConfigureRTFDocTypes();
}
public bool IsValid()
{
bool lValid = ValidationTrigger.Validate(rootGrid);
return lValid;
}
private void RichEditControl_OnContentChanged(object sender, EventArgs e)
{
ViewModel.Notice = richEditControl1.Text;
ViewModel.RTFNotice = richEditControl1.RtfText;
}
private void BtnSave_OnClick(object sender, RoutedEventArgs e)
{
ButtonSavedClicked?.Invoke();
}
private void BtnClose_OnClick(object sender, RoutedEventArgs e)
{
bool close = true;
if (ViewModel.IsDirty)
{
if (MessageBox.Show(
Translator.Translate("Möchten Sie wirklich abbrechen und die Änderungen verwerfen?"),
"BeWoPlaner", MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.Cancel)
{
close = false;
}
}
if (close)
{
ButtonCancelClicked?.Invoke();
}
}
}
}

View File

@@ -0,0 +1,65 @@
<localView:BeWoView
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="BeWo.View.Detail.RatingTypeView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe2="clr-namespace:DevExpress.XtraEditors;assembly=DevExpress.XtraEditors.v17.1"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
<GroupBox Name="root" Header="Bewertungsskala" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Margin="3">Position</Label>
<TextBox Grid.Column="1" Margin="3" Height="23" Text="{val:ValidationBinding Path=NewVM.Position, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
<Label Margin="3" Grid.Column="2">Bewertung</Label>
<TextBox Grid.Column="3" Margin="3" Height="23" Text="{val:ValidationBinding Path=NewVM.RatingId, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
<Label Grid.Column="4" Margin="3">Bezeichnung</Label>
<dxe:TextEdit Grid.Column="5" MaskUseAsDisplayFormat="True" Height="23" Margin="3" EditValue="{val:ValidationBinding Path=NewVM.DisplayName, UpdateSourceTrigger=PropertyChanged}" Width="300"/>
<Button Name="button_addRatingType" Click="Button_addRatingType_Click" Grid.Column="4" Height="25" Margin="3,3,3,3" Padding="5 0" IsDefault="True" Content="Hinzufügen" />
<dxg:GridControl x:Name="DatagridRatingTypes" Margin="0,10,0,0" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="7" DataSource="{Binding VMList}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="IsDeleteable" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" IsEnabled="{Binding Path=EditValue}" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Position" Header="Position" Width="100" SortOrder="Ascending" SortIndex="0">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="0" Mask="0" MaskType="Numeric"></dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="RatingId" Header="Bewertung" Width="100">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="0" Mask="0" MaskType="Numeric" AllowNullInput="True"></dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="DisplayName" Header="Bezeichnung" Width="400" >
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</GroupBox>
</localView:BeWoView>

View File

@@ -0,0 +1,117 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;
using BeWo.Core.Service;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
namespace BeWo.View.Detail
{
public partial class RatingTypeView : BeWoView
{
private RatingTypeListVM _ViewModel;
public RatingTypeView(RatingTypeListVM pViewModel)
{
InitializeComponent();
ViewModel = pViewModel;
}
public override bool IsDirty
{
get { return ViewModel != null && ViewModel.IsDirty; }
}
public override string Title
{
get { return "Bewertungsarten"; }
}
// TODO
internal override DependencyObject ValidationOnSaveRootElement
{
get { return button_addRatingType; }
}
private RatingTypeListVM ViewModel
{
get { return _ViewModel; }
set
{
_ViewModel = value;
root.DataContext = value;
}
}
protected override void Save()
{
var lToDos = new List<Action<IOperationsService>>();
if(ViewModel.AddedCount > 0)
{
lToDos.Add(s => s.InsertNewRatingType(ViewModel.CommitAdded()));
}
if (ViewModel.RemovedCount > 0)
{
lToDos.Add(s => s.DeactivateRatingType(ViewModel.GetRemoved().ToDictionary(dc => dc.RatingTypeOid.Value, dc => dc.RatingTypeVersion.Value)));
}
if (ViewModel.ChangedCount > 0)
{
lToDos.Add(s => s.UpdateRatingType(ViewModel.CommitChanged()));
}
ServiceFacade.DoMultipleOperationsServicesAsync(lToDos, ReloadViewModel);
}
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
ViewModel.VMList.Remove(DatagridRatingTypes.GetCurrentValue<RatingTypeVM>());
BeWoWpfUtils.RefreshDXGrid(DatagridRatingTypes);
}
private void ReloadViewModel()
{
Cache.GetInstance().ClearRatingTypes();
VMFactory.CreateRatingTypeListVMAsync(r => this.Dispatch(delegate { ViewModel = r; }));
}
private void Button_addRatingType_Click(object sender, RoutedEventArgs e)
{
if (ValidationTrigger.Validate(this))
{
ViewModel.AddNewVMToList();
}
}
//private void PART_Editor_Click(object sender, RoutedEventArgs e)
//{
// RowData data = DatagridRegions.View.FocusedRowData;
// if (data != null && data.RowHandle != null)
// {
// var vm = DatagridRegions.GetRow(data.RowHandle.Value) as BudgetVM;
// if (vm != null)
// {
// ViewModel.EditVM = vm;
// //popup_costrateperiods.IsOpen = true;
// }
// }
//}
}
}

View File

@@ -1401,7 +1401,7 @@ namespace BeWo.View.Detail
foreach (var item in ViewModel.PrototypeVM.GoalTree)
{
item.IsChecked = false;
item.SetRating(null);
item.SetRatingType(null);
}
}
@@ -2409,7 +2409,7 @@ namespace BeWo.View.Detail
foreach (var item in ViewModel.PrototypeVM.GoalTree)
{
item.IsChecked = false;
item.SetRating(null);
item.SetRatingType(null);
}
ComboBoxTreeViewControl.TreeViewSourceList = ViewModel.PrototypeVM.GoalTree;

View File

@@ -0,0 +1,245 @@
<localView:BeWoView
x:Class="BeWo.View.Detail.SupportConceptGoalRatingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:view="clr-namespace:BeWo.View.Detail"
xmlns:core="clr-namespace:BeWo.Core"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:core1="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<view:MarkerDataTemplateSelector
x:Key="myDataTemplateSelector"/>
<dxc:BrushOverlayConverter
x:Key="brushOverlayConverter"/>
<DataTemplate
x:Key="squareModel">
<Rectangle Fill="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type dxc:SeriesPointItemPresentation}},
Path=DataContext.PresentationData.PointColor,
ConverterParameter=#FF6B6B6B,
Converter={StaticResource brushOverlayConverter}}"/>
</DataTemplate>
<DataTemplate
x:Key="circleModel">
<Ellipse
Fill="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type dxc:SeriesPointItemPresentation}},
Path=DataContext.PresentationData.PointColor,
ConverterParameter=#FF6B6B6B,
Converter={StaticResource brushOverlayConverter}}" />
</DataTemplate>
</localView:BeWoView.Resources>
<Grid x:Name="RootGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border BorderBrush="#FFADADAD" BorderThickness="0,0,0,1" Margin="0,3,0,5">
<Grid Grid.Row="0" Grid.Column="0" Margin="0,0,0,5">
<Grid x:Name="VariableStatisticsGrid" VerticalAlignment="Top" Margin="5,3,0,0" Visibility="Collapsed">
<ScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
<Grid x:Name="StatisticInfoGrid">
</Grid>
</ScrollViewer>
</Grid>
<Grid x:Name="FixedStatisticsGrid" VerticalAlignment="Top" Margin="5,3,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Margin ="0,0,0,0" Grid.Column="0" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Bewilligungszeitraum:" Height="14" />
<TextBlock x:Name="lblStatisticInfo1" Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Geleistet:" Height="14" />
<TextBlock x:Name="lblStatisticInfo2" Grid.Column="0" Grid.Row="2" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Bewilligt:" Height="14" />
<TextBlock x:Name="lblStatisticInfo3" Grid.Column="0" Grid.Row="3" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Frei:" Height="14" />
</Grid>
<ListBox x:Name="StatisticsListBox" Margin="3,-3,0,0" Grid.Column="1"
BorderThickness="0"
ScrollViewer.CanContentScroll="False"
Background="{x:Null}"
IsTabStop="False"
VerticalAlignment="Top">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type localViewModel:SupportConceptPeriodStatisticsVM}">
<Border x:Name="ItemBorder" BorderThickness="0,0,1,0" Margin="0,0,4,0" Padding="0,0,4,0" BorderBrush="#FF888888">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
Text="{Binding Path=Header}" Grid.ColumnSpan="4"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
<TextBlock x:Name="txtStatisticInfo1Right" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Right"
Text="{Binding Path=StatisticInfo1Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
<TextBlock x:Name="txtStatisticInfo2Right" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Right"
Text="{Binding Path=StatisticInfo2Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo2Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo3Right" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Right"
Text="{Binding Path=StatisticInfo3Right}"
FontWeight="Bold" FontSize="12" Foreground="{Binding Path=StatisticInfo3ForegroundColor}" Height="14" Visibility="{Binding StatisticInfo3Right, Converter={StaticResource ObjectVisibilityConverter}}" ToolTip="{Binding Path=StatisticInfo3Tooltip}"/>
<TextBlock x:Name="txtStatisticInfo4Right" Grid.Column="2" Grid.Row="4" HorizontalAlignment="Right"
Text="{Binding Path=StatisticInfo4Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo4Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo5Right" Grid.Column="2" Grid.Row="5" HorizontalAlignment="Right"
Text="{Binding Path=StatisticInfo5Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo5Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
</Grid>
</Border>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True" />
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}, Mode=FindAncestor}}" Value="True" />
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Grid>
</Border>
<Label Grid.Row="1" Content="Ziele"></Label>
<dxe:ListBoxEdit
Grid.Row="2"
Name="ListBoxGoals"
HorizontalAlignment="Stretch"
SelectedIndex="0"
MinHeight="23"
MaxHeight="300"
ShowCustomItems="False" EditValueChanged="ListBoxGoals_OnEditValueChanged">
<dxe:ListBoxEdit.StyleSettings>
<dxe:CheckedListBoxEditStyleSettings></dxe:CheckedListBoxEditStyleSettings>
</dxe:ListBoxEdit.StyleSettings>
</dxe:ListBoxEdit>
<StackPanel Grid.Row="3" Orientation="Horizontal">
<Button Margin="0 3 0 0"
Name="button_checkAllGoals" Click="button_checkAllGoals_Click"
HorizontalAlignment="Left">Alle auswählen</Button>
<Button Margin="10 3 0 0"
Name="button_uncheckAllGoals" Click="button_uncheckAllGoals_Click"
HorizontalAlignment="Left">Alle abwählen</Button>
</StackPanel>
<CheckBox x:Name="chkShowServiceRecordRatings" IsThreeState="False" Grid.Row="4" Margin="3,13,0,3" VerticalAlignment="Center" Content="Bewertung aus Zeiterfassung anzeigen" Checked="ChkShowServiceRecordRatings_OnChecked" Unchecked="ChkShowServiceRecordRatings_OnUnchecked"/>
<dxc:ChartControl Grid.Row="5" x:Name="ChartRatings" BorderThickness="1" MinHeight="200" VerticalAlignment="Top" Margin="0,3,0,0" dx:ThemeManager.ThemeName="Office2013" MouseMove="chartControl1_MouseMove"
MouseLeave="chartControl1_MouseLeave">
<dxc:ChartControl.Diagram>
<dxc:XYDiagram2D
EnableAxisXNavigation="True"
SeriesDataMember="Goal">
<dxc:XYDiagram2D.AxisY>
<dxc:AxisY2D
GridLinesMinorVisible="True">
<dxc:AxisY2D.WholeRange>
<dxc:Range
dxc:AxisY2D.AlwaysShowZeroLevel="True" />
</dxc:AxisY2D.WholeRange>
<dxc:AxisY2D.Title>
<dxc:AxisTitle
Content="Bewertung" />
</dxc:AxisY2D.Title>
</dxc:AxisY2D>
</dxc:XYDiagram2D.AxisY>
<dxc:XYDiagram2D.AxisX>
<dxc:AxisX2D
GridLinesVisible="True">
<dxc:AxisX2D.DateTimeScaleOptions >
<dxc:ManualDateTimeScaleOptions />
</dxc:AxisX2D.DateTimeScaleOptions>
<dxc:AxisX2D.WholeRange>
<dxc:Range
AutoSideMargins="True"/>
</dxc:AxisX2D.WholeRange>
<dxc:AxisX2D.Title>
<dxc:AxisTitle
Content="Zeitraum"/>
</dxc:AxisX2D.Title>
</dxc:AxisX2D>
</dxc:XYDiagram2D.AxisX>
<dxc:XYDiagram2D.SeriesTemplate>
<dxc:LineSeries2D
MarkerSize="10"
MarkerVisible="True"
ArgumentDataMember="Date"
ValueDataMember="Rating" LabelsVisibility="False" CrosshairLabelVisibility="False" >
<dxc:LineSeries2D.MarkerModel>
<dxc:CustomMarker2DModel>
<dxc:CustomMarker2DModel.PointTemplate>
<ControlTemplate>
<ContentControl
Content="{Binding SeriesPoint}"
ContentTemplateSelector="{StaticResource myDataTemplateSelector}"/>
</ControlTemplate>
</dxc:CustomMarker2DModel.PointTemplate>
</dxc:CustomMarker2DModel>
</dxc:LineSeries2D.MarkerModel>
</dxc:LineSeries2D>
</dxc:XYDiagram2D.SeriesTemplate>
</dxc:XYDiagram2D>
</dxc:ChartControl.Diagram>
<dxc:ChartControl.Legend>
<dxc:Legend
HorizontalPosition="Right" VerticalPosition="TopOutside"/>
</dxc:ChartControl.Legend>
</dxc:ChartControl>
<Popup x:Name="tooltip1" AllowsTransparency="True">
<Border CornerRadius="0" Background="White" Padding="5"
BorderBrush="LightGray" BorderThickness="1" >
<StackPanel x:Name="TooltipPanel" Orientation="Vertical"></StackPanel>
</Border>
</Popup>
</Grid>
</localView:BeWoView>

View File

@@ -0,0 +1,893 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Threading;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.Extensions;
using DevExpress.Xpf.Charts;
using DevExpress.Xpf.Editors;
namespace BeWo.View.Detail
{
public partial class SupportConceptGoalRatingView : BeWoView
{
public static readonly DependencyProperty RatingListProperty = DependencyProperty.Register(
"RatingList",
typeof(RatingListVM),
typeof(SupportConceptGoalRatingView),
new UIPropertyMetadata(
(s, e) =>
{
//var c = s as SupportConceptGoalRatingView;
//var d = e.NewValue as RatingListVM;
//if (c != null && d != null)
//{
// c.InitListView();
//}
}));
public static readonly DependencyProperty SupportConceptProperty = DependencyProperty.Register(
"SupportConcept",
typeof(SupportConceptVM),
typeof(SupportConceptGoalRatingView),
new UIPropertyMetadata(
(s, e) =>
{
var c = s as SupportConceptGoalRatingView;
c.ResetControl();
//var d = e.NewValue as RatingListVM;
//if (c != null && d != null)
//{
// c.InitListView();
//}
}));
private SupportConceptVM _ViewModel;
private IList<GoalRatingDC> serviceRecordRatings = null;
private ObservableCollection<SupportConceptGoalTreeItem> _SelectedGoals;
public SupportConceptGoalRatingView()
{
this.InitializeComponent();
ChartRatings.CrosshairOptions = new CrosshairOptions();
ChartRatings.CrosshairOptions.ShowValueLabels = false;
ChartRatings.CrosshairOptions.ShowArgumentLabels = false;
ChartRatings.CrosshairOptions.ShowArgumentLine = true;
ChartRatings.CrosshairOptions.ShowGroupHeaders = false;
//ChartRatings.CrosshairOptions.ShowValueLabels
//XYDiagram2D diag = ChartRatings.Diagram as XYDiagram2D;
//var a = diag.AxisX;
//var o = a.DateTimeScaleOptions;
//var co = a.DateTimeScaleOptions as ContinuousDateTimeScaleOptions;
//co.GridAlignment = DateTimeGridAlignment.Day;
//co.AutoGrid = true;
}
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public void ResetControl()
{
serviceRecordRatings = null;
}
public void UpdateControl()
{
//if (chkShowServiceRecordRatings.IsChecked.HasValue && chkShowServiceRecordRatings.IsChecked.Value)
//{
FetchServiceRecords();
//}
FetchStatistics();
ListBoxGoals.ItemsSource = null;
var allGoallist = new List<ValueListEntryDC>();
var listBoxGoals = new List<ListBoxGoalItem>();
foreach (var goal in SupportConcept.GetSelectedGoals())
{
if (goal.Type == ValueListEntryType.SupportConceptGoalCategoryType ||
goal.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType)
{
var item = new ListBoxGoalItem();
item.GoalEntry = goal;
SetzeGeleisteteStunden(item);
listBoxGoals.Add(item);
}
}
decimal stdGesamt = 0;
foreach (var g in listBoxGoals)
{
stdGesamt += g.GeleisteteMinuten;
}
if (stdGesamt > 0)
{
foreach (var g in listBoxGoals)
{
g.GeleistetProzentual = (g.GeleisteteMinuten / stdGesamt) * 100;
}
}
ListBoxGoals.ItemsSource = listBoxGoals;
ListBoxGoals.SelectAll();
//if (RatingList != null && RatingList.VMList.Count > 0)
//{
// var goals = new List<ListBoxGoalItem>();
// foreach (var gr in RatingList.VMList[0].GoalRatingList.VMList)
// {
// var item = new ListBoxGoalItem();
// item.GoalEntry = gr.GoalEntry;
// SetzeGeleisteteStunden(item);
// goals.Add(item);
// }
// decimal stdGesamt = 0;
// foreach (var g in goals)
// {
// stdGesamt += g.GeleisteteMinuten;
// }
// if (stdGesamt > 0)
// {
// foreach (var g in goals)
// {
// g.GeleistetProzentual = (g.GeleisteteMinuten / stdGesamt) * 100;
// }
// }
// ListBoxGoals.ItemsSource = goals;
// ListBoxGoals.SelectAll();
//}
UpdateChart();
//ListBoxGoals.ItemsSource = ViewModel.Goals;
}
private void SetzeGeleisteteStunden(ListBoxGoalItem item)
{
if (serviceRecordRatings != null)
{
foreach (var srr in serviceRecordRatings)
{
if (srr.ServiceRecord != null && srr.GoalEntry.ValueListEntryOid == item.GoalEntry.ValueListEntryOid)
{
item.GeleisteteMinuten += srr.ServiceRecord.RoundedDuration;
}
}
}
}
private void UpdateChart()
{
ChartRatings.DataSource = CreateChartData();
SetSeriesVisibility();
}
private IList<ChartData> CreateChartData()
{
var dataList = new List<ChartData>();
foreach (var rating in RatingList.VMList)
{
if (rating.StartDate.HasValue && (!StartDate.HasValue || rating.StartDate >= StartDate.Value) && (!EndDate.HasValue || rating.StartDate <= EndDate.Value))
{
foreach (var goalrating in rating.GoalRatingList.VMList)
{
if (goalrating.GoalEntry != null && goalrating.RatingType != null)
{
var cdata = new ChartData
{
Date = rating.StartDate.Value.Date,
Goal = goalrating.GoalEntry.DisplayName,
Rating = goalrating.RatingType.RatingId ?? 0,
RatingType = goalrating.RatingType,
GoalEntry = goalrating.GoalEntry
};
dataList.Add(cdata);
}
}
}
}
if (chkShowServiceRecordRatings.IsChecked.HasValue && chkShowServiceRecordRatings.IsChecked.Value && serviceRecordRatings != null)
{
foreach (var goalrating in serviceRecordRatings)
{
if (goalrating.GoalEntry != null && goalrating.RatingType != null && goalrating.ServiceRecord != null && (!StartDate.HasValue || goalrating.ServiceRecord.Start >= StartDate.Value) && (!EndDate.HasValue || goalrating.ServiceRecord.Start <= EndDate.Value))
{
var cdata = new ChartData
{
Date = goalrating.ServiceRecord.Start.Value,
Goal = goalrating.GoalEntry.DisplayName,
Rating = goalrating.RatingType.RatingId ?? 0,
RatingType = goalrating.RatingType,
GoalEntry = goalrating.GoalEntry,
ServiceRecord = goalrating.ServiceRecord
};
dataList.Add(cdata);
}
}
}
return dataList;
}
public RatingListVM RatingList
{
get
{
return (RatingListVM)this.GetValue(RatingListProperty);
}
set
{
this.SetValue(RatingListProperty, value);
}
}
public SupportConceptVM SupportConcept
{
get
{
return (SupportConceptVM)this.GetValue(SupportConceptProperty);
}
set
{
this.SetValue(SupportConceptProperty, value);
}
}
private void button_checkAllGoals_Click(object sender, RoutedEventArgs e)
{
ListBoxGoals.SelectAll();
}
private void button_uncheckAllGoals_Click(object sender, RoutedEventArgs e)
{
ListBoxGoals.UnSelectAll();
}
private bool IsSeriesSelected(Series serie)
{
var selected = ListBoxGoals.SelectedItems;
foreach (var item in selected)
{
var goal = item as ListBoxGoalItem;
if (goal != null && goal.GoalEntry != null && goal.GoalEntry.DisplayName == serie.DisplayName)
{
return true;
}
}
return false;
}
private void ListBoxGoals_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
SetSeriesVisibility();
}
private void SetSeriesVisibility()
{
foreach (var serie in ChartRatings.Diagram.Series)
{
serie.Visible = IsSeriesSelected(serie);
}
}
private void ChkShowServiceRecordRatings_OnChecked(object sender, RoutedEventArgs e)
{
FetchServiceRecords();
UpdateChart();
}
private void FetchServiceRecords()
{
if (serviceRecordRatings == null)
{
serviceRecordRatings = ServiceFacade.DoOperationsServiceSync(s => s.FetchServiceRecordRatings(SupportConcept.DataContract.SupportConceptOid.Value, null, null, null, null, null));
}
}
private void ChkShowServiceRecordRatings_OnUnchecked(object sender, RoutedEventArgs e)
{
UpdateChart();
}
private void chartControl1_MouseMove(object sender, MouseEventArgs e)
{
TooltipPanel.Children.Clear();
ChartHitInfo hitInfo = ChartRatings.CalcHitInfo(e.GetPosition(ChartRatings));
if (hitInfo != null && hitInfo.SeriesPoint != null)
{
SeriesPoint point = hitInfo.SeriesPoint;
var cdList = point.Tag as List<Object>;
if (cdList != null)
{
bool first = true;
foreach (var o in cdList)
{
var cd = o as ChartData;
if (cd != null)
{
var ttt = CreateTooltipElement(cd, first);
TooltipPanel.Children.Add(ttt);
first = false;
}
}
}
else
{
var cd = point.Tag as ChartData;
if (cd != null)
{
var ttt = CreateTooltipElement(cd, true);
TooltipPanel.Children.Add(ttt);
}
}
tooltip1.Placement = PlacementMode.Mouse;
tooltip1.PopupAnimation = PopupAnimation.None;
//tooltip1.HorizontalOffset = TooltipPanel.ActualWidth + 10;
//tooltip1.VerticalOffset = -TooltipPanel.ActualHeight;
tooltip1.IsOpen = true;
}
else
{
tooltip1.IsOpen = false;
}
}
private Grid CreateTooltipElement(ChartData cd, bool createDateBlock)
{
Grid g = new Grid();
g.ColumnDefinitions.Add(new ColumnDefinition {Width = GridLength.Auto});
g.ColumnDefinitions.Add(new ColumnDefinition {Width = GridLength.Auto});
g.RowDefinitions.Add(new RowDefinition {Height = GridLength.Auto});
if (createDateBlock)
{
g.RowDefinitions.Add(new RowDefinition { Height = new GridLength(10) });
TextBlock dateBlock = CreateTextBlock(true);
dateBlock.Foreground = Brushes.SteelBlue;
dateBlock.Text = string.Format("{0:dd.MM.yyyy}", cd.Date);
dateBlock.SetValue(Grid.ColumnProperty, 0);
dateBlock.SetValue(Grid.RowProperty, 0);
dateBlock.SetValue(Grid.ColumnSpanProperty, 2);
g.Children.Add(dateBlock);
}
else
{
g.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
}
g.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
g.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
TextBlock zielLabel = CreateTextBlock(true);
zielLabel.Text = "Ziel:";
zielLabel.SetValue(Grid.ColumnProperty, 0);
zielLabel.SetValue(Grid.RowProperty, 2);
g.Children.Add(zielLabel);
TextBlock zielText = CreateTextBlock(false);
zielText.Text = cd.Goal;
zielText.SetValue(Grid.ColumnProperty, 1);
zielText.SetValue(Grid.RowProperty, 2);
g.Children.Add(zielText);
TextBlock ratingLabel = CreateTextBlock(true);
ratingLabel.Text = "Bewertung:";
ratingLabel.SetValue(Grid.ColumnProperty, 0);
ratingLabel.SetValue(Grid.RowProperty, 3);
g.Children.Add(ratingLabel);
TextBlock ratingText = CreateTextBlock(false);
ratingText.Text = cd.RatingType != null ? cd.RatingType.DisplayName : "";
ratingText.SetValue(Grid.ColumnProperty, 1);
ratingText.SetValue(Grid.RowProperty, 3);
g.Children.Add(ratingText);
if (cd.ServiceRecord != null)
{
g.RowDefinitions.Add(new RowDefinition { Height = new GridLength(10) });
g.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
TextBlock recordLabel = CreateTextBlock(false);
if (cd.ServiceRecord.Start.Value.Second == 0)
{
recordLabel.Text +=
string.Format("Uhrzeit: {0:HH:mm} bis {1:HH:mm}\nDauer: {2:0.##} Minuten",
cd.ServiceRecord.Start, cd.ServiceRecord.End, cd.ServiceRecord.RoundedDuration);
}
else
{
recordLabel.Text +=
string.Format("Dauer: {0:0.##} Minuten", cd.ServiceRecord.RoundedDuration);
}
recordLabel.SetValue(Grid.ColumnProperty, 0);
recordLabel.SetValue(Grid.RowProperty, 5);
recordLabel.SetValue(Grid.ColumnSpanProperty, 2);
g.Children.Add(recordLabel);
}
return g;
}
private TextBlock CreateTextBlock(bool bold)
{
var tb = new TextBlock();
tb.Foreground = Brushes.Black;
tb.FontSize = 12;
tb.Margin = new Thickness(3);
if (bold)
{
tb.FontWeight = FontWeights.Bold;
}
return tb;
}
private void chartControl1_MouseLeave(object sender, MouseEventArgs e)
{
tooltip1.IsOpen = false;
}
private void FetchStatistics()
{
long c2sOid = 0;
if (SupportConcept != null && SupportConcept.CostBearerRelations != null)
{
c2sOid = SupportConcept.CostBearerRelations.VMList[0].DataContract.CostBearer2SupportConceptOid.Value;
}
if (c2sOid == 0)
{
return;
}
ServiceFacade.DoOperationsServiceAsync(
s1 =>
s1.GetServiceRecordStatisticInfo(c2sOid, DateTime.Now),
stinf =>
ServiceFacade.DoOperationsServiceAsync(
s =>
s.CreateSupportConceptStatistics(c2sOid, DateTime.Now),
r => this.Dispatch(delegate
{
if (stinf != null)
{
VariableStatisticsGrid.Visibility = Visibility.Visible;
FixedStatisticsGrid.Visibility = Visibility.Collapsed;
CreateStatisticInfos(stinf);
}
else
{
VariableStatisticsGrid.Visibility = Visibility.Collapsed;
FixedStatisticsGrid.Visibility = Visibility.Visible;
StatisticsListBox.ItemsSource = CreateStatisticVMList(r);
}
}), false));
}
private static List<SupportConceptPeriodStatisticsVM> CreateStatisticVMList(SupportConceptStatisticsDC statisticsDc)
{
var stats = new List<SupportConceptPeriodStatisticsVM>();
if (statisticsDc != null)
{
if (statisticsDc.PeriodStatistics.Count > 1 && !TimeSpanIsEqual(statisticsDc))
stats.Add(CreateTotalStatisticsVM(statisticsDc));
foreach (SupportConceptPeriodStatisticsDC dc in statisticsDc.PeriodStatistics)
{
bool showOutOfPeriod = statisticsDc.PeriodStatistics.Count == 1;
stats.Add(CreateStatisticsVM(statisticsDc, dc, showOutOfPeriod));
}
}
return stats;
}
private static bool TimeSpanIsEqual(SupportConceptStatisticsDC r)
{
if (r.PeriodStatistics != null && r.PeriodStatistics.Count > 1)
{
for (int i = 0; i < r.PeriodStatistics.Count - 1; i++)
{
SupportConceptPeriodStatisticsDC p1 = r.PeriodStatistics[i];
if (p1.SupportConceptApprovalPeriod.StartDate.HasValue && p1.SupportConceptApprovalPeriod.EndDate.HasValue)
{
for (int j = i + 1; j < r.PeriodStatistics.Count; j++)
{
SupportConceptPeriodStatisticsDC p2 = r.PeriodStatistics[j];
if (p2.SupportConceptApprovalPeriod.StartDate.HasValue && p2.SupportConceptApprovalPeriod.EndDate.HasValue)
{
if ((p1.SupportConceptApprovalPeriod.StartDate.Value.Date != p2.SupportConceptApprovalPeriod.StartDate.Value.Date) ||
(p1.SupportConceptApprovalPeriod.EndDate.Value.Date != p2.SupportConceptApprovalPeriod.EndDate.Value.Date))
return false;
}
}
}
}
}
return true;
}
public static SupportConceptPeriodStatisticsVM CreateTotalStatisticsVM(SupportConceptStatisticsDC dc)
{
int unitDividend = 60;
var vm = new SupportConceptPeriodStatisticsVM();
vm.Header = "Gesamt";
vm.StatisticInfo1Left = String.Format("{0:0.00}", dc.MinutesProvidedThisWeek / unitDividend);
vm.StatisticInfo1Right = String.Format("{0:0.00}", dc.MinutesProvidedTotalRounded / unitDividend);
vm.StatisticInfo2Left = String.Format("{0:0.00}", dc.MinutesApprovedPerWeek / unitDividend);
vm.StatisticInfo2Right = String.Format("{0:0.00}", dc.MinutesApprovedTotal / unitDividend);
vm.StatisticInfo3Left = String.Format("{0:0.00}", dc.MinutesFreePerWeekAverage / unitDividend);
vm.StatisticInfo3Right = String.Format("{0:0.00}", (dc.MinutesApprovedTotal - dc.MinutesProvidedTotalRounded) / unitDividend);
decimal schwellwert = dc.MinutesApprovedTotal * (BeWoApp.AppSettings.ZeiterfassungsSchwellwert / 100m);
decimal free = dc.MinutesApprovedTotal - dc.MinutesProvidedTotalRounded;
decimal prozent = 0;
if (dc.MinutesApprovedTotal != 0)
{
prozent = (free / dc.MinutesApprovedTotal) * 100;
}
if (dc.MinutesProvidedTotalRounded > schwellwert)
{
vm.StatisticInfo3ForegroundColor = Brushes.Red;
if (free >= 0)
{
vm.StatisticInfo3Tooltip =
String.Format(
"Es stehen nur noch {0:0.##} % der bewilligten Gesamtstunden zur Verfügung.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent);
}
else
{
vm.StatisticInfo3Tooltip =
String.Format(
"Die bewilligten Gesamtstunden wurden um {0:0.##} % überschritten.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent * -1m);
}
}
else
{
vm.StatisticInfo3ForegroundColor = Brushes.Green;
vm.StatisticInfo3Tooltip =
String.Format(
"Es stehen noch {0:0.##} % der bewilligten Gesamtstunden zur Verfügung.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent);
}
vm.MinutesProvidedTotalRounded = dc.MinutesProvidedTotalRounded;
return vm;
}
public static SupportConceptPeriodStatisticsVM CreateStatisticsVM(SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC periodStats, bool showOutOfPeriod)
{
int unitDividend = 60;
var vm = new SupportConceptPeriodStatisticsVM();
if (periodStats.SupportConceptApprovalPeriod != null)
{
if (periodStats.SupportConceptApprovalPeriod.ServiceCategory != null)
{
if (periodStats.SupportConceptApprovalPeriod.StartDate.HasValue && periodStats.SupportConceptApprovalPeriod.EndDate.HasValue &&
periodStats.SupportConceptApprovalPeriod.StartDate.Value.Date == stats.StatisticsStartDate.Date &&
periodStats.SupportConceptApprovalPeriod.EndDate.Value.Date == stats.StatisticsEndDate.Date && !showOutOfPeriod)
{
vm.Header = periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name;
}
else
{
vm.Header = String.Format("{0}: {1:dd.MM.yy} - {2:dd.MM.yy}",
periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name,
periodStats.SupportConceptApprovalPeriod.StartDate,
periodStats.SupportConceptApprovalPeriod.EndDate);
}
}
else
{
vm.Header = String.Format("{0:dd.MM.yy} - {1:dd.MM.yy}",
periodStats.SupportConceptApprovalPeriod.StartDate,
periodStats.SupportConceptApprovalPeriod.EndDate);
}
}
vm.StatisticInfo1Left = String.Format("{0:0.00}", periodStats.MinutesProvidedThisWeek / unitDividend);
vm.StatisticInfo1Right = String.Format("{0:0.00}", periodStats.MinutesProvidedTotalRounded / unitDividend);
vm.StatisticInfo2Left = String.Format("{0:0.00}", periodStats.MinutesApprovedPerWeek / unitDividend);
vm.StatisticInfo2Right = String.Format("{0:0.00}", periodStats.MinutesApprovedTotal / unitDividend);
vm.StatisticInfo3Left = String.Format("{0:0.00}", periodStats.MinutesFreePerWeek / unitDividend);
vm.StatisticInfo3Right = String.Format("{0:0.00}",
(periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded) /
unitDividend);
decimal schwellwert = periodStats.MinutesApprovedTotal * (BeWoApp.AppSettings.ZeiterfassungsSchwellwert / 100m);
decimal free = periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded;
decimal prozent = 0;
if (periodStats.MinutesApprovedTotal != 0)
{
prozent = (free / periodStats.MinutesApprovedTotal) * 100;
}
if (periodStats.MinutesProvidedTotalRounded > schwellwert)
{
vm.StatisticInfo3ForegroundColor = Brushes.Red;
if (free >= 0)
{
vm.StatisticInfo3Tooltip =
String.Format(
"Es stehen nur noch {0:0.##} % der bewilligten Gesamtstunden zur Verfügung.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent);
}
else
{
vm.StatisticInfo3Tooltip =
String.Format(
"Die bewilligten Gesamtstunden wurden um {0:0.##} % überschritten.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent * -1m);
}
}
else
{
vm.StatisticInfo3ForegroundColor = Brushes.Green;
vm.StatisticInfo3Tooltip =
String.Format(
"Es stehen noch {0:0.##} % der bewilligten Gesamtstunden zur Verfügung.\nSie können den Schwellwert für diese Anzeige in der Verwaltung ändern.",
prozent);
}
if (showOutOfPeriod && stats.MinutesOutOfApprovedPeriod > 0)
vm.StatisticInfo1Error = String.Format(" {0:0.00}", stats.MinutesOutOfApprovedPeriod / 60);
vm.MinutesProvidedTotalRounded = periodStats.MinutesProvidedTotalRounded;
return vm;
}
private void CreateStatisticInfos(ServiceRecordStatisticsInfoDC info)
{
if (info != null)
{
StatisticInfoGrid.Children.Clear();
StatisticInfoGrid.ColumnDefinitions.Clear();
StatisticInfoGrid.RowDefinitions.Clear();
if (info.Header != null)
{
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
foreach (var header in info.Header)
{
StatisticInfoGrid.RowDefinitions.Add(new RowDefinition());
}
int rowIndex = 0;
foreach (var header in info.Header)
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, 0);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground =
new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(info.ForegroundColor[rowIndex]));
txt.Height = 14;
txt.Text = header;
StatisticInfoGrid.Children.Add(txt);
rowIndex++;
}
if (info.PeriodStatisticInfos != null)
{
foreach (var periodInfo in info.PeriodStatisticInfos)
{
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
}
int colIndex = 1;
foreach (var periodInfo in info.PeriodStatisticInfos)
{
rowIndex = 0;
foreach (var lv in periodInfo.LeftValues)
{
if (!String.IsNullOrEmpty(lv))
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, colIndex);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground = new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(periodInfo.LeftValueColors[rowIndex]));
txt.Height = 12;
txt.FontWeight = FontWeights.Bold;
txt.Text = lv;
txt.HorizontalAlignment = HorizontalAlignment.Right;
txt.Margin = new Thickness(10, 0, 0, 0);
txt.Padding = new Thickness(1, 0, 1, 0);
if (String.IsNullOrEmpty(periodInfo.RightValues[rowIndex]))
{
txt.SetValue(Grid.ColumnSpanProperty, 2);
}
StatisticInfoGrid.Children.Add(txt);
//<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
// Text="{Binding Path=Header}" Grid.ColumnSpan="4"
// FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
}
if (!String.IsNullOrEmpty(periodInfo.RightValues[rowIndex]))
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, colIndex + 1);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground =
new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(
periodInfo.RightValueColors[rowIndex]));
txt.Height = 12;
txt.FontWeight = FontWeights.Bold;
txt.Text = periodInfo.RightValues[rowIndex];
txt.HorizontalAlignment = HorizontalAlignment.Right;
txt.Margin = new Thickness(10, 0, 0, 0);
txt.Padding = new Thickness(1, 0, 1, 0);
StatisticInfoGrid.Children.Add(txt);
//<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
// Text="{Binding Path=Header}" Grid.ColumnSpan="4"
// FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
}
rowIndex++;
}
colIndex += 2;
}
}
}
}
}
}
public class ListBoxGoalItem
{
public ValueListEntryDC GoalEntry { get; set; }
public decimal GeleisteteMinuten { get; set; }
public decimal GeleistetProzentual { get; set; }
public override string ToString()
{
String name = "";
if (GoalEntry != null)
{
name = GoalEntry.TypeDescription;
}
//name += String.Format("\t(bisher geleistet: {0:0.00} Std. entspricht {1:0.00}%)", GeleistetStunden, GeleistetProzentual);
name += String.Format(" ({0:0.##} Minuten = {1:0.00} Std.)", GeleisteteMinuten, GeleisteteMinuten / 60);
return name;
}
}
public class ChartData
{
public String Goal { get; set; }
public DateTime Date { get; set; }
public int Rating { get; set; }
public RatingTypeDC RatingType { get; set; }
public ValueListEntryDC GoalEntry { get; set; }
public ServiceRecordDC ServiceRecord { get; set; }
}
public class MarkerDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (container is FrameworkElement element && item is SeriesPoint seriesPoint)
{
var cd = seriesPoint.Tag as ChartData;
if (cd != null && cd.ServiceRecord != null)
{
return element.FindResource("circleModel") as DataTemplate;
}
return element.FindResource("squareModel") as DataTemplate;
}
return null;
}
}
}

View File

@@ -8,6 +8,8 @@
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:core1="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ResourceDictionary>
@@ -69,69 +71,73 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="{markup:Translate Zugeordnete Ziele/Maßnahmen}" Style="{DynamicResource ObjectEditGroupBox}">
<TabControl>
<TabItem>
<TabItem.Header>
<TextBlock Text="{markup:Translate Zugeordnete Ziele/Maßnahmen}" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" Padding="3"></TextBlock>
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Button Margin="10 3 0 0" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
Name="button_AddGoals" Click="button_AddGoals_Click"
HorizontalAlignment="Left">Ziele hinzufügen</Button>
</StackPanel>
<TreeView x:Name="treeview_Goals" Margin="3 3 7 3" Grid.Row="1" Padding="5 5 10 5"
ItemContainerStyle="{DynamicResource goal_treeitemstyle}"
ItemTemplate="{DynamicResource goal_treeitemtemplate}" MinHeight="100"
ContextMenu="{StaticResource cmGoals}"
PreviewMouseDown="GoalTreeViewItem_PreviewMouseRightButtonDown">
<TreeView.Resources>
<Style x:Key="goal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>
<HierarchicalDataTemplate x:Key="goal_treeitemtemplate"
DataType="{x:Type core:SupportConceptGoalTreeItem}"
ItemsSource="{Binding Path=Items}">
<Grid IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<!--IsThreeState="{Binding Path=IsGoal,Converter={StaticResource BoolReverseConverter}}"-->
</Grid.RowDefinitions>
<TextBox x:Name="BdText" Tag="{Binding}" Grid.Row="0" Grid.Column="1" Margin="0, 0, 0, 0"
Text="{Binding Path=GoalEntryVM.DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" Cursor="Arrow" Background="Transparent" Height="21" Padding="0" VerticalAlignment="Center"
LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0"
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"
Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}" ToolTipService.ShowDuration="100000">
<TextBox.ToolTip>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Button Margin="3,3,0,3" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
Name="button_AddGoals" Click="button_AddGoals_Click"
HorizontalAlignment="Left">Ziele hinzufügen</Button>
</StackPanel>
<TreeView x:Name="treeview_Goals" Margin="3 3 7 3" Grid.Row="1" Padding="5 5 10 5"
ItemContainerStyle="{DynamicResource goal_treeitemstyle}"
ItemTemplate="{DynamicResource goal_treeitemtemplate}" MinHeight="100"
ContextMenu="{StaticResource cmGoals}"
PreviewMouseDown="GoalTreeViewItem_PreviewMouseRightButtonDown">
<TreeView.Resources>
<Style x:Key="goal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>
<HierarchicalDataTemplate x:Key="goal_treeitemtemplate"
DataType="{x:Type core:SupportConceptGoalTreeItem}"
ItemsSource="{Binding Path=Items}">
<Grid IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--IsThreeState="{Binding Path=IsGoal,Converter={StaticResource BoolReverseConverter}}"-->
<TextBox x:Name="BdText" Tag="{Binding}" Grid.Row="0" Grid.Column="1" Margin="0, 0, 0, 0"
Text="{Binding Path=GoalEntryVM.DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" Cursor="Arrow" Background="Transparent" Height="21" Padding="0" VerticalAlignment="Center"
LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0"
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"
Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}" ToolTipService.ShowDuration="100000">
<TextBox.ToolTip>
<StackPanel Orientation="Vertical">
<Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/>
<TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
TextWrapping="Wrap"
AcceptsReturn="True"
MaxWidth="500"
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.Notice}" />
<Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/>
<TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
TextWrapping="Wrap"
AcceptsReturn="True"
MaxWidth="500"
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.Notice}" />
</StackPanel>
</TextBox.ToolTip>
</TextBox>
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
<!--<dxg:TreeListControl x:Name="treeview_Goals" VerticalAlignment="Stretch">
</TextBox.ToolTip>
</TextBox>
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
<!--<dxg:TreeListControl x:Name="treeview_Goals" VerticalAlignment="Stretch">
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn FieldName="Name" AllowSorting="True" Width="*"/>
</dxg:TreeListControl.Columns>
@@ -142,19 +148,142 @@
ShowDataNavigator="False" ShowBandsPanel="False" ShowRootIndent="True" ShowIndicator="False" ShowColumnHeaders="False" ShowHorizontalLines="False" ShowVerticalLines="False"
ShowAutoFilterRow="True" KeyFieldName="KeyField" ParentFieldName="ParentField" AllowConditionalFormattingMenu="True" ShowCriteriaInAutoFilterRow="False"
>
--><!--DataRowTemplate="{StaticResource nodeToolTipTemplate}">--><!--
-->
<!--DataRowTemplate="{StaticResource nodeToolTipTemplate}">-->
<!--
<dxg:TreeListView.FormatConditions>
<dxg:FormatCondition FieldName="Name" PredefinedFormatName="BoldText" Expression="!IsGoal" ApplyToRow="True" />
</dxg:TreeListView.FormatConditions>
--><!--<dxg:TreeListView.UseLightweightTemplates>
-->
<!--<dxg:TreeListView.UseLightweightTemplates>
<dxg:UseLightweightTemplates>None</dxg:UseLightweightTemplates>
</dxg:TreeListView.UseLightweightTemplates>--><!--
</dxg:TreeListView.UseLightweightTemplates>-->
<!--
</dxg:TreeListView>
</dxg:TreeListControl.View>
</dxg:TreeListControl>-->
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{markup:Translate Bewertung}" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" Padding="3"></TextBlock>
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Button Margin="3,3,0,3"
Name="button_AddRating" Click="button_AddRating_Click"
HorizontalAlignment="Left">Neue Bewertung erstellen</Button>
</StackPanel>
<ListView x:Name="listViewRatings" Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding Ratings.VMList}" Background="Transparent" BorderBrush="Transparent" HorizontalAlignment="Left">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Focusable" Value="false" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#FF6A6A6A" Margin="3 3 3 5" CornerRadius="2" VerticalAlignment="Top" BorderThickness="1">
<Grid Margin="3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Margin="3" VerticalAlignment="Center" FontWeight="Bold" Text="{markup:Translate Datum:}" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" HorizontalAlignment="Stretch"
EditValue="{Binding Path=StartDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" Margin="3" Width="85"
Height="23"/>
<TextBlock Margin="3" VerticalAlignment="Center" FontWeight="Bold"
Grid.Column="0" Grid.Row="1"
Text="{markup:Translate Bemerkungen:}" />
<Button VerticalAlignment="Center"
Grid.Column="6" Width="20"
Height="20" Tag="{Binding}"
Name="btn_deleteRating"
Click="btn_deleteRating_Click"
HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}"
Margin="3 0 0 2" />
<TextBox x:Name="BdText" Tag="{Binding}" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Margin="3" Height="60" Text="{Binding Path=DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" Cursor="Arrow" Padding="1,3,1,3" VerticalAlignment="Center"
>
</TextBox>
<dxg:GridControl x:Name="grid_goalratings" Margin="3" VerticalAlignment="Stretch" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="7" DataSource="{Binding Path=Tasks.VMList, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Stretch">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Subject" Header="Ziel" Width="200"/>
<dxg:GridColumn FieldName="CompletedNotice" Header="Bewertung" Width="200"/>
<dxg:GridColumn FieldName="Notice" Header="Bemerkungen" Width="200"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView x:Name="gridViewGoal" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" MultiSelectMode="None" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<!--<dxg:TreeListControl x:Name="treeview_Goals" VerticalAlignment="Stretch">
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn FieldName="Name" AllowSorting="True" Width="*"/>
</dxg:TreeListControl.Columns>
<dxg:TreeListControl.View>
<dxg:TreeListView x:Name="GoalsTreeView" AllowEditing="False" AllowColumnFiltering="True" AutoExpandAllNodes="True"
ShowCheckboxes="False" AllowRecursiveNodeChecking="True"
ShowNodeImages="False" ShowFixedTotalSummary="False" IsTotalSummaryMenuEnabled="False"
ShowDataNavigator="False" ShowBandsPanel="False" ShowRootIndent="True" ShowIndicator="False" ShowColumnHeaders="False" ShowHorizontalLines="False" ShowVerticalLines="False"
ShowAutoFilterRow="True" KeyFieldName="KeyField" ParentFieldName="ParentField" AllowConditionalFormattingMenu="True" ShowCriteriaInAutoFilterRow="False"
>
-->
<!--DataRowTemplate="{StaticResource nodeToolTipTemplate}">-->
<!--
<dxg:TreeListView.FormatConditions>
<dxg:FormatCondition FieldName="Name" PredefinedFormatName="BoldText" Expression="!IsGoal" ApplyToRow="True" />
</dxg:TreeListView.FormatConditions>
-->
<!--<dxg:TreeListView.UseLightweightTemplates>
<dxg:UseLightweightTemplates>None</dxg:UseLightweightTemplates>
</dxg:TreeListView.UseLightweightTemplates>-->
<!--
</dxg:TreeListView>
</dxg:TreeListControl.View>
</dxg:TreeListControl>-->
</Grid>
</TabItem>
</TabControl>
<!--<GroupBox Grid.Row="1" Header="Individuelle Ziele" Style="{DynamicResource ObjectEditGroupBox}" Visibility="Collapsed">
<TreeView x:Name="treeview_individualGoals" Margin="3 3 7 3" Grid.Row="1" Padding="0 5 10 5"
ItemContainerStyle="{DynamicResource igoal_treeitemstyle}"

View File

@@ -14,6 +14,7 @@ using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.Extensions;
namespace BeWo.View.Detail
{
@@ -160,7 +161,7 @@ namespace BeWo.View.Detail
private void IterateThroughSelectedGoalsAndMassnahmen(SupportConceptGoalTreeItem item, ObservableCollection<SupportConceptGoalTreeItem> list)
{
if (item.IsChecked)
if (item.IsChecked || (item.Items.Count == 0 && (item.GoalType == ValueListEntryType.SupportConceptIndividualGoalCategoryType || item.GoalType == ValueListEntryType.SupportConceptIndividualGoalType)))
{
list.Add(item);
}
@@ -181,7 +182,7 @@ namespace BeWo.View.Detail
private SupportConceptVM ViewModel
public SupportConceptVM ViewModel
{
get
{
@@ -234,9 +235,13 @@ namespace BeWo.View.Detail
var copyList = new List<SupportConceptGoalTreeItem>();
foreach (var item in listWithoutSelected.Where(i => i.Children == null || i.Children.Count == 0))
{
SupportConceptGoalTreeItem copy = CreateCopy(item);
copy.IsExpanded = false;
copyList.Add(copy);
if (item.GoalType == ValueListEntryType.SupportConceptGoalCategoryType ||
item.GoalType == ValueListEntryType.SupportConceptGoalType)
{
SupportConceptGoalTreeItem copy = CreateCopy(item);
copy.IsExpanded = false;
copyList.Add(copy);
}
}
ObservableCollection<SupportConceptGoalTreeItem> tree = CreateTree(copyList, totalGoalTree);
@@ -273,16 +278,86 @@ namespace BeWo.View.Detail
{
foreach (var goal in goals)
{
AddGoalToTree(goal);
AddGoalToTree(goal, null);
}
}
private void AddGoalToTree(SupportConceptGoalTreeItem goal)
private void AddGoalToTree(SupportConceptGoalTreeItem goal, SupportConceptGoalTreeItem child)
{
var copy = CreateCopy(goal);
copy.IsExpanded = true;
if (child != null)
{
copy.Items.Add(child);
}
//var parentElement = GetExistingParent(copy);
var parentElement = GetExistingParent(copy);
if (parentElement == null)
{
parentElement = GetParentFromTotalTree(copy);
if (parentElement != null)
{
AddGoalToTree(parentElement, copy);
}
else
{
SelectedGoals.Add(copy);
}
}
else
{
int idx = 0;
foreach (var ei in parentElement.Items)
{
if (goal.DetailDescription.CompareTo(ei.DetailDescription) > 0)
{
idx++;
}
}
parentElement.Items.Insert(idx, goal);
//parentElement.Items.Sort((a, b) => a.DetailDescription.CompareTo(b.DetailDescription));
}
ViewModel.ChangedGoals.Add(copy);
}
private SupportConceptGoalTreeItem GetExistingParent(SupportConceptGoalTreeItem copy)
{
return GetParentForGoal(SelectedGoals, copy);
}
private SupportConceptGoalTreeItem GetParentFromTotalTree(SupportConceptGoalTreeItem copy)
{
return GetParentForGoal(ViewModel.CombinedGoalTree, copy);
}
private SupportConceptGoalTreeItem GetParentForGoal(IList<SupportConceptGoalTreeItem> goals, SupportConceptGoalTreeItem copy)
{
SupportConceptGoalTreeItem found = null;
if (copy.GoalEntryDC.ParentOid.HasValue)
{
foreach (var goal in goals)
{
if (goal.GoalEntryDC.ValueListEntryOid == copy.GoalEntryDC.ParentOid)
{
return goal;
}
found = GetParentForGoal(goal.Items, copy);
if (found != null)
{
return found;
}
}
}
return found;
}
@@ -304,7 +379,7 @@ namespace BeWo.View.Detail
};
stylee.Setters.Add(new Setter(TreeViewItem.IsExpandedProperty, check));
//treeview_Goals.ItemContainerStyle = stylee;
treeview_Goals.ItemContainerStyle = stylee;
}
@@ -416,5 +491,17 @@ namespace BeWo.View.Detail
}
}
}
private void button_AddRating_Click(object sender, RoutedEventArgs e)
{
ViewModel.Ratings.VMList.AddNew();
}
private void btn_deleteRating_Click(object sender, RoutedEventArgs e)
{
var vm = ((Button)sender).Tag as RatingVM;
ViewModel.Ratings.VMList.Remove(vm);
}
}
}

View File

@@ -17,11 +17,35 @@
xmlns:viewModel="clr-namespace:BS.Shared.DataContracts;assembly=BS.Shared"
xmlns:drawing="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dxre="http://schemas.devexpress.com/winfx/2008/xaml/richedit"
mc:Ignorable="d"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ResourceDictionary>
<dxre:RtfToContentConverter x:Key="rtfToContentConverter" />
<ControlTemplate x:Key="SearchBoxTemplate" TargetType="{x:Type TextBox}">
<Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="#FF7C7C7C" CornerRadius="1,1,1,1" BorderThickness="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ScrollViewer x:Name="PART_ContentHost" Margin="0,2,0,0" />
<Canvas Grid.Column="1" Width="14" Margin="2,2,2,2">
<Ellipse Stroke="#FF7C7C7C" Height="10" Width="10" StrokeThickness="2" Fill="{x:Null}" />
<Line Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF7C7C7C" Canvas.Left="6" Canvas.Top="7.4" Y1="0" Y2="5" StrokeThickness="3" X2="4" />
</Canvas>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<drawing:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter"/>
<view:ValueListEntryTypeToFontWeightConverter x:Key="ValueListEntryTypeToFontWeightConverter" />
<view:ValueListEntryTypeToColorConverter x:Key="ValueListEntryTypeToColorConverter" />
@@ -33,6 +57,83 @@
<Button Content="r" Click="DeleteBetreuungsschluesselButton_Click" Tag="{Binding}"
FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center"
security:DemandUserRight.VisibleDemands="DeleteAll, Betreuungsschluessel_Delete" />
</DataTemplate>
<DataTemplate x:Key="detailDescriptorContentTemplate">
<Grid Background="WhiteSmoke" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.ColumnSpan="3" Margin="5">
<Button x:Name="btnEdit" Grid.Column="0" Grid.Row="7" Width="32"
Height="22" HorizontalAlignment="Left" Margin="0,0,0,0"
BorderThickness="1,1,1,1"
Padding="1,1,1,1"
Click="BtnEditRating_Click" Style="{DynamicResource GlassButton}"
Tag="{Binding}">
<Image Source="..\..\Ressources\Icons\Symbol Edit.png"
Stretch="Uniform" Margin="1,1,1,1" />
</Button>
<Button x:Name="btnDelete" Grid.Column="0" Grid.Row="7" Width="32"
Height="22" HorizontalAlignment="Left" Margin="3,0,0,0"
Padding="1,1,1,1"
BorderThickness="1,1,1,1"
Click="BtnDeleteRating_Click" Style="{DynamicResource GlassButton}"
Tag="{Binding}">
<Image Source="..\..\Ressources\Icons\Symbol Delete.png"
Stretch="Uniform" Margin="1,1,1,1" />
</Button>
</StackPanel>
<Grid Grid.Row="1" Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Datum:" />
<Label Grid.Column="0" Grid.Row="1" Content="Bezeichnung:" />
<Label Grid.Column="2" Grid.Row="0" Content="{Binding StartDate}" ContentStringFormat="dd.MM.yyyy"/>
<Label Grid.Column="2" Grid.Row="1" Content="{Binding DisplayName}" />
</Grid>
<dxg:GridControl ItemsSource="{Binding GoalRatingList.VMList}" Grid.Row="2" Margin="5">
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True"
NavigationStyle="Row" ShowGroupPanel="False"
/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="GoalEntry" Header="Ziel" ReadOnly="True" MinWidth="60" Width="300" />
<dxg:GridColumn FieldName="RatingType" Header="Bewertung" Width="300" ReadOnly="True"/>
<dxg:GridColumn FieldName="Notice" Header="Bemerkungen" MinWidth="60" Width="400" ReadOnly="True"/>
</dxg:GridControl.Columns>
</dxg:GridControl>
<Grid Grid.Row="3" Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Bemerkungen:" />
<dxre:RichEditControl x:Name="richEditControl1" Grid.Column="0" Grid.Row="1" Height="300" Width="1000" CommandBarStyle="Empty" ActiveViewType="Simple" ShowBorder="False" HorizontalAlignment="Stretch" Margin="3" VerticalAlignment="Stretch" Content="{Binding RTFNotice, Converter={StaticResource rtfToContentConverter}}"/>
</Grid>
</Grid>
</DataTemplate>
</ResourceDictionary>
</localView:BeWoView.Resources>
@@ -797,58 +898,100 @@
</ScrollViewer>
</TabItem>
<TabItem Header="Ziele" Name="tabitem_goals">
<TabControl>
<TabItem>
<TabItem.Header>
<TextBlock Text="{markup:Translate Ziele/Maßnahmen}" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" Padding="3"></TextBlock>
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="Definierte Ziele" Style="{DynamicResource ObjectEditGroupBox}">
<TreeView x:Name="treeview_Goals" Margin="3 3 7 3" Grid.Row="1" Padding="5 5 10 5"
ItemContainerStyle="{DynamicResource goal_treeitemstyle}"
ItemTemplate="{DynamicResource goal_treeitemtemplate}" Grid.RowSpan="1" MinHeight="100"
ContextMenu="{StaticResource cmGoals}"
PreviewMouseDown="GoalTreeViewItem_PreviewMouseRightButtonDown">
<TreeView.Resources>
<Style x:Key="goal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>
<HierarchicalDataTemplate x:Key="goal_treeitemtemplate"
DataType="{x:Type Core:SupportConceptGoalTreeItem}"
ItemsSource="{Binding Path=Items}">
<Grid IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--IsThreeState="{Binding Path=IsGoal,Converter={StaticResource BoolReverseConverter}}"-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<CheckBox x:Name="chkShowSelectedGoals" IsThreeState="False" Grid.Column="0" Margin="3,0,10,0" VerticalAlignment="Center" Content="Nur ausgewählte Elemente anzeigen" Checked="ChkShowSelectedGoals_OnChecked" Unchecked="ChkShowSelectedGoals_OnUnchecked"/>
<dxe:TextEdit Margin="3,3,7,3" Grid.Column="1"
Height="23"
x:Name="TxtSearchGoals"
NullText="Suche..."
ShowNullText="True" EditValueChanged="TxtSearchGoals_OnEditValueChanged">
</dxe:TextEdit>
<!--<Label x:Name="SearchFieldLabel" Grid.Column="1" Content="Suche" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBox x:Name="cbtv_search" Grid.Column="2" Margin="3" Height="23" Template="{StaticResource SearchBoxTemplate}" HorizontalAlignment="Stretch" />-->
</Grid>
<CheckBox x:Name="Bd" Tag="{Binding}"
IsThreeState="False"
IsChecked="{Binding Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="0" Margin="3 2" VerticalAlignment="Center"
Visibility="{Binding Path=GoalType, Converter={StaticResource IndividualGoalMassnahmeUncheckPreventConverter}}"/>
<TextBox x:Name="BdText" Tag="{Binding}" Grid.Row="0" Grid.Column="1" Margin="0, 0, 0, 5"
Text="{Binding Path=GoalEntryVM.DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" Cursor="Arrow" Background="Transparent" Height="21" Padding="1,3,1,3" VerticalAlignment="Center"
LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0"
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"
Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}"/>
<CheckBox Grid.Row="0" Grid.Column="2" Margin="5, 5, 0, 0" Visibility="{Binding Path=GoalEntryVM.GotNotice}" IsChecked="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged}"/>
<TextBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Margin="0,0,0,0" Visibility="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BoolVisibilityConverter}}"
Text="{Binding Path=GoalEntryVM.Notice, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center"
BorderThickness="0" IsReadOnly="True" LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" Background="Transparent"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</GroupBox>
<!--<GroupBox Grid.Row="1" Header="Individuelle Ziele" Style="{DynamicResource ObjectEditGroupBox}" Visibility="Collapsed">
<TreeView x:Name="treeview_Goals" Margin="3 3 7 3" Grid.Row="1" Padding="5 5 10 5"
ItemContainerStyle="{DynamicResource goal_treeitemstyle}"
ItemTemplate="{DynamicResource goal_treeitemtemplate}" Grid.RowSpan="1" MinHeight="100"
ContextMenu="{StaticResource cmGoals}"
PreviewMouseDown="GoalTreeViewItem_PreviewMouseRightButtonDown" ItemsSource="{Binding CombinedGoalTree}">
<TreeView.Resources>
<Style x:Key="goal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
</Style>
<HierarchicalDataTemplate x:Key="goal_treeitemtemplate"
DataType="{x:Type Core:SupportConceptGoalTreeItem}"
ItemsSource="{Binding Path=Items}">
<Grid IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--IsThreeState="{Binding Path=IsGoal,Converter={StaticResource BoolReverseConverter}}"-->
<CheckBox x:Name="Bd" Tag="{Binding}"
IsThreeState="False"
IsChecked="{Binding Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="0" Margin="3,0,3,0" VerticalAlignment="Center"
Visibility="{Binding Path=GoalType, Converter={StaticResource IndividualGoalMassnahmeUncheckPreventConverter}}"/>
<TextBox x:Name="BdText" Tag="{Binding}" Grid.Row="0" Grid.Column="1" Margin="0, 0, 0, 0"
Text="{Binding Path=GoalEntryVM.DisplayName, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" Cursor="Arrow" Background="Transparent" Height="21" VerticalAlignment="Center"
LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0"
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"
Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}" ToolTipService.ShowDuration="100000" >
<TextBox.ToolTip>
<ToolTip HorizontalOffset="400" >
<StackPanel Orientation="Vertical" MinWidth="400">
<Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/>
<TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
TextWrapping="Wrap" MaxWidth="500"
AcceptsReturn="True"
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.Notice}" />
</StackPanel>
</ToolTip>
</TextBox.ToolTip>
</TextBox>
<!--<CheckBox Grid.Row="0" Grid.Column="2" Margin="5, 5, 0, 0" Visibility="{Binding Path=GoalEntryVM.GotNotice}" IsChecked="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged}"/>
<TextBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Margin="0,0,0,0" Visibility="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BoolVisibilityConverter}}"
Text="{Binding Path=GoalEntryVM.Notice, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center"
BorderThickness="0" IsReadOnly="True" LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" Background="Transparent"/>-->
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
<!--<TreeView.ItemsSource>
<MultiBinding Converter="{StaticResource FilterDCConverter}">
<MultiBinding.Bindings>
<Binding Path="CombinedGoalTree" />
<Binding ElementName="TxtSearchGoals" Path="EditValue" />
</MultiBinding.Bindings>
</MultiBinding>
</TreeView.ItemsSource>-->
</TreeView>
<!--<GroupBox Grid.Row="1" Header="Individuelle Ziele" Style="{DynamicResource ObjectEditGroupBox}" Visibility="Collapsed">
<TreeView x:Name="treeview_individualGoals" Margin="3 3 7 3" Grid.Row="1" Padding="0 5 10 5"
ItemContainerStyle="{DynamicResource igoal_treeitemstyle}"
ItemTemplate="{DynamicResource igoal_treeitemtemplate}" Grid.RowSpan="1" ContextMenu="{StaticResource cmGoals}"
@@ -862,19 +1005,21 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
--><!--<CheckBox Tag="{Binding}" IsChecked="{Binding Path=IsChecked}" Grid.Column="0" Margin="3 2" VerticalAlignment="Center" />-->
<!--<TextBlock Tag="{Binding}" Grid.Column="1" Margin="3 2" Text="{Binding Path=Name}" VerticalAlignment="Center" />--><!--
-->
<!--<CheckBox Tag="{Binding}" IsChecked="{Binding Path=IsChecked}" Grid.Column="0" Margin="3 2" VerticalAlignment="Center" />-->
<!--<TextBlock Tag="{Binding}" Grid.Column="1" Margin="3 2" Text="{Binding Path=Name}" VerticalAlignment="Center" />-->
<!--
<TextBox Margin="0,0,0,0" Cursor="Arrow" Background="Transparent" Height="21" Padding="1,3,1,3" VerticalAlignment="Center" LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0" IsReadOnly="True" Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</GroupBox>-->
<StackPanel Grid.Row="1" Orientation="Horizontal">
<StackPanel Grid.Row="2" Orientation="Horizontal">
<Button Margin="10 3 0 0" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
Name="button_checkAllGoals" Click="button_checkAllGoals_Click"
HorizontalAlignment="Left">Alle auswählen</Button>
<Button Margin="10 3 0 0" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
<Button Margin="10 3 0 0" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
Name="button_uncheckAllGoals" Click="button_uncheckAllGoals_Click"
HorizontalAlignment="Left">Alle abwählen</Button>
<Button Margin="10 3 0 0"
@@ -882,17 +1027,57 @@
HorizontalAlignment="Left">Alle aufklappen</Button>
<Button Margin="10 3 0 0"
Name="button_zuklappenAllGoals" Click="button_zuklappenAllGoals_Click"
HorizontalAlignment="Left">Alle zuklappen</Button>
</StackPanel>
</Grid>
</TabItem>
<TabItem Header="Ziele Neu" Name="tabitem_goalsNeu" Selector.Selected="tabitem_goalsNeu_selected">
<Grid x:Name="GridGoals">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
HorizontalAlignment="Left">Alle zuklappen</Button>
</StackPanel>
</Grid>
</TabItem>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="{markup:Translate Bewertung}" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" Padding="3"></TextBlock>
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,3">
<Button Margin="3,3,0,3" IsEnabled="{Binding Path=IsAllowedToEditGoals, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type view:SupportConceptView}}}"
Name="BtnAddRating" Click="BtnAddRating_Click"
HorizontalAlignment="Left">Neue Bewertung hinzufügen</Button>
</StackPanel>
<dxg:GridControl x:Name="GridRatings" Grid.Row="1" ItemsSource="{Binding Ratings.VMList}" >
<dxg:GridControl.DetailDescriptor>
<dxg:ContentDetailDescriptor ShowHeader="False" ContentTemplate="{StaticResource detailDescriptorContentTemplate}" >
</dxg:ContentDetailDescriptor>
</dxg:GridControl.DetailDescriptor>
<dxg:GridControl.View>
<dxg:TableView x:Name="TableViewRatings" AllowPerPixelScrolling="True" ShowGroupPanel="False"
NavigationStyle="Row"/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="StartDate" Header="Datum" MinWidth="60" ReadOnly="True" Width="100" SortOrder="Ascending"/>
<dxg:GridColumn FieldName="DisplayName" Header="Bezeichnung" MinWidth="60" Width="200" ReadOnly="True"/>
<!--<dxg:GridColumn FieldName="Notice" Header="Bemerkungen" MinWidth="60" Width="*" ReadOnly="True"/>
<dxg:GridColumn FieldName="RatingSummary" Header="Bewertungen" MinWidth="60" Width="*" ReadOnly="True" />-->
</dxg:GridControl.Columns>
</dxg:GridControl>
</Grid>
</TabItem>
<!--<TabItem Selector.Selected="AuswertungTab_OnSelected">
<TabItem.Header>
<TextBlock Text="{markup:Translate Auswertung}" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" Padding="3"></TextBlock>
</TabItem.Header>
<Grid>
<view:SupportConceptGoalRatingView x:Name="RatingView" SupportConcept="{Binding}" RatingList="{Binding Ratings}" />
</Grid>
</TabItem>-->
</TabControl>
</TabItem>
<TabItem Header="Aufgaben" Name="tabitem_tasks" Selector.Selected="Tabitem_tasks_OnSelected">
<Grid x:Name="tabitem_grid_tasks">
<Grid.RowDefinitions>
@@ -1148,5 +1333,6 @@
</Grid>
</GroupBox>
</uc:ShadowChrome>
</Grid>
</localView:BeWoView>

View File

@@ -9,6 +9,7 @@ using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Threading;
using BeWo.Annotations;
@@ -28,6 +29,7 @@ using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Mvvm.POCO;
using DevExpress.Utils;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
@@ -110,7 +112,6 @@ namespace BeWo.View.Detail
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConcept_AllowEditGoals))
{
tabitem_goals.IsSelected = true;
tabitem_goalsNeu.IsSelected = true;
}
}
if (pViewModel.VarFields == null || pViewModel.VarFields.VMList.Count == 0)
@@ -211,7 +212,7 @@ namespace BeWo.View.Detail
popupedit_customer.Text = ViewModel.Customer.ToString();
}
treeview_Goals.ItemsSource = value.CombinedGoalTree;
//treeview_Goals.ItemsSource = value.CombinedGoalTree;
if (tabcontrol_costbearers != null)
{
@@ -559,6 +560,7 @@ namespace BeWo.View.Detail
{
ViewModel = cb;
_DeletedTasks.Clear();
}));
});
});
@@ -809,18 +811,18 @@ namespace BeWo.View.Detail
}
}
private void tabitem_goalsNeu_selected(object sender, RoutedEventArgs e)
{
//if (ViewModel.IsNew)
//{
// MessageBox.Show("Bevor Sie Angaben zum Schulbegleitenden Dienst hinterlegen können, muss dieser Datensatz zuerst gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
// return;
//}
if (GridGoals.Children.Count == 0)
{
GridGoals.Children.Add(new SupportConceptGoalView(ViewModel));
}
}
//private void tabitem_goalsNeu_selected(object sender, RoutedEventArgs e)
//{
// //if (ViewModel.IsNew)
// //{
// // MessageBox.Show("Bevor Sie Angaben zum Schulbegleitenden Dienst hinterlegen können, muss dieser Datensatz zuerst gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
// // return;
// //}
// if (GridGoals.Children.Count == 0)
// {
// GridGoals.Children.Add(new SupportConceptGoalView(ViewModel));
// }
//}
// Kann das weg?
private void ContextMenu_Click(object sender, RoutedEventArgs e)
@@ -1304,11 +1306,10 @@ namespace BeWo.View.Detail
private void CheckAllGoalTreeItems(bool check)
{
var allItems = treeview_Goals.ItemsSource as IList<SupportConceptGoalTreeItem>;
foreach (var item in allItems)
foreach (var item in treeview_Goals.ItemsSource)
{
item.IsChecked = check;
((SupportConceptGoalTreeItem)item).IsChecked = check;
}
}
@@ -1560,6 +1561,266 @@ namespace BeWo.View.Detail
break;
}
}
private void BtnEditRating_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
if (btn != null)
{
var rating = btn.Tag as RatingVM;
if (rating != null)
{
var ratingCopy = CopyRatingVM(rating);
var changed = EditRating(ratingCopy);
if (changed != null)
{
rating.StartDate = changed.StartDate;
rating.DisplayName = changed.DisplayName;
rating.Notice = changed.Notice;
rating.RTFNotice = changed.RTFNotice;
rating.RatingId = changed.RatingId;
rating.GoalRatingList.VMList.Clear();
foreach (var goalRatingVm in changed.GoalRatingList.VMList)
{
rating.GoalRatingList.VMList.Add(goalRatingVm);
}
}
}
}
}
private RatingVM CopyRatingVM(RatingVM rating)
{
var newVm = new RatingVM(rating.DataContract);
return newVm;
}
private void BtnDeleteRating_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
if (btn != null)
{
var rating = btn.Tag as RatingVM;
ViewModel.Ratings.VMList.Remove(rating);
}
}
private void BtnAddRating_Click(object sender, RoutedEventArgs e)
{
var rating = new RatingVM(new RatingDC());
rating.StartDate = DateTime.Now;
foreach (var goal in ViewModel.GetSelectedGoals())
{
if (goal.Type == ValueListEntryType.SupportConceptGoalCategoryType ||
goal.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType)
{
var gr = rating.GoalRatingList.VMList.AddNew();
gr.GoalEntry = goal;
}
}
var savedRating = EditRating(rating);
if (savedRating != null)
{
ViewModel.Ratings.VMList.Add(savedRating);
}
}
private RatingVM EditRating(RatingVM vm)
{
var control = new RatingEditView();
control.InitView(vm);
var beWoWindow = new BeWoWindow
{
rootGroupBox = { Header = "Bewertung bearbeiten" },
Height = this.Height,
Width = 1000,
MinWidth = 550,
WindowStartupLocation = WindowStartupLocation.CenterOwner,
GroupBoxContent = control,
Owner = BeWoApp.CurrentBeWo.MainWindow
};
bool saved = false;
control.ButtonSavedClicked += () =>
{
saved = true;
beWoWindow.Close();
};
control.ButtonCancelClicked += () =>
{
beWoWindow.Close();
};
beWoWindow.ShowDialog();
if (!saved)
{
return null;
}
return control.ViewModel;
}
public void AnimateOpacity(double pOpacitiy, double pDuration)
{
// System.Windows.Media.TransformGroup group = this.DetailFrame.RenderTransform as System.Windows.Media.TransformGroup;
// System.Windows.Media.ScaleTransform scale = group.Children[0] as System.Windows.Media.ScaleTransform;
var lAnimation = new DoubleAnimation
{
From = root.Opacity,
To = pOpacitiy,
Duration = TimeSpan.FromMilliseconds(pDuration)
};
// lAnimation.From = scale.ScaleX;
// lAnimation.To = pOpacitiy;
root.BeginAnimation(OpacityProperty, lAnimation);
// scale.BeginAnimation(System.Windows.Media.ScaleTransform.ScaleXProperty, lAnimation);
// scale.BeginAnimation(System.Windows.Media.ScaleTransform.ScaleYProperty, lAnimation);
}
private void AuswertungTab_OnSelected(object sender, RoutedEventArgs e)
{
//RatingView.UpdateControl();
}
private void TxtSearchGoals_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
FilterTreeItems();
}
private void FilterTreeItems()
{
String searchtext = TxtSearchGoals.Text;
bool onlyChecked = chkShowSelectedGoals.IsChecked.HasValue && chkShowSelectedGoals.IsChecked.Value;
foreach (var goal in treeview_Goals.Items)
{
SetTreeItemVisibility(treeview_Goals.ItemContainerGenerator, goal as SupportConceptGoalTreeItem, searchtext, onlyChecked);
//if (ig.Status != GeneratorStatus.ContainersGenerated)
//{
// return;
//}
//var n = ig.ContainerFromIndex(this.treeview_individualServiceAccountings.Items.Count - 1) as TreeViewItem;
//if (n != null)
//{
// n.IsSelected = true;
// new DispatcherTimer(
// TimeSpan.FromMilliseconds(200),
// DispatcherPriority.Background,
// (s1, e1) =>
// {
// ServiceCategoryTreeItem item = ig.ItemFromContainer(n) as ServiceCategoryTreeItem;
// this.EditItem(this.treeview_individualServiceAccountings, null, item);
// ((DispatcherTimer)s1).Stop();
// },
// this.Dispatcher).Start();
//}
//this.treeview_individualServiceAccountings.ItemContainerGenerator.StatusChanged -= this.ItemContainerGenerator_StatusChanged;
}
}
private void SetTreeItemVisibility(ItemContainerGenerator ig, SupportConceptGoalTreeItem goal, string searchtext, bool onlyChecked)
{
var item = ig.ContainerFromItem(goal) as TreeViewItem;
if (item == null)
return;
if (goal.Children == null || goal.Children.Count == 0)
{
if (IsTreeItemVisible(goal, searchtext, onlyChecked))
{
item.Visibility = Visibility.Visible;
}
else
{
item.Visibility = Visibility.Collapsed;
}
}
else
{
foreach (var child in goal.Items)
{
SetTreeItemVisibility(item.ItemContainerGenerator, child, searchtext, onlyChecked);
}
if (IsAtLeastOneChildVisible(goal.Items, searchtext, onlyChecked))
{
item.Visibility = Visibility.Visible;
}
else
{
if (IsTreeItemVisible(goal, searchtext, onlyChecked))
{
item.Visibility = Visibility.Visible;
}
else
{
item.Visibility = Visibility.Collapsed;
}
}
}
}
private bool IsTreeItemVisible(SupportConceptGoalTreeItem goal, string searchtext, bool onlyChecked)
{
if (onlyChecked && !goal.IsChecked && goal.GoalType != ValueListEntryType.SupportConceptIndividualGoalType && goal.GoalType != ValueListEntryType.SupportConceptIndividualGoalCategoryType)
{
return false;
}
if (!String.IsNullOrEmpty(searchtext) && (String.IsNullOrEmpty(goal.DetailDescription) || !goal.DetailDescription.ToLower().Contains(searchtext.ToLower())))
{
return false;
}
return true;
}
private bool IsAtLeastOneChildVisible(BindingList<SupportConceptGoalTreeItem> children, string searchtext, bool onlyChecked)
{
foreach (var child in children)
{
bool visible = IsTreeItemVisible(child, searchtext, onlyChecked) || IsAtLeastOneChildVisible(child.Items, searchtext, onlyChecked);
if (visible)
{
return true;
}
}
return false;
}
private void ChkShowSelectedGoals_OnChecked(object sender, RoutedEventArgs e)
{
FilterTreeItems();
}
private void ChkShowSelectedGoals_OnUnchecked(object sender, RoutedEventArgs e)
{
FilterTreeItems();
}
}
public class ValueListEntryTypeToColorConverter : IValueConverter

View File

@@ -1,4 +1,6 @@
<localView:BeWoView x:Class="BeWo.View.Detail.TeamView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:localSearchView="clr-namespace:BeWo.View.Search" xmlns:val="clr-namespace:BeWo.Validation" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView x:Class="BeWo.View.Detail.TeamView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:localSearchView="clr-namespace:BeWo.View.Search" xmlns:val="clr-namespace:BeWo.Validation" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="teamViewMainGrid">
<Grid.Resources>
<Style x:Key="myNavigationListItemStyle" TargetType="{x:Type ListBoxItem}">
@@ -199,6 +201,11 @@
</Grid>
</TabItem>
<TabItem Header="{markup:Translate TeamVarFieldsTitle}" Name="tabitem_varFields">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<localView:VarFieldView VarFieldList="{Binding VarFields}" />
</ScrollViewer>
</TabItem>
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
</TabControl>

View File

@@ -40,6 +40,11 @@ namespace BeWo.View.Detail
{
tabitem_documents.Visibility = Visibility.Collapsed;
}
if (pViewModel.VarFields == null || pViewModel.VarFields.VMList.Count == 0)
{
tabitem_varFields.Visibility = Visibility.Collapsed;
}
}
public override bool IsDirty => ViewModel != null && ViewModel.IsDirty;

View File

@@ -5,6 +5,7 @@ using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
@@ -1543,6 +1544,8 @@ namespace BeWo.View
}
else
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
RssFeed feed = new RssFeed();
RssManager mgr = new RssManager(url);

View File

@@ -84,7 +84,7 @@
<dxa:AccordionItem Header="{markup:Translate Textbausteine}" Name="TabitemTextbausteine" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Ziele und Maßnahmen}" Name="TabitemGoalcategories" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Bewertungsskala}" Name="TabitemRatingTypes" Selected="Tabitem_Selected" Foreground="Black"/>

View File

@@ -382,6 +382,10 @@ namespace BeWo.View.Master
notizEmpList => VMFactory.CreateValueListVMAsync(ValueListEntryType.NotizenKategorieCustomer,
notizCosList => this.Dispatch(() => AddView(TabitemNotizenkategorie, new NotizenKategorieView(notizEmpList, notizCosList)))));
return;
case nameof(TabitemRatingTypes):
VMFactory.CreateRatingTypeListVMAsync(r =>
this.Dispatch(() => AddView(TabitemRatingTypes, new RatingTypeView(r))));
return;
}
throw new ArgumentOutOfRangeException(nameof(accordionItem));

View File

@@ -41,6 +41,7 @@
<TabItem Header="{markup:Translate Abwesenheiten}" Name="tabitem_abwesenheitsTabelle" Selector.Selected="tabitem_abwesenheitsTabelle_Selected"/>
<TabItem Header="{markup:Translate Dienstplaner}" Name="tabitem_dienstPlaner" Selector.Selected="tabitem_dienstPlaner_Selected"/>
<TabItem Header="{markup:Translate Hilfeplanübersicht}" Name="tabitem_supportConceptAnalysis" Selector.Selected="tabitem_supportConceptAnalysis_Selected" />
<TabItem Header="{markup:Translate Bewertungen}" Name="tabitem_RatingAnalysis" Selector.Selected="tabitem_RatingAnalysis_Selected" />
<TabItem Header="{markup:Translate Jahresbericht}" Name="tabitem_annualReport" Selector.Selected="tabitem_annualReport_Selected" />
<TabItem Header="{markup:Translate Quittierungsbelege}" Name="tabitem_serviceOverview" Selector.Selected="tabitem_serviceOverview_Selected" />
<TabItem Header="{markup:Translate Stundenzettel}" Name="tabitem_stundenzettelOverview" Selector.Selected="tabitem_stundenzettelOverview_Selected" />

View File

@@ -12,6 +12,7 @@ using BeWo.View.Report.FLSReport;
using BS.Shared;
using BS.Shared.Extensions;
using BeWo.View.Report.Auslastung;
using BeWo.View.Report.Rating;
namespace BeWo.View.Master
{
@@ -116,7 +117,7 @@ namespace BeWo.View.Master
//tabitem_stundenzettelOverview.Visibility = Visibility.Collapsed;
//}
if (true || BeWoApp.AppSettings.ShowPivotGrid)
if (BeWoApp.AppSettings.ShowPivotGrid)
{
tabitem_flexibleReport.Visibility = Visibility.Visible;
}
@@ -132,6 +133,8 @@ namespace BeWo.View.Master
//else
//{
tabitem_dienstPlaner.Visibility = Visibility.Collapsed;
tabitem_abwesenheitsTabelle.Visibility = Visibility.Collapsed;
tabitem_RatingAnalysis.Visibility = Visibility.Collapsed;
//}
@@ -288,6 +291,16 @@ namespace BeWo.View.Master
}
}
private void tabitem_RatingAnalysis_Selected(object sender, RoutedEventArgs e)
{
if (!this._OpenViews.ContainsKey(this.tabitem_RatingAnalysis))
{
this._OpenViews[this.tabitem_RatingAnalysis] = new RatingReportView();
}
this.Show(this.tabitem_RatingAnalysis);
}
private void tabitem_annualReport_Selected(object sender, RoutedEventArgs e)
{
if (!this._OpenViews.ContainsKey(this.tabitem_annualReport))

View File

@@ -0,0 +1,76 @@
<localView:BeWoView x:Class="BeWo.View.Report.Rating.RatingReportView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxpbars="http://schemas.devexpress.com/winfx/2008/xaml/printing/bars"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:detail="clr-namespace:BeWo.View.Detail"
mc:Ignorable="d">
<GroupBox Style="{StaticResource ObjectEditGroupBox}" Header="Mitarbeiterauslastung" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Foreground="Black" FontSize="12" Grid.Column="0" VerticalAlignment="Center" Text="{markup:Translate Hilfeplan:}" />
<uc:PopUpEdit x:Name="popupedit_CostBeaerer" Width="250" Height="23" Margin="3" Grid.Column="1"
IsReadOnly="True" DeleteButtonVisibility="Collapsed"
PopUpClick="popupedit_CostBeaerer_PopUpClick" MaxWidth="300"
Cursor="Arrow" PreviewMouseDoubleClick="Popupedit_CostBeaerer_OnPreviewMouseDoubleClick"/>
<Popup Margin="10" x:Name="popup_costBearer" StaysOpen="False" Placement="MousePoint" Width="450" Grid.Row="4" Grid.ColumnSpan="5" Height="400" Closed="popup_Closed" Opened="popup_Opened">
<localSearchView:SupportConceptSearchView x:Name="supportconceptsearchview" ItemSelected="SupportConceptSearchView_ItemSelected" SearchMode="All" />
</Popup>
<!--<uc:PopUpEdit Grid.Row="1" IsReadOnly="True" MinWidth="50" Grid.Column="1" Grid.ColumnSpan="3"
x:Name="popupedit_team" DeleteButtonVisibility="Collapsed"
Visibility="{Binding Path=IsChecked, Converter={StaticResource BoolVisibilityHiddenConverter}, ConverterParameter=false, ElementName=checkbox_allTeams}"
Margin="3" VerticalAlignment="Top" PopUpClick="popupedit_team_PopUpClick" Cursor="Arrow" />-->
<dxe:CheckEdit x:Name="chkTotalTimeSpan" Margin="3 5 3 3" Foreground="Black" FontSize="12"
Grid.ColumnSpan="5" Grid.Row="1" VerticalAlignment="Center"
Content="Über gesamten Bewilligungszeitraum"
IsChecked="True" />
<Label Grid.Row="2" Content="von:" HorizontalAlignment="Right"
Visibility="{Binding Visibility, ElementName=grid_period}" />
<Grid Grid.Row="2" x:Name="grid_period" Grid.Column="1"
Visibility="{Binding IsChecked, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=false, ElementName=chkTotalTimeSpan}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" x:Name="dp_start" Grid.Column="0" Margin="3" Height="23" />
<Label Content="bis:" Grid.Column="1" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" x:Name="dp_end" Grid.Column="2" Margin="3" Height="23" />
</Grid>
<Button Name="button_generate" Grid.Row="3" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Content="Aktualisieren" Click="button_generate_Click" Height="23" Margin="3" />
<Border x:Name="BorderRatingView" Grid.Row="4" Grid.ColumnSpan="5" Background="White" BorderBrush="LightGray" BorderThickness="1" Padding="3" Margin="0,5,0,0" Visibility="Collapsed">
<detail:SupportConceptGoalRatingView x:Name="SupportConceptRatingView" Grid.Row="4" Grid.ColumnSpan="5"/>
</Border>
</Grid>
</GroupBox>
</localView:BeWoView>

View File

@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using BS.Shared.Core;
using System.Windows.Media;
using BS.Shared.Extensions;
using System.Collections;
using System.Text;
using BeWo.Controls;
using BeWo.Core;
using System.Windows.Documents;
using BeWo.Core.Service;
using System.Windows.Threading;
using BeWo.View.Detail;
using BeWo.View.Master;
using BeWo.View.Report.FLSReport;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Reports;
using BS.Shared.DataContracts;
using BeWo.ServiceProxy;
using BS.Shared;
using BeWo.ViewModel;
using DevExpress.Xpf.Core;
using Microsoft.Win32;
namespace BeWo.View.Report.Rating
{
public partial class RatingReportView : BeWoView
{
private CompactSupportConceptDC _SelectedSupportConcept;
public RatingReportView()
{
InitializeComponent();
ThemeManager.SetTheme(BeWoApp.CurrentBeWo.MainWindow, Theme.Office2010Black);
//ThemeManager.SetTheme(docPrevControl, Theme.Office2010Black);
dp_start.EditValue = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);
dp_end.EditValue = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
Unloaded += delegate
{
ThemeManager.SetTheme(BeWoApp.CurrentBeWo.MainWindow, null);
//docPrevControl.Visibility = Visibility.Collapsed;
};
}
private void button_generate_Click(object sender, RoutedEventArgs e)
{
if (_SelectedSupportConcept != null)
{
BorderRatingView.Visibility = Visibility.Visible;
if (chkTotalTimeSpan.IsChecked.HasValue && !chkTotalTimeSpan.IsChecked.Value)
{
SupportConceptRatingView.StartDate = dp_start.DateTime;
SupportConceptRatingView.EndDate = dp_end.DateTime;
}
else
{
SupportConceptRatingView.StartDate = null;
SupportConceptRatingView.EndDate = null;
}
UpdateRatingView();
}
}
private void UpdateRatingView()
{
VMFactory.CreateSupportConceptVMAsync(_SelectedSupportConcept.SupportConceptOid,
sc => this.Dispatch(
() =>
{
SupportConceptRatingView.SupportConcept = sc;
SupportConceptRatingView.RatingList = sc.Ratings;
SupportConceptRatingView.UpdateControl();
}
));
}
private void popupedit_CostBeaerer_PopUpClick(object sender, RoutedEventArgs ev)
{
this.popup_costBearer.IsOpen = true;
}
private void Popupedit_CostBeaerer_OnPreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
//if (!BeWoUtils.CheckPopupEditClickableSpace((PopUpEdit)sender, e) || _SelectedSupportConcept == null || !BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConceptView_Edit))
// return;
}
private void SupportConceptSearchView_ItemSelected(object sender, EventArgs<CompactSupportConceptDC> e)
{
this.popup_costBearer.IsOpen = false;
this.popupedit_CostBeaerer.Text = e.Data.DetailDescription;
this._SelectedSupportConcept = e.Data;
}
}
}

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using BeWo.Core;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.ViewModel
{
public class GoalRatingVM : AbstractDCMapperVM<GoalRatingDC>
{
public static string PropertyName_RatingType = "RatingType";
public static string PropertyName_GoalEntry = "GoalEntry";
public static string PropertyName_Notice = "Notice";
private ValueListEntryDC _GoalEntry;
private RatingTypeDC _RatingType;
private String _Notice;
public GoalRatingVM(GoalRatingDC pDC)
: base(pDC, pDC.GoalRatingOid == null)
{
}
public ValueListEntryDC GoalEntry
{
get
{
return this._GoalEntry;
}
set
{
if (this.AreDifferent(this._GoalEntry, value))
{
this._GoalEntry = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.GoalEntry, value), PropertyName_GoalEntry);
this.FirePropertyChanged(PropertyName_GoalEntry);
}
}
}
public RatingTypeDC RatingType
{
get
{
return this._RatingType;
}
set
{
if (this.AreDifferent(this._RatingType, value))
{
this._RatingType = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.RatingType, value), PropertyName_RatingType);
this.FirePropertyChanged(PropertyName_RatingType);
}
}
}
public string Notice
{
get
{
return this._Notice;
}
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
this.FirePropertyChanged(PropertyName_Notice);
}
}
}
protected override void InitByDataContract(GoalRatingDC pDataContract)
{
this._GoalEntry = pDataContract.GoalEntry;
this._RatingType = pDataContract.RatingType;
this._Notice = pDataContract.Notice;
}
protected override GoalRatingDC MapToDataContract(GoalRatingDC pDataContract, bool doCommit)
{
pDataContract.GoalEntry = _GoalEntry;
pDataContract.RatingType = _RatingType;
pDataContract.Notice = _Notice;
return pDataContract;
}
}
}

View File

@@ -0,0 +1,28 @@
using System.Collections.Generic;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel.ListViewModel
{
public class GoalRatingListVM : AbstractDCListMapperVM<GoalRatingDC, GoalRatingVM>
{
public static string PropertyName_AllRatingTypes = "AllRatingTypes";
public List<RatingTypeDC> AllRatingTypes { get; }
public GoalRatingListVM(IEnumerable<GoalRatingDC> pList, List<RatingTypeDC> allRatingTypes) : base(pList)
{
AllRatingTypes = allRatingTypes;
}
protected override GoalRatingVM CreateVM(GoalRatingDC pDC)
{
var vm = base.CreateVM(pDC);
return vm;
}
}
}

View File

@@ -0,0 +1,23 @@
using System.Collections.Generic;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel.ListViewModel
{
public class RatingListVM : AbstractDCListMapperVM<RatingDC, RatingVM>
{
public RatingListVM(IEnumerable<RatingDC> pList) : base(pList)
{
}
protected override RatingVM CreateVM(RatingDC pDC)
{
var vm = base.CreateVM(pDC);
return vm;
}
}
}

View File

@@ -0,0 +1,15 @@
using System.Collections.Generic;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.ViewModel.ListViewModel
{
public class RatingTypeListVM : AbstractDCListMapperVM<RatingTypeDC, RatingTypeVM>
{
public RatingTypeListVM(List<RatingTypeDC> pDCs): base(pDCs)
{
}
}
}

View File

@@ -1124,7 +1124,16 @@ namespace BeWo.ViewModel.ListViewModel
}), false));
}
}
_RecordCountInformationString = "Anzahl Einträge: " + _ServiceRecordsForSelectedCustomer.Count;
decimal minuten = 0;
foreach (var sr in _ServiceRecordsForSelectedCustomer)
{
minuten += sr.RoundedDuration;
}
_RecordCountInformationString =
String.Format("Anzahl Einträge: {0}, Summe Minuten: {1:0.##} entspricht {2:0.00} Stunden", _ServiceRecordsForSelectedCustomer.Count, minuten, minuten / 60);
}
FirePropertyChanged(PropertyName_ServiceRecordsForSelectedCustomer);
@@ -1166,7 +1175,6 @@ namespace BeWo.ViewModel.ListViewModel
#if DEBUG
//tenant = "3057313346";
#endif
if (tenant == "3057313346" || tenant == "2918696314")
{
unitDividend = 1;

View File

@@ -0,0 +1,128 @@
using System;
using System.Collections.Generic;
using BeWo.Core;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.ViewModel
{
public class RatingTypeVM : AbstractDCMapperVM<RatingTypeDC>
{
public static string PropertyName_DisplayName = "DisplayName";
public static string PropertyName_Position = "Position";
public static string PropertyName_RatingId = "RatingId";
public static string PropertyName_Notice = "Notice";
private String _DisplayName;
private int? _Position;
private int? _RatingId;
private String _Notice;
public RatingTypeVM(RatingTypeDC pDC)
: base(pDC, pDC.RatingTypeOid == null)
{
}
public string DisplayName
{
get
{
return this._DisplayName;
}
set
{
if (this.AreDifferent(this._DisplayName, value))
{
this._DisplayName = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.DisplayName, value), PropertyName_DisplayName);
this.FirePropertyChanged(PropertyName_DisplayName);
}
}
}
public int? Position
{
get
{
return this._Position;
}
set
{
if (this.AreDifferent(this._Position, value))
{
this._Position = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Position, value), PropertyName_Position);
this.FirePropertyChanged(PropertyName_Position);
}
}
}
public int? RatingId
{
get
{
return this._RatingId;
}
set
{
if (this.AreDifferent(this._RatingId, value))
{
this._RatingId = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.RatingId, value), PropertyName_RatingId);
this.FirePropertyChanged(PropertyName_RatingId);
}
}
}
public string Notice
{
get
{
return this._Notice;
}
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
this.FirePropertyChanged(PropertyName_Notice);
}
}
}
protected override void InitByDataContract(RatingTypeDC pDataContract)
{
this._DisplayName = pDataContract.DisplayName;
this._RatingId = pDataContract.RatingId;
this._Position = pDataContract.Position;
this._Notice = pDataContract.Notice;
}
protected override RatingTypeDC MapToDataContract(RatingTypeDC pDataContract, bool doCommit)
{
pDataContract.DisplayName = _DisplayName;
pDataContract.RatingId = _RatingId;
pDataContract.Position = _Position;
pDataContract.Notice = _Notice;
return pDataContract;
}
}
}

170
BeWo/ViewModel/RatingVM.cs Normal file
View File

@@ -0,0 +1,170 @@
using System;
using System.Collections.Generic;
using BeWo.Core;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.ViewModel
{
public class RatingVM : AbstractDCMapperVM<RatingDC>
{
public static string PropertyName_GoalRatingList = "GoalRatingList";
public static string PropertyName_StartDate = "StartDate";
public static string PropertyName_DisplayName = "DisplayName";
public static string PropertyName_RatingId = "RatingId";
public static string PropertyName_Notice = "Notice";
public static string PropertyName_RTFNotice = "RTFNotice";
private GoalRatingListVM _GoalRatingList;
private DateTime? _StartDate;
private String _DisplayName;
private int? _RatingId;
private String _Notice;
private String _RTFNotice;
public RatingVM(RatingDC pDC)
: base(pDC, pDC.RatingOid == null)
{
}
public GoalRatingListVM GoalRatingList
{
get { return _GoalRatingList; }
}
public DateTime? StartDate
{
get
{
return this._StartDate;
}
set
{
if (this.AreDifferent(this._StartDate, value))
{
this._StartDate = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.StartDate, value), PropertyName_StartDate);
this.FirePropertyChanged(PropertyName_StartDate);
}
}
}
public string DisplayName
{
get
{
return this._DisplayName;
}
set
{
if (this.AreDifferent(this._DisplayName, value))
{
this._DisplayName = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.DisplayName, value), PropertyName_DisplayName);
this.FirePropertyChanged(PropertyName_DisplayName);
}
}
}
public string Notice
{
get
{
return this._Notice;
}
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
this.FirePropertyChanged(PropertyName_Notice);
}
}
}
public string RTFNotice
{
get { return _RTFNotice; }
set
{
if (AreDifferent(_RTFNotice, value))
{
_RTFNotice = value;
StoreDirtyInformation(AreDifferent(DataContract.RTFNotice, value), PropertyName_RTFNotice);
FirePropertyChanged(PropertyName_RTFNotice);
}
}
}
public int? RatingId
{
get
{
return this._RatingId;
}
set
{
if (this.AreDifferent(this._RatingId, value))
{
this._RatingId = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.RatingId, value), PropertyName_RatingId);
this.FirePropertyChanged(PropertyName_RatingId);
}
}
}
public override bool IsDirty
{
get
{
if (this.GoalRatingList == null)
{
return false;
}
return base.IsDirty || this.GoalRatingList.IsDirty;
}
}
protected override void InitByDataContract(RatingDC pDataContract)
{
this._StartDate = pDataContract.StartDate;
this._DisplayName = pDataContract.DisplayName;
this._RatingId = pDataContract.RatingId;
this._Notice = pDataContract.Notice;
this._RTFNotice = pDataContract.RTFNotice;
_GoalRatingList = VMFactory.CreateGoalRatingListVM(pDataContract.GoalRatingList); // new GoalRatingListVM(pDataContract.GoalRatingList, VMFactory.CreateGoalRatingListVM());
}
protected override RatingDC MapToDataContract(RatingDC pDataContract, bool doCommit)
{
pDataContract.StartDate = _StartDate;
pDataContract.DisplayName = _DisplayName;
pDataContract.RatingId = _RatingId;
pDataContract.Notice = _Notice;
pDataContract.RTFNotice = _RTFNotice;
pDataContract.GoalRatingList = this.GoalRatingList.CopyToDCList(doCommit);
return pDataContract;
}
}
}

View File

@@ -1520,9 +1520,10 @@ namespace BeWo.ViewModel
{
String code = goal.Abbreviation;
if (goal.Rating.HasValue && goal.Rating.Value >= 0)
if (goal.RatingTypeOid.HasValue)
{
code = String.Format("{0}.{1}", code, goal.Rating.Value);
code = String.Format("{0}.{1}", code,
"Hier muss noch etwas gemacht werden!"); //goal.RatingType.RatingId);
}
name = String.Format("{0}: {1}", code, name);
}
@@ -2388,20 +2389,20 @@ namespace BeWo.ViewModel
if (selectedGoal.Equals(goalDc))
{
bool equalRating = true;
if (selectedGoal.Rating == null && goalDc.Rating == null)
if (selectedGoal.RatingTypeOid == null && goalDc.RatingTypeOid == null)
{
equalRating = true;
}
else if (selectedGoal.Rating == null && goalDc.Rating != null)
else if (selectedGoal.RatingTypeOid == null && goalDc.RatingTypeOid != null)
{
equalRating = false;
}
else if (selectedGoal.Rating != null && goalDc.Rating == null)
else if (selectedGoal.RatingTypeOid != null && goalDc.RatingTypeOid == null)
{
equalRating = false;
}
else if (selectedGoal.Rating != null && goalDc.Rating != null &&
selectedGoal.Rating != goalDc.Rating)
else if (selectedGoal.RatingTypeOid != null && goalDc.RatingTypeOid != null &&
selectedGoal.RatingTypeOid != goalDc.RatingTypeOid)
{
equalRating = false;
}

View File

@@ -47,6 +47,7 @@ namespace BeWo.ViewModel
public static string PropertyName_Tasks = "Tasks";
public static string PropertyName_GlobalServiceAccountings = "GlobalServiceAccountings";
public static string PropertyName_VarFields = "VarFields";
public static string PropertyName_Ratings = "Ratings";
private DateTime? _ApprovalDate;
private bool? _Conference;
@@ -65,6 +66,7 @@ namespace BeWo.ViewModel
private ObservableSortCollection<ServiceAccountingDC> _SelectedGlobalServices;
private ServiceAccountingListVM _IndividualServices;
private VarFieldListVM _VarFields;
private RatingListVM _Ratings;
private ObservableSortCollection<ValueListEntryDC> _Goals;
private GenericValueListEntryListVM _CombinedGoals;
@@ -167,7 +169,7 @@ namespace BeWo.ViewModel
item.PropertyChanged += MassnahmeCheckStatusChanged;
if (goal.ParentEntry == null || !dictOid2TreeItem.ContainsKey(goal.ParentEntry.ValueListEntryOid.Value))
if (goal.ParentEntry == null || !goal.ParentEntry.ValueListEntryOid.HasValue || !dictOid2TreeItem.ContainsKey(goal.ParentEntry.ValueListEntryOid.Value))
{
iGoalList.Add(item);
}
@@ -204,9 +206,21 @@ namespace BeWo.ViewModel
{
checkedStateChangedGoals.Remove(item.GoalEntryVM);
}
UpdateGoalsInRatings();
}
}
private void UpdateGoalsInRatings()
{
}
public IList<ValueListEntryDC> GetSelectedGoals1()
{
return null;
}
// Veraltet
//private void InitGoalCategories(List<ValueListEntryDC> pAllGoalCategories, List<ValueListEntryDC> pAllGoals)
//{
@@ -456,6 +470,11 @@ namespace BeWo.ViewModel
get { return _CostBearerRelations; }
}
public RatingListVM Ratings
{
get { return _Ratings; }
}
public CompactCustomerDC Customer
{
get { return _Customer; }
@@ -531,7 +550,7 @@ namespace BeWo.ViewModel
}
return base.IsDirty || CostBearerRelations.IsDirty || Tasks.IsDirty || (_VarFields != null && _VarFields.IsDirty) ||
_IndividualServices.IsDirty || _CombinedGoals.IsDirty || checkedStateChangedGoals.Count > 0;
_IndividualServices.IsDirty || _CombinedGoals.IsDirty || changedGoalds.Count > 0 || Ratings.IsDirty || checkedStateChangedGoals.Count > 0; ;
}
}
@@ -564,7 +583,7 @@ namespace BeWo.ViewModel
}
}
}
public DateTime? RenewalSendDate
{
get { return _RenewalSendDate; }
@@ -659,6 +678,14 @@ namespace BeWo.ViewModel
}
}
private List<SupportConceptGoalTreeItem> changedGoalds = new List<SupportConceptGoalTreeItem>();
public List<SupportConceptGoalTreeItem> ChangedGoals
{
get { return changedGoalds; }
set { changedGoalds = value; }
}
public void AddIndividualService(ServiceCategoryTreeItem parent)
{
var newItem = new ServiceCategoryTreeItem();
@@ -1001,6 +1028,12 @@ namespace BeWo.ViewModel
VMFactory.CreateSupportConceptCostBearerRelVMAsync(pDataContract.CostBearerRelations ?? (pDataContract.CostBearerRelations = new List<SupportConceptCostBearerRelDC>()), _Budgets, cb => _CostBearerRelations = cb);
if (pDataContract.Ratings == null)
{
pDataContract.Ratings = new List<RatingDC>();
}
_Ratings = new RatingListVM(pDataContract.Ratings);
_VarFields = new VarFieldListVM(pDataContract.VarFields);
}
@@ -1019,6 +1052,7 @@ namespace BeWo.ViewModel
pDataContract.SupportConceptSendDate = _SupportConceptSendDate;
pDataContract.ConferenceVenue = _ConferenceVenue;
pDataContract.CostBearerRelations = _CostBearerRelations.CopyToDCList(doCommit);
pDataContract.Ratings = _Ratings.CopyToDCList(doCommit);
pDataContract.ServiceAccountings = GetSelectedGlobalServices();
@@ -1042,7 +1076,7 @@ namespace BeWo.ViewModel
return pDataContract;
}
private List<ValueListEntryDC> GetSelectedGoals()
public List<ValueListEntryDC> GetSelectedGoals()
{
selectedGoals = new List<ValueListEntryDC>();

View File

@@ -2,7 +2,7 @@
using System.Linq;
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
@@ -21,6 +21,8 @@ namespace BeWo.ViewModel
public static string PropertyName_Notice = "Notice";
public static string PropertyName_VarFields = "VarFields";
private CompactEmployeeDC _Leader;
private ObservableCollection<CompactEmployeeDC> _Member;
@@ -29,10 +31,20 @@ namespace BeWo.ViewModel
private string _Notice;
private VarFieldListVM _VarFields;
public TeamVM(TeamDC pDataContract) : base(pDataContract, pDataContract.TeamOid == null)
{
}
public override bool IsDirty
{
get
{
return base.IsDirty || (_VarFields != null && _VarFields.IsDirty);
}
}
public CompactEmployeeDC Leader
{
get { return this._Leader; }
@@ -103,6 +115,20 @@ namespace BeWo.ViewModel
}
}
public VarFieldListVM VarFields
{
get { return _VarFields; }
set
{
if (AreDifferent(_VarFields, value))
{
_VarFields = value;
FirePropertyChanged(PropertyName_VarFields);
}
}
}
protected override void InitByDataContract(TeamDC pDataContract)
{
this._Member = new ObservableCollection<CompactEmployeeDC>();
@@ -119,6 +145,7 @@ namespace BeWo.ViewModel
}
}
_VarFields = new VarFieldListVM(pDataContract.TeamVarFields);
this._Member.CollectionChanged += (s, e) => this.StoreDirtyInformation(!pDataContract.Member.ContainsSameItemsAs(this._Member), PropertyName_Member);
}
@@ -129,6 +156,11 @@ namespace BeWo.ViewModel
pDataContract.Notice = this._Notice;
pDataContract.Member = this._Member.ToList();
if (_VarFields != null)
{
pDataContract.TeamVarFields = _VarFields.CopyToDCList(doCommit);
}
return pDataContract;
}
}

View File

@@ -87,6 +87,12 @@ namespace BeWo.ViewModel
return new WohnheimCustomerRelationListVM(pList, valueList);
}
public static GoalRatingListVM CreateGoalRatingListVM(List<GoalRatingDC> ratingList)
{
var typeList = Cache.GetInstance().GetAllRatingTypeList();
return new GoalRatingListVM(ratingList, typeList);
}
public static void CreateOrganisationPersonRelationListVMAsync(List<OrganisationPersonRelationDC> pDCs, Action<OrganisationPersonRelationListVM> pCallBack)
{
pCallBack(new OrganisationPersonRelationListVM(pDCs));
@@ -465,6 +471,12 @@ namespace BeWo.ViewModel
r => pCallBack(new DienstListVM(r.ToList())));
}
public static void CreateRatingTypeListVMAsync(Action<RatingTypeListVM> pCallBack)
{
ServiceFacade.DoOperationsServiceAsync(s => s.GetAllRatingTypes(),
r => pCallBack(new RatingTypeListVM(r.ToList())));
}
public static void CreateTextModuleListVMAsync(Action<TextModuleListVM> pCallBack, bool pIsInAdministrationView = false, bool pIsInTextModuleEditor = false)
{
ServiceFacade.DoOperationsServiceAsync(s1 => s1.GetTextModules(pIsInTextModuleEditor, BeWoApp.LoggedOnEmployee.EmployeeOid.Value, BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineAlleAnsehen), pIsInAdministrationView), r1 => ServiceFacade.DoOperationsServiceAsync(

View File

@@ -15,7 +15,7 @@
<AssemblyName>BeWoPlanerMobil</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress>
<UseIISExpress>false</UseIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />

View File

@@ -1,17 +1,21 @@
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.OwnChat;
using BeWo.Service.ServiceImplementations;
using BeWoPlanerMobil.Service;
using BS.Shared;
using BS.Shared.Extensions;
using log4net.Core;
using Newtonsoft.Json;
namespace BeWoPlanerMobil.Controllers
@@ -28,9 +32,54 @@ namespace BeWoPlanerMobil.Controllers
public string Index()
{
return "Das ist die <b>Default</b> Aktion... Sie haben hier nix verloren.";
return "Das ist die <b>Default</b> Aktion... Sie haben hier nix verloren;-)";
}
public String GetServerUrl(string k)
{
string url = "https://dict.ownchat.de/api/server/resolve/1/" + k;
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
string responseFromServer = ReadStreamForChatCode(response);
var definition = new { status = "", URL = "", SYNCTYPE = "" };
var jsondaten = JsonConvert.DeserializeAnonymousType(responseFromServer, definition);
string serverUrl = jsondaten.URL;
response.Close();
return serverUrl;
}
private static string ReadStreamForChatCode(WebResponse response)
{
try
{
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
dataStream.Dispose();
reader.Dispose();
dataStream.Close();
reader.Close();
return responseFromServer;
}
catch (Exception e)
{
return null;
}
}
[System.Web.Http.HttpPost]
public JsonResult LoginToken(string kundennummer, string typ)
@@ -129,8 +178,7 @@ namespace BeWoPlanerMobil.Controllers
{
foreach (var v2o in e2c.ValueList)
{
if (v2o.Entry.SystemEntryID.HasValue &&
v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
if ((v2o.Entry.SystemEntryID.HasValue && v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant) || v2o.Entry.Value.ToLower().Contains("ownchat"))
{
foreach (var applicationUser in appUser)
{

View File

@@ -113,6 +113,16 @@ namespace BeWoPlanerMobil.Controllers
}
var myRelatedCustomers = Model.Employee == null ? new List<CustomerEmployeeRelationDC>() : Model.Employee.RelatedCustomers;
foreach (var c2e in myRelatedCustomers)
{
var c = c2e.Customer;
if (c.LastName == "Janzen")
{
int test = 0;
}
}
var relatedCustomerOids = myRelatedCustomers.Select(employee2customer => employee2customer.Customer.CustomerOid).ToList();
if(Model.Employee?.EmployeeOid != null)

View File

@@ -1,4 +1,5 @@
using System;
using System.Net;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
@@ -30,6 +31,8 @@ namespace BeWoPlanerMobil
Context.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Context.Response.Cache.SetNoStore();
}
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
}
}
}

View File

@@ -231,6 +231,52 @@ namespace BeWo.Data.Access
return c.List<ServiceRecord>().ToList();
}
public List<ServiceRecord> FindServiceRecords(long? supportConceptOid, long? costBearer2SupportConceptOid, long? serviceCategoryOid, DateTime? start, DateTime? end)
{
var c = CreateCriteria<ServiceRecord>()
.CreateAlias(ServiceRecord.PropertyName_Employee, "e", JoinType.InnerJoin);
if (supportConceptOid.HasValue)
{
c = c.CreateAlias(ServiceRecord.PropertyName_SupportConcept, "sc", JoinType.InnerJoin);
}
if (serviceCategoryOid.HasValue)
{
c = c.CreateAlias(ServiceRecord.PropertyName_ServiceDescription, "sd", JoinType.InnerJoin)
.CreateAlias("sd." + ServiceDescription.PropertyName_ServiceCategory, "cat", JoinType.InnerJoin);
}
if (supportConceptOid.HasValue)
{
c = c.Add(Restrictions.Eq("sc." + BeWoEntityBase.PropertyName_Oid, supportConceptOid));
}
if (costBearer2SupportConceptOid.HasValue)
{
c = c.Add(Restrictions.Eq(ServiceRecord.PropertyName_CostBearer2SupportConceptOid, costBearer2SupportConceptOid));
}
if (serviceCategoryOid.HasValue)
{
c = c.Add(Restrictions.Eq("cat." + BeWoEntityBase.PropertyName_Oid, serviceCategoryOid));
}
if (start.HasValue && end.HasValue)
{
c.Add(Restrictions.Between(ServiceRecord.PropertyName_Start, start, end));
}
//{
// c = c.CreateAlias(ServiceRecord.PropertyName_SupportConcept, "sc", JoinType.InnerJoin)
// .CreateAlias("sc." + SupportConcept.PropertyName_CostBearer2SupportConceptList, "c2s", JoinType.InnerJoin);
//}
//if (pEmployeeOid.HasValue)
// c = c.Add(Restrictions.Eq("e." + BeWoEntityBase.PropertyName_Oid, pEmployeeOid));
return c.List<ServiceRecord>().ToList();
}
public IList<SupportConceptApprovalPeriod2Employee> FindSupportConceptApprovalPeriod2Employees(Employee emp)
{
var c = CreateCriteria<SupportConceptApprovalPeriod2Employee>()

View File

@@ -128,6 +128,9 @@
<Compile Include="ASPHibernateSessionManager.cs" />
<Compile Include="DefaultHibernateSessionManager.cs" />
<Compile Include="Entities\AddressHistory.cs" />
<Compile Include="Entities\GoalRating.cs" />
<Compile Include="Entities\Rating.cs" />
<Compile Include="Entities\RatingType.cs" />
<Compile Include="Entities\BuchungsExport.cs" />
<Compile Include="Entities\Dienst.cs" />
<Compile Include="Entities\Budget.cs" />
@@ -610,6 +613,15 @@
<EmbeddedResource Include="Mappings\Employee.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Mappings\Rating.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Mappings\GoalRating.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Mappings\RatingType.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<Content Include="Mappings\Timesheet2Mail.hbm.xml" />
<EmbeddedResource Include="Mappings\ContactHistory.hbm.xml">
<SubType>Designer</SubType>

View File

@@ -0,0 +1,20 @@
using System.Collections.Generic;
using BS.Shared;
namespace BeWo.Data.Entities
{
public class GoalRating : BeWoEntityBase
{
public GoalRating()
{
this._Tid = TableID.GoalRating;
}
public virtual long? ValueListEntryOid { get; set; }
public virtual RatingType RatingType { get; set; }
}
}

38
Data/Entities/Rating.cs Normal file
View File

@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using BS.Shared;
namespace BeWo.Data.Entities
{
public class Rating : BeWoEntityBase
{
private IList<GoalRating> _GoalRatingList;
public Rating()
{
this._Tid = TableID.Rating;
}
public virtual string DisplayName { get; set; }
public virtual string RTFNotice { get; set; }
public virtual DateTime? StartDate { get; set; }
public virtual int? RatingId { get; set; }
public virtual IList<GoalRating> GoalRatingList
{
get { return _GoalRatingList ?? (_GoalRatingList = new List<GoalRating>()); }
set
{
if (AreDifferent(_GoalRatingList, value))
{
_GoalRatingList = value;
}
}
}
}
}

View File

@@ -0,0 +1,23 @@
using System.Collections.Generic;
using BS.Shared;
namespace BeWo.Data.Entities
{
public class RatingType : BeWoEntityBase
{
public RatingType()
{
this._Tid = TableID.RatingType;
}
public virtual string DisplayName { get; set; }
public virtual int? RatingId { get; set; }
public virtual int? Position { get; set; }
}
}

View File

@@ -50,7 +50,9 @@ namespace BeWo.Data.Entities
private IList<CostBearer2SupportConcept> _CostBearer2SupportConceptList;
private Customer _Customer;
private IList<Rating> _Ratings;
private Customer _Customer;
private Employee _Originator;
@@ -168,7 +170,23 @@ namespace BeWo.Data.Entities
}
}
public virtual Customer Customer
public virtual IList<Rating> Ratings
{
get
{
return _Ratings ?? (_Ratings = new List<Rating>());
}
set
{
if (AreDifferent(_Ratings, value))
{
_Ratings = value;
}
}
}
public virtual Customer Customer
{
get { return _Customer; }

View File

@@ -12,12 +12,16 @@ namespace BeWo.Data.Entities
public static string PropertyName_Name = "Name";
public static string PropertyName_VarFieldValueList = "VarFieldValueList";
private Employee _Leader;
private IList<Employee> _MemberList;
private string _Name;
private IList<VarFieldValue> _VarFieldValueList;
public Team()
{
_Tid = TableID.Team;
@@ -55,6 +59,19 @@ namespace BeWo.Data.Entities
}
}
public virtual IList<VarFieldValue> VarFieldValueList
{
get { return _VarFieldValueList ?? (_VarFieldValueList = new List<VarFieldValue>()); }
set
{
if (AreDifferent(_VarFieldValueList, value))
{
_VarFieldValueList = value;
}
}
}
public virtual string Name
{
get

View File

@@ -54,6 +54,6 @@ namespace BeWo.Data.Entities
}
}
public virtual int? Rating { get; set; }
public virtual long? RatingTypeOid { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.GoalRating,BeWo.Data" table="GoalRating">
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<version column="Version" type="Int64" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />
<property column="UdpUser" type="String" name="UdpUser" length="256" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="ValueListEntryOid" type="long" name="ValueListEntryOid" />
<many-to-one name="RatingType" column="RatingTypeOid" class="BeWo.Data.Entities.RatingType,BeWo.Data" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.Rating,BeWo.Data" table="Rating">
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<version column="Version" type="Int64" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />
<property column="UdpUser" type="String" name="UdpUser" length="256" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="DisplayName" type="string" name="DisplayName" />
<property column="RTFNotice" type="string" name="RTFNotice" />
<property column="RatingId" type="int" name="RatingId" />
<property column="StartDate" type="DateTime" name="StartDate" />
<bag name="GoalRatingList" table="GoalRating" generic="true" where="IsActive = 1" cascade="all-delete-orphan">
<key column="RatingOid" />
<one-to-many class="BeWo.Data.Entities.GoalRating, BeWo.Data" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.RatingType,BeWo.Data" table="RatingType">
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<version column="Version" type="Int64" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />
<property column="UdpUser" type="String" name="UdpUser" length="256" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="DisplayName" type="string" name="DisplayName" />
<property column="RatingId" type="int" name="RatingId" />
<property column="Position" type="int" name="Position" />
</class>
</hibernate-mapping>

View File

@@ -43,5 +43,9 @@
<key column="ObjectOid" />
<one-to-many class="BeWo.Data.Entities.VarFieldValue, BeWo.Data" />
</bag>
<bag name="Ratings" table="Rating" generic="true" cascade="all-delete-orphan" batch-size="250">
<key column="SupportConceptOid" />
<one-to-many class="BeWo.Data.Entities.Rating,BeWo.Data" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -19,5 +19,9 @@
<key column="TeamOid" />
<many-to-many column="EmployeeOid" class="BeWo.Data.Entities.Employee,BeWo.Data" />
</bag>
<bag name="VarFieldValueList" table="VarFieldValue" generic="true" cascade="all-delete-orphan" where="ObjectTid = 30 AND IsActive=1" batch-size="250">
<key column="ObjectOid" />
<one-to-many class="BeWo.Data.Entities.VarFieldValue, BeWo.Data" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -8,7 +8,7 @@
<version type="Int64" column="Version" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="ObjectTid" type="BS.Shared.TableID, BS.Shared" name="ObjectTid" />
<property column="Rating" type="Int32" name="Rating" />
<property column="RatingTypeOid" type="Int64" name="RatingTypeOid" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />

View File

@@ -17,7 +17,7 @@
<property name="connection.connection_string">
Server=localhost;Password=root;User ID=root; Initial Catalog=nous
Server=localhost;Password=root;User ID=root; Initial Catalog=phbochum
</property>
<property name="dialect">

View File

@@ -0,0 +1,57 @@
ALTER TABLE `valuelistentry2object` ADD COLUMN `RatingTypeOid` BIGINT(19) NULL DEFAULT NULL;
CREATE TABLE `ratingtype` (
`Oid` bigint(19) NOT NULL AUTO_INCREMENT,
`Tid` int(10) DEFAULT NULL,
`IsActive` tinyint(4) DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint(19) DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`SystemEntryID` int(10) DEFAULT NULL,
`DisplayName` varchar(1024) DEFAULT NULL,
`RatingId` int(10) DEFAULT NULL,
`Position` int(10) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `rating` (
`Oid` bigint(19) NOT NULL AUTO_INCREMENT,
`Tid` int(10) DEFAULT NULL,
`IsActive` tinyint(4) DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint(19) DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`SystemEntryID` int(10) DEFAULT NULL,
`StartDate` datetime DEFAULT NULL,
`DisplayName` varchar(1024) DEFAULT NULL,
`RatingId` int(10) DEFAULT NULL,
`RTFNotice` MEDIUMTEXT NULL DEFAULT NULL,
`SupportConceptOid` bigint(19) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `goalrating` (
`Oid` bigint(19) NOT NULL AUTO_INCREMENT,
`Tid` int(10) DEFAULT NULL,
`IsActive` tinyint(4) DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint(19) DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`SystemEntryID` int(10) DEFAULT NULL,
`RatingOid` bigint(19) DEFAULT NULL,
`ValueListEntryOid` bigint(19) DEFAULT NULL,
`RatingTypeOid` bigint(19) DEFAULT NULL,
PRIMARY KEY(`Oid`),
KEY `GOALRATING_RATING_FK` (`RatingOid`),
CONSTRAINT `FK_GOALRATING_RATING` FOREIGN KEY (`RatingOid`) REFERENCES `rating` (`Oid`) ON DELETE NO ACTION ON UPDATE NO ACTION
)ENGINE=InnoDB DEFAULT CHARSET=latin1;

View File

@@ -74,16 +74,14 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell39 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell40 = new DevExpress.XtraReports.UI.XRTableCell();
this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail2 = new DevExpress.XtraReports.UI.DetailBand();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrTable6 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow21 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell41 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell42 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail3 = new DevExpress.XtraReports.UI.DetailBand();
this.xrTable7 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow22 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -110,23 +108,34 @@ namespace BeWo.Report.DefaultReports
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.lblSchule = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel33 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel36 = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport5 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail6 = new DevExpress.XtraReports.UI.DetailBand();
this.GroupHeader3 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.tableBetreuungszeiten = new DevExpress.XtraReports.UI.XRTable();
this.rowBetreuungszeiten = new DevExpress.XtraReports.UI.XRTableRow();
this.cellTag = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable7)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable8)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable9)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tableBetreuungszeiten)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel2,
this.xrTable4});
this.Detail.Font = new System.Drawing.Font("Arial", 10F);
this.Detail.HeightF = 60.00001F;
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.StylePriority.UseFont = false;
@@ -145,7 +154,7 @@ namespace BeWo.Report.DefaultReports
//
// xrTable4
//
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 42.00001F);
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 41.99998F);
this.xrTable4.Name = "xrTable4";
this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow19});
@@ -205,7 +214,7 @@ namespace BeWo.Report.DefaultReports
this.xrLabel28.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Disabilities")});
this.xrLabel28.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel28.LocationFloat = new DevExpress.Utils.PointFloat(139.58F, 244.0834F);
this.xrLabel28.LocationFloat = new DevExpress.Utils.PointFloat(139.58F, 19.99999F);
this.xrLabel28.Multiline = true;
this.xrLabel28.Name = "xrLabel28";
this.xrLabel28.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -216,7 +225,7 @@ namespace BeWo.Report.DefaultReports
// xrLabel21
//
this.xrLabel21.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel21.LocationFloat = new DevExpress.Utils.PointFloat(0F, 244.0834F);
this.xrLabel21.LocationFloat = new DevExpress.Utils.PointFloat(0F, 20F);
this.xrLabel21.Name = "xrLabel21";
this.xrLabel21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(139.58F, 24F);
@@ -530,10 +539,11 @@ namespace BeWo.Report.DefaultReports
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1});
this.Detail1,
this.GroupHeader1});
this.DetailReport.DataMember = "CostBearers";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Level = 1;
this.DetailReport.Name = "DetailReport";
//
// Detail1
@@ -600,24 +610,21 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell40.Text = "Notiz";
this.xrTableCell40.Weight = 0.50934579439252337D;
//
// DetailReport1
// GroupHeader1
//
this.DetailReport1.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail2});
this.DetailReport1.Level = 1;
this.DetailReport1.Name = "DetailReport1";
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable4,
this.xrLabel2});
this.GroupHeader1.HeightF = 59.99998F;
this.GroupHeader1.Name = "GroupHeader1";
//
// Detail2
// bindingSource1
//
this.Detail2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable6,
this.xrLabel3});
this.Detail2.HeightF = 60.00001F;
this.Detail2.Name = "Detail2";
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.CustomerDataRO);
//
// xrTable6
//
this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 42.00001F);
this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 41.99998F);
this.xrTable6.Name = "xrTable6";
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow21});
@@ -683,22 +690,6 @@ namespace BeWo.Report.DefaultReports
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.Text = "Zuständige Betreuer:";
//
// DetailReport2
//
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail3});
this.DetailReport2.DataMember = "RelatedEmployees";
this.DetailReport2.DataSource = this.bindingSource1;
this.DetailReport2.Level = 2;
this.DetailReport2.Name = "DetailReport2";
//
// Detail3
//
this.Detail3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable7});
this.Detail3.HeightF = 18F;
this.Detail3.Name = "Detail3";
//
// xrTable7
//
this.xrTable7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
@@ -762,21 +753,20 @@ namespace BeWo.Report.DefaultReports
//
this.DetailReport3.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail4});
this.DetailReport3.Expanded = false;
this.DetailReport3.Level = 3;
this.DetailReport3.Level = 2;
this.DetailReport3.Name = "DetailReport3";
//
// Detail4
//
this.Detail4.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel4});
this.Detail4.HeightF = 60.00004F;
this.Detail4.HeightF = 42F;
this.Detail4.Name = "Detail4";
//
// xrLabel4
//
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 35.00004F);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 17F);
this.xrLabel4.Multiline = true;
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -863,7 +853,7 @@ namespace BeWo.Report.DefaultReports
this.GroupHeader2});
this.DetailReport4.DataMember = "EnvironmentPersons";
this.DetailReport4.DataSource = this.bindingSource1;
this.DetailReport4.Level = 4;
this.DetailReport4.Level = 3;
this.DetailReport4.Name = "DetailReport4";
//
// Detail5
@@ -966,6 +956,8 @@ namespace BeWo.Report.DefaultReports
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.lblSchule,
this.xrLabel33,
this.xrLabel1,
this.xrLabel5,
this.xrLabel6,
@@ -992,15 +984,151 @@ namespace BeWo.Report.DefaultReports
this.xrLabel26,
this.xrLabel27,
this.xrLabel7,
this.xrLabel14,
this.xrLabel21,
this.xrLabel28});
this.ReportHeader.HeightF = 280F;
this.xrLabel14});
this.ReportHeader.HeightF = 300F;
this.ReportHeader.Name = "ReportHeader";
//
// bindingSource1
// lblSchule
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.CustomerDataRO);
this.lblSchule.Font = new System.Drawing.Font("Arial", 10F);
this.lblSchule.LocationFloat = new DevExpress.Utils.PointFloat(139.58F, 260F);
this.lblSchule.Multiline = true;
this.lblSchule.Name = "lblSchule";
this.lblSchule.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblSchule.SizeF = new System.Drawing.SizeF(537.42F, 23.99998F);
this.lblSchule.StylePriority.UseFont = false;
this.lblSchule.StylePriority.UseTextAlignment = false;
//
// xrLabel33
//
this.xrLabel33.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel33.LocationFloat = new DevExpress.Utils.PointFloat(0F, 260F);
this.xrLabel33.Name = "xrLabel33";
this.xrLabel33.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel33.SizeF = new System.Drawing.SizeF(139.58F, 24F);
this.xrLabel33.StylePriority.UseFont = false;
this.xrLabel33.Text = "Schule:";
//
// xrLabel36
//
this.xrLabel36.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel36.LocationFloat = new DevExpress.Utils.PointFloat(0F, 17F);
this.xrLabel36.Name = "xrLabel36";
this.xrLabel36.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel36.SizeF = new System.Drawing.SizeF(139.58F, 24F);
this.xrLabel36.StylePriority.UseFont = false;
this.xrLabel36.Text = "Betreuungszeiten";
//
// DetailReport5
//
this.DetailReport5.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail6,
this.GroupHeader3,
this.GroupFooter1,
this.GroupFooter2});
this.DetailReport5.DataMember = "RelatedEmployees";
this.DetailReport5.DataSource = this.bindingSource1;
this.DetailReport5.Level = 0;
this.DetailReport5.Name = "DetailReport5";
//
// Detail6
//
this.Detail6.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable7});
this.Detail6.HeightF = 18F;
this.Detail6.Name = "Detail6";
//
// GroupHeader3
//
this.GroupHeader3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable6,
this.xrLabel3});
this.GroupHeader3.HeightF = 59.99998F;
this.GroupHeader3.Name = "GroupHeader3";
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.tableBetreuungszeiten,
this.xrLabel36});
this.GroupFooter1.HeightF = 58.99998F;
this.GroupFooter1.KeepTogether = true;
this.GroupFooter1.Name = "GroupFooter1";
//
// tableBetreuungszeiten
//
this.tableBetreuungszeiten.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.tableBetreuungszeiten.LocationFloat = new DevExpress.Utils.PointFloat(0F, 40.99998F);
this.tableBetreuungszeiten.Name = "tableBetreuungszeiten";
this.tableBetreuungszeiten.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.rowBetreuungszeiten});
this.tableBetreuungszeiten.SizeF = new System.Drawing.SizeF(642F, 18F);
this.tableBetreuungszeiten.StylePriority.UseFont = false;
//
// rowBetreuungszeiten
//
this.rowBetreuungszeiten.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.cellTag,
this.xrTableCell2,
this.xrTableCell1,
this.xrTableCell3});
this.rowBetreuungszeiten.Name = "rowBetreuungszeiten";
this.rowBetreuungszeiten.Weight = 1.125D;
//
// cellTag
//
this.cellTag.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellTag.Name = "cellTag";
this.cellTag.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.cellTag.StylePriority.UseBorders = false;
this.cellTag.StylePriority.UseFont = false;
this.cellTag.StylePriority.UsePadding = false;
this.cellTag.Text = "Tag";
this.cellTag.Weight = 0.17912772585669781D;
//
// xrTableCell2
//
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.xrTableCell2.StylePriority.UseBorders = false;
this.xrTableCell2.StylePriority.UseFont = false;
this.xrTableCell2.StylePriority.UsePadding = false;
this.xrTableCell2.Text = "Uhrzeit";
this.xrTableCell2.Weight = 0.21806848829037673D;
//
// xrTableCell1
//
this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.xrTableCell1.StylePriority.UseBorders = false;
this.xrTableCell1.StylePriority.UsePadding = false;
this.xrTableCell1.Text = "Mitarbeiter/in";
this.xrTableCell1.Weight = 0.21806858336071358D;
//
// xrTableCell3
//
this.xrTableCell3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell3.Name = "xrTableCell3";
this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.xrTableCell3.StylePriority.UseBorders = false;
this.xrTableCell3.StylePriority.UseFont = false;
this.xrTableCell3.StylePriority.UsePadding = false;
this.xrTableCell3.Text = "Bemerkungen";
this.xrTableCell3.Weight = 0.38473520249221183D;
//
// GroupFooter2
//
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel28,
this.xrLabel21});
this.GroupFooter2.HeightF = 60F;
this.GroupFooter2.Level = 1;
this.GroupFooter2.Name = "GroupFooter2";
//
// SBDCharacteristicsReport
//
@@ -1008,13 +1136,12 @@ namespace BeWo.Report.DefaultReports
this.Detail,
this.PageFooter,
this.DetailReport,
this.DetailReport1,
this.DetailReport2,
this.DetailReport3,
this.DetailReport4,
this.topMarginBand1,
this.bottomMarginBand1,
this.ReportHeader});
this.ReportHeader,
this.DetailReport5});
this.DataSource = this.bindingSource1;
this.Font = new System.Drawing.Font("Arial", 10F);
this.Margins = new System.Drawing.Printing.Margins(75, 75, 75, 75);
@@ -1024,11 +1151,12 @@ namespace BeWo.Report.DefaultReports
this.Version = "17.1";
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable7)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable8)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable9)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.tableBetreuungszeiten)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -1052,16 +1180,12 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRTableCell xrTableCell38;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell39;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell40;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport1;
private DevExpress.XtraReports.UI.DetailBand Detail2;
private DevExpress.XtraReports.UI.XRTable xrTable6;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow21;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell41;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell42;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport2;
private DevExpress.XtraReports.UI.DetailBand Detail3;
private DevExpress.XtraReports.UI.XRTable xrTable7;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow22;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell44;
@@ -1116,5 +1240,20 @@ namespace BeWo.Report.DefaultReports
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
private DevExpress.XtraReports.UI.XRLabel xrLabel36;
private DevExpress.XtraReports.UI.XRLabel lblSchule;
private DevExpress.XtraReports.UI.XRLabel xrLabel33;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport5;
private DevExpress.XtraReports.UI.DetailBand Detail6;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader3;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.XRTable tableBetreuungszeiten;
private DevExpress.XtraReports.UI.XRTableRow rowBetreuungszeiten;
private DevExpress.XtraReports.UI.XRTableCell cellTag;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
}
}

View File

@@ -1,9 +1,15 @@
using System;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web.Mvc;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BS.Shared.DataContracts;
namespace BeWo.Report.DefaultReports
{
@@ -16,7 +22,69 @@ namespace BeWo.Report.DefaultReports
public void SetReportDataSource(SBDCharacteristicsRO pRO)
{
StringBuilder sbSchule = new StringBuilder();
if (pRO.EnvironmentOrganisations != null)
{
foreach (var org in pRO.EnvironmentOrganisations)
{
if (org.RelationRole != null && org.RelationRole.DisplayName == "Schule")
{
sbSchule.AppendLine(org.Organisation.Name);
sbSchule.AppendLine(org.Organisation.Street);
sbSchule.Append(org.Organisation.PostalCode);
sbSchule.Append(" ");
sbSchule.AppendLine(org.Organisation.Town);
sbSchule.AppendLine("");
sbSchule.AppendLine(org.Organisation.ContactSummaryInfo);
sbSchule.AppendLine("");
var o = DAOFactory.GenericDAO.LoadByID<Organisation>(org.Organisation.OrganisationOid);
sbSchule.Append(o.Notice);
}
}
}
CreateArbeitszeitenTable(pRO.Customer.Arbeitszeiten);
lblSchule.Text = sbSchule.ToString();
this.bindingSource1.DataSource = pRO;
}
private void CreateArbeitszeitenTable(List<ArbeitszeitDC> zeiten)
{
if (zeiten != null)
{
foreach (var az in zeiten)
{
if ((!az.GueltigVon.HasValue || az.GueltigVon <= DateTime.Now) &&
(!az.GueltigBis.HasValue || az.GueltigBis >= DateTime.Now) && az.Eintraege != null)
{
foreach (var e in az.Eintraege)
{
AddArbeitszeit(e);
}
}
}
}
}
private void AddArbeitszeit(ArbeitszeitEintragDC ae)
{
XRTableRow newRow = tableBetreuungszeiten.InsertRowBelow(tableBetreuungszeiten.Rows[tableBetreuungszeiten.Rows.Count - 1]);
newRow.Font = new System.Drawing.Font("Arial", 10F);
newRow.Cells[0].Text = String.Format("{0}", ae.Tag);
newRow.Cells[1].Text = String.Format("{0} - {1}", ae.UhrzeitVon, ae.UhrzeitBis);
if (ae.Employee != null)
{
newRow.Cells[2].Text = String.Format("{0} {1}", ae.Employee.LastName, ae.Employee.FirstName);
}
newRow.Cells[3].Text = ae.Notice;
}
}
}

View File

@@ -106,6 +106,10 @@
<Reference Include="DevExpress.XtraScheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
@@ -124,6 +128,29 @@
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Razor.2.0.20715.0\lib\net40\System.Web.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Deployment.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>

View File

@@ -116,6 +116,41 @@ namespace BeWo.Report.ReportObjects
return result;
}
public static Dictionary<DateTime, IList<AbsenceTimeDC>> CreateAbsenceTimeDict(CompactCustomerDC customer, DateTime maxEndDate)
{
Dictionary<DateTime, IList<AbsenceTimeDC>> dict = new Dictionary<DateTime, IList<AbsenceTimeDC>>();
foreach (var at in customer.AbsenceTimes)
{
if (at.Start.HasValue && at.Start.Value <= maxEndDate)
{
DateTime dt = at.Start.Value;
DateTime end = maxEndDate;
if (at.End.HasValue && at.End.Value < end)
{
end = at.End.Value;
}
while (dt <= end)
{
if (!dict.ContainsKey(dt))
{
dict.Add(dt, new List<AbsenceTimeDC>());
}
dict[dt].Add(at);
dt = dt.AddDays(1);
}
}
}
return dict;
}
public static void CalculateAbsenceTimes(AdditionalServiceBookingRO result)
{
foreach (var row in result.Rows)

View File

@@ -289,10 +289,10 @@ namespace BeWo.Report.ReportObjects
span.EndDate = end.Value;
}
//if (scRo.CustomerName.Contains("Grasse"))
//{
// int test = 0;
//}
if (scRo.CustomerName.Contains("Löb"))
{
int test = 0;
}
var invoices = creator.GenerateServiceInvoices(scRo.Costbearer2Supportconcept.CostBearer.CostBearerOid.Value, span, dict);
if (invoices != null && invoices.Count == 1)

View File

@@ -491,7 +491,7 @@ namespace BeWo.Report.ReportObjects
int daysPassed = ts.Days + 1;
var endeVormonat = this.EndDate.AddMonths(-1);
var endeVormonat = new DateTime(this.StartDate.Year, this.StartDate.Month, 1).AddDays(-1);
int daysVormonat = 0;
if (endeVormonat >= ad.TotalStartDate.Value)
{

View File

@@ -63,6 +63,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Budgetnachweis2.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Budgetnachweis2.Designer.cs">
<DependentUpon>Budgetnachweis2.cs</DependentUpon>
</Compile>
<Compile Include="Budgetnachweis.cs">
<SubType>Component</SubType>
</Compile>
@@ -130,6 +136,10 @@
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Budgetnachweis2.resx">
<DependentUpon>Budgetnachweis2.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Budgetnachweis.resx">
<DependentUpon>Budgetnachweis.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -186,7 +196,6 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -0,0 +1,572 @@
namespace ASBHamm.Neu
{
partial class Budgetnachweis
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Budgetnachweis));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLine2 = new DevExpress.XtraReports.UI.XRLine();
this.xrLine1 = new DevExpress.XtraReports.UI.XRLine();
this.xrLabel35 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrCheckBox2 = new DevExpress.XtraReports.UI.XRCheckBox();
this.xrCheckBox1 = new DevExpress.XtraReports.UI.XRCheckBox();
this.tableRechnungspositionen = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow();
this.cellStart1 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellEnd1 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHourlyRate1 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellFLS1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow6 = new DevExpress.XtraReports.UI.XRTableRow();
this.cellStart2 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellEnd2 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHourlyRate2 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellFLS2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow8 = new DevExpress.XtraReports.UI.XRTableRow();
this.cellStart3 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellEnd3 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellHourlyRate3 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellFLS3 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell29 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.tableRechnungspositionen)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel16,
this.xrLabel10,
this.xrLabel7,
this.xrLabel14,
this.xrLabel15});
this.Detail.Font = new System.Drawing.Font("Arial", 11F);
this.Detail.HeightF = 165F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.StylePriority.UseFont = false;
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel16
//
this.xrLabel16.BackColor = System.Drawing.Color.Transparent;
this.xrLabel16.CanShrink = true;
this.xrLabel16.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 10.00001F);
this.xrLabel16.Name = "xrLabel16";
this.xrLabel16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel16.SizeF = new System.Drawing.SizeF(435.4167F, 23.24998F);
this.xrLabel16.StylePriority.UseBackColor = false;
this.xrLabel16.StylePriority.UseFont = false;
this.xrLabel16.Text = "Ambulant Betreutes Wohnen - Budgetnachweis";
this.xrLabel16.WordWrap = false;
//
// xrLabel10
//
this.xrLabel10.BackColor = System.Drawing.Color.Transparent;
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 131.5828F);
this.xrLabel10.Multiline = true;
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(642F, 27.08333F);
this.xrLabel10.StylePriority.UseBackColor = false;
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.Text = "Im Bewilligungszeitraum tatsächlich geleistete Fachleistungsstunden (FLS)";
//
// xrLabel7
//
this.xrLabel7.BackColor = System.Drawing.Color.Transparent;
this.xrLabel7.CanShrink = true;
this.xrLabel7.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 87.37488F);
this.xrLabel7.Multiline = true;
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(650F, 20F);
this.xrLabel7.StylePriority.UseBackColor = false;
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "Bewilligungszeitraum vom [AccountingPeriod]";
this.xrLabel7.WordWrap = false;
//
// xrLabel14
//
this.xrLabel14.BackColor = System.Drawing.Color.Transparent;
this.xrLabel14.CanShrink = true;
this.xrLabel14.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 67.37493F);
this.xrLabel14.Multiline = true;
this.xrLabel14.Name = "xrLabel14";
this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel14.SizeF = new System.Drawing.SizeF(650F, 20F);
this.xrLabel14.StylePriority.UseBackColor = false;
this.xrLabel14.StylePriority.UseFont = false;
this.xrLabel14.Text = "Aktenzeichen LWL: [CustomerReferenceNumber]";
this.xrLabel14.WordWrap = false;
//
// xrLabel15
//
this.xrLabel15.BackColor = System.Drawing.Color.Transparent;
this.xrLabel15.CanShrink = true;
this.xrLabel15.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 47.37492F);
this.xrLabel15.Name = "xrLabel15";
this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel15.SizeF = new System.Drawing.SizeF(650F, 20F);
this.xrLabel15.StylePriority.UseBackColor = false;
this.xrLabel15.StylePriority.UseFont = false;
this.xrLabel15.Text = "für [Salutation2] [CustomerName], geb. [CustomerBirthday!dd.MM.yyyy]";
this.xrLabel15.WordWrap = false;
//
// xrLine2
//
this.xrLine2.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 274.3801F);
this.xrLine2.Name = "xrLine2";
this.xrLine2.SizeF = new System.Drawing.SizeF(270F, 9.75F);
//
// xrLine1
//
this.xrLine1.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 204.38F);
this.xrLine1.Name = "xrLine1";
this.xrLine1.SizeF = new System.Drawing.SizeF(309.5687F, 9.749969F);
//
// xrLabel35
//
this.xrLabel35.BackColor = System.Drawing.Color.Transparent;
this.xrLabel35.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrLabel35.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel35.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 214.13F);
this.xrLabel35.Multiline = true;
this.xrLabel35.Name = "xrLabel35";
this.xrLabel35.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel35.SizeF = new System.Drawing.SizeF(236.697F, 17F);
this.xrLabel35.StylePriority.UseBackColor = false;
this.xrLabel35.StylePriority.UseBorders = false;
this.xrLabel35.StylePriority.UseFont = false;
this.xrLabel35.Text = "Stempel, Unterschrift";
this.xrLabel35.WordWrap = false;
//
// xrLabel12
//
this.xrLabel12.BackColor = System.Drawing.Color.Transparent;
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 67.71317F);
this.xrLabel12.Multiline = true;
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(646.9999F, 90.33334F);
this.xrLabel12.StylePriority.UseBackColor = false;
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.Text = resources.GetString("xrLabel12.Text");
//
// xrCheckBox2
//
this.xrCheckBox2.LocationFloat = new DevExpress.Utils.PointFloat(424.5832F, 9.999974F);
this.xrCheckBox2.Name = "xrCheckBox2";
this.xrCheckBox2.SizeF = new System.Drawing.SizeF(211.0832F, 21.875F);
this.xrCheckBox2.StylePriority.UseFont = false;
this.xrCheckBox2.Text = " Die Betreuung dauert an.";
//
// xrCheckBox1
//
this.xrCheckBox1.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 9.999974F);
this.xrCheckBox1.Name = "xrCheckBox1";
this.xrCheckBox1.SizeF = new System.Drawing.SizeF(359.5833F, 21.875F);
this.xrCheckBox1.StylePriority.UseFont = false;
this.xrCheckBox1.Text = " Die Betreuung wurde am beendet.";
//
// tableRechnungspositionen
//
this.tableRechnungspositionen.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.tableRechnungspositionen.LocationFloat = new DevExpress.Utils.PointFloat(60.0001F, 0F);
this.tableRechnungspositionen.Name = "tableRechnungspositionen";
this.tableRechnungspositionen.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.tableRechnungspositionen.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2,
this.xrTableRow5,
this.xrTableRow6,
this.xrTableRow8});
this.tableRechnungspositionen.SizeF = new System.Drawing.SizeF(641.9999F, 96F);
this.tableRechnungspositionen.StylePriority.UseBorders = false;
this.tableRechnungspositionen.StylePriority.UseFont = false;
this.tableRechnungspositionen.StylePriority.UsePadding = false;
//
// xrTableRow2
//
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell2,
this.xrTableCell4,
this.xrTableCell13,
this.xrTableCell5,
this.xrTableCell14});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Weight = 0.93538531804786507D;
//
// xrTableCell2
//
this.xrTableCell2.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell2.Multiline = true;
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.StylePriority.UseBorders = false;
this.xrTableCell2.StylePriority.UseTextAlignment = false;
this.xrTableCell2.Text = "Zeitraum\r\nvon";
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableCell2.Weight = 0.654205681555982D;
//
// xrTableCell4
//
this.xrTableCell4.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell4.Name = "xrTableCell4";
this.xrTableCell4.StylePriority.UseBorders = false;
this.xrTableCell4.StylePriority.UseTextAlignment = false;
this.xrTableCell4.Text = "bis";
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell4.Weight = 0.65420565778839579D;
//
// xrTableCell13
//
this.xrTableCell13.Name = "xrTableCell13";
this.xrTableCell13.StylePriority.UseTextAlignment = false;
this.xrTableCell13.Text = "Vergütung pro Stunde";
this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableCell13.Weight = 0.51401872857292652D;
//
// xrTableCell5
//
this.xrTableCell5.Name = "xrTableCell5";
this.xrTableCell5.StylePriority.UseTextAlignment = false;
this.xrTableCell5.Text = "Anzahl FLS";
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableCell5.Weight = 0.51401872857292652D;
//
// xrTableCell14
//
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.Text = "davon gesondert bewilligt¹";
this.xrTableCell14.Weight = 0.663551203509769D;
//
// xrTableRow5
//
this.xrTableRow5.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.cellStart1,
this.cellEnd1,
this.cellHourlyRate1,
this.cellFLS1,
this.xrTableCell20});
this.xrTableRow5.Name = "xrTableRow5";
this.xrTableRow5.Weight = 0.44307725591740971D;
//
// cellStart1
//
this.cellStart1.Name = "cellStart1";
this.cellStart1.Weight = 0.654205681555982D;
//
// cellEnd1
//
this.cellEnd1.Name = "cellEnd1";
this.cellEnd1.Weight = 0.65420565778839579D;
//
// cellHourlyRate1
//
this.cellHourlyRate1.Name = "cellHourlyRate1";
this.cellHourlyRate1.Weight = 0.51401872857292652D;
//
// cellFLS1
//
this.cellFLS1.Name = "cellFLS1";
this.cellFLS1.Weight = 0.51401872857292652D;
//
// xrTableCell20
//
this.xrTableCell20.Name = "xrTableCell20";
this.xrTableCell20.Weight = 0.663551203509769D;
//
// xrTableRow6
//
this.xrTableRow6.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.cellStart2,
this.cellEnd2,
this.cellHourlyRate2,
this.cellFLS2,
this.xrTableCell21});
this.xrTableRow6.Name = "xrTableRow6";
this.xrTableRow6.Weight = 0.49230806213045525D;
//
// cellStart2
//
this.cellStart2.Name = "cellStart2";
this.cellStart2.Weight = 0.654205681555982D;
//
// cellEnd2
//
this.cellEnd2.Name = "cellEnd2";
this.cellEnd2.Weight = 0.65420565778839579D;
//
// cellHourlyRate2
//
this.cellHourlyRate2.Name = "cellHourlyRate2";
this.cellHourlyRate2.Weight = 0.51401872857292652D;
//
// cellFLS2
//
this.cellFLS2.Name = "cellFLS2";
this.cellFLS2.Weight = 0.51401872857292652D;
//
// xrTableCell21
//
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Weight = 0.663551203509769D;
//
// xrTableRow8
//
this.xrTableRow8.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.cellStart3,
this.cellEnd3,
this.cellHourlyRate3,
this.cellFLS3,
this.xrTableCell29});
this.xrTableRow8.Name = "xrTableRow8";
this.xrTableRow8.Weight = 0.49230806213045525D;
//
// cellStart3
//
this.cellStart3.Name = "cellStart3";
this.cellStart3.Weight = 0.654205681555982D;
//
// cellEnd3
//
this.cellEnd3.Name = "cellEnd3";
this.cellEnd3.Weight = 0.65420565778839579D;
//
// cellHourlyRate3
//
this.cellHourlyRate3.Name = "cellHourlyRate3";
this.cellHourlyRate3.Weight = 0.51401872857292652D;
//
// cellFLS3
//
this.cellFLS3.Name = "cellFLS3";
this.cellFLS3.Weight = 0.51401872857292652D;
//
// xrTableCell29
//
this.xrTableCell29.Name = "xrTableCell29";
this.xrTableCell29.Weight = 0.663551203509769D;
//
// xrLabel17
//
this.xrLabel17.BackColor = System.Drawing.Color.Transparent;
this.xrLabel17.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(65.00015F, 284.1301F);
this.xrLabel17.Multiline = true;
this.xrLabel17.Name = "xrLabel17";
this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel17.SizeF = new System.Drawing.SizeF(598.0811F, 27.08325F);
this.xrLabel17.StylePriority.UseBackColor = false;
this.xrLabel17.StylePriority.UseFont = false;
this.xrLabel17.Text = "¹vom LWL gesondert bewilligte Leistungen zur Deckung eines einmaligen Bedarfs";
//
// ruleRateFactorNull
//
this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.ruleRateFactorNull.Name = "ruleRateFactorNull";
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 100F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.HeightF = 90.33334F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel8,
this.xrLabel9});
this.GroupHeader1.Font = new System.Drawing.Font("Arial", 11F);
this.GroupHeader1.HeightF = 308.9164F;
this.GroupHeader1.Name = "GroupHeader1";
this.GroupHeader1.StylePriority.UseFont = false;
//
// xrLabel8
//
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate", "{0:dd.MM.yyyy}")});
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(419F, 285.9164F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(283F, 23F);
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
//
// xrLabel9
//
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(59.99985F, 170F);
this.xrLabel9.Multiline = true;
this.xrLabel9.Name = "xrLabel9";
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel9.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.xrLabel9.SizeF = new System.Drawing.SizeF(376.3542F, 107.6665F);
this.xrLabel9.StylePriority.UseFont = false;
this.xrLabel9.Text = "Landschaftsverband Westfalen-Lippe\r\nBehindertenhilfe Westfalen\r\n\r\n48133 Münster\r\n" +
"";
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.tableRechnungspositionen});
this.GroupFooter1.Font = new System.Drawing.Font("Arial", 11F);
this.GroupFooter1.HeightF = 96F;
this.GroupFooter1.Name = "GroupFooter1";
this.GroupFooter1.StylePriority.UseFont = false;
//
// GroupFooter2
//
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLine2,
this.xrLine1,
this.xrLabel35,
this.xrLabel12,
this.xrCheckBox2,
this.xrLabel17,
this.xrCheckBox1});
this.GroupFooter2.Font = new System.Drawing.Font("Arial", 11F);
this.GroupFooter2.HeightF = 311.2133F;
this.GroupFooter2.Level = 1;
this.GroupFooter2.Name = "GroupFooter2";
this.GroupFooter2.StylePriority.UseFont = false;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
//
// Budgetnachweis
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.topMarginBand1,
this.bottomMarginBand1,
this.GroupHeader1,
this.GroupFooter1,
this.GroupFooter2});
this.DataSource = this.bindingSource1;
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.ruleRateFactorNull});
this.Margins = new System.Drawing.Printing.Margins(30, 30, 100, 90);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "17.1";
((System.ComponentModel.ISupportInitialize)(this.tableRechnungspositionen)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
#endregion
private DevExpress.XtraReports.UI.DetailBand Detail;
private System.Windows.Forms.BindingSource bindingSource1;
private DevExpress.XtraReports.UI.FormattingRule ruleRateFactorNull;
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel xrLabel16;
private DevExpress.XtraReports.UI.XRLabel xrLabel15;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.XRLabel xrLabel17;
private DevExpress.XtraReports.UI.XRTable tableRechnungspositionen;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow5;
private DevExpress.XtraReports.UI.XRTableCell cellStart1;
private DevExpress.XtraReports.UI.XRTableCell cellEnd1;
private DevExpress.XtraReports.UI.XRTableCell cellHourlyRate1;
private DevExpress.XtraReports.UI.XRTableCell cellFLS1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow6;
private DevExpress.XtraReports.UI.XRTableCell cellStart2;
private DevExpress.XtraReports.UI.XRTableCell cellEnd2;
private DevExpress.XtraReports.UI.XRTableCell cellHourlyRate2;
private DevExpress.XtraReports.UI.XRTableCell cellFLS2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow8;
private DevExpress.XtraReports.UI.XRTableCell cellStart3;
private DevExpress.XtraReports.UI.XRTableCell cellEnd3;
private DevExpress.XtraReports.UI.XRTableCell cellHourlyRate3;
private DevExpress.XtraReports.UI.XRTableCell cellFLS3;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell29;
private DevExpress.XtraReports.UI.XRCheckBox xrCheckBox2;
private DevExpress.XtraReports.UI.XRCheckBox xrCheckBox1;
private DevExpress.XtraReports.UI.XRLabel xrLabel35;
private DevExpress.XtraReports.UI.XRLine xrLine2;
private DevExpress.XtraReports.UI.XRLine xrLine1;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter2;
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
}
}

View File

@@ -0,0 +1,118 @@
using System;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using DevExpress.XtraReports.UI;
namespace ASBHamm.Neu
{
//[IDSpecificClass(Identifier = "LWLNEU")]
public partial class Budgetnachweis : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<Settlement2RO>
{
public Budgetnachweis()
{
InitializeComponent();
}
public void SetReportDataSource(Settlement2RO pRO)
{
if (!String.IsNullOrEmpty(pRO.SenderContactPersonPhone))
{
pRO.SenderContactPersonPhone = pRO.SenderContactPersonPhone.Replace("Tel.:", "").Trim();
}
if (!String.IsNullOrEmpty(pRO.SenderContactPersonFax))
{
pRO.SenderContactPersonFax = pRO.SenderContactPersonFax.Replace("Fax:", "").Trim();
}
if (!String.IsNullOrEmpty(pRO.SenderContactPersonMail))
{
pRO.SenderContactPersonMail = pRO.SenderContactPersonMail.Replace("E-Mail:", "").Trim();
}
//ortDatum.Text = string.Format("Bochum, {0}", DateTime.Now.ToShortDateString());
xrCheckBox2.Checked = true;
DateTime? terminationDate = null;
if (pRO.InvoiceBaseOid.HasValue)
{
var ib = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(pRO.InvoiceBaseOid.Value);
var c2s = ib.CostBearer2SupportConcept;
if (c2s != null && c2s.SupportConcept.Customer.TerminationDate.HasValue)
{
terminationDate = c2s.SupportConcept.Customer.TerminationDate;
xrCheckBox1.Text = String.Format(" Die Betreuung wurde am {0:dd.MM.yyyy} beendet.",
c2s.SupportConcept.Customer.TerminationDate);
xrCheckBox2.Checked = false;
xrCheckBox1.Checked = true;
}
}
ErstelleRechnungspositionen(pRO, terminationDate);
bindingSource1.DataSource = pRO;
}
private void ErstelleRechnungspositionen(Settlement2RO pRO, DateTime? terminationDate)
{
if (pRO.InvoiceItems != null)
{
int rowIndex = 0;
foreach (var ii in pRO.InvoiceItems)
{
if (ii.UnitCount.HasValue && ii.UnitCount.Value > 0)
{
AddRechnungsposition(ii, rowIndex++);
}
}
//if (pRO.InvoiceItems.Count == 3)
//{
// SetzeRechnungsTexte(pRO.InvoiceItems[0], cellStart1, cellEnd1, cellHourlyRate1, cellFLS1);
// SetzeRechnungsTexte(pRO.InvoiceItems[1], cellStart2, cellEnd2, cellHourlyRate2, cellFLS2);
// SetzeRechnungsTexte(pRO.InvoiceItems[2], cellStart3, cellEnd3, cellHourlyRate3, cellFLS3);
//}
//else if (pRO.InvoiceItems.Count == 2)
//{
// SetzeRechnungsTexte(pRO.InvoiceItems[0], cellStart1, cellEnd1, cellHourlyRate1, cellFLS1);
// SetzeRechnungsTexte(pRO.InvoiceItems[1], cellStart2, cellEnd2, cellHourlyRate2, cellFLS2);
//}
//else
//{
// SetzeRechnungsTexte(pRO.InvoiceItems[0], cellStart1, cellEnd1, cellHourlyRate1, cellFLS1);
//}
}
}
private void AddRechnungsposition(Settlement2RO.SettlementInvoiceItemRO ii, int rowIndex)
{
XRTableRow newRow = null;
if (rowIndex > 2)
{
newRow = tableRechnungspositionen.InsertRowBelow(tableRechnungspositionen.Rows[tableRechnungspositionen.Rows.Count - 1]);
}
else
{
newRow = tableRechnungspositionen.Rows[rowIndex + 1];
}
newRow.Cells[0].Text = String.Format("{0:dd.MM.yyyy}", ii.PeriodStartDate);
newRow.Cells[1].Text = String.Format("{0:dd.MM.yyyy}", ii.PeriodEndDate);
newRow.Cells[2].Text = String.Format("{0:0.00}", ii.AmountPerUnit);
newRow.Cells[3].Text = String.Format("{0:0.00}", ii.UnitCount);
}
}
}

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="xrLabel12.Text" xml:space="preserve">
<value>Hiermit wird erklärt, dass die Verpflichtungen aus der Leistungs-, Prüfungs- und Vergütungsvereinbarung nach §§ 75 ff. SGB XII eingehalten wurden und alle hier gemachten Angaben anhand der vorgehaltenen Quittungsbelege sowie der Betreuungsdokumentation jederzeit nachgewiesen werden können.</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -44,6 +44,7 @@ namespace BeWo.ASBHammReports
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -86,7 +87,6 @@ namespace BeWo.ASBHammReports
this.formattingRuleEmployeeName = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -271,6 +271,18 @@ namespace BeWo.ASBHammReports
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell6.Weight = 0.77930571912647739D;
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(1F, 1F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(198F, 23F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
@@ -703,7 +715,7 @@ namespace BeWo.ASBHammReports
this.xrLabel7.SizeF = new System.Drawing.SizeF(551.8831F, 24.08336F);
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.StylePriority.UseTextAlignment = false;
this.xrLabel7.Text = "Arbeiter-Samariter-Bund Regionalverband Hamm / Soest e.V.";
this.xrLabel7.Text = "ASB RV Mittleres Westfalen e.V.";
this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel6
@@ -762,18 +774,6 @@ namespace BeWo.ASBHammReports
this.bottomMarginBand1.HeightF = 30F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(1F, 1F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(198F, 23F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -109,7 +109,7 @@ namespace AidsHilfeDuisburg.Alt
this.xrTableRow35 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell56 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow36 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellRestforderung = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
@@ -923,22 +923,22 @@ namespace AidsHilfeDuisburg.Alt
// xrTableRow36
//
this.xrTableRow36.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell57,
this.cellRestforderung,
this.xrTableCell58});
this.xrTableRow36.Name = "xrTableRow36";
this.xrTableRow36.Weight = 0.15D;
//
// xrTableCell57
// cellRestforderung
//
this.xrTableCell57.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell57.Name = "xrTableCell57";
this.xrTableCell57.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell57.StylePriority.UseBorderColor = false;
this.xrTableCell57.StylePriority.UseBorders = false;
this.xrTableCell57.StylePriority.UseFont = false;
this.xrTableCell57.Text = "Restforderung:";
this.xrTableCell57.Weight = 0.78314100999098568D;
this.cellRestforderung.BorderColor = System.Drawing.SystemColors.ControlLight;
this.cellRestforderung.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.cellRestforderung.Name = "cellRestforderung";
this.cellRestforderung.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.cellRestforderung.StylePriority.UseBorderColor = false;
this.cellRestforderung.StylePriority.UseBorders = false;
this.cellRestforderung.StylePriority.UseFont = false;
this.cellRestforderung.Text = "Endsumme:";
this.cellRestforderung.Weight = 0.78314100999098568D;
//
// xrTableCell58
//
@@ -1067,7 +1067,7 @@ namespace AidsHilfeDuisburg.Alt
private DevExpress.XtraReports.UI.XRTableRow xrTableRow35;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell56;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow36;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell57;
private DevExpress.XtraReports.UI.XRTableCell cellRestforderung;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell58;
}
}

View File

@@ -17,6 +17,12 @@ namespace AidsHilfeDuisburg.Alt
public void SetReportDataSource(SettlementRO pRO)
{
if (pRO.ClaimWithEigenbeteiligung < 0)
{
pRO.FinalSentence = "Bitte verrechnen Sie den Betrag mit den nächsten Zahlläufen und teilen uns diesen mit der Fachabrechnung mit.";
}
bool isDefaultSpitzabrechnung = false;
if (String.IsNullOrEmpty(pRO.Notice))

View File

@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="xrLabel6.Text" xml:space="preserve">
<value>anbei sende ich Ihnen die unterschriebenen Nachweise über die im Rahmen des Betreuten Wohnens für [Salutation2] [CustomerName] erbrachten Leistungen zu. Nach unserer Berechnung ergeben sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
<value>hiermit erhalten Sie die Spitzabrechnung über die erbrachten Leistungen im Rahmen des Betreuten Wohnens für [Salutation2] [CustomerName]. Nach unserer Berechnung ergeben sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -205,6 +205,5 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

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

View File

@@ -228,7 +228,7 @@ namespace ApiBerlin
public override bool AddServiceRecordToDuration(ServiceRecord item)
{
if (item.ServiceDescription != null && (item.ServiceDescription.Name == "Fehlzeit" || item.ServiceDescription.Name == "Freihalteregelung"))
if (item.ServiceDescription != null && (item.ServiceDescription.Name == "Fehlzeit" || item.ServiceDescription.Name == "Freihalteregelung" || item.ServiceDescription.Name == "Ausfall C19"))
{
return false;
}

View File

@@ -28,6 +28,7 @@ namespace ApiBerlin.Translation
AddOrReplaceTranslation(dict, "Hilfeplankonferenz", "BEW-Begutachtung am");
AddOrReplaceTranslation(dict, "Ort des Hilfeplangesprächs", "Ort der BEW-Begutachtung");
AddOrReplaceTranslation(dict, "Hilfeplanübersicht", "Bewilligungs-Übersicht");
AddOrReplaceTranslation(dict, "Folgende Hilfepläne laufen demnächst aus:", "Folgende Bewilligungen laufen demnächst aus:");
AddOrReplaceTranslation(dict, "Kostenträger", "Kostenübernahme");

View File

@@ -48,9 +48,22 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CustomReportCreator.cs" />
<Compile Include="Export\CustomDataExporter.cs" />
<Compile Include="Export\FibuNetExporter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="QuittierungsbelegAssistenz.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="QuittierungsbelegAssistenz.Designer.cs">
<DependentUpon>QuittierungsbelegAssistenz.cs</DependentUpon>
</Compile>
<Compile Include="QuittierungsbelegMitDatum.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="QuittierungsbelegMitDatum.Designer.cs">
<DependentUpon>QuittierungsbelegMitDatum.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
@@ -70,5 +83,16 @@
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="QuittierungsbelegAssistenz.resx">
<DependentUpon>QuittierungsbelegAssistenz.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="QuittierungsbelegMitDatum.resx">
<DependentUpon>QuittierungsbelegMitDatum.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,125 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
namespace AsbRuhr
{
public class CustomReportCreator : DefaultReportCreator
{
public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay)
{
List<ServicesOverviewRO> lROs = ServicesOverviewRO.Create(month, year, orgaOid, empOid, startDay, endDay);
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);
}
private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
{
XtraReport report = null;
ServicesOverviewRO flsRo = ServicesOverviewRO.CopyFromRO(ro);
ServicesOverviewRO assiRo = ServicesOverviewRO.CopyFromRO(ro);
if (ro.CustomerLastName.StartsWith("Blei"))
{
int test = 0;
}
if (ro.Services != null)
{
foreach (ServicesOverviewRO.ServiceDetail s in ro.Services)
{
ServicesOverviewRO.CreateSignatureString(s);
if (s.ServiceCategory.ToLower().Contains("assistenz"))
{
assiRo.Services.Add(s);
}
else
{
flsRo.Services.Add(s);
}
}
}
report = AddReportToReport<Quittierungsbeleg2>(report, flsRo);
report = AddReportToReport<QuittierungsbelegAssistenz>(report, assiRo);
//report = AddReportToReport(report, eingliederungshilfe);
if (report == null)
report = new XtraReport();
return report;
}
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;
}
}
}

View File

@@ -0,0 +1 @@
DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

File diff suppressed because it is too large Load Diff

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