Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
Ein Arsch voll Konflikte.
This commit is contained in:
46
.gitignore
vendored
46
.gitignore
vendored
@@ -7,7 +7,6 @@
|
||||
/BeWoPlanerAndroid/obj
|
||||
/BeWoPlanerMobil/bin
|
||||
/BeWoPlanerMobil/obj
|
||||
/BeWoPlanerMobil/node_modules
|
||||
/Host/bin
|
||||
/Host/obj
|
||||
/Controls/bin
|
||||
@@ -416,4 +415,47 @@
|
||||
/ReportImp/KuhringBetreuung/obj/Release
|
||||
/ReportImp/LebenshilfeFrankfurtOder/obj/Debug
|
||||
/ReportImp/LebenshilfeFrankfurtOder/obj/Release
|
||||
/BeWoPlanerMobil/delete_and_ignore_file.txt
|
||||
/ReportImp/AbwKlassen/bin/Debug
|
||||
/ReportImp/AbwKlassen/bin/Release
|
||||
/ReportImp/AbwKlassen/obj/Debug
|
||||
/ReportImp/AbwKlassen/obj/Release
|
||||
/ReportImp/DiakonischesWerkMuelheimTwg/bin/Debug
|
||||
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Debug
|
||||
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Release
|
||||
/ReportImp/Inkomm/obj/Debug
|
||||
/ReportImp/Inkomm/obj/Release
|
||||
/ReportImp/LebenshilfeDorsten/obj/Debug
|
||||
/ReportImp/LebenshilfeDorsten/obj/Release
|
||||
/ReportImp/QuerFaelltEin/obj/Debug
|
||||
/ReportImp/QuerFaelltEin/obj/Release
|
||||
/ReportImp/AsbRuhr/obj/Debug
|
||||
/ReportImp/AsbRuhr/obj/Release
|
||||
/ReportImp/DiePerspektive/obj/Debug
|
||||
/ReportImp/DiePerspektive/obj/Release
|
||||
/ReportImp/PhoenixBeWo/obj/Debug
|
||||
/ReportImp/PhoenixBeWo/obj/Release
|
||||
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Debug
|
||||
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Release
|
||||
/ReportImp/InputFamilienhilfe/obj/Debug
|
||||
/ReportImp/InputFamilienhilfe/obj/Release
|
||||
/ReportImp/LebenshilfeWolfsburg/obj/Debug
|
||||
/ReportImp/LebenshilfeWolfsburg/obj/Release
|
||||
/ReportImp/SichtWeise/obj/Debug
|
||||
/ReportImp/SichtWeise/obj/Release
|
||||
/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
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<SignManifests>false</SignManifests>
|
||||
<ManifestKeyFile>
|
||||
</ManifestKeyFile>
|
||||
<ManifestCertificateThumbprint>D9ACF3EBC5E47956B8D786361F7061E3F6D6F286</ManifestCertificateThumbprint>
|
||||
<ManifestCertificateThumbprint>D7D02C6BE66C484058796E17BD368F3C81B4AA88</ManifestCertificateThumbprint>
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
<ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion>
|
||||
@@ -39,16 +39,16 @@
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>true</UpdateRequired>
|
||||
<MapFileExtensions>false</MapFileExtensions>
|
||||
<InstallUrl>http://app.beyondsoft.de/dev/</InstallUrl>
|
||||
<InstallUrl>http://app.beyondsoft.de/sbdtest/</InstallUrl>
|
||||
<TargetCulture>de-DE</TargetCulture>
|
||||
<ProductName>BeWoPlaner</ProductName>
|
||||
<PublisherName>beyondSoft GmbH</PublisherName>
|
||||
<MinimumRequiredVersion>2.0.1.172</MinimumRequiredVersion>
|
||||
<MinimumRequiredVersion>2.0.1.184</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.htm</WebPage>
|
||||
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>173</ApplicationRevision>
|
||||
<ApplicationRevision>185</ApplicationRevision>
|
||||
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
@@ -290,6 +290,18 @@
|
||||
<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>
|
||||
</Page>
|
||||
<Page Include="View\Detail\GoalImportControl.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\NotizenKategorieView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -306,6 +318,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Report\Dienstplaner.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Report\EMailStatusLogControl.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -346,6 +362,14 @@
|
||||
<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>
|
||||
@@ -354,6 +378,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</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>
|
||||
@@ -798,8 +826,14 @@
|
||||
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
|
||||
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
|
||||
<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" />
|
||||
@@ -822,6 +856,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" />
|
||||
@@ -889,6 +925,15 @@
|
||||
<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>
|
||||
<Compile Include="View\Detail\GoalImportControl.xaml.cs">
|
||||
<DependentUpon>GoalImportControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\NotizenKategorieView.xaml.cs">
|
||||
<DependentUpon>NotizenKategorieView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -898,6 +943,9 @@
|
||||
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
|
||||
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Report\Dienstplaner.xaml.cs">
|
||||
<DependentUpon>Dienstplaner.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Report\AbwesenheitstabelleView.xaml.cs">
|
||||
<DependentUpon>AbwesenheitstabelleView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -934,12 +982,21 @@
|
||||
<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\Kilometerauswertung\KilometerauslastungsView.xaml.cs">
|
||||
<DependentUpon>KilometerauslastungsView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Report\Rating\RatingReportView.xaml.cs">
|
||||
<DependentUpon>RatingReportView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\StundenplanView.xaml.cs">
|
||||
<DependentUpon>StundenplanView.xaml</DependentUpon>
|
||||
@@ -2778,7 +2835,13 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Ressources\Icons\Paste24.png" />
|
||||
</ItemGroup>
|
||||
<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>
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace BeWo
|
||||
|
||||
public static MainControl MainControl;
|
||||
|
||||
public static string Version = "Version 2.4.6 TEST";
|
||||
public static string Version = "Version 2.4.7 Test";
|
||||
|
||||
public static int RenderTier = 0;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -1007,8 +1004,7 @@ namespace BeWo
|
||||
callback?.Invoke(chatServerURL);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Cleanup()
|
||||
public static void Cleanup()
|
||||
{
|
||||
_lockedContent = null;
|
||||
LoginControl = null;
|
||||
|
||||
@@ -5,7 +5,9 @@ using System.Linq;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Markup;
|
||||
using System.Windows.Media;
|
||||
using BeWo.View.Detail;
|
||||
using BeWo.ViewModel;
|
||||
using BS.Shared.DataContracts;
|
||||
using DevExpress.Xpf.Grid;
|
||||
|
||||
namespace BeWo.Converter
|
||||
@@ -23,9 +25,45 @@ namespace BeWo.Converter
|
||||
var viewTag = cellData.View.Tag as List<AdditionalServiceBookingVM>;
|
||||
var date = int.Parse(value[1].ToString().Split('.')[0], NumberStyles.Integer);
|
||||
|
||||
|
||||
if (viewTag != null && viewTag.Count > 0 && value.Length > 2 && value[2] is Teilnehmer)
|
||||
{
|
||||
var booking = viewTag[0];
|
||||
|
||||
if (date <= DateTime.DaysInMonth(booking.Date.Year, booking.Date.Month))
|
||||
{
|
||||
|
||||
var dt = new DateTime(booking.Date.Year, booking.Date.Month, date);
|
||||
|
||||
if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
|
||||
{
|
||||
return Brushes.CornflowerBlue;
|
||||
}
|
||||
|
||||
var t = (Teilnehmer) value[2];
|
||||
|
||||
if (IsAbsence(dt, t.Customer.AbsenceTimes))
|
||||
{
|
||||
return Brushes.Red;
|
||||
}
|
||||
}
|
||||
}
|
||||
return viewTag.Any(v => v.Date.Day.Equals(date)) ? Brushes.White : b;
|
||||
}
|
||||
|
||||
private bool IsAbsence(DateTime dt, List<AbsenceTimeDC> absenceTimes)
|
||||
{
|
||||
foreach (var at in absenceTimes)
|
||||
{
|
||||
if ((!at.Start.HasValue || at.Start.Value <= dt) && (!at.End.HasValue || at.End.Value >= dt))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); }
|
||||
|
||||
public override object ProvideValue(IServiceProvider serviceProvider) { return this; }
|
||||
|
||||
@@ -2131,7 +2131,7 @@ namespace BeWo.Core
|
||||
}
|
||||
|
||||
public static void OwnChatSynchronisationVeranlassen()
|
||||
{
|
||||
{
|
||||
if (!BeWoApp.Mandator.Apikey.IsNullOrEmpty())
|
||||
{
|
||||
try
|
||||
@@ -2167,11 +2167,11 @@ namespace BeWo.Core
|
||||
|
||||
// response.Close();
|
||||
// response.Dispose();
|
||||
//}
|
||||
|
||||
}
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ namespace BeWo.Core
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsHidden { get; set; }
|
||||
|
||||
public BindingList<SupportConceptGoalTreeItem> Items
|
||||
{
|
||||
get => _Children ?? (_Children = new BindingList<SupportConceptGoalTreeItem>());
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using DevExpress.Xpf.Scheduler;
|
||||
|
||||
namespace BeWo
|
||||
@@ -17,6 +18,22 @@ namespace BeWo
|
||||
}
|
||||
}
|
||||
|
||||
//class CustomGridLocalizer : GridControlLocalizer
|
||||
//{
|
||||
// protected override void PopulateStringTable()
|
||||
// {
|
||||
// base.PopulateStringTable();
|
||||
|
||||
// for (int i = 0; i < 10000; i++)
|
||||
// {
|
||||
// var enumInt = (GridControlStringId)i;
|
||||
// AddString(enumInt, enumInt.ToString());
|
||||
// }
|
||||
// ;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
//class CustomSchedulerResXLocalizer : SchedulerControlResXLocalizer
|
||||
//{
|
||||
// public override string GetLocalizedString(SchedulerControlStringId id)
|
||||
@@ -28,7 +45,7 @@ namespace BeWo
|
||||
// {
|
||||
// base.PopulateStringTable();
|
||||
|
||||
|
||||
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -350,8 +321,49 @@ namespace BeWo
|
||||
private bool CheckStatusMessage(BeWoProfile profile, String url)
|
||||
{
|
||||
#if DEBUG
|
||||
|
||||
//String message = @"Sehr geehrte Kundin, sehr geehrter Kunde,
|
||||
|
||||
// Ihr BeWoPlaner Nutzungszeitraum endet automatisch am 31.01.2020.
|
||||
// Bitte wenden Sie sich an den BeWoPlaner - Support, sofern Sie den Nutzungszeitraum verlängern möchten.
|
||||
|
||||
// Vielen Dank.
|
||||
// Ihr BeWoPlaner-Team;1";
|
||||
|
||||
//if (!String.IsNullOrWhiteSpace(message) && message.Trim().Length > 2)
|
||||
//{
|
||||
// String ende = message.Substring(message.Length - 2);
|
||||
|
||||
// message = message.Replace("\\n", "\n");
|
||||
// message = message.Substring(0, message.Length - 2);
|
||||
// MessageDialog dlg = new MessageDialog();
|
||||
|
||||
// if (message.Contains("<") && message.Contains(">"))
|
||||
// {
|
||||
// dlg.SetXaml(message);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// dlg.Message = message;
|
||||
// }
|
||||
|
||||
|
||||
// var test = this.GetRootParent() as Window;
|
||||
// if (test != null)
|
||||
// {
|
||||
// dlg.Owner = test;
|
||||
// dlg.WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||
// }
|
||||
|
||||
// var result = dlg.ShowDialog();
|
||||
// if (ende.EndsWith(";0"))
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
//}
|
||||
return true;
|
||||
#endif
|
||||
#else
|
||||
try
|
||||
{
|
||||
using (WebClient client = new WebClient())
|
||||
@@ -404,6 +416,7 @@ namespace BeWo
|
||||
}
|
||||
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
private BeWoProfile ReadSelectedProfile()
|
||||
@@ -987,8 +1000,13 @@ namespace BeWo
|
||||
|
||||
private void LoginResult( WaitLayer2 lWaitLayer, UserValidationResult result, String lUserName, String lPassword, String lPIN = "")
|
||||
{
|
||||
//
|
||||
// GetState hierhin
|
||||
//
|
||||
//
|
||||
if (result == UserValidationResult.UserValid)
|
||||
{
|
||||
|
||||
//this.Dispatch(delegate
|
||||
//{
|
||||
// if (BeWoApp.Tenant == "demo")
|
||||
|
||||
@@ -29,6 +29,7 @@ using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using DevExpress.Xpf.Scheduler;
|
||||
using Hyperlink = System.Windows.Documents.Hyperlink;
|
||||
|
||||
@@ -76,8 +77,10 @@ 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();
|
||||
|
||||
|
||||
OpenedModalViewWindows = new List<ModalViewWindow>();
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
BIN
BeWo/Ressources/Icons/Favorites16.png
Normal file
BIN
BeWo/Ressources/Icons/Favorites16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 814 B |
BIN
BeWo/Ressources/Icons/Favorites32.png
Normal file
BIN
BeWo/Ressources/Icons/Favorites32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
BIN
BeWo/Ressources/Icons/FavoritesDisabled32.png
Normal file
BIN
BeWo/Ressources/Icons/FavoritesDisabled32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
@@ -20,7 +20,11 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
{
|
||||
var substitutionStartingDayCountCondition = SubstitutionStartingDayCountCondition(viewModel);
|
||||
|
||||
if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
|
||||
if (viewModel.VertretungsStatus == VertretungsStatus.KlientUndMitarbeiterKrank || viewModel.VertretungsStatus == VertretungsStatus.MaKrankKeineVertretungBenoetigt)
|
||||
{
|
||||
unwantedSubstitutionList.AddIfNotIn(viewModel);
|
||||
}
|
||||
else if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
|
||||
{
|
||||
unwantedSubstitutionList.AddIfNotIn(viewModel);
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
<CheckBox Grid.Column="1" Grid.Row="5" Content="ganztägig" Unchecked="KlientVertretungsToggleButton_OnUnchecked" Checked="KlientVertretungsToggleButton_OnChecked"
|
||||
Grid.ColumnSpan="2" HorizontalAlignment="Left" x:Name="KVCheckBox" Margin="3"/>
|
||||
|
||||
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Mask="HH:mm" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
|
||||
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
|
||||
|
||||
<dxe:DateEdit x:Name="KVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerBis_OnEditValueChanged"/>
|
||||
|
||||
|
||||
@@ -621,6 +621,15 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
var barButtonItem2 = new BarButtonItem {Content = "Steckbrief anzeigen"};
|
||||
barButtonItem2.ItemClick += ShowCharacteristics;
|
||||
e.Customizations.Add(barButtonItem2);
|
||||
|
||||
var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
|
||||
|
||||
if (selectedViewModel != null && selectedViewModel.Vertretung != null)
|
||||
{
|
||||
var barButtonItem3 = new BarButtonItem {Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
|
||||
barButtonItem3.ItemClick += DeleteVertretung_OnClick;
|
||||
e.Customizations.Add(barButtonItem3);
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowCharacteristics(object sender, RoutedEventArgs e)
|
||||
@@ -679,6 +688,18 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
}
|
||||
}
|
||||
|
||||
//private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
||||
// {
|
||||
// var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
|
||||
|
||||
// _Tagesvertretung.DeleteVertretung(selectedViewModel);
|
||||
|
||||
// LadeTagesansicht(Datepicker.DateTime.Date);
|
||||
// }
|
||||
//}
|
||||
|
||||
private void DeleteKlientKrankmeldung_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
||||
@@ -693,6 +714,9 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
private static bool? ShowDeletionMessageBox(AbsenceTimeDC absenceTime)
|
||||
{
|
||||
// erstmal nur ganze Abwesenheit
|
||||
return true;
|
||||
|
||||
if(absenceTime.Start != null && absenceTime.End != null && absenceTime.Start.Value.Date == absenceTime.End.Value.Date)
|
||||
{
|
||||
return true;
|
||||
@@ -1033,8 +1057,16 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
var barButtonItem = new BarButtonItem {Content = "Abwesenheit löschen", Tag = e.Source.DataControl.SelectedItem};
|
||||
barButtonItem.ItemClick += DeleteCustomerAbsenceTime_OnClick;
|
||||
|
||||
e.Customizations.Add(barButtonItem);
|
||||
|
||||
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
|
||||
if (selectedTagesansichtVM != null && selectedTagesansichtVM.Vertreter != null)
|
||||
{
|
||||
var barButtonItem2 = new BarButtonItem { Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
|
||||
barButtonItem2.ItemClick += DeleteVertretung_OnClick;
|
||||
e.Customizations.Add(barButtonItem2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void DeleteCustomerAbsenceTime_OnClick(object sender, RoutedEventArgs e)
|
||||
@@ -1049,7 +1081,20 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
LadeTagesansicht(Datepicker.DateTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var barButtonItem = (BarButtonItem)sender;
|
||||
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
|
||||
|
||||
if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
||||
{
|
||||
_Tagesvertretung.DeleteVertretung(selectedTagesansichtVM);
|
||||
|
||||
LadeTagesansicht(Datepicker.DateTime);
|
||||
}
|
||||
}
|
||||
|
||||
private void GridControlSubUnwanted_OnCellValueChanged(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
_Tagesvertretung.UpdateRowData((TagesansichtVM) SubstitutionUnwantedDayViewGridControl.SelectedItem);
|
||||
|
||||
@@ -44,34 +44,35 @@
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in:" Margin="3" FontWeight="Bold"/>
|
||||
<Label x:Name="lblCustomerName" Content="{Binding Path=CustomerName, UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="1" Margin="3,3,3,0" />
|
||||
<Label x:Name="lblCustomerStreet" Content="{Binding Path=CustomerStreet, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="1" Margin="3,0,3,0"/>
|
||||
<Label x:Name="lblCustomerCity" Content="{Binding Path=CustomerCity, UpdateSourceTrigger=PropertyChanged}" Grid.Row="2" Grid.Column="1" Margin="3,0,3,0"/>
|
||||
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in:" Margin="3,2,3,0" FontWeight="Bold"/>
|
||||
<Label x:Name="lblCustomerName" Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="3,0,3,2" Content="Max Mustermann"/>
|
||||
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="2" Content="Schule:" Margin="10,3,3,3" FontWeight="Bold"/>
|
||||
<Label x:Name="lblSchoolName" Grid.Row="0" Grid.Column="3" Margin="3,3,3,0"/>
|
||||
<Label x:Name="lblSchoolStreet" Grid.Row="1" Grid.Column="3" Margin="3,0,3,0"/>
|
||||
<Label x:Name="lblSchoolCity" Grid.Row="2" Grid.Column="3" Margin="3,0,3,0"/>
|
||||
<Label Grid.Row="0" Grid.Column="1" Content="Schule:" Margin="15,2,2,0" FontWeight="Bold"/>
|
||||
<Label x:Name="lblSchoolName" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="2" Content="Betreuungszeiten:" Margin="15,2,2,0" FontWeight="Bold"/>
|
||||
<Label x:Name="lblBetreuungszeiten" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="4" Content="Klient Wunschkriterien" Margin="10,3,3,3" FontWeight="Bold"/>
|
||||
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="3" Margin="10,3,3,3" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
|
||||
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="3" Content="Klient Wunschkriterien" Margin="15,2,3,0" FontWeight="Bold"/>
|
||||
<dxg:LookUpEdit Grid.Row="1" Grid.Column="3" Grid.RowSpan="2" Margin="15,0,3,2" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
|
||||
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
|
||||
<dxg:LookUpEdit.StyleSettings>
|
||||
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
|
||||
</dxg:LookUpEdit.StyleSettings>
|
||||
</dxg:LookUpEdit>
|
||||
|
||||
<Label Grid.Row="0" Grid.Column="5" Content="Klient Ausschlusskriterien" Margin="3" FontWeight="Bold"/>
|
||||
<dxg:LookUpEdit Grid.Row="1" Grid.Column="5" Grid.RowSpan="3" Margin="3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
|
||||
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
|
||||
<Label Grid.Row="0" Grid.Column="4" Content="Klient Ausschlusskriterien" Margin="15,2,2,0" FontWeight="Bold"/>
|
||||
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="2" Margin="15,0,2,3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
|
||||
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
|
||||
<dxg:LookUpEdit.StyleSettings>
|
||||
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
|
||||
</dxg:LookUpEdit.StyleSettings>
|
||||
@@ -131,7 +132,7 @@
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Nachname" ReadOnly="True" Header="Nachname" SortOrder="Ascending" />
|
||||
<dxg:GridColumn FieldName="Vorname" ReadOnly="True" Header="Vorname"/>
|
||||
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Arbeitszeit"/>
|
||||
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Betreuungszeiten"/>
|
||||
<dxg:GridColumn FieldName="Postleitzahl" ReadOnly="True" Header="Postleitzahl" />
|
||||
<dxg:GridColumn FieldName="Strasse" ReadOnly="True" Header="Strasse" />
|
||||
<dxg:GridColumn FieldName="Stadt" ReadOnly="True" Header="Stadt" />
|
||||
|
||||
@@ -182,33 +182,45 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
|
||||
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
DragMove();
|
||||
try
|
||||
{
|
||||
DragMove();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
//ignore
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void SetCustomerInfos()
|
||||
{
|
||||
lblCustomerName.Content = string.Empty;
|
||||
lblCustomerStreet.Content = string.Empty;
|
||||
lblCustomerCity.Content = string.Empty;
|
||||
|
||||
lblSchoolName.Content = string.Empty;
|
||||
lblSchoolStreet.Content = string.Empty;
|
||||
lblSchoolCity.Content = string.Empty;
|
||||
|
||||
lblBetreuungszeiten.Content = string.Empty;
|
||||
|
||||
if (_Tagesansicht.Customer != null)
|
||||
{
|
||||
lblCustomerName.Content = _Tagesansicht.Customer.Name;
|
||||
lblCustomerStreet.Content = _Tagesansicht.Customer.Street;
|
||||
lblCustomerCity.Content = $"{_Tagesansicht.Customer.PostalCode} {_Tagesansicht.Customer.Town}";
|
||||
{
|
||||
lblCustomerName.Content = String.Format("{0}\n{1}\n{2} {3}", _Tagesansicht.Customer.Name,
|
||||
_Tagesansicht.Customer.Street, _Tagesansicht.Customer.PostalCode, _Tagesansicht.Customer.Town);
|
||||
}
|
||||
|
||||
if (_Tagesansicht.Schule != null)
|
||||
if (_Tagesansicht.Schools != null && _Tagesansicht.Schools.Count > 0)
|
||||
{
|
||||
lblSchoolName.Content = _Tagesansicht.Schule.Name;
|
||||
lblSchoolStreet.Content = _Tagesansicht.Schule.Street;
|
||||
lblSchoolCity.Content = $"{_Tagesansicht.Schule.PostalCode} {_Tagesansicht.Schule.Town}";
|
||||
var c2o = _Tagesansicht.Schools[0];
|
||||
var schule = c2o.Organisation;
|
||||
|
||||
lblSchoolName.Content = String.Format("{0}\n{1}\n{2} {3}", schule.Name, schule.Street, schule.PostalCode, schule.Town);
|
||||
// _Tagesansicht.Schule.Street, _Tagesansicht.Schule.PostalCode, _Tagesansicht.Schule.Town);
|
||||
}
|
||||
}
|
||||
|
||||
if (_Tagesansicht.AssistanceTimeEntry != null)
|
||||
{
|
||||
lblBetreuungszeiten.Content = _Tagesansicht.AssistanceTimeEntry.ToString();
|
||||
}
|
||||
|
||||
//"Montag 09:00 - 12:00\nDienstag 10:00 - 11:00\nMittwoch 08:00 - 12:00\nDonnerstag 08:00 - 12:00\nFreitag 08:00 - 12:00";
|
||||
}
|
||||
|
||||
private void SetzeLetzteVertreter()
|
||||
{
|
||||
@@ -269,7 +281,12 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
{
|
||||
if (eintrag != null && (int)_Tagesansicht.Datum.DayOfWeek == (int)eintrag.Tag + 1)
|
||||
{
|
||||
arbeitszeitEintrag = eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
|
||||
if (arbeitszeitEintrag.Length > 0)
|
||||
{
|
||||
arbeitszeitEintrag += ", ";
|
||||
}
|
||||
|
||||
arbeitszeitEintrag += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1412,6 +1412,11 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SettingsDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.UserGroupDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserGroupDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.RatingDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GoalRatingDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingTypeDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ServiceAccountingDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceAccountingDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerPersonRelationDC>))]
|
||||
@@ -1517,6 +1522,9 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ReportTemplateDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTemplateDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTypes))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldkassenDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldkassenDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionDC>))]
|
||||
@@ -4732,6 +4740,42 @@ namespace BeWo.ServiceProxy
|
||||
"FaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.SupportConceptCostBearerRelDC> GetSupportConceptCostBearerRelDCsByOids(System.Collections.Generic.List<long> supportConcept2CostbearerOids);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllDienste", ReplyAction="http://tempuri.org/IOperationsService/GetAllDiensteResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllDiensteBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> GetAllDienste();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewDienst", ReplyAction="http://tempuri.org/IOperationsService/InsertNewDienstResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienst);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateDienst", ReplyAction="http://tempuri.org/IOperationsService/DeactivateDienstResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateDienst", ReplyAction="http://tempuri.org/IOperationsService/UpdateDienstResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienste);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllRatingTypes", ReplyAction="http://tempuri.org/IOperationsService/GetAllRatingTypesResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllRatingTypesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> GetAllRatingTypes();
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewRatingType", ReplyAction="http://tempuri.org/IOperationsService/InsertNewRatingTypeResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void InsertNewRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateRatingType", ReplyAction="http://tempuri.org/IOperationsService/DeactivateRatingTypeResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void DeactivateRatingType(System.Collections.Generic.Dictionary<long, long> pOid2Version);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateRatingType", ReplyAction="http://tempuri.org/IOperationsService/UpdateRatingTypeResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void UpdateRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/FetchServiceRecordRatings", ReplyAction="http://tempuri.org/IOperationsService/FetchServiceRecordRatingsResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/FetchServiceRecordRatingsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC> FetchServiceRecordRatings(System.Nullable<long> supportConceptOid, System.Nullable<long> costBearer2SupportConceptOid, System.Nullable<long> supportConceptApprovalPeriodOid, System.Nullable<long> serviceCategoryOid, System.Nullable<System.DateTime> start, System.Nullable<System.DateTime> end);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCResponse" +
|
||||
"")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCBeWoFaul" +
|
||||
@@ -5707,6 +5751,51 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetSupportConceptCostBearerRelDCsByOids(supportConcept2CostbearerOids);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> GetAllDienste()
|
||||
{
|
||||
return base.Channel.GetAllDienste();
|
||||
}
|
||||
|
||||
public void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienst)
|
||||
{
|
||||
base.Channel.InsertNewDienst(dienst);
|
||||
}
|
||||
|
||||
public void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version)
|
||||
{
|
||||
base.Channel.DeactivateDienst(pOid2Version);
|
||||
}
|
||||
|
||||
public void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienste)
|
||||
{
|
||||
base.Channel.UpdateDienst(dienste);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> GetAllRatingTypes()
|
||||
{
|
||||
return base.Channel.GetAllRatingTypes();
|
||||
}
|
||||
|
||||
public void InsertNewRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes)
|
||||
{
|
||||
base.Channel.InsertNewRatingType(ratingTypes);
|
||||
}
|
||||
|
||||
public void DeactivateRatingType(System.Collections.Generic.Dictionary<long, long> pOid2Version)
|
||||
{
|
||||
base.Channel.DeactivateRatingType(pOid2Version);
|
||||
}
|
||||
|
||||
public void UpdateRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes)
|
||||
{
|
||||
base.Channel.UpdateRatingType(ratingTypes);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC> FetchServiceRecordRatings(System.Nullable<long> supportConceptOid, System.Nullable<long> costBearer2SupportConceptOid, System.Nullable<long> supportConceptApprovalPeriodOid, System.Nullable<long> serviceCategoryOid, System.Nullable<System.DateTime> start, System.Nullable<System.DateTime> end)
|
||||
{
|
||||
return base.Channel.FetchServiceRecordRatings(supportConceptOid, costBearer2SupportConceptOid, supportConceptApprovalPeriodOid, serviceCategoryOid, start, end);
|
||||
}
|
||||
|
||||
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
|
||||
{
|
||||
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -53,7 +53,11 @@ namespace BeWo.View
|
||||
{
|
||||
try
|
||||
{
|
||||
DragMove();
|
||||
var p = e.GetPosition(this);
|
||||
if (p.Y <= 40)
|
||||
{
|
||||
DragMove();
|
||||
}
|
||||
}
|
||||
catch (Exception){}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -103,8 +103,8 @@ namespace BeWo.View.Detail
|
||||
|
||||
private void colorEditor_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
((ListBox) sender).ItemsSource = ViewModel.AllBrushes;
|
||||
((ListBox) sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox) sender);
|
||||
((ListBox)sender).ItemsSource = ViewModel.AllBrushes;
|
||||
((ListBox)sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox) sender);
|
||||
}
|
||||
|
||||
private void listbox_colorpicker_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
@@ -128,7 +128,6 @@ namespace BeWo.View.Detail
|
||||
vm.Brush = selection as SolidColorBrush;
|
||||
}
|
||||
}
|
||||
|
||||
popup_color.IsOpen = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.InvoiceOverview" 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: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">
|
||||
|
||||
<Grid>
|
||||
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Alle Rechnungen" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Rechnungsübersicht" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
|
||||
<Grid Grid.IsSharedSizeScope="True">
|
||||
<Grid.ColumnDefinitions>
|
||||
|
||||
@@ -271,6 +271,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
lHeaderCaptions.Add("Art der Rechnung");
|
||||
lHeaderCaptions.Add("Klient/in");
|
||||
lHeaderCaptions.Add("Zeitraum");
|
||||
lHeaderCaptions.Add("Nummer");
|
||||
lHeaderCaptions.Add("Datum");
|
||||
lHeaderCaptions.Add("Empfänger");
|
||||
@@ -282,7 +283,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
lContent.AddRange(list.Select(vm => new List<string>
|
||||
{
|
||||
vm.TypeString, vm.CustomerName, vm.InvoiceNumber, vm.InvoiceDate.Value.ToShortDateString(), vm.RecipientString, string.Format("{0:0.00}", vm.TotalAmount), vm.Notice, vm.IsPaid ? "Ja" : ""
|
||||
vm.TypeString, vm.CustomerName, vm.AccountingPeriodString, vm.InvoiceNumber, vm.InvoiceDate.Value.ToShortDateString(), vm.RecipientString, string.Format("{0:0.00}", vm.TotalAmount), vm.Notice, vm.IsPaid ? "Ja" : ""
|
||||
}));
|
||||
}
|
||||
var path = BeWoApp.GetAndCreateUserAppDataPath() + "\\Rechnungen.xls";
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -662,6 +662,7 @@
|
||||
<MultiBinding Converter="{converter:CellColorConverter}">
|
||||
<Binding />
|
||||
<Binding Path="Column.Header" />
|
||||
<Binding Path="RowData.Row" />
|
||||
</MultiBinding>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
@@ -669,7 +670,7 @@
|
||||
</dxg:GridControl.Resources>
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="Customer.LastNameFirstName" Header="Klient" AllowEditing="False" />
|
||||
<dxg:GridColumn FieldName="t0" Header="1." Width="27" CellStyle="{StaticResource CustomCellStyle}" EditSettings="{dxe:CheckSettings}" />
|
||||
<dxg:GridColumn FieldName="t0" Header="1." Width="27" CellStyle="{StaticResource CustomCellStyle}" EditSettings="{dxe:CheckSettings}" />
|
||||
<dxg:GridColumn FieldName="t1" Header="2." Width="27" CellStyle="{StaticResource CustomCellStyle}" EditSettings="{dxe:CheckSettings}" />
|
||||
<dxg:GridColumn FieldName="t2" Header="3." Width="27" CellStyle="{StaticResource CustomCellStyle}" EditSettings="{dxe:CheckSettings}" />
|
||||
<dxg:GridColumn FieldName="t3" Header="4." Width="27" CellStyle="{StaticResource CustomCellStyle}" EditSettings="{dxe:CheckSettings}" />
|
||||
|
||||
@@ -96,27 +96,20 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
}
|
||||
|
||||
private void PART_Editor_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RowData data = DatagridRegions.View.FocusedRowData;
|
||||
//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 (data != null && data.RowHandle != null)
|
||||
// {
|
||||
// var vm = DatagridRegions.GetRow(data.RowHandle.Value) as BudgetVM;
|
||||
|
||||
if (vm != null)
|
||||
{
|
||||
ViewModel.EditVM = vm;
|
||||
//popup_costrateperiods.IsOpen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void button_edit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//this.ViewModel.EditVM.Values = this.ViewModel.PossibleValues.Where(i => i.IsEditSelected).ToList();
|
||||
|
||||
//popup_costrateperiods.IsOpen = false;
|
||||
}
|
||||
// if (vm != null)
|
||||
// {
|
||||
// ViewModel.EditVM = vm;
|
||||
// //popup_costrateperiods.IsOpen = true;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -518,7 +518,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
if (DoOwnChatSync && BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
//BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
160
BeWo/View/Detail/DienstView.xaml
Normal file
160
BeWo/View/Detail/DienstView.xaml
Normal file
@@ -0,0 +1,160 @@
|
||||
<localView:BeWoView
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
x:Class="BeWo.View.Detail.DienstView"
|
||||
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:validation="clr-namespace:BeWo.Validation"
|
||||
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Focusable="True">
|
||||
<GroupBox Name="root" Header="Aktuell definierte Dienste" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
<Grid.Resources>
|
||||
<DataTemplate x:Key="DropDownItemTemplate">
|
||||
<Border Height="20" MinWidth="20" Background="{Binding}" BorderThickness="1" CornerRadius="2" HorizontalAlignment="Stretch" BorderBrush="Black" />
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="SelectedItemTemplate">
|
||||
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding}" BorderBrush="Black" BorderThickness="1" />
|
||||
</DataTemplate>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<!--Erste Zeile-->
|
||||
<Grid Grid.Column="0" Grid.Row="0">
|
||||
<Grid.Resources>
|
||||
<DataTemplate x:Key="DropDownItemTemplate">
|
||||
<Border Height="20" MinWidth="20" Background="{Binding}" BorderThickness="1" CornerRadius="2" HorizontalAlignment="Stretch" BorderBrush="Black" />
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="SelectedItemTemplate">
|
||||
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding}" BorderBrush="Black" BorderThickness="1" />
|
||||
</DataTemplate>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Content="Dienstname" Margin="3,3,0,3"/>
|
||||
<dxe:TextEdit Grid.Column="1" x:Name="_TxtDienstname" Margin="0,3,3,3" MinWidth="200" Text="{val:ValidationBinding Path=NewVM.DienstName, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<Label Grid.Column="2" Content="Kürzel" Margin="3,3,0,3"/>
|
||||
<dxe:TextEdit Grid.Column="3" x:Name="_TxtDienstKurz" Margin="0,3,3,3" MinWidth="50" Text="{val:ValidationBinding Path=NewVM.Kurz, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<ComboBox x:Name="_FarbeComboBox" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" SelectedItem="{val:ValidationBinding Path=NewVM.Farbe}" Grid.Column="4" Height="23" Margin="3" ItemsSource="{Binding Path=AllBrushes, Mode=OneWay}" Width="50">
|
||||
<ComboBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
|
||||
</ItemsPanelTemplate>
|
||||
</ComboBox.ItemsPanel>
|
||||
<ComboBox.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type ComboBoxItem}">
|
||||
<Setter Property="Margin" Value="2" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
</Style>
|
||||
</ComboBox.ItemContainerStyle>
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
<!--Zweite Zeile-->
|
||||
<Grid Grid.Column="0" Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Content="Start" Margin="3,3,0,3"/>
|
||||
<dxe:TextEdit Grid.Column="1" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MinWidth="50" ShowError="False" MaskShowPlaceHolders="True" x:Name="_TxtStart"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Height="23" Margin="0,3,3,3"
|
||||
EditValue="{validation:ValidationBinding Path=NewVM.Start, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<Label Grid.Column="2" Content="Ende" Margin="3,3,0,3"/>
|
||||
<dxe:TextEdit Grid.Column="3" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MinWidth="50" ShowError="False" MaskShowPlaceHolders="True" x:Name="_TxtEnde"
|
||||
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Height="23" Margin="0,3,3,3"
|
||||
EditValue="{validation:ValidationBinding Path=NewVM.Ende, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<Label Grid.Column="4" Content="Pause (min)" Margin="3,3,0,3"/>
|
||||
<dxe:SpinEdit Name="_SpinPause" AllowNullInput="True" IsFloatValue="False" MinValue="0" Grid.Column="5"
|
||||
Height="23" Width="50" EditValue="{Binding Path=NewVM.Pause, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Button Grid.Column="7" Content="Erstellen" Click="Button_Click"/>
|
||||
</Grid>
|
||||
<!--Dritte Zeile-->
|
||||
<dxg:GridControl x:Name="_GridControl" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2" 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="DienstName" Header="Dienstname" Width="200" />
|
||||
<dxg:GridColumn FieldName="Kurz" Header="Kürzel" Width="50" />
|
||||
<dxg:GridColumn Header="Start" FixedWidth="True" Width="100" FieldName="Start" >
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True"/>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn Header="Ende" FixedWidth="True" Width="100" FieldName="Ende" >
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True"/>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Pause" Header="Pause" Width="100">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings HorizontalContentAlignment="Left"/>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="_ColumnFarbe" FieldName="Farbe" Header="Farbe" Width="100">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding Value, diagnostics:PresentationTraceSources.TraceLevel=High }" BorderBrush="Black" BorderThickness="1" />
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
<dxg:GridColumn.EditTemplate>
|
||||
<ControlTemplate>
|
||||
<Button x:Name="Part_Editor" BorderThickness="0" Style="{x:Null}" Background="{Binding EditValue}" Foreground="{Binding EditValue}" Height="21" HorizontalAlignment="Stretch" Click="Part_Editor_Click"></Button>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.EditTemplate>
|
||||
</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>
|
||||
<Popup x:Name="_PopupColorPicker" StaysOpen="false" Placement="MousePoint">
|
||||
<ListBox x:Name="_Listbox_Colorpicker" BorderThickness="0" Loaded="ColorEditor_Loaded" SelectionChanged="Listbox_Colorpicker_SelectionChanged">
|
||||
<ListBox.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
|
||||
</ItemsPanelTemplate>
|
||||
</ListBox.ItemsPanel>
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type ListBoxItem}">
|
||||
<Setter Property="Margin" Value="2" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
</ListBox>
|
||||
</Popup>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</localView:BeWoView>
|
||||
131
BeWo/View/Detail/DienstView.xaml.cs
Normal file
131
BeWo/View/Detail/DienstView.xaml.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
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;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class DienstView : BeWoView
|
||||
{
|
||||
private DienstListVM _ViewModel;
|
||||
|
||||
public DienstView(DienstListVM listVM)
|
||||
{
|
||||
InitializeComponent();
|
||||
_FarbeComboBox.ItemTemplateSelector = new ComboBoxTemplateSelector(_FarbeComboBox);
|
||||
ViewModel = listVM;
|
||||
}
|
||||
|
||||
public override bool IsDirty
|
||||
{
|
||||
get { return ViewModel != null && ViewModel.IsDirty; }
|
||||
}
|
||||
|
||||
public override string Title
|
||||
{
|
||||
get { return "Dienste"; }
|
||||
}
|
||||
|
||||
private DienstListVM 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.InsertNewDienst(ViewModel.CommitAdded()));
|
||||
}
|
||||
|
||||
if (ViewModel.RemovedCount > 0)
|
||||
{
|
||||
lToDos.Add(s => s.DeactivateDienst(ViewModel.GetRemoved().ToDictionary(dc => dc.DienstOid.Value, dc => dc.DienstVersion.Value)));
|
||||
}
|
||||
|
||||
if (ViewModel.ChangedCount > 0)
|
||||
{
|
||||
lToDos.Add(s => s.UpdateDienst(ViewModel.CommitChanged()));
|
||||
}
|
||||
|
||||
ServiceFacade.DoMultipleOperationsServicesAsync(lToDos, ReloadViewModel);
|
||||
}
|
||||
|
||||
private void ReloadViewModel()
|
||||
{
|
||||
VMFactory.CreateDienstListVMAsync(r => this.Dispatch(delegate { ViewModel = r; }));
|
||||
}
|
||||
|
||||
private void Button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ValidationTrigger.Validate(this))
|
||||
{
|
||||
ViewModel.AddNewVMToList();
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.VMList.Remove(_GridControl.GetCurrentValue<DienstVM>());
|
||||
BeWoWpfUtils.RefreshDXGrid(_GridControl);
|
||||
}
|
||||
|
||||
private void Part_Editor_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
_PopupColorPicker.IsOpen = true;
|
||||
}
|
||||
|
||||
private void ColorEditor_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
((ListBox)sender).ItemsSource = ViewModel.AllBrushes;
|
||||
((ListBox)sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox)sender);
|
||||
}
|
||||
|
||||
private void Listbox_Colorpicker_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
|
||||
{
|
||||
if (e.AddedItems.Count == 1)
|
||||
{
|
||||
object selection = e.AddedItems[0];
|
||||
|
||||
DataViewBase view = _GridControl.View;
|
||||
|
||||
RowData data = view.FocusedRowData;
|
||||
|
||||
if (data != null && data.RowHandle != null)
|
||||
{
|
||||
int rowHandle = data.RowHandle.Value;
|
||||
|
||||
var vm = _GridControl.GetRow(rowHandle) as DienstVM;
|
||||
|
||||
if (vm != null)
|
||||
{
|
||||
vm.Farbe = selection as SolidColorBrush;
|
||||
}
|
||||
}
|
||||
_PopupColorPicker.IsOpen = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -346,7 +346,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
if (_DoOwnChatSync && BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
//BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
97
BeWo/View/Detail/GoalImportControl.xaml
Normal file
97
BeWo/View/Detail/GoalImportControl.xaml
Normal file
@@ -0,0 +1,97 @@
|
||||
<UserControl
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Focusable="True"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:clientPartials="clr-namespace:BS.Shared.DataContracts.ClientPartials;assembly=BS.Shared"
|
||||
x:Class="BeWo.View.Detail.GoalImportControl"
|
||||
d:DesignHeight="500" d:DesignWidth="550"
|
||||
mc:Ignorable="d">
|
||||
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<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>
|
||||
<Label x:Name="SearchFieldLabel" Grid.Column="0" Content="Suche" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
<TextBox x:Name="cbtv_search" Grid.Column="1" Margin="3" Height="23" Template="{StaticResource SearchTextBoxTemplate}" HorizontalAlignment="Stretch" />
|
||||
</Grid>
|
||||
<TreeView x:Name="TreeView" Grid.Row="1" Grid.ColumnSpan="2" Margin="3" Padding="0 5 10 5" ItemTemplate="{DynamicResource TreeItemTemplate}" ItemContainerStyle="{DynamicResource TreeViewStyle}">
|
||||
<TreeView.Resources>
|
||||
<Style x:Key="TreeViewStyle" TargetType="TreeViewItem">
|
||||
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
|
||||
</Style>
|
||||
<HierarchicalDataTemplate x:Key="TreeItemTemplate" DataType="{x:Type clientPartials:SupportConceptGoalDC}" ItemsSource="{Binding Path=Children}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox IsChecked="{Binding Path=IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Margin="0, 4, 2, 0"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Background="Transparent" Height="21" Padding="0, 3, 0, 0" VerticalAlignment="Center" HorizontalAlignment="Left" BorderThickness="0"
|
||||
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.DisplayName, Mode=OneWay}" FontWeight="Bold" 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}" />
|
||||
</StackPanel>
|
||||
</TextBox.ToolTip>
|
||||
</TextBox>
|
||||
</Grid>
|
||||
</HierarchicalDataTemplate>
|
||||
</TreeView.Resources>
|
||||
<TreeView.ItemsSource>
|
||||
<MultiBinding Converter="{StaticResource FilterDCConverter}">
|
||||
<MultiBinding.Bindings>
|
||||
<Binding Path="GoalTree" />
|
||||
<Binding ElementName="cbtv_search" Path="Text" />
|
||||
</MultiBinding.Bindings>
|
||||
</MultiBinding>
|
||||
</TreeView.ItemsSource>
|
||||
</TreeView>
|
||||
|
||||
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" >
|
||||
<Button Margin="3"
|
||||
Name="button_checkAllGoals" Click="button_checkAllGoals_Click"
|
||||
HorizontalAlignment="Left">Alle auswählen</Button>
|
||||
<Button Margin="3"
|
||||
Name="button_uncheckAllGoals" Click="button_uncheckAllGoals_Click"
|
||||
HorizontalAlignment="Left">Alle abwählen</Button>
|
||||
<Button Margin="3"
|
||||
Name="button_aufklappenAllGoals" Click="button_aufklappenAllGoals_Click"
|
||||
HorizontalAlignment="Left">Alle aufklappen</Button>
|
||||
<Button Margin="3"
|
||||
Name="button_zuklappenAllGoals" Click="button_zuklappenAllGoals_Click"
|
||||
HorizontalAlignment="Left">Alle zuklappen</Button>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||
<Button x:Name="ButtonImport" Content=" Hinzufügen " Margin="3" HorizontalAlignment="Right" Click="ButtonImport_Click" />
|
||||
<Button x:Name="ButtonCancel" Grid.Row="1" Grid.Column="1" Content=" Abbrechen " Margin="3,3,6,3" HorizontalAlignment="Right" Click="ButtonCancel_Click" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
131
BeWo/View/Detail/GoalImportControl.xaml.cs
Normal file
131
BeWo/View/Detail/GoalImportControl.xaml.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BS.Shared.Extensions;
|
||||
using DevExpress.Utils;
|
||||
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using BeWo.ViewModel;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.ClientPartials;
|
||||
using DevExpress.Data;
|
||||
using DevExpress.Mvvm.Native;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using DevExpress.Xpf.Scheduler.UI;
|
||||
using DevExpress.XtraExport.Xls;
|
||||
using static BeWo.View.Detail.Report.FlexibleReportView;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class GoalImportControl
|
||||
{
|
||||
|
||||
public event Action ButtonImportClicked;
|
||||
public event Action ButtonCancelClicked;
|
||||
//private SupportConceptGoalDC _TreeViewGoalItem;
|
||||
|
||||
|
||||
public GoalImportControl(ObservableCollection<SupportConceptGoalTreeItem> goalTree)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
DataContext = this;
|
||||
|
||||
GoalTree = goalTree;
|
||||
}
|
||||
|
||||
public ObservableCollection<SupportConceptGoalTreeItem> GoalTree { get; set; }
|
||||
|
||||
|
||||
public IList<SupportConceptGoalTreeItem> GetSelectedGoals()
|
||||
{
|
||||
var list = new ObservableCollection<SupportConceptGoalTreeItem>();
|
||||
|
||||
foreach (var item in GoalTree)
|
||||
{
|
||||
IterateThroughSelectedGoalsAndMassnahmen(item, list);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private void IterateThroughSelectedGoalsAndMassnahmen(SupportConceptGoalTreeItem item, ObservableCollection<SupportConceptGoalTreeItem> list)
|
||||
{
|
||||
if (item.IsChecked && item.Items.Count == 0)
|
||||
{
|
||||
list.Add(item);
|
||||
}
|
||||
|
||||
foreach (var child in item.Items)
|
||||
{
|
||||
IterateThroughSelectedGoalsAndMassnahmen(child, list);
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonImport_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ButtonImportClicked?.Invoke();
|
||||
}
|
||||
|
||||
private void ButtonCancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ButtonCancelClicked?.Invoke();
|
||||
}
|
||||
|
||||
private void button_checkAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
CheckAllGoalTreeItems(true);
|
||||
}
|
||||
|
||||
private void button_uncheckAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
CheckAllGoalTreeItems(false);
|
||||
}
|
||||
|
||||
private void button_aufklappenAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SwitchAllGoalTreeItems(true);
|
||||
}
|
||||
|
||||
private void button_zuklappenAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SwitchAllGoalTreeItems(false);
|
||||
}
|
||||
|
||||
private void SwitchAllGoalTreeItems(bool check)
|
||||
{
|
||||
Style stylee = new Style
|
||||
{
|
||||
TargetType = typeof(TreeViewItem)
|
||||
};
|
||||
|
||||
stylee.Setters.Add(new Setter(TreeViewItem.IsExpandedProperty, check));
|
||||
TreeView.ItemContainerStyle = stylee;
|
||||
}
|
||||
|
||||
private void CheckAllGoalTreeItems(bool check)
|
||||
{
|
||||
var allItems = TreeView.ItemsSource as ObservableCollection<SupportConceptGoalTreeItem>;
|
||||
|
||||
var test = TreeView.ItemsSource;
|
||||
|
||||
foreach (var item in TreeView.ItemsSource)
|
||||
{
|
||||
var goal = item as SupportConceptGoalTreeItem;
|
||||
if (goal != null)
|
||||
{
|
||||
goal.IsChecked = check;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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}" />
|
||||
|
||||
@@ -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}" />
|
||||
|
||||
@@ -81,14 +81,22 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox Margin="0,0,0,0" Cursor="Arrow" Background="Transparent" Height="21" Padding="1,3,1,3" VerticalAlignment="Center"
|
||||
<TextBox Margin="0,0,0,0" Cursor="Arrow" Background="Transparent" Height="21" Padding="0,3,0,0" VerticalAlignment="Center"
|
||||
LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0"
|
||||
IsReadOnly="True" Text="{Binding Path=GoalEntryVM.DisplayName, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
|
||||
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"/>
|
||||
<CheckBox Grid.Column="1" Margin="5, 5, 0, 0" Visibility="{Binding Path=GoalEntryVM.GotNotice}" IsChecked="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource TriangleCheckbox}"/>
|
||||
<TextBox Grid.Row="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"/>
|
||||
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}" 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}" />
|
||||
</StackPanel>
|
||||
</TextBox.ToolTip>
|
||||
</TextBox>
|
||||
|
||||
</Grid>
|
||||
</HierarchicalDataTemplate>
|
||||
</TreeView.Resources>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
665
BeWo/View/Detail/RatingEditView.xaml
Normal file
665
BeWo/View/Detail/RatingEditView.xaml
Normal 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>
|
||||
139
BeWo/View/Detail/RatingEditView.xaml.cs
Normal file
139
BeWo/View/Detail/RatingEditView.xaml.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
65
BeWo/View/Detail/RatingTypeView.xaml
Normal file
65
BeWo/View/Detail/RatingTypeView.xaml
Normal 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>
|
||||
117
BeWo/View/Detail/RatingTypeView.xaml.cs
Normal file
117
BeWo/View/Detail/RatingTypeView.xaml.cs
Normal 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;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -169,8 +169,10 @@ namespace BeWo.View.Detail.Report
|
||||
foreach (var reason in _AbsenceReasonDCs)
|
||||
{
|
||||
var label = _LabelStorage.CreateNewLabel(reason.AbsenceReasonOid.ToString(), reason.Description);
|
||||
|
||||
label.Color = (Color)ColorConverter.ConvertFromString(reason.Color);
|
||||
if (!String.IsNullOrEmpty(reason.Color))
|
||||
{
|
||||
label.Color = (Color) ColorConverter.ConvertFromString(reason.Color);
|
||||
}
|
||||
|
||||
_LabelStorage.Add(label);
|
||||
}
|
||||
|
||||
43
BeWo/View/Detail/Report/Dienstplaner.xaml
Normal file
43
BeWo/View/Detail/Report/Dienstplaner.xaml
Normal file
@@ -0,0 +1,43 @@
|
||||
<localView:BeWoView
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
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"
|
||||
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:dxschi="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
|
||||
xmlns:XtraScheduler="clr-namespace:DevExpress.XtraScheduler;assembly=DevExpress.XtraScheduler.v17.1.Core"
|
||||
x:Class="BeWo.View.Detail.Report.Dienstplaner"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Focusable="True">
|
||||
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Column="0" Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0" Content="Wohnheim:" Margin="3"/>
|
||||
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" Margin="3"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</localView:BeWoView>
|
||||
49
BeWo/View/Detail/Report/Dienstplaner.xaml.cs
Normal file
49
BeWo/View/Detail/Report/Dienstplaner.xaml.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Media;
|
||||
|
||||
using BeWo.Controls;
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.ViewModel;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
|
||||
using DevExpress.Services;
|
||||
using DevExpress.XtraScheduler;
|
||||
using DevExpress.Xpf.Scheduler;
|
||||
using DevExpress.Xpf.Scheduler.Native;
|
||||
|
||||
using SchedulerStorage = DevExpress.Xpf.Scheduler.SchedulerStorage;
|
||||
using ResourceStorage = DevExpress.Xpf.Scheduler.ResourceStorage;
|
||||
using AppointmentStorage = DevExpress.Xpf.Scheduler.AppointmentStorage;
|
||||
using IAppointmentLabelStorage = DevExpress.Xpf.Scheduler.AppointmentLabelCollection;
|
||||
using BeWo.Scheduler.View;
|
||||
using AppointmentLabel = DevExpress.Xpf.Scheduler.AppointmentLabel;
|
||||
|
||||
namespace BeWo.View.Detail.Report
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for Dienstplaner.xaml
|
||||
/// </summary>
|
||||
public partial class Dienstplaner : BeWoView
|
||||
{
|
||||
public Dienstplaner()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@
|
||||
<Label Content="Enddatum:" Grid.Column="2" VerticalAlignment="Center" />
|
||||
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Grid.Column="3" x:Name="datePickerEndDate" HorizontalAlignment="Left" Width="120" Margin="3,0,0,0" />
|
||||
<Button Content="Aktualisieren" Grid.Column="5" Margin="5,0,0,0" Click="buttonRefresh_Click" />
|
||||
<Button Content="Optionen anzeigen" Grid.Column="9" Margin="5,0,0,0" x:Name="ButtonShowOptions" Click="ButtonShowOptions_Click" />
|
||||
<Button Content="Feldauswahl anzeigen" Grid.Column="9" Margin="5,0,0,0" x:Name="ButtonShowOptions" Click="ButtonShowOptions_Click" />
|
||||
<Button Content="Ansicht speichern" Grid.Column="10" Margin="5,0,0,0" x:Name="ButtonLayoutSave" Click="ButtonLayoutSave_Click" />
|
||||
<Button Content="Ansicht bearbeiten" Grid.Column="11" Margin="5,0,0,0" x:Name="ButtonLayoutEdit" Click="ButtonLayoutEdit_Click" />
|
||||
<Button Content="Ansicht laden" Grid.Column="12" Margin="5,0,0,0" x:Name="ButtonLayoutLoad" Click="ButtonLayoutLoad_Click" />
|
||||
@@ -77,10 +77,10 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox Content="Reduzierte Ansicht" Margin="5,5,0,0" Grid.Column="4" x:Name="checkReduzierteAnsicht"/>
|
||||
<!--<CheckBox Content="Reduzierte Ansicht" Margin="5,5,0,0" Grid.Column="4" x:Name="checkReduzierteAnsicht"/>-->
|
||||
<CheckBox Content="Differenz Balken einblenden" Grid.Column="7" Margin="5,5,0,0" x:Name="checkBoxDataPer" Checked="CheckDataBarPerChanged" Unchecked="CheckDataBarPerChanged"/>
|
||||
<CheckBox Content="Prozentuale Abweichung Balken einblenden" Grid.Column="8" Margin="5,5,0,0" x:Name="checkBoxData" Checked="CheckDataBarChanged" Unchecked="CheckDataBarChanged"/>
|
||||
<CheckBox Content="Graph einblenden" Grid.Column="9" Margin="5,5,0,0" x:Name="checkBoxChart" Checked="CheckChartChanged" Unchecked="CheckChartChanged"/>
|
||||
<CheckBox Content="Diagramm einblenden" Grid.Column="9" Margin="5,5,0,0" x:Name="checkBoxChart" Checked="CheckChartChanged" Unchecked="CheckChartChanged"/>
|
||||
</Grid>
|
||||
<!-- ############################################### Untere Zeile ###############################################-->
|
||||
<Grid Grid.Row="2">
|
||||
@@ -101,14 +101,14 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox Content="Hilfepläne" Grid.Column="0" Margin="5,5,0,0" x:Name="checkHilepläne"/>
|
||||
<CheckBox Content="Klienten" Grid.Column="1" Margin="5,5,0,0" x:Name="checkKlienten"/>
|
||||
<CheckBox Content="Mitarbeiter" Grid.Column="2" Margin="5,5,0,0" x:Name="checkMitarbeiter"/>
|
||||
<CheckBox Content="Records" Grid.Column="3" Margin="5,5,0,0" x:Name="checkRecords"/>
|
||||
<CheckBox Content="Betrag" Grid.Column="4" Margin="5,5,0,0" x:Name="checkBetrag"/>
|
||||
<CheckBox Content="Kilometer" Grid.Column="5" Margin="5,5,0,0" x:Name="checkKilometer"/>
|
||||
<CheckBox Content="Ist" Grid.Column="6" Margin="5,5,0,0" x:Name="checkIst"/>
|
||||
<CheckBox Content="Soll" Grid.Column="7" Margin="5,5,0,0" x:Name="checkSoll"/>
|
||||
<!--<CheckBox Content="Hilfepläne" Grid.Column="0" Margin="5,5,0,0" x:Name="checkHilepläne"/>-->
|
||||
<CheckBox Content="Klienten ohne Daten anzeigen" Grid.Column="1" Margin="5,5,0,0" x:Name="checkKlienten"/>
|
||||
<CheckBox Content="Mitarbeiter ohne Daten anzeigen" Grid.Column="2" Margin="5,5,0,0" x:Name="checkMitarbeiter"/>
|
||||
<!--<CheckBox Content="Records" Grid.Column="3" Margin="5,5,0,0" x:Name="checkRecords"/>-->
|
||||
<!--<CheckBox Content="Betrag" Grid.Column="4" Margin="5,5,0,0" x:Name="checkBetrag"/>-->
|
||||
<!--<CheckBox Content="Kilometer" Grid.Column="5" Margin="5,5,0,0" x:Name="checkKilometer"/>-->
|
||||
<!--<CheckBox Content="Ist" Grid.Column="6" Margin="5,5,0,0" x:Name="checkIst"/>-->
|
||||
<!--<CheckBox Content="Soll" Grid.Column="7" Margin="5,5,0,0" x:Name="checkSoll"/>-->
|
||||
</Grid>
|
||||
<!-- ############################################### PivotGridControl ###############################################-->
|
||||
<Grid Grid.Row="3">
|
||||
@@ -123,30 +123,30 @@
|
||||
<dx:DefaultColumnChooserState Size="400,550" />
|
||||
</dxpg:PivotGridControl.ExcelFieldListState>
|
||||
<dxpg:PivotGridControl.Fields>
|
||||
<dxpg:PivotGridField x:Name="FlexibleJahr" FieldName="StartDatum" Area="ColumnArea" Width="100" Caption="Jahr" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="False" GroupInterval="DateYear" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleJahr" FieldName="StartDatum" Area="FilterArea" Width="100" Caption="Jahr" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="True" GroupInterval="DateYear" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleMonat" FieldName="StartDatum" Area="ColumnArea" Width="80" Caption="Monat" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" GroupInterval="DateMonth" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleWeek" FieldName="StartDatum" Area="ColumnArea" Width="80" Caption="Woche" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" GroupInterval="DateWeekOfYear" ValueFormat="KW {0}" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDatum" FieldName="StartDatum" Area="FilterArea" Width="100" Caption="Datum" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="False" GroupInterval="Custom" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleQuarter" FieldName="StartDatum" Area="FilterArea" Width="100" Caption="Quartal" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="False" GroupInterval="DateQuarter" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTag" FieldName="StartDatum" Area="FilterArea" Width="40" Caption="Tag" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="False" GroupInterval="DateDay" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTagYear" FieldName="StartDatum" Area="FilterArea" Width="40" Caption="Tag Jahr" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="False" GroupInterval="DateDayOfYear" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleKlient" FieldName="CustomerString" Area="RowArea" Width="200" Caption="Klient" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" AreaIndex="2" Height="21" SortOrder="Ascending" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleSupportConcept" FieldName="SupportConceptString" Area="FilterArea" Width="200" Caption="Hilfeplan" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleMitarbeiter" FieldName="EmployeeString" Area="RowArea" Width="200" Caption="Mitarbeiter" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" AreaIndex="1" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTeam" FieldName="Team" Area="FilterArea" Width="200" Caption="Team" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleLeistungskategorie" FieldName="Leistungskategorie" Area="FilterArea" Width="200" Caption="Leistungskategorie" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleLeistung" FieldName="Leistung" Area="FilterArea" Width="200" Caption="Leistung" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleOrganisation" FieldName="Organisation" Area="FilterArea" Width="200" Caption="Kostenträger" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlMinIst" FieldName="IstMinuten" Area="FilterArea" Width="60" Caption="Ist Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleWeek" FieldName="StartDatum" Area="FilterArea" Width="80" Caption="Woche" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" GroupInterval="DateWeekOfYear" ValueFormat="KW {0}" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDatum" FieldName="StartDatum" Area="FilterArea" Width="100" Caption="Datum" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="True" GroupInterval="Custom" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleQuarter" FieldName="StartDatum" Area="FilterArea" Width="100" Caption="Quartal" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="True" GroupInterval="DateQuarter" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTag" FieldName="StartDatum" Area="FilterArea" Width="40" Caption="Tag" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="True" GroupInterval="DateDay" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTagYear" FieldName="StartDatum" Area="FilterArea" Width="40" Caption="Tag Jahr" AllowedAreas="ColumnArea,FilterArea" DisplayFolder="Spalten" Visible="True" GroupInterval="DateDayOfYear" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleKlient" FieldName="CustomerString" Area="RowArea" Width="200" Caption="Klient/in" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" AreaIndex="2" Height="21" SortOrder="Ascending" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleSupportConcept" FieldName="SupportConceptString" Area="FilterArea" Width="200" Caption="Hilfeplan" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleMitarbeiter" FieldName="EmployeeString" Area="RowArea" Width="200" Caption="Mitarbeiter/in" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" AreaIndex="1" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleTeam" FieldName="Team" Area="FilterArea" Width="200" Caption="Team" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleLeistungskategorie" FieldName="Leistungskategorie" Area="FilterArea" Width="200" Caption="Leistungskategorie" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleLeistung" FieldName="Leistung" Area="FilterArea" Width="200" Caption="Leistung" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleOrganisation" FieldName="Organisation" Area="FilterArea" Width="200" Caption="Kostenträger" AllowedAreas="RowArea,FilterArea" DisplayFolder="Zeilen" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlMinIst" FieldName="IstMinuten" Area="FilterArea" Width="60" Caption="Ist Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlStdIst" FieldName="IstStunden" Area="DataArea" Width="80" Caption="Ist Std." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlMinSoll" FieldName="SollMinuten" Area="FilterArea" Width="60" Caption="Soll Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlMinSoll" FieldName="SollMinuten" Area="FilterArea" Width="60" Caption="Soll Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleAnzahlStdSoll" FieldName="SollStunden" Area="DataArea" Width="80" Caption="Soll Std." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleGefahreneKilometer" FieldName="Kilometer" Area="FilterArea" Width="200" Caption="Gefahrene Kilometer" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleBetrag" FieldName="Betrag" Area="FilterArea" Width="80" Caption="Betrag" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleStundensatz" FieldName="Stundensatz" Area="FilterArea" Width="80" Caption="Stundensatz" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleGefahreneKilometer" FieldName="Kilometer" Area="FilterArea" Width="200" Caption="Gefahrene Kilometer" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleBetrag" FieldName="Betrag" Area="FilterArea" Width="80" Caption="Betrag" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleStundensatz" FieldName="Stundensatz" Area="FilterArea" Width="80" Caption="Stundensatz" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleRundungspotenzial" FieldName="Rundungspotenzial" Area="FilterArea" Width="80" Caption="Rundungspotenzial" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDifferenzIstSollMin" FieldName="DifferenzIstSollMinuten" Area="FilterArea" Width="80" Caption="Differenz Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" HideEmptyVariationItems="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDifferenzIstSollStd" FieldName="DifferenzIstSollStunden" Area="DataArea" Width="80" Caption="Differenz Std." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="False" HideEmptyVariationItems="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDifferenzIstSollMin" FieldName="DifferenzIstSollMinuten" Area="FilterArea" Width="80" Caption="Differenz Min." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" HideEmptyVariationItems="True" />
|
||||
<dxpg:PivotGridField x:Name="FlexibleDifferenzIstSollStd" FieldName="DifferenzIstSollStunden" Area="DataArea" Width="80" Caption="Differenz Std." AllowedAreas="DataArea,FilterArea" DisplayFolder="Data" Visible="True" HideEmptyVariationItems="True" />
|
||||
<dxpg:PivotGridField x:Name="UFlexibleProzentualeAbweichung" UnboundFieldName="ProzAbweichung" Area="DataArea" Width="80" Caption="Prozentual Abweichung" AllowedAreas="DataArea,FilterArea" DisplayFolder="Data"/>
|
||||
</dxpg:PivotGridControl.Fields>
|
||||
</dxpg:PivotGridControl>
|
||||
|
||||
@@ -25,7 +25,6 @@ using DevExpress.Xpf.PivotGrid;
|
||||
using DevExpress.Xpf.Charts;
|
||||
using System.IO;
|
||||
using MessageBox = System.Windows.MessageBox;
|
||||
using BeWo.Data.Access;
|
||||
using DevExpress.XtraReports.UI;
|
||||
using DevExpress.Data.PivotGrid;
|
||||
using System.Windows.Media;
|
||||
@@ -99,14 +98,14 @@ namespace BeWo.View.Detail.Report
|
||||
myPivotGridControl.FieldListIncludeVisibleFields = true;
|
||||
myPivotGridControl.GroupFieldsInFieldList = true;
|
||||
|
||||
checkBetrag.IsChecked = true;
|
||||
checkHilepläne.IsChecked = true;
|
||||
checkIst.IsChecked = true;
|
||||
checkKilometer.IsChecked = true;
|
||||
//checkBetrag.IsChecked = true;
|
||||
//checkHilepläne.IsChecked = true;
|
||||
//checkIst.IsChecked = true;
|
||||
//checkKilometer.IsChecked = true;
|
||||
checkKlienten.IsChecked = true;
|
||||
checkMitarbeiter.IsChecked = true;
|
||||
checkRecords.IsChecked = true;
|
||||
checkSoll.IsChecked = true;
|
||||
//checkRecords.IsChecked = true;
|
||||
//checkSoll.IsChecked = true;
|
||||
|
||||
LayoutGroupPivotChart.IsCollapsible = true;
|
||||
LayoutGroupPivotChart.Visibility = Visibility.Collapsed;
|
||||
@@ -123,16 +122,16 @@ namespace BeWo.View.Detail.Report
|
||||
{
|
||||
StartDatum = datePickerStartDate.DateTime,
|
||||
EndDatum = datePickerEndDate.DateTime,
|
||||
ReduzierteAnsicht = checkReduzierteAnsicht.IsChecked,
|
||||
AlleHilfeplaneAnzeigen = checkHilepläne.IsChecked,
|
||||
ReduzierteAnsicht = false, //checkReduzierteAnsicht.IsChecked,
|
||||
AlleHilfeplaneAnzeigen = true, //checkHilepläne.IsChecked,
|
||||
AlleKlientenAnzeigen = checkKlienten.IsChecked,
|
||||
AlleMitarbeiterAnzeigen = checkMitarbeiter.IsChecked,
|
||||
AlleServiceBerichteAnzeigen = checkRecords.IsChecked,
|
||||
BetragAnzeigen = checkBetrag.IsChecked,
|
||||
GefahreneKilometerAnzeigen = checkKilometer.IsChecked,
|
||||
IstAnzeigen = checkIst.IsChecked,
|
||||
SollAnzeigen = checkSoll.IsChecked
|
||||
};
|
||||
AlleServiceBerichteAnzeigen = true, //checkRecords.IsChecked,
|
||||
BetragAnzeigen = true, //checkBetrag.IsChecked,
|
||||
GefahreneKilometerAnzeigen = true, //checkKilometer.IsChecked,
|
||||
IstAnzeigen = true, //checkIst.IsChecked,
|
||||
SollAnzeigen = true //checkSoll.IsChecked
|
||||
};
|
||||
|
||||
ServiceFacade.DoOperationsServiceAsync(
|
||||
s => s.GetFlexibleReportResult(filter),
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<TreeView x:Name="TreeView" Margin="3" Padding="0 5 10 5"
|
||||
|
||||
<TreeView x:Name="TreeView" Margin="3" Padding="0 5 10 5" Grid.ColumnSpan="2"
|
||||
ItemTemplate="{DynamicResource TreeItemTemplate}"
|
||||
ItemContainerStyle="{DynamicResource TreeViewStyle}"
|
||||
>
|
||||
@@ -40,20 +40,30 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<CheckBox IsChecked="{Binding Path=IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Margin="0, 4, 2, 0"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Background="Transparent" Height="21" Padding="0, 3, 0, 0" VerticalAlignment="Center" HorizontalAlignment="Left" BorderThickness="0"
|
||||
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.DisplayName, Mode=OneWay}" FontWeight="Bold" ToolTip="{Binding Path=GoalEntryDC.Notice}"/>
|
||||
<CheckBox HorizontalAlignment="Left" Grid.Column="2" Margin="0, 3, 0, 0" Visibility="{Binding Path=HasNotice, Converter={StaticResource BoolVisibilityConverter}}" IsChecked="{Binding Path=ShowNotice, UpdateSourceTrigger=PropertyChanged}" ToolTip="Beschreibung anzeigen" Style="{StaticResource TriangleCheckbox}" Width="20"/>
|
||||
<TextBox Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" Visibility="{Binding Path=ShowNotice, Converter={StaticResource BoolVisibilityConverter}}" Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
|
||||
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.Notice}" />
|
||||
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.DisplayName, Mode=OneWay}" FontWeight="Bold" 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}" />
|
||||
</StackPanel>
|
||||
</TextBox.ToolTip>
|
||||
</TextBox>
|
||||
</Grid>
|
||||
</HierarchicalDataTemplate>
|
||||
</TreeView.Resources>
|
||||
</TreeView>
|
||||
</GroupBox>
|
||||
<Button x:Name="ButtonImport" Grid.Row="1" Grid.Column="1" Content=" Importieren " Margin="0, 0, 6, 3" HorizontalAlignment="Right" Click="ButtonImport_Click" />
|
||||
<Button x:Name="ButtonCancel" Grid.Row="1" Grid.Column="1" Content=" Abbrechen " Margin="0, 0, 88, 3" HorizontalAlignment="Right" Click="ButtonCancel_Click" />
|
||||
|
||||
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal">
|
||||
<Button x:Name="ButtonImport" Content=" Importieren " Margin="3" HorizontalAlignment="Right" Click="ButtonImport_Click" />
|
||||
<Button x:Name="ButtonCancel" Grid.Row="1" Grid.Column="1" Content=" Abbrechen " Margin="3,3,6,3" HorizontalAlignment="Right" Click="ButtonCancel_Click" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace BeWo.View.Detail.Report
|
||||
}
|
||||
|
||||
this.combobox_year.ItemsSource = years;
|
||||
if (monthIdx == 1)
|
||||
if (monthIdx == 0)
|
||||
{
|
||||
this.combobox_year.SelectedItem = DateTime.Now.Year + 1;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
245
BeWo/View/Detail/SupportConceptGoalRatingView.xaml
Normal file
245
BeWo/View/Detail/SupportConceptGoalRatingView.xaml
Normal 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>
|
||||
893
BeWo/View/Detail/SupportConceptGoalRatingView.xaml.cs
Normal file
893
BeWo/View/Detail/SupportConceptGoalRatingView.xaml.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,320 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.SupportConceptGoalView" 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:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
|
||||
<GroupBox Name="root" Header="Aktuell definierte Ergebnisziele" Style="{StaticResource ObjectEditGroupBox}">
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="2*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Label Grid.Column="0" Grid.Row="0">Bezeichnung</Label>
|
||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{val:ValidationBinding Path=NewVM.Description, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Label Grid.Column="2" Grid.Row="0">Grundsatzziel</Label>
|
||||
<uc:NullItemComboBox Name="combobox_categories" Grid.Column="3" Grid.Row="0" Height="23" ItemsSource="{Binding Path=PossibleCategories, Mode=OneWay}" Margin="3" SelectedItem="{val:ValidationBinding Path=NewVM.ParentEntry}" />
|
||||
<Button Name="button_add" Click="button_add_Click" Grid.Column="6" Grid.Row="0" Height="25" Margin="3" Padding="5 0" IsDefault="True">Hinzufügen</Button>
|
||||
<dxg:GridControl x:Name="datagridcontrol" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2" 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="Description" Header="Bezeichnung" Width="180" />
|
||||
<dxg:GridColumn x:Name="column_category" FieldName="ParentEntry" Header="Grundsatzziel" Width="200" />
|
||||
</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
|
||||
x:Class="BeWo.View.Detail.SupportConceptGoalView"
|
||||
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"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
|
||||
<localView:BeWoView.Resources>
|
||||
<ResourceDictionary>
|
||||
|
||||
<view:ValueListEntryTypeToFontWeightConverter x:Key="ValueListEntryTypeToFontWeightConverter" />
|
||||
<view:ValueListEntryTypeToColorConverter x:Key="ValueListEntryTypeToColorConverter" />
|
||||
|
||||
<ContextMenu x:Key="cmGoals" MenuItem.Click="ContextMenuGoals_Click" Opened="ContextMenuGoals_Opened">
|
||||
<MenuItem Header="Neues individuelles Ziel" >
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\Ressources\Icons\Add24.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Neue individuelle Maßnahme" >
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\Ressources\Icons\Add24.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Bearbeiten">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\Ressources\Icons\Rename24.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<Separator />
|
||||
<MenuItem Header="Löschen" >
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\Ressources\Icons\Delete24.png"/>
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</ContextMenu>
|
||||
<DataTemplate x:Key="detailCoreTemplate">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Margin="0,0,0,0" Visibility="{Binding Path=Row.ShowNotice, Converter={StaticResource BoolVisibilityConverter}}"
|
||||
Text="{Binding Path=Row.GoalEntryVM.Notice}" VerticalAlignment="Center"
|
||||
BorderThickness="0" IsReadOnly="True" LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" Background="Transparent"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="nodeToolTipTemplate">
|
||||
<ContentPresenter Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}">
|
||||
<ToolTipService.InitialShowDelay>200</ToolTipService.InitialShowDelay>
|
||||
<ToolTipService.HasDropShadow>true</ToolTipService.HasDropShadow>
|
||||
<ToolTipService.ShowDuration>50000</ToolTipService.ShowDuration>
|
||||
<ToolTipService.ToolTip>
|
||||
<ContentControl Content="{Binding}" ContentTemplate="{StaticResource detailCoreTemplate}" Tag="Transparent" MaxWidth="600"/>
|
||||
</ToolTipService.ToolTip>
|
||||
</ContentPresenter>
|
||||
</DataTemplate>
|
||||
</ResourceDictionary>
|
||||
</localView:BeWoView.Resources>
|
||||
<Grid x:Name="RootGrid">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<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="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}" />
|
||||
</StackPanel>
|
||||
</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>
|
||||
<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>
|
||||
<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}"
|
||||
ItemTemplate="{DynamicResource igoal_treeitemtemplate}" Grid.RowSpan="1" ContextMenu="{StaticResource cmGoals}"
|
||||
PreviewMouseDown="GoalTreeViewItem_PreviewMouseRightButtonDown" ItemsSource="{Binding IndividualGoalTree}" >
|
||||
<TreeView.Resources>
|
||||
<Style x:Key="igoal_treeitemstyle" TargetType="TreeViewItem">
|
||||
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
|
||||
</Style>
|
||||
<HierarchicalDataTemplate x:Key="igoal_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" />
|
||||
</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" />-->
|
||||
<!--
|
||||
<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="2" Orientation="Horizontal">
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_aufklappenAllGoals" Click="button_aufklappenAllGoals_Click"
|
||||
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>
|
||||
</localView:BeWoView>
|
||||
@@ -1,36 +1,177 @@
|
||||
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.Input;
|
||||
using System.Windows.Media;
|
||||
using BeWo.Core;
|
||||
using BeWo.Core.Service;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.Validation;
|
||||
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.Editors.Settings;
|
||||
|
||||
namespace BeWo.View.Detail
|
||||
{
|
||||
public partial class SupportConceptGoalView : BeWoView
|
||||
{
|
||||
private SupportConceptGoalListVM _ViewModel;
|
||||
private SupportConceptVM _ViewModel;
|
||||
|
||||
public SupportConceptGoalView(SupportConceptGoalListVM pViewModel)
|
||||
private TreeViewItem _SelectedGoalTreeNode;
|
||||
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> _SelectedGoals;
|
||||
|
||||
public SupportConceptGoalView(SupportConceptVM pViewModel)
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
SelectedGoals = GetSelectedGoalTree(pViewModel);
|
||||
|
||||
// combobox_categories.ItemTemplateSelector = new ComboBoxTemplateSelector(combobox_categories);
|
||||
this.column_category.EditSettings = new ComboBoxEditSettings { ItemsSource = pViewModel.PossibleCategories };
|
||||
treeview_Goals.ItemsSource = SelectedGoals;
|
||||
|
||||
this.ViewModel = pViewModel;
|
||||
}
|
||||
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> GetSelectedGoalTree(SupportConceptVM pViewModel)
|
||||
{
|
||||
var goals = GetSelectedGoals(pViewModel);
|
||||
var copyList = new List<SupportConceptGoalTreeItem>();
|
||||
foreach (var item in goals)
|
||||
{
|
||||
SupportConceptGoalTreeItem copy = CreateCopy(item);
|
||||
copy.IsExpanded = true;
|
||||
copyList.Add(copy);
|
||||
}
|
||||
|
||||
ObservableCollection<SupportConceptGoalTreeItem> tree = CreateTree(copyList, pViewModel.CombinedGoalTree);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
public ObservableCollection<SupportConceptGoalTreeItem> SelectedGoals
|
||||
{
|
||||
get { return _SelectedGoals; }
|
||||
set { _SelectedGoals = value; }
|
||||
}
|
||||
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> CreateTree(List<SupportConceptGoalTreeItem> copyList, ObservableCollection<SupportConceptGoalTreeItem> combinedGoalTree)
|
||||
{
|
||||
var tree = new ObservableCollection<SupportConceptGoalTreeItem>();
|
||||
Dictionary<long, SupportConceptGoalTreeItem> totalOid2GoalDict = CreateGoalDictionary(combinedGoalTree);
|
||||
Dictionary<long, SupportConceptGoalTreeItem> resultTreeOid2GoalDict = new Dictionary<long, SupportConceptGoalTreeItem>();
|
||||
|
||||
foreach (var goal in copyList)
|
||||
{
|
||||
AddParentToTree(tree, goal, totalOid2GoalDict, resultTreeOid2GoalDict);
|
||||
}
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
private void AddParentToTree(ObservableCollection<SupportConceptGoalTreeItem> tree, SupportConceptGoalTreeItem goal, Dictionary<long, SupportConceptGoalTreeItem> totalOid2GoalDict, Dictionary<long, SupportConceptGoalTreeItem> resultTreeOid2GoalDict)
|
||||
{
|
||||
if (goal.GoalEntryDC.ParentOid.HasValue)
|
||||
{
|
||||
if (totalOid2GoalDict.ContainsKey(goal.GoalEntryDC.ParentOid.Value))
|
||||
{
|
||||
SupportConceptGoalTreeItem parent = null;
|
||||
if (resultTreeOid2GoalDict.ContainsKey(goal.GoalEntryDC.ParentOid.Value))
|
||||
{
|
||||
parent = resultTreeOid2GoalDict[goal.GoalEntryDC.ParentOid.Value];
|
||||
}
|
||||
else
|
||||
{
|
||||
parent = CreateCopy(totalOid2GoalDict[goal.GoalEntryDC.ParentOid.Value]);
|
||||
parent.IsExpanded = true;
|
||||
resultTreeOid2GoalDict.Add(goal.GoalEntryDC.ParentOid.Value, parent);
|
||||
|
||||
AddParentToTree(tree, parent, totalOid2GoalDict, resultTreeOid2GoalDict);
|
||||
}
|
||||
|
||||
parent.Items.Add(goal);
|
||||
parent.Children.Add(goal);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tree.Add(goal);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Dictionary<long, SupportConceptGoalTreeItem> CreateGoalDictionary(ObservableCollection<SupportConceptGoalTreeItem> combinedGoalTree)
|
||||
{
|
||||
var dict = new Dictionary<long, SupportConceptGoalTreeItem>();
|
||||
|
||||
AddGoalsToDict(combinedGoalTree, dict);
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
private void AddGoalsToDict(IList<SupportConceptGoalTreeItem> goals, Dictionary<long, SupportConceptGoalTreeItem> dict)
|
||||
{
|
||||
if (goals != null)
|
||||
{
|
||||
foreach (var item in goals)
|
||||
{
|
||||
if (!dict.ContainsKey(item.GoalEntryDC.ValueListEntryOid.Value))
|
||||
{
|
||||
dict.Add(item.GoalEntryDC.ValueListEntryOid.Value, item);
|
||||
}
|
||||
|
||||
AddGoalsToDict(item.Items, dict);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private SupportConceptGoalTreeItem CreateCopy(SupportConceptGoalTreeItem item)
|
||||
{
|
||||
var copy = new SupportConceptGoalTreeItem();
|
||||
var entryDc = new ValueListEntryDC();
|
||||
entryDc.Abbreviation = item.GoalEntryDC.Abbreviation;
|
||||
entryDc.Notice = item.GoalEntryDC.Notice;
|
||||
entryDc.TypeDescription = item.GoalEntryDC.TypeDescription;
|
||||
entryDc.ValueListEntryOid = item.GoalEntryDC.ValueListEntryOid;
|
||||
entryDc.ValueListEntryVersion = item.GoalEntryDC.ValueListEntryVersion;
|
||||
entryDc.Type = item.GoalEntryDC.Type;
|
||||
entryDc.ParentOid = item.GoalEntryDC.ParentOid;
|
||||
copy.GoalEntryDC = entryDc;
|
||||
copy.GoalEntryVM = new ValueListEntryVM(entryDc);
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> GetSelectedGoals(SupportConceptVM pViewModel)
|
||||
{
|
||||
var list = new ObservableCollection<SupportConceptGoalTreeItem>();
|
||||
|
||||
foreach (var item in pViewModel.CombinedGoalTree)
|
||||
{
|
||||
IterateThroughSelectedGoalsAndMassnahmen(item, list);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private void IterateThroughSelectedGoalsAndMassnahmen(SupportConceptGoalTreeItem item, ObservableCollection<SupportConceptGoalTreeItem> list)
|
||||
{
|
||||
if (item.IsChecked || (item.Items.Count == 0 && (item.GoalType == ValueListEntryType.SupportConceptIndividualGoalCategoryType || item.GoalType == ValueListEntryType.SupportConceptIndividualGoalType)))
|
||||
{
|
||||
list.Add(item);
|
||||
}
|
||||
|
||||
foreach (var child in item.Items)
|
||||
{
|
||||
IterateThroughSelectedGoalsAndMassnahmen(child, list);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsDirty
|
||||
{
|
||||
get
|
||||
@@ -39,24 +180,9 @@ namespace BeWo.View.Detail
|
||||
}
|
||||
}
|
||||
|
||||
public override string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Ergebnisziele";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO
|
||||
internal override DependencyObject ValidationOnSaveRootElement
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.button_add;
|
||||
}
|
||||
}
|
||||
|
||||
private SupportConceptGoalListVM ViewModel
|
||||
public SupportConceptVM ViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -66,55 +192,316 @@ namespace BeWo.View.Detail
|
||||
set
|
||||
{
|
||||
this._ViewModel = value;
|
||||
this.root.DataContext = value;
|
||||
this.RootGrid.DataContext = value;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Save()
|
||||
|
||||
private void button_AddGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var lToDos = new List<Action<IValueListService>>();
|
||||
var control = new GoalImportControl(CreateGoalTreeCopy(ViewModel.CombinedGoalTree, SelectedGoals));
|
||||
|
||||
if (this.ViewModel.AddedCount > 0)
|
||||
var beWoWindow = new BeWoWindow
|
||||
{
|
||||
lToDos.Add(s => s.InsertNewValueListEntries(this.ViewModel.CommitAdded()));
|
||||
}
|
||||
rootGroupBox = { Header = "Ziele hinzufügen" },
|
||||
Height = this.Height,
|
||||
Width = this.Width,
|
||||
MinWidth = 550,
|
||||
WindowStartupLocation = WindowStartupLocation.CenterOwner,
|
||||
GroupBoxContent = control,
|
||||
Owner = BeWoApp.CurrentBeWo.MainWindow
|
||||
};
|
||||
|
||||
if (this.ViewModel.ChangedCount > 0)
|
||||
control.ButtonImportClicked += () =>
|
||||
{
|
||||
lToDos.Add(s => s.UpdateValueListEntries(this.ViewModel.CommitChanged()));
|
||||
}
|
||||
ImportGoals(control.GetSelectedGoals());
|
||||
beWoWindow.Close();
|
||||
};
|
||||
|
||||
if (this.ViewModel.RemovedCount > 0)
|
||||
control.ButtonCancelClicked += () =>
|
||||
{
|
||||
lToDos.Add(s => s.DeactivateValueListEntries(this.ViewModel.GetRemoved().ToDictionary(v => v.ValueListEntryOid.Value, v => v.ValueListEntryVersion.Value)));
|
||||
}
|
||||
beWoWindow.Close();
|
||||
};
|
||||
|
||||
ServiceFacade.DoMultipleValueListServicesAsync(lToDos, this.ReloadViewModel);
|
||||
beWoWindow.ShowDialog();
|
||||
}
|
||||
|
||||
private void DeleteButton_Click(object sender, RoutedEventArgs e)
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> CreateGoalTreeCopy(ObservableCollection<SupportConceptGoalTreeItem> totalGoalTree, ObservableCollection<SupportConceptGoalTreeItem> selectedGoals)
|
||||
{
|
||||
var lVM = this.datagridcontrol.GetCurrentValue<ValueListEntryVM>();
|
||||
if (lVM != null)
|
||||
var selectedDict = CreateGoalDictionary(selectedGoals);
|
||||
|
||||
var listWithoutSelected = GetGoalsWithoutSelected(totalGoalTree, selectedDict);
|
||||
|
||||
var copyList = new List<SupportConceptGoalTreeItem>();
|
||||
foreach (var item in listWithoutSelected.Where(i => i.Children == null || i.Children.Count == 0))
|
||||
{
|
||||
this.ViewModel.VMList.Remove(lVM);
|
||||
BeWoWpfUtils.RefreshDXGrid(this.datagridcontrol);
|
||||
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);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
||||
private ObservableCollection<SupportConceptGoalTreeItem> GetGoalsWithoutSelected(ObservableCollection<SupportConceptGoalTreeItem> totalGoalTree, Dictionary<long, SupportConceptGoalTreeItem> selectedDict)
|
||||
{
|
||||
var list = new ObservableCollection<SupportConceptGoalTreeItem>();
|
||||
|
||||
foreach (var item in totalGoalTree)
|
||||
{
|
||||
AddGoalsWithoutSelected(item, list, selectedDict);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private void AddGoalsWithoutSelected(SupportConceptGoalTreeItem item, ObservableCollection<SupportConceptGoalTreeItem> list, Dictionary<long, SupportConceptGoalTreeItem> selectedDict)
|
||||
{
|
||||
if (!selectedDict.ContainsKey(item.GoalEntryDC.ValueListEntryOid.Value))
|
||||
{
|
||||
list.Add(item);
|
||||
}
|
||||
|
||||
foreach (var child in item.Items)
|
||||
{
|
||||
AddGoalsWithoutSelected(child, list, selectedDict);
|
||||
}
|
||||
}
|
||||
|
||||
private void ReloadViewModel()
|
||||
private void ImportGoals(IList<SupportConceptGoalTreeItem> goals)
|
||||
{
|
||||
Cache.GetInstance().ClearValueListEntries(ValueListEntryType.SupportConceptGoalType);
|
||||
Cache.GetInstance().ClearValueListEntries(ValueListEntryType.SupportConceptGoalCategoryType);
|
||||
VMFactory.CreateSupportConceptGoalListVMAsync(ValueListEntryType.SupportConceptGoalType, ValueListEntryType.SupportConceptGoalCategoryType, r => this.Dispatch(delegate { this.ViewModel = r; }));
|
||||
foreach (var goal in goals)
|
||||
{
|
||||
AddGoalToTree(goal, null);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_add_Click(object sender, RoutedEventArgs e)
|
||||
|
||||
private void AddGoalToTree(SupportConceptGoalTreeItem goal, SupportConceptGoalTreeItem child)
|
||||
{
|
||||
if (ValidationTrigger.Validate(this))
|
||||
var copy = CreateCopy(goal);
|
||||
copy.IsExpanded = true;
|
||||
if (child != null)
|
||||
{
|
||||
this.ViewModel.AddNewVMToList();
|
||||
copy.Items.Add(child);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
private void button_aufklappenAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SwitchAllGoalTreeItems(true);
|
||||
}
|
||||
|
||||
private void button_zuklappenAllGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SwitchAllGoalTreeItems(false);
|
||||
}
|
||||
|
||||
private void SwitchAllGoalTreeItems(bool check)
|
||||
{
|
||||
Style stylee = new Style
|
||||
{
|
||||
TargetType = typeof(TreeViewItem)
|
||||
};
|
||||
|
||||
stylee.Setters.Add(new Setter(TreeViewItem.IsExpandedProperty, check));
|
||||
treeview_Goals.ItemContainerStyle = stylee;
|
||||
}
|
||||
|
||||
|
||||
private void GoalTreeViewItem_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
var source = e.OriginalSource as DependencyObject;
|
||||
while (source != null && !(source is TreeViewItem))
|
||||
{
|
||||
source = VisualTreeHelper.GetParent(source);
|
||||
}
|
||||
|
||||
if (source != null)
|
||||
{
|
||||
((TreeViewItem)source).IsSelected = true;
|
||||
_SelectedGoalTreeNode = (TreeViewItem)source;
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectedGoalTreeNode = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void TextBox_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Return)
|
||||
{
|
||||
UpdateSelectedTreeItemText((TextBox)sender);
|
||||
}
|
||||
}
|
||||
|
||||
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
|
||||
{
|
||||
UpdateSelectedTreeItemText((TextBox)sender);
|
||||
}
|
||||
|
||||
private static void UpdateSelectedTreeItemText(TextBoxBase textBox)
|
||||
{
|
||||
if (!textBox.IsReadOnly)
|
||||
{
|
||||
textBox.Background = Brushes.Transparent;
|
||||
textBox.IsReadOnly = true;
|
||||
textBox.BorderThickness = new Thickness(0);
|
||||
textBox.Padding = new Thickness(1, 3, 1, 3);
|
||||
}
|
||||
}
|
||||
|
||||
private void ContextMenuGoals_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!(e.OriginalSource is MenuItem twi)) return;
|
||||
|
||||
var selectedItem = treeview_Goals.SelectedItem as SupportConceptGoalTreeItem;
|
||||
|
||||
switch (twi.Header)
|
||||
{
|
||||
case "Neues individuelles Ziel":
|
||||
if (_SelectedGoalTreeNode != null)
|
||||
{
|
||||
ViewModel.AddTreeItemWithControl(selectedItem, ValueListEntryType.SupportConceptIndividualGoalCategoryType, "Ziel hinzufügen");
|
||||
}
|
||||
break;
|
||||
case "Neue individuelle Maßnahme":
|
||||
if (_SelectedGoalTreeNode != null)
|
||||
{
|
||||
ViewModel.AddTreeItemWithControl(selectedItem, ValueListEntryType.SupportConceptIndividualGoalType, "Maßnahme hinzufügen");
|
||||
}
|
||||
break;
|
||||
case "Löschen":
|
||||
if (selectedItem != null)
|
||||
{
|
||||
var zielOderMassnahme = selectedItem.GoalEntryVM.Type == ValueListEntryType.SupportConceptGoalCategoryType || selectedItem.GoalEntryVM.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType ? "das Ziel" : "die Maßnahme";
|
||||
var pluralendung = zielOderMassnahme.Equals("das Ziel") ? "en" : "n";
|
||||
|
||||
if (MessageBox.Show("ACHTUNG: Das Löschen von " + zielOderMassnahme.Substring(4) + pluralendung + " kann nicht rückgängig gemacht werden.\n" +
|
||||
"Alle verknüpften Eintragungen in der Zeiterfassung bleiben erhalten.\n\n" +
|
||||
"Wollen Sie " + zielOderMassnahme + " '" + selectedItem.GoalEntryVM?.DisplayName + "' wirklich löschen?", "Löschen bestätigen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
||||
{
|
||||
ViewModel.DeleteIndividualGoal(selectedItem);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "Bearbeiten":
|
||||
if (selectedItem != null)
|
||||
ViewModel.EditTreeItem(selectedItem.GoalEntryVM);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void ContextMenuGoals_Opened(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (e.OriginalSource is ContextMenu)
|
||||
{
|
||||
var menu = e.OriginalSource as ContextMenu;
|
||||
var goal = treeview_Goals.SelectedItem as SupportConceptGoalTreeItem;
|
||||
|
||||
foreach (var menuitem in menu.Items.OfType<MenuItem>().Select(item => item))
|
||||
{
|
||||
if (menuitem.Header.Equals("Bearbeiten"))
|
||||
{
|
||||
menuitem.IsEnabled = goal != null && (goal.GoalType.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType) || goal.GoalType.Equals(ValueListEntryType.SupportConceptIndividualGoalType));
|
||||
}
|
||||
else if (menuitem.Header.Equals("Neues individuelles Ziel") || menuitem.Header.Equals("Neue individuelle Maßnahme"))
|
||||
{
|
||||
menuitem.IsEnabled = goal != null && (goal.GoalType.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType) || goal.GoalType.Equals(ValueListEntryType.SupportConceptGoalCategoryType));
|
||||
}
|
||||
else if (menuitem.Header.Equals("Löschen"))
|
||||
{
|
||||
menuitem.IsEnabled = goal != null && (goal.GoalType.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType) || goal.GoalType.Equals(ValueListEntryType.SupportConceptIndividualGoalType));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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,10 +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>
|
||||
HorizontalAlignment="Left">Alle zuklappen</Button>
|
||||
</StackPanel>
|
||||
</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="*"/>
|
||||
</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>
|
||||
@@ -1141,5 +1333,6 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</uc:ShadowChrome>
|
||||
|
||||
</Grid>
|
||||
</localView:BeWoView>
|
||||
@@ -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;
|
||||
@@ -80,7 +82,7 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
InitializeComponent();
|
||||
ViewModel = pViewModel;
|
||||
|
||||
//tabitem_goalsNeu.Visibility = Visibility.Collapsed;
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConceptView_AllowArchiving))
|
||||
{
|
||||
lblArchiviert.Visibility = Visibility.Hidden;
|
||||
@@ -210,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)
|
||||
{
|
||||
@@ -558,6 +560,7 @@ namespace BeWo.View.Detail
|
||||
{
|
||||
ViewModel = cb;
|
||||
_DeletedTasks.Clear();
|
||||
|
||||
}));
|
||||
});
|
||||
});
|
||||
@@ -808,6 +811,19 @@ 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));
|
||||
// }
|
||||
//}
|
||||
|
||||
// Kann das weg?
|
||||
private void ContextMenu_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
@@ -1290,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1546,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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
@@ -81,7 +86,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
if (BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
//BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
|
||||
Cache.GetInstance().ClearEmployees();
|
||||
|
||||
@@ -257,7 +257,7 @@ namespace BeWo.View.Detail
|
||||
|
||||
if (BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
//BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
}),
|
||||
true);
|
||||
|
||||
@@ -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.Security;
|
||||
using System.Text;
|
||||
@@ -421,10 +422,10 @@ namespace BeWo.View
|
||||
#if DEBUG
|
||||
if(true)
|
||||
{
|
||||
string _Code = "8ycX9-ZWbyJ";
|
||||
string _kundennummer = "5473568546";
|
||||
string _benutzername = "cb";
|
||||
string _passwort = "bewo";
|
||||
string _Code = "HcYki-8hLbQ";
|
||||
string _kundennummer = "4368658435";
|
||||
string _benutzername = "BaeurleC";
|
||||
string _passwort = "asFdgAE5ERfdsew4!";
|
||||
string _apikey;
|
||||
#else
|
||||
|
||||
@@ -1445,7 +1446,20 @@ namespace BeWo.View
|
||||
{
|
||||
var id = Utils.ExtractIdFromRecurrenceInfo(appointment.RecurrenceInfo);
|
||||
|
||||
patternToExceptions.Add(new RecurringAppointment(id, pRecurringAppointments.Where(w => w.RecurrenceInfo.Contains(id) && w.Type != (int)AppointmentType.Pattern).ToDictionary(x => Utils.ExtractIndexFromRecurrenceInfo(x.RecurrenceInfo), y => y), appointment));
|
||||
var dict = new Dictionary<int, SchedulerAppointmentDC>();
|
||||
|
||||
foreach (var iapp in pRecurringAppointments.Where(w => w.RecurrenceInfo.Contains(id) && w.Type != (int)AppointmentType.Pattern))
|
||||
{
|
||||
var idx = Utils.ExtractIndexFromRecurrenceInfo(iapp.RecurrenceInfo);
|
||||
if (!dict.ContainsKey(idx))
|
||||
{
|
||||
dict.Add(idx, iapp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var ra = new RecurringAppointment(id, dict, appointment);
|
||||
patternToExceptions.Add(ra);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1537,6 +1551,8 @@ namespace BeWo.View
|
||||
}
|
||||
else
|
||||
{
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
|
||||
RssFeed feed = new RssFeed();
|
||||
|
||||
RssManager mgr = new RssManager(url);
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="250"></ColumnDefinition>
|
||||
<ColumnDefinition Width="255"></ColumnDefinition>
|
||||
<ColumnDefinition Width="*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Margin="5" VerticalAlignment="Stretch" Background="Transparent" >
|
||||
@@ -49,7 +49,7 @@
|
||||
<dxa:AccordionItem Header="{markup:Translate Einstellungen}" Name="TabitemMandator" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Ankündigungen}" Name="TabitemNews" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
</dxa:AccordionItem>
|
||||
<dxa:AccordionItem Header="{markup:Translate Klienten}" Foreground="{StaticResource TabItemTextBrush}">
|
||||
<dxa:AccordionItem Header="{markup:Translate Klienten}" Foreground="{StaticResource TabItemTextBrush}" >
|
||||
<dxa:AccordionItem Header="{markup:Translate Behinderungskategorien}" Name="TabitemDisablityTypes" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Betreuungsarten}" Name="TabitemCustomerCareTypes" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Gründe für Beendigung der Betreuung}" Name="TabitemTerminationReasons" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
@@ -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"/>
|
||||
|
||||
|
||||
|
||||
@@ -99,10 +99,11 @@
|
||||
<dxa:AccordionItem Header="Sonstiges" Foreground="{StaticResource TabItemTextBrush}">
|
||||
<dxa:AccordionItem Header="{markup:Translate Abwesenheitskategorien}" Name="TabitemAbsenceCategories" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Budgets}" Name="TabitemBudgets" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Finanzkategorien}" Name="TabitemFinazCategories" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Dienste}" Name="TabitemDienste" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Finanzkategorien}" Name="TabitemFinazCategories" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Notizenkategorie}" Name="TabitemNotizenkategorie" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
<dxa:AccordionItem Header="{markup:Translate Schulbegleitender Dienst}" Name="TabitemSbd" Selected="Tabitem_Selected" Foreground="Black"/>
|
||||
|
||||
|
||||
</dxa:AccordionItem>
|
||||
</dxa:AccordionControl>
|
||||
</Border>
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.SchulbegleitenderDienst.View;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Extensions;
|
||||
@@ -108,6 +107,13 @@ namespace BeWo.View.Master
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//foreach (AccordionItem item in Root.Items)
|
||||
//{
|
||||
// item.IsExpanded = true;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -367,11 +373,19 @@ namespace BeWo.View.Master
|
||||
VMFactory.CreateBudgetListVMAsync(r =>
|
||||
this.Dispatch(() => AddView(TabitemBudgets, new BudgetView(r))));
|
||||
return;
|
||||
case nameof(TabitemDienste):
|
||||
VMFactory.CreateDienstListVMAsync(r =>
|
||||
this.Dispatch(() => AddView(TabitemDienste, new DienstView(r))));
|
||||
return;
|
||||
case nameof(TabitemNotizenkategorie):
|
||||
VMFactory.CreateValueListVMAsync(ValueListEntryType.NotizenKategorieEmployee,
|
||||
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));
|
||||
|
||||
@@ -38,14 +38,14 @@
|
||||
<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 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 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 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 Pivot Tabelle}" Name="tabitem_flexibleReport" Selector.Selected="tabitem_flexibleReport_Selected" />
|
||||
|
||||
<!--<TabItem Header="Spitzabrechnung" Name="tabitem_settlement" Selector.Selected="tabitem_settlement_Selected"/>-->
|
||||
<TabItem Header="Kilometerauswertung" Name="TabItemKilometerauswertung" Selector.Selected="TabItemKilometerauswertung_OnSelected" />
|
||||
</TabControl>
|
||||
|
||||
@@ -12,6 +12,7 @@ using BS.Shared;
|
||||
using BS.Shared.Extensions;
|
||||
using BeWo.View.Report.Auslastung;
|
||||
using BeWo.View.Report.Kilometerauswertung;
|
||||
using BeWo.View.Report.Rating;
|
||||
|
||||
namespace BeWo.View.Master
|
||||
{
|
||||
@@ -91,24 +92,41 @@ namespace BeWo.View.Master
|
||||
{
|
||||
tabitem_annualReport.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
if (BeWoApp.Mandator.AllowSbd)
|
||||
{
|
||||
tabitem_serviceOverview.Visibility = Visibility.Collapsed;
|
||||
//if (BeWoApp.Mandator.AllowSbd)
|
||||
//{
|
||||
//tabitem_serviceOverview.Visibility = Visibility.Collapsed;
|
||||
tabitem_stundenzettelOverview.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
tabitem_serviceOverview.Visibility = Visibility.Visible;
|
||||
tabitem_stundenzettelOverview.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
//tabitem_stundenzettelOverview.Visibility = Visibility.Collapsed;
|
||||
//}
|
||||
|
||||
if (true || BeWoApp.AppSettings.ShowPivotGrid)
|
||||
if (BeWoApp.AppSettings.ShowPivotGrid)
|
||||
{
|
||||
tabitem_flexibleReport.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
tabitem_flexibleReport.Visibility = Visibility.Hidden;
|
||||
tabitem_flexibleReport.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
//if (false || BeWoApp.AppSettings.ShowDienstplanung)
|
||||
//{
|
||||
// tabitem_dienstPlaner.Visibility = Visibility.Visible;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
tabitem_dienstPlaner.Visibility = Visibility.Collapsed;
|
||||
tabitem_abwesenheitsTabelle.Visibility = Visibility.Collapsed;
|
||||
tabitem_RatingAnalysis.Visibility = Visibility.Collapsed;
|
||||
//}
|
||||
|
||||
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Analysis_ServiceOverview_View))
|
||||
{
|
||||
this.tabitem_serviceOverview.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
if(!(BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) || BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers) || BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyTeams)))
|
||||
@@ -182,6 +200,13 @@ namespace BeWo.View.Master
|
||||
Show(tabitem_abwesenheitsTabelle);
|
||||
}
|
||||
|
||||
private void tabitem_dienstPlaner_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!OpenViews.ContainsKey(tabitem_dienstPlaner))
|
||||
OpenViews[tabitem_dienstPlaner] = new Dienstplaner();
|
||||
Show(tabitem_dienstPlaner);
|
||||
}
|
||||
|
||||
private void tabitem_queries_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!OpenViews.ContainsKey(tabitem_queries))
|
||||
@@ -262,6 +287,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))
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace BeWo.View
|
||||
|
||||
if (BeWoApp.AppSettings.IsChatAllowed)
|
||||
{
|
||||
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
//BeWoUtils.OwnChatSynchronisationVeranlassen();
|
||||
}
|
||||
this.Dispatch(Close);
|
||||
},
|
||||
|
||||
@@ -30,6 +30,8 @@ namespace BeWo.View.Report.FLSReport
|
||||
|
||||
public bool ShowServiceRecords { get; set; }
|
||||
|
||||
public bool ShowEinheitInMinuten { get; set; }
|
||||
|
||||
public decimal SollFLS { get; set; }
|
||||
|
||||
public decimal TotalFLM { get; set; }
|
||||
|
||||
@@ -217,6 +217,7 @@ namespace BeWo.View.Report.FLSReport
|
||||
FLSOverviewDetailRow headerRow = new FLSOverviewDetailRow(DetailRowTypes.Header);
|
||||
headerRow.ShowOnlyTotalRows = config.ShowOnlyTotalRows;
|
||||
headerRow.ShowServiceRecords = config.ShowServiceRecords;
|
||||
headerRow.ShowEinheitInMinuten = config.ShowEinheitInMinuten;
|
||||
if (config.ReportType == FLSReportType.Employee)
|
||||
{
|
||||
headerRow.GroupName = Translator.Translate("Klient/in");
|
||||
@@ -418,6 +419,7 @@ namespace BeWo.View.Report.FLSReport
|
||||
foreach (GroupValue group in groupList)
|
||||
{
|
||||
FLSOverviewDetailRow detailRow = new FLSOverviewDetailRow(DetailRowTypes.Detail);
|
||||
detailRow.ShowEinheitInMinuten = config.ShowEinheitInMinuten;
|
||||
detailRow.ShowChart = config.ShowChart;
|
||||
detailRow.ShowServiceRecords = config.ShowServiceRecords;
|
||||
detailRow.ShowOnlyTotalRows = config.ShowOnlyTotalRows;
|
||||
@@ -505,6 +507,7 @@ namespace BeWo.View.Report.FLSReport
|
||||
{
|
||||
FLSOverviewDetailRow detailRow = new FLSOverviewDetailRow(DetailRowTypes.Detail);
|
||||
detailRow.ShowChart = false;
|
||||
detailRow.ShowEinheitInMinuten = config.ShowEinheitInMinuten;
|
||||
detailRow.ShowServiceRecords = config.ShowServiceRecords;
|
||||
detailRow.ShowOnlyTotalRows = config.ShowOnlyTotalRows;
|
||||
detailRow.GroupName = string.Empty;
|
||||
@@ -613,9 +616,17 @@ namespace BeWo.View.Report.FLSReport
|
||||
totalRow.ShowServiceRecords = config.ShowServiceRecords;
|
||||
totalRow.ShowOnlyTotalRows = config.ShowOnlyTotalRows;
|
||||
totalRow.ShowChart = config.ShowChart;
|
||||
totalRow.ShowEinheitInMinuten = config.ShowEinheitInMinuten;
|
||||
if (config.ShowOnlyTotalRows)
|
||||
{
|
||||
totalRow.GroupName = "Geleistete Std.";
|
||||
if (config.ShowEinheitInMinuten)
|
||||
{
|
||||
totalRow.GroupName = "Geleistete Min.";
|
||||
}
|
||||
else
|
||||
{
|
||||
totalRow.GroupName = "Geleistete Std.";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -178,7 +178,16 @@ namespace BeWo.View.Report.FLSReport
|
||||
lbl.SetValue(Grid.ColumnSpanProperty, 2);
|
||||
lbl.SetValue(Grid.RowProperty, rowIndex);
|
||||
lbl.FontWeight = FontWeights.Bold;
|
||||
lbl.Content = "Summe: " + item.DateValueText + " Std.";
|
||||
|
||||
if (row.ShowEinheitInMinuten)
|
||||
{
|
||||
lbl.Content = "Summe: " + item.DateValueText + " Min.";
|
||||
}
|
||||
else
|
||||
{
|
||||
lbl.Content = "Summe: " + item.DateValueText + " Std.";
|
||||
}
|
||||
|
||||
lbl.Margin = new Thickness(-100, 0, 0, 0);
|
||||
if (rowIndex > 0)
|
||||
{
|
||||
@@ -363,7 +372,15 @@ namespace BeWo.View.Report.FLSReport
|
||||
|
||||
// lbl.SetValue(Grid.RowProperty, rowIndex);
|
||||
lbl.FontWeight = FontWeights.Bold;
|
||||
lbl.Content = row.RowTotalFLS + " Std.";
|
||||
if (row.ShowEinheitInMinuten)
|
||||
{
|
||||
lbl.Content = row.RowTotalFLS + " Min.";
|
||||
}
|
||||
else
|
||||
{
|
||||
lbl.Content = row.RowTotalFLS + " Std.";
|
||||
}
|
||||
|
||||
|
||||
grid.Children.Add(lbl);
|
||||
}
|
||||
@@ -458,6 +475,7 @@ namespace BeWo.View.Report.FLSReport
|
||||
FLSOverviewDetailRow row = (FLSOverviewDetailRow)e.NewValue;
|
||||
if (row != null)
|
||||
{
|
||||
|
||||
item.RefreshGrid(row);
|
||||
}
|
||||
}
|
||||
|
||||
76
BeWo/View/Report/Rating/RatingReportView.xaml
Normal file
76
BeWo/View/Report/Rating/RatingReportView.xaml
Normal 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>
|
||||
110
BeWo/View/Report/Rating/RatingReportView.xaml.cs
Normal file
110
BeWo/View/Report/Rating/RatingReportView.xaml.cs
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
<TextBox x:Name="TextBoxSearch" Grid.Row="0" Grid.Column="1" Margin="3" Height="23" Template="{StaticResource SearchTextBoxTemplate}" TextChanged="TextBoxSearch_OnTextChanged" />
|
||||
<dxg:TreeListControl x:Name="TreeListControl" Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" ItemsSource="{Binding Path=List, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" PreviewMouseDown="TreeListControl_OnPreviewMouseDown">
|
||||
<dxg:TreeListControl.Columns>
|
||||
<dxg:TreeListColumn FieldName="Name" ReadOnly="True">
|
||||
<dxg:TreeListColumn FieldName="Name" ReadOnly="True" SortOrder="Ascending">
|
||||
<dxg:TreeListColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<TextBlock VerticalAlignment="Center" Margin="3,0,0,0" Text="{Binding DataContext.RowData.Row.Name, RelativeSource={RelativeSource TemplatedParent}}" FontWeight="{Binding Path=DataContext.RowData.Row.IsParent, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource TextModuleFontWeightConverter}}" />
|
||||
|
||||
@@ -10,16 +10,16 @@ namespace BeWo.ViewModel
|
||||
{
|
||||
public class BudgetVM : AbstractDCMapperVM<BudgetDC>
|
||||
{
|
||||
public long? _BudgetOid;
|
||||
public ActivationTypeId _BudgetIsActive;
|
||||
public string _BudgetNotice;
|
||||
public DateTime? _BudgetInsTs;
|
||||
public string _BudgetInsUser;
|
||||
public long? _BudgetVersion;
|
||||
public string _BudgetUdpUser;
|
||||
public SystemEntryID? _BudgetSystemEntryID;
|
||||
public string _Name;
|
||||
public decimal? _Betragshoehe;
|
||||
private long? _BudgetOid;
|
||||
private ActivationTypeId _BudgetIsActive;
|
||||
private string _BudgetNotice;
|
||||
private DateTime? _BudgetInsTs;
|
||||
private string _BudgetInsUser;
|
||||
private long? _BudgetVersion;
|
||||
private string _BudgetUdpUser;
|
||||
private SystemEntryID? _BudgetSystemEntryID;
|
||||
private string _Name;
|
||||
private decimal? _Betragshoehe;
|
||||
|
||||
public BudgetVM(BudgetDC budgetDC) : base(budgetDC, budgetDC.BudgetOid == null)
|
||||
{ }
|
||||
|
||||
222
BeWo/ViewModel/DienstVM.cs
Normal file
222
BeWo/ViewModel/DienstVM.cs
Normal file
@@ -0,0 +1,222 @@
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
public class DienstVM : AbstractDCMapperVM<DienstDC>
|
||||
{
|
||||
private long? _DienstOid;
|
||||
private string _DienstNotice;
|
||||
private long? _DienstVersion;
|
||||
private string _DienstName;
|
||||
private string _Kurz;
|
||||
private SolidColorBrush _Farbe;
|
||||
private string _FarbeString;
|
||||
private DateTime _StartDT;
|
||||
private DateTime _EndeDT;
|
||||
private int _Pause;
|
||||
|
||||
public DienstVM(DienstDC dienstDC) : base(dienstDC, dienstDC.DienstOid == null)
|
||||
{ }
|
||||
|
||||
public long? DienstOid
|
||||
{
|
||||
get { return _DienstOid; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_DienstOid, value))
|
||||
{
|
||||
_DienstOid = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.DienstOid, value), nameof(_DienstOid));
|
||||
FirePropertyChanged(nameof(_DienstOid));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string DienstNotice
|
||||
{
|
||||
get { return _DienstNotice; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_DienstNotice, value))
|
||||
{
|
||||
_DienstNotice = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.DienstNotice, value), nameof(_DienstNotice));
|
||||
FirePropertyChanged(nameof(_DienstNotice));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public long? DienstVersion
|
||||
{
|
||||
get { return _DienstVersion; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_DienstVersion, value))
|
||||
{
|
||||
_DienstVersion = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.DienstVersion, value), nameof(_DienstVersion));
|
||||
FirePropertyChanged(nameof(_DienstVersion));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string DienstName
|
||||
{
|
||||
get { return _DienstName; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_DienstName, value))
|
||||
{
|
||||
_DienstName = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.DienstName, value), nameof(_DienstName));
|
||||
FirePropertyChanged(nameof(_DienstName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Kurz
|
||||
{
|
||||
get { return _Kurz; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Kurz, value))
|
||||
{
|
||||
_Kurz = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Kurz, value), nameof(_Kurz));
|
||||
FirePropertyChanged(nameof(_Kurz));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SolidColorBrush Farbe
|
||||
{
|
||||
get { return _Farbe; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Farbe, value))
|
||||
{
|
||||
_Farbe = value;
|
||||
_FarbeString = value.ToStringNullCheck();
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Farbe, value), nameof(_Farbe));
|
||||
FirePropertyChanged(nameof(_Farbe));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Start
|
||||
{
|
||||
get { return _StartDT.ToString("HH:mm"); }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(Start, value))
|
||||
{
|
||||
var s = value.Split(':');
|
||||
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
|
||||
_StartDT = dt;
|
||||
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Start, dt), nameof(_StartDT));
|
||||
FirePropertyChanged(nameof(_StartDT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime StartDT
|
||||
{
|
||||
get { return _StartDT; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_StartDT, value))
|
||||
{
|
||||
_StartDT = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Start, value), nameof(_StartDT));
|
||||
FirePropertyChanged(nameof(_StartDT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Ende
|
||||
{
|
||||
get { return _EndeDT.ToString("HH:mm"); }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(Start, value))
|
||||
{
|
||||
var s = value.Split(':');
|
||||
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
|
||||
_EndeDT = dt;
|
||||
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Ende, dt), nameof(_EndeDT));
|
||||
FirePropertyChanged(nameof(_EndeDT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime EndeDT
|
||||
{
|
||||
get { return _EndeDT; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_EndeDT, value))
|
||||
{
|
||||
_EndeDT = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Ende, value), nameof(_EndeDT));
|
||||
FirePropertyChanged(nameof(_EndeDT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int Pause
|
||||
{
|
||||
get { return _Pause; }
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Pause, value))
|
||||
{
|
||||
_Pause = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Pause, value), nameof(_Pause));
|
||||
FirePropertyChanged(nameof(_Pause));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void InitByDataContract(DienstDC bDataContract)
|
||||
{
|
||||
_DienstOid = bDataContract.DienstOid;
|
||||
_DienstNotice = bDataContract.DienstNotice;
|
||||
_DienstVersion = bDataContract.DienstVersion;
|
||||
_DienstName = bDataContract.DienstName;
|
||||
_Kurz = bDataContract.Kurz;
|
||||
_StartDT = bDataContract.Start;
|
||||
_EndeDT = bDataContract.Ende;
|
||||
_Pause = bDataContract.Pause;
|
||||
|
||||
if (!string.IsNullOrEmpty(bDataContract.Farbe))
|
||||
{
|
||||
_Farbe = (SolidColorBrush)new BrushConverter().ConvertFrom(bDataContract.Farbe);
|
||||
}
|
||||
}
|
||||
|
||||
protected override DienstDC MapToDataContract(DienstDC bDataContract, bool doCommit)
|
||||
{
|
||||
bDataContract.DienstOid = _DienstOid;
|
||||
bDataContract.DienstNotice = _DienstNotice;
|
||||
bDataContract.DienstVersion = _DienstVersion;
|
||||
bDataContract.DienstName = _DienstName;
|
||||
bDataContract.Kurz = _Kurz;
|
||||
bDataContract.Farbe = _FarbeString;
|
||||
bDataContract.Pause = _Pause;
|
||||
bDataContract.Start = _StartDT;
|
||||
bDataContract.Ende = _EndeDT;
|
||||
|
||||
return bDataContract;
|
||||
}
|
||||
}
|
||||
}
|
||||
105
BeWo/ViewModel/GoalRatingVM.cs
Normal file
105
BeWo/ViewModel/GoalRatingVM.cs
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
31
BeWo/ViewModel/ListViewModel/DienstListVM.cs
Normal file
31
BeWo/ViewModel/ListViewModel/DienstListVM.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Windows.Media;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using Color = System.Drawing.Color;
|
||||
|
||||
namespace BeWo.ViewModel.ListViewModel
|
||||
{
|
||||
public class DienstListVM : AbstractDCListMapperVM<DienstDC, DienstVM>
|
||||
{
|
||||
public DienstListVM(List<DienstDC> pDCs): base(pDCs)
|
||||
{
|
||||
}
|
||||
|
||||
public List<SolidColorBrush> AllBrushes
|
||||
{
|
||||
get
|
||||
{
|
||||
var lTemp = typeof(Color).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Static).Select(pi => (Color)pi.GetGetMethod().Invoke(null, null)).ToList();
|
||||
|
||||
lTemp.Sort((x, y) => x.GetBrightness().CompareTo(y.GetBrightness()));
|
||||
|
||||
return lTemp.Select(c => new SolidColorBrush(System.Windows.Media.Color.FromArgb(c.A, c.R, c.G, c.B))).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
28
BeWo/ViewModel/ListViewModel/GoalRatingListVM.cs
Normal file
28
BeWo/ViewModel/ListViewModel/GoalRatingListVM.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
23
BeWo/ViewModel/ListViewModel/RatingListVM.cs
Normal file
23
BeWo/ViewModel/ListViewModel/RatingListVM.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
15
BeWo/ViewModel/ListViewModel/RatingTypeListVM.cs
Normal file
15
BeWo/ViewModel/ListViewModel/RatingTypeListVM.cs
Normal 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)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -76,6 +76,7 @@ namespace BeWo.ViewModel
|
||||
if (this.AreDifferent(this._Notice, value))
|
||||
{
|
||||
this._Notice = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), PropertyName_Notice);
|
||||
this.FirePropertyChanged(PropertyName_Notice);
|
||||
}
|
||||
}
|
||||
|
||||
128
BeWo/ViewModel/RatingTypeVM.cs
Normal file
128
BeWo/ViewModel/RatingTypeVM.cs
Normal 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
170
BeWo/ViewModel/RatingVM.cs
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>();
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
@@ -459,7 +465,19 @@ namespace BeWo.ViewModel
|
||||
r => pCallBack(new BudgetListVM(r.ToList())));
|
||||
}
|
||||
|
||||
public static void CreateTextModuleListVMAsync(Action<TextModuleListVM> pCallBack, bool pIsInAdministrationView = false, bool pIsInTextModuleEditor = false)
|
||||
public static void CreateDienstListVMAsync(Action<DienstListVM> pCallBack)
|
||||
{
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.GetAllDienste(),
|
||||
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(
|
||||
s2 => s2.GetAllServiceCategories(),
|
||||
|
||||
@@ -54,6 +54,14 @@
|
||||
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BeWo.Data, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Data\bin\Debug\BeWo.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BeWo.Service, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Service\bin\Debug\BeWo.Service.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Private>False</Private>
|
||||
@@ -418,14 +426,6 @@
|
||||
<Content Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Data\Data.csproj">
|
||||
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
|
||||
<Name>Data</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Service\Service.csproj">
|
||||
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
|
||||
<Name>Service</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
|
||||
<Name>Shared</Name>
|
||||
@@ -596,7 +596,7 @@
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>False</AutoAssignPort>
|
||||
<DevelopmentServerPort>8808</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Web.Http;
|
||||
using System.Web.Mvc;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.ServiceImplementations;
|
||||
using BeWoPlanerMobil.Service;
|
||||
using BS.Shared;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
|
||||
namespace BeWoPlanerMobil.Controllers
|
||||
@@ -15,7 +19,53 @@ 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]
|
||||
@@ -321,7 +371,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return Json(new Fehler("99"), JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[System.Web.Mvc.HttpPost]
|
||||
public JsonResult BildUrl()
|
||||
{
|
||||
var oid = Request["oid"];
|
||||
|
||||
@@ -137,6 +137,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 (MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees))
|
||||
@@ -604,9 +614,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var textbausteine = OperationsService.GetAllTextModules();
|
||||
foreach (var tm in textbausteine)
|
||||
{
|
||||
if (tm.Text == null)
|
||||
if (String.IsNullOrWhiteSpace(tm.Text))
|
||||
{
|
||||
tm.Text = string.Empty;
|
||||
tm.Text = tm.Name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -639,7 +649,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
displayItems = displayItems.Where(w => w.ParentOid == null).ToList();
|
||||
displayItems = displayItems.Where(w => w.ParentOid == null).OrderBy(t => t.Name).ToList();
|
||||
|
||||
return JsonConvert.SerializeObject(displayItems, Formatting.None, new JsonSerializerSettings
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Mvc;
|
||||
@@ -32,6 +33,8 @@ namespace BeWoPlanerMobil
|
||||
Context.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
|
||||
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
|
||||
Context.Response.Cache.SetNoStore();
|
||||
}
|
||||
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -235,6 +235,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>()
|
||||
|
||||
@@ -145,7 +145,11 @@
|
||||
<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" />
|
||||
<Compile Include="Entities\ContactHistory.cs" />
|
||||
<Compile Include="Entities\DeletionHistory.cs" />
|
||||
@@ -616,6 +620,9 @@
|
||||
<Content Include="ICF\icf.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Mappings\Dienst.hbm.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Content Include="Mappings\DeletionHistory.hbm.xml" />
|
||||
<EmbeddedResource Include="Mappings\FlexibleReportLayout.hbm.xml">
|
||||
<SubType>Designer</SubType>
|
||||
@@ -623,6 +630,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>
|
||||
|
||||
115
Data/Entities/Dienst.cs
Normal file
115
Data/Entities/Dienst.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using BS.Shared;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class Dienst : BeWoEntityBase
|
||||
{
|
||||
private string _Dienstname;
|
||||
private string _Kurz;
|
||||
private string _Farbe;
|
||||
private DateTime _Start;
|
||||
private DateTime _Ende;
|
||||
private int _Pause;
|
||||
|
||||
public Dienst()
|
||||
{
|
||||
_Tid = TableID.Dienst;
|
||||
}
|
||||
|
||||
public virtual string DienstName
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Dienstname;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Dienstname, value))
|
||||
{
|
||||
_Dienstname = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string Kurz
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Kurz;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Kurz, value))
|
||||
{
|
||||
_Kurz = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string Farbe
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Farbe;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Farbe, value))
|
||||
{
|
||||
_Farbe = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTime Start
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Start;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Start, value))
|
||||
{
|
||||
_Start = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTime Ende
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Ende;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Ende, value))
|
||||
{
|
||||
_Ende = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int Pause
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Pause;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Pause, value))
|
||||
{
|
||||
_Pause = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user