Vor dem Mörtsch

This commit is contained in:
Lyndon Jetten
2020-08-17 16:52:25 +02:00
parent 57b1e3d93a
commit b27cd20c2e
17 changed files with 263 additions and 74 deletions

View File

@@ -2210,6 +2210,10 @@
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project> <Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name> <Name>Data</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\Report\Report.csproj">
<Project>{40D8B312-EA64-49E3-A31A-5E57ED4D5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\Service\Service.csproj"> <ProjectReference Include="..\Service\Service.csproj">
<Project>{094331C3-ECEE-4C89-BBFD-4C9DED89F0EF}</Project> <Project>{094331C3-ECEE-4C89-BBFD-4C9DED89F0EF}</Project>
<Name>Service</Name> <Name>Service</Name>

View File

@@ -282,6 +282,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/LoadTeamsRelatedCustomerOidsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/LoadTeamsRelatedCustomerOidsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<long> LoadTeamsRelatedCustomerOids(long employeeOid); System.Collections.Generic.List<long> LoadTeamsRelatedCustomerOids(long employeeOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetAllActiveEmployees", ReplyAction="http://tempuri.org/IEmployeeService/GetAllActiveEmployeesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetAllActiveEmployeesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAllActiveEmployees();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")] [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveEmployee(long pOid, long pVersion); void ArchiveEmployee(long pOid, long pVersion);
@@ -723,6 +727,11 @@ namespace BeWo.ServiceProxy
return base.Channel.LoadTeamsRelatedCustomerOids(employeeOid); return base.Channel.LoadTeamsRelatedCustomerOids(employeeOid);
} }
public System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAllActiveEmployees()
{
return base.Channel.GetAllActiveEmployees();
}
public void ArchiveEmployee(long pOid, long pVersion) public void ArchiveEmployee(long pOid, long pVersion)
{ {
base.Channel.ArchiveEmployee(pOid, pVersion); base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1337,6 +1346,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeTokenRelationDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeTokenRelationDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeTokenRelationDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeTokenRelationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatBewoMessageSyncDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ChatBewoMessageSyncDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AssessmentSheetCategoryDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AssessmentSheetCategoryDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetCategoryDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AssessmentSheetCategoryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AssessmentSheetValueDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.AssessmentSheetValueDC>))]
@@ -1346,7 +1356,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.NewsItemDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.NewsItemDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NewsItemDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.NewsItemDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmploymentTypeDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmploymentTypeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TeamDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.TeamDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GroupOfPeopleDC))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GroupOfPeopleDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GroupOfPeopleDC>))] [System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GroupOfPeopleDC>))]

View File

