diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs
index aedce1c02..c7e3576ff 100644
--- a/BeWo/BeWoApp.xaml.cs
+++ b/BeWo/BeWoApp.xaml.cs
@@ -601,6 +601,7 @@ namespace BeWo
AppSettings.ShowAIInternal = true;
AppSettings.ShowWorktime = true;
//AppSettings.AllowGkvAbrechnung = true;
+ //AppSettings.AllowGkvAbrechnung = false;
//showInfoButtonInCalender = true;
#endif
diff --git a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml
index 39b3164a2..b53e864fa 100644
--- a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml
+++ b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml
@@ -103,7 +103,7 @@
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
DataSource="{Binding VMList}"
- Visibility="Collapsed">
+ Visibility="Visible">
@@ -147,12 +147,12 @@
Padding="0"
VerticalAlignment="Center"
Click="btn_send_Click"
- Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Send}}"
Content="*"
FontFamily="Wingdings"
FontSize="11"
Foreground="#ffffff"
- ToolTip="Senden" />
+ ToolTip="Senden"
+ Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Send}}" />
+ ToolTip="Löschen"
+ Visibility="{Binding Converter={StaticResource UserRightType2Visible}, ConverterParameter={x:Static shared:UserRightType.Finance_Gkv_Delete}}" />
diff --git a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs
index 96c097f22..e24cc38de 100644
--- a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs
+++ b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs
@@ -74,10 +74,26 @@ namespace BeWo.View.Detail.Accounting
ServiceFacade.DoAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList);
}
+
+ private void UpdateGkvAbrechnungList(IList dcList)
+ {
+ this.Dispatcher.BeginInvoke(
+ DispatcherPriority.Normal,
+ (Action)delegate
+ {
+ _Viewmodel.UpdateList(dcList);
+
+ if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
+ datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
+
+ UpdateDataGridFilter();
+ });
+ }
+
private void UpdateDataGridFilter()
{
datagrid_gkvAbrechnungen.FixedFilter = null;
-
+
if (ShowAllInvoices)
{
datagrid_gkvAbrechnungen.FixedFilter = null;
@@ -107,23 +123,6 @@ namespace BeWo.View.Detail.Accounting
gridView.BestFitColumns();
}
- private void UpdateGkvAbrechnungList(IList dcList)
- {
- this.Dispatcher.BeginInvoke(
- DispatcherPriority.Normal,
- (Action)delegate
- {
- _Viewmodel.UpdateList(dcList);
-
- if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
- datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
-
- UpdateDataGridFilter();
- });
-
-
- }
-
private void NewGkvAbrechnungPopUpViewCancelButtonClicked(object sender, EventArgs e)
{
MainControl.CloseCurrentPopUp();
diff --git a/BeWo/View/Detail/UserGroupView.xaml b/BeWo/View/Detail/UserGroupView.xaml
index c0b5d100a..ce53c562e 100644
--- a/BeWo/View/Detail/UserGroupView.xaml
+++ b/BeWo/View/Detail/UserGroupView.xaml
@@ -1,4 +1,18 @@
-
+
diff --git a/BeWo/View/Detail/UserGroupView.xaml.cs b/BeWo/View/Detail/UserGroupView.xaml.cs
index 559754ace..ca381e82d 100644
--- a/BeWo/View/Detail/UserGroupView.xaml.cs
+++ b/BeWo/View/Detail/UserGroupView.xaml.cs
@@ -132,15 +132,20 @@ namespace BeWo.View.Detail
{
if (ServiceFacade.DoUserServiceSync(a => a.CheckUserGroupIsLastWithUserGroupEditRights(ViewModel.DataContract.UserGroupOid.Value)))
{
- MessageBox.Show("Die ausgewählten Rechte können der " + BS.Shared.Translation.Translator.Translate("Benutzergruppe") + " nicht entfernt werden, da sie die einzige " + BS.Shared.Translation.Translator.Translate("Benutzergruppe") + " ist, die dazu berechtigt ist, " + BS.Shared.Translation.Translator.Translate("Benutzergruppen") + " zu verwalten.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Exclamation);
+ var gruppe = BS.Shared.Translation.Translator.Translate("Benutzergruppe");
+ var gruppen = BS.Shared.Translation.Translator.Translate("Benutzergruppen");
+ var txt = $"Die ausgewählten Rechte können der {gruppe} nicht entfernt werden, da sie die einzige {gruppe} ist, die dazu berechtigt ist, {gruppen} zu verwalten.";
+ MessageBox.Show(txt, "Fehler", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
}
- foreach (var item in removedItems)
- {
- ViewModel.Rights.Remove(item.Key);
- }
+ //foreach (var item in removedItems)
+ //{
+ // ViewModel.Rights.Remove(item.Key);
+ //}
+
+ ViewModel.Rights.RemoveRange(removedRights);
ViewModel.Rights.Sort();
}
diff --git a/BeWo/ViewModel/UserGroupVM.cs b/BeWo/ViewModel/UserGroupVM.cs
index b3493f73f..6596ad09e 100644
--- a/BeWo/ViewModel/UserGroupVM.cs
+++ b/BeWo/ViewModel/UserGroupVM.cs
@@ -107,10 +107,11 @@ namespace BeWo.ViewModel
get
{
List possibleRights = new List();
+ //List nopossibleRights = new List();
- foreach (var r in Utils.GetAllEnumValues().Except(this._Rights).ToList())
+ foreach (var right in Utils.GetAllEnumValues().Except(this._Rights).ToList())
{
- if (IsObsoleteRight(r))
+ if (IsObsoleteRight(right))
continue;
bool valid = true;
@@ -118,17 +119,23 @@ namespace BeWo.ViewModel
foreach (var item in IsTypeFunc2PermissionMapping)
{
var isTypeFunc = item.Key;
- var isType = isTypeFunc(r);
+ var isType = isTypeFunc(right);
var hasPermission = item.Value;
// valid wird nur false, wenn "r" vom Typ "t" ist und für "t" keine Berechtigung vorliegt
valid &= isType.Implies(hasPermission);
}
+
#if DEBUG
valid = true;
#endif
+
if(valid)
- possibleRights.Add(r);
+ possibleRights.Add(right);
+ //else
+ //{
+ // nopossibleRights.Add(right);
+ //}
}
return possibleRights;
diff --git a/Shared/Extensions/BoolExtensions.cs b/Shared/Extensions/BoolExtensions.cs
index 9bee6afa8..57fa03add 100644
--- a/Shared/Extensions/BoolExtensions.cs
+++ b/Shared/Extensions/BoolExtensions.cs
@@ -8,6 +8,12 @@ namespace BS.Shared.Extensions
{
public static class BoolExtensions
{
+ ///
+ /// Wenn "a" wahr ist, dann muss auch "b" wahr sein.
+ ///
+ ///
+ ///
+ ///
public static bool Implies(this bool a, bool b)
{
return !a || b;
diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj
index 95a22618f..446fe3f9d 100644
--- a/Shared/Shared.csproj
+++ b/Shared/Shared.csproj
@@ -340,6 +340,7 @@
+