@@ -35,16 +35,16 @@
<TabItem Header="{markup:Translate Berichte}" IsSelected="True" Name="tabitem_queries" Selector.Selected="tabitem_queries_Selected" /> <TabItem Header="{markup:Translate Berichte}" IsSelected="True" Name="tabitem_queries" Selector.Selected="tabitem_queries_Selected" />
<!--<TabItem Header="Abrechnung" IsSelected="True" Name="tabitem_accountingreport" Selector.Selected="tabitem_accountingreport_Selected" />--> <!--<TabItem Header="Abrechnung" IsSelected="True" Name="tabitem_accountingreport" Selector.Selected="tabitem_accountingreport_Selected" />-->
<TabItem Header="{markup:Translate Stundenübersicht}" Name="tabitem_flsReport" Selector.Selected="tabitem_flsReport_Selected" /> <TabItem Header="{markup:Translate Stundenübersicht}" Name="tabitem_flsReport" Selector.Selected="tabitem_flsReport_Selected" />
<TabItem Header="{markup:Translate Mitarbeiterauswertung}" Name="tabitem_Mitarbeiter" Selector.Selected="tabitem_Mitarbeiter_Selected"/> <TabItem Header="{markup:Translate Mitarbeiterauswertung}" Name="tabitem_Mitarbeiter" Selector.Selected="tabitem_Mitarbeiter_Selected"/>
<TabItem Header="{markup:Translate Mitarbeiterauslastung}" Name="tabitem_maReport" Selector.Selected="tabitem_maReport_Selected"/> <TabItem Header="{markup:Translate Mitarbeiterauslastung}" Name="tabitem_maReport" Selector.Selected="tabitem_maReport_Selected"/>
<TabItem Header="{markup:Translate Mitarbeiterstundenkonto}" Name="tabitem_makonto" Selector.Selected="tabitem_maKonto_Selected"/> <TabItem Header="{markup:Translate Mitarbeiterstundenkonto}" Name="tabitem_makonto" Selector.Selected="tabitem_maKonto_Selected"/>
<TabItem Header="{markup:Translate Abwesenheitstabelle}" Name="tabitem_abwesenheitsTabelle" Selector.Selected="tabitem_abwesenheitsTabelle_Selected"/> <TabItem Header="{markup:Translate Abwesenheitstabelle}" Name="tabitem_abwesenheitsTabelle" Selector.Selected="tabitem_abwesenheitsTabelle_Selected"/>
<TabItem Header="{markup:Translate Hilfeplanübersicht}" Name="tabitem_supportConceptAnalysis" Selector.Selected="tabitem_supportConceptAnalysis_Selected" /> <TabItem Header="{markup:Translate Hilfeplanübersicht}" Name="tabitem_supportConceptAnalysis" Selector.Selected="tabitem_supportConceptAnalysis_Selected" />
<TabItem Header="{markup:Translate Jahresbericht}" Name="tabitem_annualReport" Selector.Selected="tabitem_annualReport_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 Quittierungsbelege}" Name="tabitem_serviceOverview" Selector.Selected="tabitem_serviceOverview_Selected" />
<TabItem Header="{markup:Translate Stundenzettel}" Name="tabitem_stundenzettelOverview" Selector.Selected="tabitem_stundenzettelOverview_Selected" /> <TabItem Header="{markup:Translate Stundenzettel}" Name="tabitem_stundenzettelOverview" Selector.Selected="tabitem_stundenzettelOverview_Selected" />
<TabItem Header="{markup:Translate Pivot Tabelle}" Name="tabitem_flexibleReport" Selector.Selected="tabitem_flexibleReport_Selected" /> <TabItem Header="{markup:Translate Pivot Tabelle}" Name="tabitem_flexibleReport" Selector.Selected="tabitem_flexibleReport_Selected" />
<!--<TabItem Header="Spitzabrechnung" Name="tabitem_settlement" Selector.Selected="tabitem_settlement_Selected"/>--> <!--<TabItem Header="Spitzabrechnung" Name="tabitem_settlement" Selector.Selected="tabitem_settlement_Selected"/>-->
<TabItem Header="Kilometerauswertung" Name="TabItemKilometerauswertung" Selector.Selected="TabItemKilometerauswertung_OnSelected" /> <TabItem Header="Kilometerauswertung" Name="TabItemKilometerauswertung" Selector.Selected="TabItemKilometerauswertung_OnSelected" />

View File

@@ -7,7 +7,6 @@ using BeWo.ServiceProxy;
using BeWo.View.Detail.Report; using BeWo.View.Detail.Report;
using BeWo.View.Report.AnnualReport; using BeWo.View.Report.AnnualReport;
using BeWo.View.Report.Employee; using BeWo.View.Report.Employee;
using BeWo.View.Report.FLSReport;
using BS.Shared; using BS.Shared;
using BS.Shared.Extensions; using BS.Shared.Extensions;
@@ -16,47 +15,24 @@ using BeWo.View.Report.Kilometerauswertung;
namespace BeWo.View.Master namespace BeWo.View.Master
{ {
/// <summary> public partial class ReportView
/// Interaction logic for ReportView.xaml
/// </summary>
public partial class ReportView : BeWoView
{ {
private readonly Dictionary<TabItem, BeWoView> _OpenViews = new Dictionary<TabItem, BeWoView>(); public Dictionary<TabItem, BeWoView> OpenViews { get; } = new Dictionary<TabItem, BeWoView>();
public Dictionary<TabItem, BeWoView> OpenViews { get { return _OpenViews; } }
public ReportView() public ReportView()
{ {
this.InitializeComponent(); InitializeComponent();
this.InitRights(); InitRights();
} }
public override bool IsDirty public override bool IsDirty => OpenViews.ContainsKey(root.SelectedItem as TabItem) && OpenViews[root.SelectedItem as TabItem].IsDirty;
{
get
{
if (this._OpenViews.ContainsKey(this.root.SelectedItem as TabItem))
{
return this._OpenViews[this.root.SelectedItem as TabItem].IsDirty;
}
return false; internal override DependencyObject ValidationOnSaveRootElement => OpenViews[root.SelectedItem as TabItem].ValidationOnSaveRootElement;
}
}
internal override DependencyObject ValidationOnSaveRootElement
{
get
{
return this._OpenViews[this.root.SelectedItem as TabItem].ValidationOnSaveRootElement;
}
}
internal override bool DoSaveCheck() internal override bool DoSaveCheck()
{ {
foreach (var lPair in _OpenViews) foreach (var lPair in OpenViews)
{ {
if (lPair.Value.IsDirty) if (lPair.Value.IsDirty)
{ {
@@ -73,20 +49,25 @@ namespace BeWo.View.Master
protected override void Save() protected override void Save()
{ {
this._OpenViews[this.root.SelectedItem as TabItem].SaveData(); OpenViews[root.SelectedItem as TabItem].SaveData();
} }
private void InitRights() private void InitRights()
{ {
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_ServiceOverview_View)) if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_ServiceOverview_View))
{ {
this.tabitem_serviceOverview.Visibility = Visibility.Collapsed; tabitem_serviceOverview.Visibility = Visibility.Collapsed;
} }
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_Auslastung_View)) if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_Auslastung_View))
{
tabitem_maReport.Visibility = Visibility.Collapsed; tabitem_maReport.Visibility = Visibility.Collapsed;
}
if (BeWoApp.Mandator.BeWoClientType != 3) //Nur Köln Ring if (BeWoApp.Mandator.BeWoClientType != 3) //Nur Köln Ring
{
tabitem_Mitarbeiter.Visibility = Visibility.Collapsed; tabitem_Mitarbeiter.Visibility = Visibility.Collapsed;
}
else if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_EmployeeOverviewAll_View)) else if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_EmployeeOverviewAll_View))
{ {
tabitem_Mitarbeiter.Visibility = Visibility.Collapsed; tabitem_Mitarbeiter.Visibility = Visibility.Collapsed;
@@ -99,6 +80,7 @@ namespace BeWo.View.Master
// //Nur Jahresbericht + IBP + Integra // //Nur Jahresbericht + IBP + Integra
// tabitem_annualReport.Visibility = Visibility.Visible; // tabitem_annualReport.Visibility = Visibility.Visible;
// } // }
if (BeWoApp.Tenant == "3010479871" || (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewAll) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewSelf) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewTeams))) if (BeWoApp.Tenant == "3010479871" || (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewAll) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewSelf) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewTeams)))
{ {
//Aachener Verein //Aachener Verein
@@ -136,20 +118,24 @@ namespace BeWo.View.Master
// if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_Settlement_View)) // if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_Settlement_View))
// tabitem_settlement.Visibility = Visibility.Collapsed; // tabitem_settlement.Visibility = Visibility.Collapsed;
#if DEBUG
tabitem_serviceOverview.Visibility = Visibility.Visible;
#endif
} }
private void Show(TabItem pTi) private void Show(TabItem pTi)
{ {
foreach (var i in this._OpenViews) foreach (var i in this.OpenViews)
{ {
i.Key.Content = null; i.Key.Content = null;
} }
foreach (var i in this._OpenViews) foreach (var i in this.OpenViews)
{ {
if (i.Key == pTi) if (i.Key == pTi)
{ {
pTi.Content = this._OpenViews[pTi]; pTi.Content = this.OpenViews[pTi];
} }
//else //else
//{ //{
@@ -160,9 +146,9 @@ namespace BeWo.View.Master
private void tabitem_flsReport_Selected(object sender, RoutedEventArgs e) private void tabitem_flsReport_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_flsReport)) if (!this.OpenViews.ContainsKey(this.tabitem_flsReport))
{ {
this._OpenViews[this.tabitem_flsReport] = new BeWo.View.Report.FLSReport.FLSReportView(); this.OpenViews[this.tabitem_flsReport] = new BeWo.View.Report.FLSReport.FLSReportView();
} }
this.Show(this.tabitem_flsReport); this.Show(this.tabitem_flsReport);
@@ -170,42 +156,42 @@ namespace BeWo.View.Master
private void tabitem_Mitarbeiter_Selected(object sender, RoutedEventArgs e) private void tabitem_Mitarbeiter_Selected(object sender, RoutedEventArgs e)
{ {
if (!_OpenViews.ContainsKey(tabitem_Mitarbeiter)) if (!OpenViews.ContainsKey(tabitem_Mitarbeiter))
_OpenViews[tabitem_Mitarbeiter] = new BeWo.View.Report.MitarbeiterKoelnRing.FLSReportView(); OpenViews[tabitem_Mitarbeiter] = new BeWo.View.Report.MitarbeiterKoelnRing.FLSReportView();
Show(tabitem_Mitarbeiter); Show(tabitem_Mitarbeiter);
} }
private void tabitem_maReport_Selected(object sender, RoutedEventArgs e) private void tabitem_maReport_Selected(object sender, RoutedEventArgs e)
{ {
if (!_OpenViews.ContainsKey(tabitem_maReport)) if (!OpenViews.ContainsKey(tabitem_maReport))
_OpenViews[tabitem_maReport] = new AuslastungReportView2(); OpenViews[tabitem_maReport] = new AuslastungReportView2();
Show(tabitem_maReport); Show(tabitem_maReport);
} }
private void tabitem_maKonto_Selected(object sender, RoutedEventArgs e) private void tabitem_maKonto_Selected(object sender, RoutedEventArgs e)
{ {
if (!_OpenViews.ContainsKey(tabitem_makonto)) if (!OpenViews.ContainsKey(tabitem_makonto))
_OpenViews[tabitem_makonto] = new EmployeeHourReportView(); OpenViews[tabitem_makonto] = new EmployeeHourReportView();
Show(tabitem_makonto); Show(tabitem_makonto);
} }
private void tabitem_abwesenheitsTabelle_Selected(object sender, RoutedEventArgs e) private void tabitem_abwesenheitsTabelle_Selected(object sender, RoutedEventArgs e)
{ {
if (!_OpenViews.ContainsKey(tabitem_abwesenheitsTabelle)) if (!OpenViews.ContainsKey(tabitem_abwesenheitsTabelle))
_OpenViews[tabitem_abwesenheitsTabelle] = new AbwesenheitstabelleView(); OpenViews[tabitem_abwesenheitsTabelle] = new AbwesenheitstabelleView();
Show(tabitem_abwesenheitsTabelle); Show(tabitem_abwesenheitsTabelle);
} }
private void tabitem_queries_Selected(object sender, RoutedEventArgs e) private void tabitem_queries_Selected(object sender, RoutedEventArgs e)
{ {
if (!_OpenViews.ContainsKey(tabitem_queries)) if (!OpenViews.ContainsKey(tabitem_queries))
{ {
ServiceFacade.DoQueryServiceAsync( ServiceFacade.DoQueryServiceAsync(
s => s.GetAllQueriesOfType(QueryType.Public), s => s.GetAllQueriesOfType(QueryType.Public),
r => this.Dispatch( r => this.Dispatch(
delegate delegate
{ {
_OpenViews[tabitem_queries] = new QueryView(r); OpenViews[tabitem_queries] = new QueryView(r);
Show(tabitem_queries); Show(tabitem_queries);
})); }));
} }
@@ -224,9 +210,9 @@ namespace BeWo.View.Master
private void tabitem_serviceOverview_Selected(object sender, RoutedEventArgs e) private void tabitem_serviceOverview_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_serviceOverview)) if (!this.OpenViews.ContainsKey(this.tabitem_serviceOverview))
{ {
this._OpenViews[this.tabitem_serviceOverview] = new ServicesReportView(); this.OpenViews[this.tabitem_serviceOverview] = new ServicesReportView();
} }
this.Show(this.tabitem_serviceOverview); this.Show(this.tabitem_serviceOverview);
@@ -234,9 +220,9 @@ namespace BeWo.View.Master
private void tabitem_stundenzettelOverview_Selected(object sender, RoutedEventArgs e) private void tabitem_stundenzettelOverview_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_stundenzettelOverview)) if (!this.OpenViews.ContainsKey(this.tabitem_stundenzettelOverview))
{ {
this._OpenViews[this.tabitem_stundenzettelOverview] = new TimeSheetMailView(); this.OpenViews[this.tabitem_stundenzettelOverview] = new TimeSheetMailView();
} }
this.Show(this.tabitem_stundenzettelOverview); this.Show(this.tabitem_stundenzettelOverview);
@@ -244,9 +230,9 @@ namespace BeWo.View.Master
private void tabitem_flexibleReport_Selected(object sender, RoutedEventArgs e) private void tabitem_flexibleReport_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_flexibleReport)) if (!this.OpenViews.ContainsKey(this.tabitem_flexibleReport))
{ {
this._OpenViews[this.tabitem_flexibleReport] = new FlexibleReportView(); this.OpenViews[this.tabitem_flexibleReport] = new FlexibleReportView();
} }
this.Show(this.tabitem_flexibleReport); this.Show(this.tabitem_flexibleReport);
@@ -255,14 +241,14 @@ namespace BeWo.View.Master
private void tabitem_supportConceptAnalysis_Selected(object sender, RoutedEventArgs e) private void tabitem_supportConceptAnalysis_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_supportConceptAnalysis)) if (!this.OpenViews.ContainsKey(this.tabitem_supportConceptAnalysis))
{ {
ServiceFacade.DoAnalysisServiceAsync( ServiceFacade.DoAnalysisServiceAsync(
s => s.GetSupportConceptAnalysis(BeWoApp.LoggedOnUser.Employee.EmployeeOid, true, false, null), s => s.GetSupportConceptAnalysis(BeWoApp.LoggedOnUser.Employee.EmployeeOid, true, false, null),
r => this.Dispatch( r => this.Dispatch(
delegate delegate
{ {
this._OpenViews[this.tabitem_supportConceptAnalysis] = new SupportConceptsAnalysisView(r.OrderBy(o => o.CustomerLastName + ", " + o.CustomerFirstName).GroupBy(so => so.CustomerLastName + ", " + so.CustomerFirstName).ToDictionary(g => g.Key, g => g.ToList())); this.OpenViews[this.tabitem_supportConceptAnalysis] = new SupportConceptsAnalysisView(r.OrderBy(o => o.CustomerLastName + ", " + o.CustomerFirstName).GroupBy(so => so.CustomerLastName + ", " + so.CustomerFirstName).ToDictionary(g => g.Key, g => g.ToList()));
// _OpenViews[tabitem_supportConceptAnalysis] = new SupportConceptsAnalysisView(r // _OpenViews[tabitem_supportConceptAnalysis] = new SupportConceptsAnalysisView(r
// .GroupBy(so => so.CustomerLastName + ", " + so.CustomerFirstName) // .GroupBy(so => so.CustomerLastName + ", " + so.CustomerFirstName)
@@ -278,9 +264,9 @@ namespace BeWo.View.Master
private void tabitem_annualReport_Selected(object sender, RoutedEventArgs e) private void tabitem_annualReport_Selected(object sender, RoutedEventArgs e)
{ {
if (!this._OpenViews.ContainsKey(this.tabitem_annualReport)) if (!this.OpenViews.ContainsKey(this.tabitem_annualReport))
{ {
this._OpenViews[this.tabitem_annualReport] = new AnnualReportView(); this.OpenViews[this.tabitem_annualReport] = new AnnualReportView();
} }
this.Show(this.tabitem_annualReport); this.Show(this.tabitem_annualReport);
@@ -289,9 +275,9 @@ namespace BeWo.View.Master
private void TabItemKilometerauswertung_OnSelected(object sender, RoutedEventArgs e) private void TabItemKilometerauswertung_OnSelected(object sender, RoutedEventArgs e)
{ {
if(!_OpenViews.ContainsKey(TabItemKilometerauswertung)) if(!OpenViews.ContainsKey(TabItemKilometerauswertung))
{ {
_OpenViews[TabItemKilometerauswertung] = new KilometerauslastungsView(); OpenViews[TabItemKilometerauswertung] = new KilometerauslastungsView();
} }
Show(TabItemKilometerauswertung); Show(TabItemKilometerauswertung);

View File

@@ -15,6 +15,7 @@ using BS.Shared.Core;
using BS.Shared.DataContracts; using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact; using BS.Shared.DataContracts.Compact;
using ChatController.Utilities.Extensions; using ChatController.Utilities.Extensions;
using DevExpress.Xpf.Core;
using DevExpress.XtraReports.UI; using DevExpress.XtraReports.UI;
namespace BeWo.View.Report.Kilometerauswertung namespace BeWo.View.Report.Kilometerauswertung
@@ -134,6 +135,13 @@ namespace BeWo.View.Report.Kilometerauswertung
} }
}); });
}); });
ThemeManager.SetTheme(BeWoApp.CurrentBeWo.MainWindow, Theme.Office2010Black);
Unloaded += delegate
{
ThemeManager.SetTheme(BeWoApp.CurrentBeWo.MainWindow, null);
};
} }
private void InitYearComboBox() private void InitYearComboBox()

View File

@@ -10,6 +10,15 @@
<UseGlobalApplicationHostFile /> <UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig> <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView> <ProjectView>ShowAllFiles</ProjectView>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath>
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>False</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
<WebStackScaffolding_LayoutPageFile>~/Views/Shared/_Layout.cshtml</WebStackScaffolding_LayoutPageFile>
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <VisualStudio>

View File

@@ -28,7 +28,6 @@
} }
.appointment-header { .appointment-header {
border-left-width: 0.25rem !important;
background-size: 0.25rem auto; background-size: 0.25rem auto;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right; background-position: right;
@@ -72,6 +71,7 @@
--bewo-employee: #45993B; --bewo-employee: #45993B;
--bewo-resource: #04B4D0; --bewo-resource: #04B4D0;
--bewo-task-red: #993B3B; --bewo-task-red: #993B3B;
--bewo-report: #995E3B;
--breakpoint-xs: 0; --breakpoint-xs: 0;
--breakpoint-sm: 576px; --breakpoint-sm: 576px;
--breakpoint-md: 768px; --breakpoint-md: 768px;
@@ -2125,6 +2125,26 @@ pre code {
background-color: #d9b7b7; background-color: #d9b7b7;
} }
.table-bewo-report,
.table-bewo-report > th,
.table-bewo-report > td {
background-color: #e2d2c8;
}
.table-bewo-report th,
.table-bewo-report td,
.table-bewo-report thead th,
.table-bewo-report tbody + tbody {
border-color: #caab99;
}
.table-hover .table-bewo-report:hover {
background-color: #d9c4b7;
}
.table-hover .table-bewo-report:hover > td,
.table-hover .table-bewo-report:hover > th {
background-color: #d9c4b7;
}
.table-active, .table-active,
.table-active > th, .table-active > th,
.table-active > td { .table-active > td {
@@ -3213,6 +3233,36 @@ fieldset:disabled a.btn {
box-shadow: 0 0 0 0.2rem rgba(168, 88, 88, 0.5); box-shadow: 0 0 0 0.2rem rgba(168, 88, 88, 0.5);
} }
.btn-bewo-report {
color: #fff;
background-color: #995E3B;
border-color: #995E3B;
}
.btn-bewo-report:hover {
color: #fff;
background-color: #7d4d30;
border-color: #74472d;
}
.btn-bewo-report:focus, .btn-bewo-report.focus {
color: #fff;
background-color: #7d4d30;
border-color: #74472d;
box-shadow: 0 0 0 0.2rem rgba(168, 118, 88, 0.5);
}
.btn-bewo-report.disabled, .btn-bewo-report:disabled {
color: #fff;
background-color: #995E3B;
border-color: #995E3B;
}
.btn-bewo-report:not(:disabled):not(.disabled):active, .btn-bewo-report:not(:disabled):not(.disabled).active, .show > .btn-bewo-report.dropdown-toggle {
color: #fff;
background-color: #74472d;
border-color: #6b4229;
}
.btn-bewo-report:not(:disabled):not(.disabled):active:focus, .btn-bewo-report:not(:disabled):not(.disabled).active:focus, .show > .btn-bewo-report.dropdown-toggle:focus {
box-shadow: 0 0 0 0.2rem rgba(168, 118, 88, 0.5);
}
.btn-outline-primary { .btn-outline-primary {
color: #FF5A00; color: #FF5A00;
border-color: #FF5A00; border-color: #FF5A00;
@@ -3663,6 +3713,31 @@ fieldset:disabled a.btn {
box-shadow: 0 0 0 0.2rem rgba(153, 59, 59, 0.5); box-shadow: 0 0 0 0.2rem rgba(153, 59, 59, 0.5);
} }
.btn-outline-bewo-report {
color: #995E3B;
border-color: #995E3B;
}
.btn-outline-bewo-report:hover {
color: #fff;
background-color: #995E3B;
border-color: #995E3B;
}
.btn-outline-bewo-report:focus, .btn-outline-bewo-report.focus {
box-shadow: 0 0 0 0.2rem rgba(153, 94, 59, 0.5);
}
.btn-outline-bewo-report.disabled, .btn-outline-bewo-report:disabled {
color: #995E3B;
background-color: transparent;
}
.btn-outline-bewo-report:not(:disabled):not(.disabled):active, .btn-outline-bewo-report:not(:disabled):not(.disabled).active, .show > .btn-outline-bewo-report.dropdown-toggle {
color: #fff;
background-color: #995E3B;
border-color: #995E3B;
}
.btn-outline-bewo-report:not(:disabled):not(.disabled):active:focus, .btn-outline-bewo-report:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-bewo-report.dropdown-toggle:focus {
box-shadow: 0 0 0 0.2rem rgba(153, 94, 59, 0.5);
}
.btn-link { .btn-link {
font-weight: 400; font-weight: 400;
color: #FF5A00; color: #FF5A00;
@@ -5668,6 +5743,19 @@ a.badge-bewo-task-red:focus, a.badge-bewo-task-red.focus {
box-shadow: 0 0 0 0.2rem rgba(153, 59, 59, 0.5); box-shadow: 0 0 0 0.2rem rgba(153, 59, 59, 0.5);
} }
.badge-bewo-report {
color: #fff;
background-color: #995E3B;
}
a.badge-bewo-report:hover, a.badge-bewo-report:focus {
color: #fff;
background-color: #74472d;
}
a.badge-bewo-report:focus, a.badge-bewo-report.focus {
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(153, 94, 59, 0.5);
}
.jumbotron { .jumbotron {
padding: 2rem 1rem; padding: 2rem 1rem;
margin-bottom: 2rem; margin-bottom: 2rem;
@@ -5929,6 +6017,18 @@ a.badge-bewo-task-red:focus, a.badge-bewo-task-red.focus {
color: #2b1111; color: #2b1111;
} }
.alert-bewo-report {
color: #50311f;
background-color: #ebdfd8;
border-color: #e2d2c8;
}
.alert-bewo-report hr {
border-top-color: #d9c4b7;
}
.alert-bewo-report .alert-link {
color: #2b1a11;
}
@keyframes progress-bar-stripes { @keyframes progress-bar-stripes {
from { from {
background-position: 1rem 0; background-position: 1rem 0;
@@ -6426,6 +6526,20 @@ a.badge-bewo-task-red:focus, a.badge-bewo-task-red.focus {
border-color: #501f1f; border-color: #501f1f;
} }
.list-group-item-bewo-report {
color: #50311f;
background-color: #e2d2c8;
}
.list-group-item-bewo-report.list-group-item-action:hover, .list-group-item-bewo-report.list-group-item-action:focus {
color: #50311f;
background-color: #d9c4b7;
}
.list-group-item-bewo-report.list-group-item-action.active {
color: #fff;
background-color: #50311f;
border-color: #50311f;
}
.close { .close {
float: right; float: right;
font-size: 1.5rem; font-size: 1.5rem;
@@ -7358,6 +7472,16 @@ button.bg-bewo-task-red:focus {
background-color: #742d2d !important; background-color: #742d2d !important;
} }
.bg-bewo-report {
background-color: #995E3B !important;
}
a.bg-bewo-report:hover, a.bg-bewo-report:focus,
button.bg-bewo-report:hover,
button.bg-bewo-report:focus {
background-color: #74472d !important;
}
.bg-white { .bg-white {
background-color: #fff !important; background-color: #fff !important;
} }
@@ -7478,6 +7602,10 @@ button.bg-bewo-task-red:focus {
border-color: #993B3B !important; border-color: #993B3B !important;
} }
.border-bewo-report {
border-color: #995E3B !important;
}
.border-white { .border-white {
border-color: #fff !important; border-color: #fff !important;
} }
@@ -11141,6 +11269,14 @@ a.text-bewo-task-red:hover, a.text-bewo-task-red:focus {
color: #622626 !important; color: #622626 !important;
} }
.text-bewo-report {
color: #995E3B !important;
}
a.text-bewo-report:hover, a.text-bewo-report:focus {
color: #623c26 !important;
}
.text-body { .text-body {
color: #212529 !important; color: #212529 !important;
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
$theme-colors: ( "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B); $theme-colors: ( "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B, "bewo-report": #995E3B);
.no-underline { .no-underline {
text-decoration: none !important text-decoration: none !important

View File

@@ -34,5 +34,6 @@ namespace BeWoPlanerMobil.Models
public static string TimeOfLastAction { get; set; } public static string TimeOfLastAction { get; set; }
public static bool HasRightToInsertRessourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAnlegen) || MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll); public static bool HasRightToInsertRessourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAnlegen) || MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
public static bool IsAllowedToSeeBills => MobileSessionFacade.CheckForUserRight(UserRightType.Analysis_ServiceOverview_View);
} }
} }

View File

@@ -8,9 +8,9 @@
<div class="container-fluid mt-3"> <div class="container-fluid mt-3">
@using(Html.BeginForm("SelectCustomer", "Customer", FormMethod.Post, new { id = "select-customer-form" })) @using(Html.BeginForm("SelectCustomer", "Customer", FormMethod.Post, new { id = "select-customer-form" }))
{ {
<div class="row"> <div class="row align-items-center">
<div class="col-sm-2 col-md-auto"> <div class="col-sm-2 col-md-auto">
@Html.LabelFor(m => m.SelectedCustomerOid, new {@class="align-middle"}) @Html.LabelFor(m => m.SelectedCustomerOid)
</div> </div>
<div class="col-sm-10 col-md"> <div class="col-sm-10 col-md">
@Html.DropDownListFor(m => m.SelectedCustomerOid, Model.CustomerListItems, new { onchange = "submitCustomerSelectionForm();", @class = "form-control" }) @Html.DropDownListFor(m => m.SelectedCustomerOid, Model.CustomerListItems, new { onchange = "submitCustomerSelectionForm();", @class = "form-control" })

View File

@@ -32,6 +32,7 @@
<script src="~/Scripts/view-scripts/customer.js"></script> <script src="~/Scripts/view-scripts/customer.js"></script>
<script src="~/Scripts/view-scripts/scheduler.js"></script> <script src="~/Scripts/view-scripts/scheduler.js"></script>
<script src="~/Scripts/utils/dateUtils.js"></script> <script src="~/Scripts/utils/dateUtils.js"></script>
<script src="~/Scripts/view-scripts/report.js"></script>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@@ -141,6 +142,21 @@
} }
} }
@*@if(AbstractModel.IsAllowedToSeeBills)
{
using(Html.BeginForm("RedirectToReportView", "Main", FormMethod.Post))
{
<li class="nav-item">
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
<i class="fas fa-file-invoice text-bewo-report">
</i>
Auswertung
</button>
</li>
}
}*@
<li class="nav-item"> <li class="nav-item">
@using(Html.BeginForm("Logout", "Main", FormMethod.Post)) @using(Html.BeginForm("Logout", "Main", FormMethod.Post))
{ {

View File

@@ -42,7 +42,7 @@ namespace BeWo.Report.ReportObjects
Entries = new List<KilometerauswertungsEntry>(); Entries = new List<KilometerauswertungsEntry>();
TotalDistanceInMeters = 0; TotalDistanceInMeters = 0;
foreach(var serviceRecord in serviceRecords.Where(serviceRecord => serviceRecord.DistanceInMeter.HasValue && serviceRecord.Start.HasValue)) foreach(var serviceRecord in serviceRecords.Where(serviceRecord => serviceRecord.DistanceInMeter.HasValue && serviceRecord.DistanceInMeter > 0 && serviceRecord.Start.HasValue))
{ {
TotalDistanceInMeters += serviceRecord.DistanceInMeter.Value; TotalDistanceInMeters += serviceRecord.DistanceInMeter.Value;

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.ServiceModel; using System.ServiceModel;
using BS.Shared.Core; using BS.Shared.Core;
using BS.Shared.DataContracts; using BS.Shared.DataContracts;

View File

@@ -375,5 +375,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))] [FaultContract(typeof(BeWoFault))]
[OperationContract] [OperationContract]
List<long> LoadTeamsRelatedCustomerOids(long employeeOid); List<long> LoadTeamsRelatedCustomerOids(long employeeOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<EmployeeDC> GetAllActiveEmployees();
} }
} }

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.IO;
using System.Linq; using System.Linq;
using System.ServiceModel; using System.ServiceModel;

View File

@@ -1576,5 +1576,19 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e); throw Utils.CreateBeWoFaultException(e);
} }
} }
public List<EmployeeDC> GetAllActiveEmployees()
{
try
{
var employees = DAOFactory.GenericDAO.GetAllActive<Employee>();
return MapperFactory.EmployeeDC_Employee.MapToNewDCs(employees);
}
catch(Exception exception)
{
throw Utils.CreateBeWoFaultException(exception);
}
}
} }
} }