diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj index d374a5ae3..3bae79ba7 100644 --- a/BeWo/BeWo.csproj +++ b/BeWo/BeWo.csproj @@ -962,6 +962,8 @@ BSLogoControl.xaml + + @@ -995,6 +997,7 @@ + diff --git a/BeWo/BeWo.csproj.user b/BeWo/BeWo.csproj.user index 5b9016668..c3f5d6713 100644 --- a/BeWo/BeWo.csproj.user +++ b/BeWo/BeWo.csproj.user @@ -9,7 +9,7 @@ de-DE false - ProjectFiles + ShowAllFiles false diff --git a/BeWo/BeWoApp.xaml b/BeWo/BeWoApp.xaml index 92ae98733..e26b672d2 100644 --- a/BeWo/BeWoApp.xaml +++ b/BeWo/BeWoApp.xaml @@ -83,6 +83,16 @@ + + + + + + + + + + diff --git a/BeWo/Converter/TooltipTextConverter.cs b/BeWo/Converter/TooltipTextConverter.cs index d3dd67712..f38cde2fe 100644 --- a/BeWo/Converter/TooltipTextConverter.cs +++ b/BeWo/Converter/TooltipTextConverter.cs @@ -13,7 +13,12 @@ namespace BeWo.Converter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { - if(value is GkvAbrechnungVM gkv) + if (value is bool val_bool) + { + return val_bool ? null : parameter; + } + + if (value is GkvAbrechnungVM gkv) { if (parameter is string s) { @@ -29,6 +34,12 @@ namespace BeWo.Converter return invoice.IsGkvValidError; } + if (value is MandatorVM mandator) + { + return mandator.CanEditIKLeistungserbringerTooltip; + } + + return "xxx"; } diff --git a/BeWo/Converter/ValidationConverter.cs b/BeWo/Converter/ValidationConverter.cs new file mode 100644 index 000000000..6ee6613a2 --- /dev/null +++ b/BeWo/Converter/ValidationConverter.cs @@ -0,0 +1,32 @@ +using BeWo.ViewModel; +using BS.Shared; +using BS.Shared.Core; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Windows.Media; + +namespace BeWo.Converter +{ + public class ValidationConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if(value is string val_str && parameter is ValidationType val_type) + { + return Validator.IsValid(val_type, val_str); + } + + return null; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/BeWo/Converter/ValidationToBrushConverter.cs b/BeWo/Converter/ValidationToBrushConverter.cs new file mode 100644 index 000000000..59e980295 --- /dev/null +++ b/BeWo/Converter/ValidationToBrushConverter.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Windows.Media; + +namespace BeWo.Converter +{ + public class ValidationToBrushConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if(value is null) + { + return Brushes.Black; + } + + if(value is bool val_bool) + { + return val_bool ? Brushes.Black : Brushes.Red; + } + + return Brushes.Blue; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/BeWo/Converter/ValidationToTooltipConverter.cs b/BeWo/Converter/ValidationToTooltipConverter.cs new file mode 100644 index 000000000..1aa37ac78 --- /dev/null +++ b/BeWo/Converter/ValidationToTooltipConverter.cs @@ -0,0 +1,36 @@ +using BS.Shared; +using BS.Shared.Core; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Windows.Media; + +namespace BeWo.Converter +{ + public class ValidationToTooltipConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is null) + { + return null; + } + + if (value is bool val_bool && parameter is ValidationType val_type) + { + return val_bool ? null : Validator.InvalidTooltipTxt(val_type); + } + + return "xxx"; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/BeWo/DebugConfig.cs b/BeWo/DebugConfig.cs index e717bb81b..e9469f8cb 100644 --- a/BeWo/DebugConfig.cs +++ b/BeWo/DebugConfig.cs @@ -122,8 +122,8 @@ namespace BeWo new DebugConfig() { DebugConfigMode = DebugConfigMode.FeatureDakota, - AutoLogin = true, - SelectView = UIContext.Finance, + AutoLogin = false, + //SelectView = UIContext.Finance, SelectIndex = 8, Username = "m1", Password = "bewobewo", diff --git a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs index 736b25b12..b0e4a10fe 100644 --- a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs +++ b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs @@ -63,8 +63,6 @@ namespace BeWo.View.Detail.Accounting private void RefreshGkvAbrechnungenList() { - var test = datagrid_gkvAbrechnungen; - ServiceFacade.DoAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList); } @@ -80,6 +78,8 @@ namespace BeWo.View.Detail.Accounting datagrid_gkvAbrechnungen.Visibility = Visibility.Visible; UpdateDataGridFilter(); + + gridView.BestFitColumn(ColumnButtons); }); } diff --git a/BeWo/View/Detail/CustomerView.xaml b/BeWo/View/Detail/CustomerView.xaml index 3388c399c..7aaf8fb46 100644 --- a/BeWo/View/Detail/CustomerView.xaml +++ b/BeWo/View/Detail/CustomerView.xaml @@ -14,6 +14,7 @@ xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:r="clr-namespace:BeWo.Security" + xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared" xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" xmlns:val="clr-namespace:BeWo.Validation" @@ -954,10 +955,28 @@ Grid.Row="5" Grid.Column="2" Content="{markup:Translate Versichertennummer}" /> + - - Component - - - Mitarbeiterauslastung.cs - True @@ -154,9 +148,6 @@ InvoiceCustomerReport.cs - - Mitarbeiterauslastung.cs - ResXFileCodeGenerator diff --git a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.cs b/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.cs deleted file mode 100644 index 509d393cc..000000000 --- a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Linq; -using BeWo.Report.ReportObjects; -using BeWo.Service.ServiceImplementations; -using BS.Shared.Core; - - -namespace BeWo.Report.DefaultReports -{ - [IDSpecificClass(Identifier = "Mitarbeiterauslastung")] - public partial class Mitarbeiterauslastung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport - { - - - public Mitarbeiterauslastung() - { - InitializeComponent(); - } - - public void SetReportDataSource(MitarbeiterauslastungRO pRO) - { - AuslastungBerechnung b = new AuslastungBerechnung(); - b.CreateReport(pRO); - - AnalysisServiceImp analysisService = new AnalysisServiceImp(); - var analysis = analysisService.GetSupportConceptAnalysis4(null, null, null, pRO.ReportStartDate, pRO.ReportEndDate, null, false); - - foreach (var emp in pRO.EmployeeDetailList) - { - foreach (var sc in emp.SupportConceptDetailList) - { - var hpBeteiligter = sc.SupportConceptApprovalPeriod.SupportConceptApprovalPeriod2Employee.FirstOrDefault(d => d.Employee.Oid == emp.Employee.Oid); ; - if (hpBeteiligter != null) - { - var analyseDesSC = analysis.FirstOrDefault(a => a.SupportConceptOid == hpBeteiligter.SupportConceptApprovalPeriod.CostBearer2SupportConcept.SupportConcept.Oid); - // Jetzt aus der Analyse die Über/Unterbringung ziehen, sie mit dem Anteil des MA verrechnen und in Custom3 schreiben - if (analyseDesSC != null) - { - var anteiligeStunden = analyseDesSC.FLSOpenPerWeek * hpBeteiligter.Betreuungsschluessel / 100; - sc.Custom3 = string.Format("{0:0.00}", anteiligeStunden); - } - } - } - } - - this.bindingSource1.DataSource = pRO; - } - - } -} diff --git a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.designer.cs b/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.designer.cs deleted file mode 100644 index 7e148cd8e..000000000 --- a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.designer.cs +++ /dev/null @@ -1,565 +0,0 @@ -using BeWo.Report.ReportObjects; -namespace BeWo.Report.DefaultReports -{ - partial class Mitarbeiterauslastung - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.Detail = new DevExpress.XtraReports.UI.DetailBand(); - this.Detail1 = new DevExpress.XtraReports.UI.DetailBand(); - this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrTableDetail = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRowDetail = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell(); - this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand(); - this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand(); - this.Detail2 = new DevExpress.XtraReports.UI.DetailBand(); - this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand(); - this.xrTableHeader = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRowHeader = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell(); - this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); - this.xrTable1 = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); - this.cellSollGesamt = new DevExpress.XtraReports.UI.XRTableCell(); - this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); - this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); - this.lblMonat = new DevExpress.XtraReports.UI.XRLabel(); - this.pageFooterBand1 = new DevExpress.XtraReports.UI.PageFooterBand(); - this.xrPageInfo2 = new DevExpress.XtraReports.UI.XRPageInfo(); - this.xrPageInfo1 = new DevExpress.XtraReports.UI.XRPageInfo(); - this.Title = new DevExpress.XtraReports.UI.XRControlStyle(); - this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle(); - this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle(); - this.DataField = new DevExpress.XtraReports.UI.XRControlStyle(); - this.fieldFLS = new DevExpress.XtraReports.UI.CalculatedField(); - this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand(); - this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); - this.fieldTotalSC = new DevExpress.XtraReports.UI.CalculatedField(); - this.fieldTotalEmp = new DevExpress.XtraReports.UI.CalculatedField(); - ((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); - // - // Detail - // - this.Detail.Expanded = false; - this.Detail.HeightF = 0F; - this.Detail.Name = "Detail"; - this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); - this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // Detail1 - // - this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrLabel2, - this.xrLabel1}); - this.Detail1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.Detail1.HeightF = 50F; - this.Detail1.KeepTogether = true; - this.Detail1.KeepTogetherWithDetailReports = true; - this.Detail1.Name = "Detail1"; - this.Detail1.StylePriority.UseFont = false; - // - // xrLabel2 - // - this.xrLabel2.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold); - this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F); - this.xrLabel2.Multiline = true; - this.xrLabel2.Name = "xrLabel2"; - this.xrLabel2.SizeF = new System.Drawing.SizeF(676.9999F, 25F); - this.xrLabel2.StyleName = "Title"; - this.xrLabel2.StylePriority.UseFont = false; - this.xrLabel2.Text = "Wochenstunden: [WeeklyTotalHoursByContract!0.00], FLS/Woche: [FLSTotalHoursByCont" + - "ract!0.00]"; - // - // xrLabel1 - // - this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.FullName")}); - this.xrLabel1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.xrLabel1.Multiline = true; - this.xrLabel1.Name = "xrLabel1"; - this.xrLabel1.SizeF = new System.Drawing.SizeF(676.9999F, 25F); - this.xrLabel1.StyleName = "Title"; - this.xrLabel1.StylePriority.UseFont = false; - this.xrLabel1.Text = "xrLabel1"; - // - // xrTableDetail - // - this.xrTableDetail.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) - | DevExpress.XtraPrinting.BorderSide.Bottom))); - this.xrTableDetail.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrTableDetail.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.xrTableDetail.Name = "xrTableDetail"; - this.xrTableDetail.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrTableDetail.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRowDetail}); - this.xrTableDetail.SizeF = new System.Drawing.SizeF(748F, 25F); - this.xrTableDetail.StylePriority.UseBorders = false; - this.xrTableDetail.StylePriority.UseFont = false; - this.xrTableDetail.StylePriority.UsePadding = false; - this.xrTableDetail.StylePriority.UseTextAlignment = false; - this.xrTableDetail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - // - // xrTableRowDetail - // - this.xrTableRowDetail.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell3, - this.xrTableCell19, - this.xrTableCell2, - this.xrTableCell28, - this.xrTableCell8}); - this.xrTableRowDetail.Name = "xrTableRowDetail"; - this.xrTableRowDetail.Weight = 1D; - // - // xrTableCell3 - // - this.xrTableCell3.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.CustomerFullName")}); - this.xrTableCell3.Name = "xrTableCell3"; - this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F); - this.xrTableCell3.StylePriority.UseFont = false; - this.xrTableCell3.StylePriority.UsePadding = false; - this.xrTableCell3.StylePriority.UseTextAlignment = false; - this.xrTableCell3.Text = "xrTableCell3"; - this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell3.Weight = 0.18034265103697025D; - // - // xrTableCell19 - // - this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.TimeRangeString", "{0:0.00}")}); - this.xrTableCell19.Name = "xrTableCell19"; - this.xrTableCell19.Text = "xrTableCell19"; - this.xrTableCell19.Weight = 0.15329125338142471D; - // - // xrTableCell2 - // - this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.OrganisationName")}); - this.xrTableCell2.Name = "xrTableCell2"; - this.xrTableCell2.Text = "xrTableCell2"; - this.xrTableCell2.Weight = 0.15329125338142469D; - // - // xrTableCell28 - // - this.xrTableCell28.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.ApprovedHoursPerWeek", "{0:0.00}")}); - this.xrTableCell28.Name = "xrTableCell28"; - this.xrTableCell28.Text = "xrTableCell28"; - this.xrTableCell28.Weight = 0.090171325518485085D; - // - // xrTableCell8 - // - this.xrTableCell8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.Custom3")}); - this.xrTableCell8.Name = "xrTableCell8"; - this.xrTableCell8.Weight = 0.097385031559963892D; - // - // DetailReport - // - this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { - this.Detail1, - this.DetailReport1}); - this.DetailReport.DataMember = "EmployeeDetailList"; - this.DetailReport.DataSource = this.bindingSource1; - this.DetailReport.Level = 0; - this.DetailReport.Name = "DetailReport"; - // - // DetailReport1 - // - this.DetailReport1.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { - this.Detail2, - this.GroupHeader2, - this.GroupFooter1}); - this.DetailReport1.DataMember = "EmployeeDetailList.SupportConceptDetailList"; - this.DetailReport1.DataSource = this.bindingSource1; - this.DetailReport1.Level = 0; - this.DetailReport1.Name = "DetailReport1"; - // - // Detail2 - // - this.Detail2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTableDetail}); - this.Detail2.HeightF = 25F; - this.Detail2.Name = "Detail2"; - // - // GroupHeader2 - // - this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTableHeader}); - this.GroupHeader2.HeightF = 40F; - this.GroupHeader2.Name = "GroupHeader2"; - this.GroupHeader2.RepeatEveryPage = true; - // - // xrTableHeader - // - this.xrTableHeader.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) - | DevExpress.XtraPrinting.BorderSide.Right) - | DevExpress.XtraPrinting.BorderSide.Bottom))); - this.xrTableHeader.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold); - this.xrTableHeader.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.xrTableHeader.Name = "xrTableHeader"; - this.xrTableHeader.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrTableHeader.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRowHeader}); - this.xrTableHeader.SizeF = new System.Drawing.SizeF(748F, 40F); - this.xrTableHeader.StylePriority.UseBorders = false; - this.xrTableHeader.StylePriority.UseFont = false; - this.xrTableHeader.StylePriority.UsePadding = false; - this.xrTableHeader.StylePriority.UseTextAlignment = false; - this.xrTableHeader.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - // - // xrTableRowHeader - // - this.xrTableRowHeader.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell5, - this.xrTableCell4, - this.xrTableCell1, - this.xrTableCell9, - this.xrTableCell7}); - this.xrTableRowHeader.Name = "xrTableRowHeader"; - this.xrTableRowHeader.Weight = 1.5999999999999996D; - // - // xrTableCell5 - // - this.xrTableCell5.Name = "xrTableCell5"; - this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F); - this.xrTableCell5.StylePriority.UsePadding = false; - this.xrTableCell5.StylePriority.UseTextAlignment = false; - this.xrTableCell5.Text = "Klient/in"; - this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell5.Weight = 0.18034264782021736D; - // - // xrTableCell4 - // - this.xrTableCell4.Name = "xrTableCell4"; - this.xrTableCell4.Text = "Zeitraum"; - this.xrTableCell4.Weight = 0.15329125478030675D; - // - // xrTableCell1 - // - this.xrTableCell1.Name = "xrTableCell1"; - this.xrTableCell1.Text = "Kostenträger"; - this.xrTableCell1.Weight = 0.15329125478030678D; - // - // xrTableCell9 - // - this.xrTableCell9.Multiline = true; - this.xrTableCell9.Name = "xrTableCell9"; - this.xrTableCell9.Text = "Bewilligt/Woche"; - this.xrTableCell9.Weight = 0.090171325937473845D; - // - // xrTableCell7 - // - this.xrTableCell7.Name = "xrTableCell7"; - this.xrTableCell7.Text = "Tatsächliches Soll/Woche"; - this.xrTableCell7.Weight = 0.097385031983482265D; - // - // GroupFooter1 - // - this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTable1}); - this.GroupFooter1.HeightF = 60F; - this.GroupFooter1.Level = 1; - this.GroupFooter1.Name = "GroupFooter1"; - // - // xrTable1 - // - this.xrTable1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.xrTable1.Name = "xrTable1"; - this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRow1}); - this.xrTable1.SizeF = new System.Drawing.SizeF(639.9999F, 25F); - this.xrTable1.StylePriority.UseBorders = false; - this.xrTable1.StylePriority.UseFont = false; - this.xrTable1.StylePriority.UsePadding = false; - this.xrTable1.StylePriority.UseTextAlignment = false; - this.xrTable1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - // - // xrTableRow1 - // - this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell35, - this.xrTableCell38, - this.xrTableCell6, - this.cellSollGesamt}); - this.xrTableRow1.Name = "xrTableRow1"; - this.xrTableRow1.Weight = 1D; - // - // xrTableCell35 - // - this.xrTableCell35.Name = "xrTableCell35"; - this.xrTableCell35.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F); - this.xrTableCell35.StylePriority.UseFont = false; - this.xrTableCell35.StylePriority.UsePadding = false; - this.xrTableCell35.StylePriority.UseTextAlignment = false; - this.xrTableCell35.Text = "Gesamt"; - this.xrTableCell35.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell35.Weight = 0.18034254096455143D; - // - // xrTableCell38 - // - this.xrTableCell38.Name = "xrTableCell38"; - this.xrTableCell38.Weight = 0.15329111579090118D; - // - // xrTableCell6 - // - this.xrTableCell6.Name = "xrTableCell6"; - this.xrTableCell6.Weight = 0.15329140580312939D; - // - // cellSollGesamt - // - this.cellSollGesamt.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.ApprovedHoursPerWeek", "{0:0.00}")}); - this.cellSollGesamt.Name = "cellSollGesamt"; - this.cellSollGesamt.Text = "cellSollGesamt"; - this.cellSollGesamt.Weight = 0.090171342851318267D; - // - // bindingSource1 - // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterauslastungRO); - // - // ReportHeader - // - this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.lblMonat}); - this.ReportHeader.HeightF = 60F; - this.ReportHeader.Name = "ReportHeader"; - // - // lblMonat - // - this.lblMonat.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "ReportStartDate", "Auslastung {0:MMMM yy}")}); - this.lblMonat.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); - this.lblMonat.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.lblMonat.Multiline = true; - this.lblMonat.Name = "lblMonat"; - this.lblMonat.SizeF = new System.Drawing.SizeF(676.9999F, 25F); - this.lblMonat.StyleName = "Title"; - this.lblMonat.StylePriority.UseFont = false; - this.lblMonat.Text = "lblMonat"; - // - // pageFooterBand1 - // - this.pageFooterBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrPageInfo2, - this.xrPageInfo1}); - this.pageFooterBand1.HeightF = 48F; - this.pageFooterBand1.Name = "pageFooterBand1"; - // - // xrPageInfo2 - // - this.xrPageInfo2.Font = new System.Drawing.Font("Arial", 8F); - this.xrPageInfo2.Format = "Seite {0} von {1}"; - this.xrPageInfo2.LocationFloat = new DevExpress.Utils.PointFloat(342.4169F, 25F); - this.xrPageInfo2.Name = "xrPageInfo2"; - this.xrPageInfo2.SizeF = new System.Drawing.SizeF(297.5831F, 23F); - this.xrPageInfo2.StyleName = "PageInfo"; - this.xrPageInfo2.StylePriority.UseFont = false; - this.xrPageInfo2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight; - // - // xrPageInfo1 - // - this.xrPageInfo1.Font = new System.Drawing.Font("Arial", 8F); - this.xrPageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F); - this.xrPageInfo1.Name = "xrPageInfo1"; - this.xrPageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime; - this.xrPageInfo1.SizeF = new System.Drawing.SizeF(287F, 23F); - this.xrPageInfo1.StyleName = "PageInfo"; - this.xrPageInfo1.StylePriority.UseFont = false; - // - // Title - // - this.Title.BackColor = System.Drawing.Color.White; - this.Title.BorderColor = System.Drawing.SystemColors.ControlText; - this.Title.Borders = DevExpress.XtraPrinting.BorderSide.None; - this.Title.BorderWidth = 1F; - this.Title.Font = new System.Drawing.Font("Times New Roman", 24F); - this.Title.ForeColor = System.Drawing.Color.Black; - this.Title.Name = "Title"; - // - // FieldCaption - // - this.FieldCaption.BackColor = System.Drawing.Color.White; - this.FieldCaption.BorderColor = System.Drawing.SystemColors.ControlText; - this.FieldCaption.Borders = DevExpress.XtraPrinting.BorderSide.None; - this.FieldCaption.BorderWidth = 1F; - this.FieldCaption.Font = new System.Drawing.Font("Times New Roman", 10F, System.Drawing.FontStyle.Bold); - this.FieldCaption.ForeColor = System.Drawing.Color.Black; - this.FieldCaption.Name = "FieldCaption"; - // - // PageInfo - // - this.PageInfo.BackColor = System.Drawing.Color.White; - this.PageInfo.BorderColor = System.Drawing.SystemColors.ControlText; - this.PageInfo.Borders = DevExpress.XtraPrinting.BorderSide.None; - this.PageInfo.BorderWidth = 1F; - this.PageInfo.Font = new System.Drawing.Font("Times New Roman", 8F); - this.PageInfo.ForeColor = System.Drawing.Color.Black; - this.PageInfo.Name = "PageInfo"; - // - // DataField - // - this.DataField.BackColor = System.Drawing.Color.White; - this.DataField.BorderColor = System.Drawing.SystemColors.ControlText; - this.DataField.Borders = DevExpress.XtraPrinting.BorderSide.None; - this.DataField.BorderWidth = 1F; - this.DataField.Font = new System.Drawing.Font("Times New Roman", 8F); - this.DataField.ForeColor = System.Drawing.SystemColors.ControlText; - this.DataField.Name = "DataField"; - // - // fieldFLS - // - this.fieldFLS.DataMember = "FLSReportGroups"; - this.fieldFLS.Expression = "[TotalFLM] / 60"; - this.fieldFLS.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; - this.fieldFLS.Name = "fieldFLS"; - // - // topMarginBand1 - // - this.topMarginBand1.HeightF = 50F; - this.topMarginBand1.Name = "topMarginBand1"; - // - // bottomMarginBand1 - // - this.bottomMarginBand1.HeightF = 30F; - this.bottomMarginBand1.Name = "bottomMarginBand1"; - // - // fieldTotalSC - // - this.fieldTotalSC.DataMember = "EmployeeDetailList.SupportConceptDetailList"; - this.fieldTotalSC.Expression = "[DirectIst]+[MittelbarIst]"; - this.fieldTotalSC.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; - this.fieldTotalSC.Name = "fieldTotalSC"; - // - // fieldTotalEmp - // - this.fieldTotalEmp.DataMember = "EmployeeDetailList"; - this.fieldTotalEmp.Expression = "[DirectIst]+[MittelbarIst]"; - this.fieldTotalEmp.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; - this.fieldTotalEmp.Name = "fieldTotalEmp"; - // - // Mitarbeiterauslastung - // - this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { - this.Detail, - this.DetailReport, - this.ReportHeader, - this.pageFooterBand1, - this.topMarginBand1, - this.bottomMarginBand1}); - this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] { - this.fieldFLS, - this.fieldTotalSC, - this.fieldTotalEmp}); - this.DataSource = this.bindingSource1; - this.Margins = new System.Drawing.Printing.Margins(49, 30, 50, 30); - this.PageHeight = 1169; - this.PageWidth = 827; - this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; - this.StyleSheet.AddRange(new DevExpress.XtraReports.UI.XRControlStyle[] { - this.Title, - this.FieldCaption, - this.PageInfo, - this.DataField}); - this.Version = "17.1"; - ((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); - - } - - #endregion - - private DevExpress.XtraReports.UI.DetailBand Detail; - private System.Windows.Forms.BindingSource bindingSource1; - private DevExpress.XtraReports.UI.DetailBand Detail1; - private DevExpress.XtraReports.UI.DetailReportBand DetailReport; - private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; - private DevExpress.XtraReports.UI.XRLabel lblMonat; - private DevExpress.XtraReports.UI.PageFooterBand pageFooterBand1; - private DevExpress.XtraReports.UI.XRPageInfo xrPageInfo2; - private DevExpress.XtraReports.UI.XRPageInfo xrPageInfo1; - private DevExpress.XtraReports.UI.XRControlStyle Title; - private DevExpress.XtraReports.UI.XRControlStyle FieldCaption; - private DevExpress.XtraReports.UI.XRControlStyle PageInfo; - private DevExpress.XtraReports.UI.XRControlStyle DataField; - private DevExpress.XtraReports.UI.XRTable xrTableHeader; - private DevExpress.XtraReports.UI.XRTableRow xrTableRowHeader; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell5; - private DevExpress.XtraReports.UI.XRTable xrTableDetail; - private DevExpress.XtraReports.UI.XRTableRow xrTableRowDetail; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell3; - private DevExpress.XtraReports.UI.CalculatedField fieldFLS; - private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1; - private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell9; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell19; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell28; - private DevExpress.XtraReports.UI.XRTable xrTable1; - private DevExpress.XtraReports.UI.XRTableRow xrTableRow1; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell35; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell38; - private DevExpress.XtraReports.UI.XRTableCell cellSollGesamt; - private DevExpress.XtraReports.UI.DetailReportBand DetailReport1; - private DevExpress.XtraReports.UI.DetailBand Detail2; - private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2; - private DevExpress.XtraReports.UI.XRLabel xrLabel1; - private DevExpress.XtraReports.UI.CalculatedField fieldTotalSC; - private DevExpress.XtraReports.UI.CalculatedField fieldTotalEmp; - private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1; - private DevExpress.XtraReports.UI.XRLabel xrLabel2; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell2; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell8; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell7; - } -} diff --git a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.resx b/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.resx deleted file mode 100644 index d25f3eba2..000000000 --- a/ReportImp/BetreutesWohnenWoellReports/Mitarbeiterauslastung.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/ReportImp/DiakonischesWerkDinslakenSozio/DiakonischesWerkDinslakenSozio.csproj b/ReportImp/DiakonischesWerkDinslakenSozio/DiakonischesWerkDinslakenSozio.csproj index 75528aed1..cddd51800 100644 --- a/ReportImp/DiakonischesWerkDinslakenSozio/DiakonischesWerkDinslakenSozio.csproj +++ b/ReportImp/DiakonischesWerkDinslakenSozio/DiakonischesWerkDinslakenSozio.csproj @@ -31,6 +31,7 @@ 4 + @@ -39,6 +40,7 @@ + diff --git a/ReportImp/DiakonischesWerkDinslakenSozio/Invoicing/SoziotherapieInvoiceCreation.cs b/ReportImp/DiakonischesWerkDinslakenSozio/Invoicing/SoziotherapieInvoiceCreation.cs index c13786d0f..dd466a56b 100644 --- a/ReportImp/DiakonischesWerkDinslakenSozio/Invoicing/SoziotherapieInvoiceCreation.cs +++ b/ReportImp/DiakonischesWerkDinslakenSozio/Invoicing/SoziotherapieInvoiceCreation.cs @@ -66,18 +66,18 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing if (ii.ItemDescription.ToLower().Contains("gruppe")) { - if (iServiceRecord.RoundedDuration <= 45) - { - ii.UnitDescription = "GPos: 2002678"; // 2 bis 5 Teilnehmer - } - else if (iServiceRecord.RoundedDuration <= 60) - { - ii.UnitDescription = "GPos: 2002677"; // 2 bis 5 Teilnehmer - } - else - { + //if (iServiceRecord.RoundedDuration <= 45) + //{ + // ii.UnitDescription = "GPos: 2002678"; // 2 bis 5 Teilnehmer + //} + //else if (iServiceRecord.RoundedDuration <= 60) + //{ + // ii.UnitDescription = "GPos: 2002677"; // 2 bis 5 Teilnehmer + //} + //else + //{ ii.UnitDescription = "GPos: 2002672"; // 2 bis 5 Teilnehmer - 90 Min - } + //} // Gibt 2 Preise, einmal für Funktion Primärkasse und einmal für Funktion Ersatzkasse var preisGruppe = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value); ii.AmountPerUnit = preisGruppe; @@ -92,17 +92,13 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount; ii.GrossAmountTotal = ii.AmountTotal; - if (ii.ItemDescription.ToLower().Contains("probatorik")) - { - ii.UnitDescription = "GPos: 2001607"; - } - else if (ii.ItemDescription.ToLower().Contains("video")) + if (ii.ItemDescription.ToLower().Contains("video")) { if (iServiceRecord.RoundedDuration <= 30) { ii.UnitDescription = "GPos: 2001616"; } - else if (iServiceRecord.RoundedDuration > 30) + else { ii.UnitDescription = "GPos: 2001615"; } @@ -113,30 +109,38 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing { ii.UnitDescription = "GPos: 2001618"; } - else if (iServiceRecord.RoundedDuration > 30) + else { ii.UnitDescription = "GPos: 2001617"; } } - else + else if (ii.ItemDescription.ToLower().Contains("aufsuchende einheit")) { - if (iServiceRecord.RoundedDuration <= 10) + if (iServiceRecord.RoundedDuration <= 30) { - ii.UnitDescription = "GPos: 2001613"; + ii.UnitDescription = "GPos: 2001612 / 2009690"; } - else if (iServiceRecord.RoundedDuration <= 30) + else { - ii.UnitDescription = "GPos: 2001612"; + ii.UnitDescription = "GPos: 2001610 / 2009690"; } - else if (iServiceRecord.RoundedDuration <= 45) + } + else if (ii.ItemDescription.ToLower().Contains("probatorik")) + { + if (ii.ItemDescription.ToLower().Contains("aufsuchend")) { - ii.UnitDescription = "GPos: 2001611"; + ii.UnitDescription = "GPos: 2001607 / 2009690"; } - else if (iServiceRecord.RoundedDuration > 45) + else if (ii.ItemDescription.ToLower().Contains("büro")) { - ii.UnitDescription = "GPos: 2001610"; + ii.UnitDescription = "GPos: 2001607"; } } + + else if (ii.ItemDescription.ToLower().Contains("büro-einheit")) + { + ii.UnitDescription = "GPos: 2001610"; + } } return ii; diff --git a/ReportImp/DiakonischesWerkDinslakenSozio/LeistungsnachweisSoziotherapie.cs b/ReportImp/DiakonischesWerkDinslakenSozio/LeistungsnachweisSoziotherapie.cs index 7333a2617..cda07e0bc 100644 --- a/ReportImp/DiakonischesWerkDinslakenSozio/LeistungsnachweisSoziotherapie.cs +++ b/ReportImp/DiakonischesWerkDinslakenSozio/LeistungsnachweisSoziotherapie.cs @@ -58,7 +58,7 @@ namespace DiakonischesWerkDinslakenSozio { s.IsGroup = true; gesamtGruppe += s.Minutes; - s.ServiceDescription = "E"; + s.ServiceDescription = "G"; s.Notice5 = "2002672"; } else @@ -71,11 +71,11 @@ namespace DiakonischesWerkDinslakenSozio s.ServiceDescription = "V"; if (s.Minutes <= 30) { - s.Notice5 = "2001615"; + s.Notice5 = "2001616"; } else { - s.Notice5 = "2001616"; + s.Notice5 = "2001615"; } } else if (s.ServiceDescription.Contains("Telefon")) @@ -90,27 +90,37 @@ namespace DiakonischesWerkDinslakenSozio s.Notice5 = "2001617"; } } - else if (s.ServiceDescription.Contains("Probe")) - { - s.Notice5 = "2001607"; - } - - else if (s.ServiceDescription.Contains("Einrichtung") || s.ServiceDescription == "E" || s.ServiceDescription.Contains("Gruppe")) - { - s.ServiceDescription = "E"; - } - else + else if (s.ServiceDescription.Contains("Aufsuchende Einheit")) { s.ServiceDescription = "A"; if (s.Minutes <= 30) { - s.Notice5 = "2001612"; + s.Notice5 = "2001612 / 2009690"; } else { - s.Notice5 = "2001610"; + s.Notice5 = "2001610 / 2009690"; } } + else if (s.ServiceDescription.Contains("Probatorik")) + { + if (s.ServiceDescription.ToLower().Contains("aufsuchend")) + { + s.ServiceDescription = "AP"; + s.Notice5 = "2001607 / 2009690"; + } + else if (s.ServiceDescription.ToLower().Contains("büro")) + { + s.ServiceDescription = "P"; + s.Notice5 = "2001607"; + } + } + + else if (s.ServiceDescription.Contains("Büro-Einheit")) + { + s.ServiceDescription = "E"; + s.Notice5 = "2001610"; + } } } diff --git a/Service/Core/Utils.cs b/Service/Core/Utils.cs index 185bde3aa..4b85928db 100644 --- a/Service/Core/Utils.cs +++ b/Service/Core/Utils.cs @@ -88,10 +88,10 @@ namespace BeWo.Service.Core public static bool SendMail(string subject, string body, string toAddress) { - return SendMail(null, null, subject, body, toAddress); + return SendMail(subject, body, toAddress, null, null); } - public static bool SendMail(string senderName, string senderEMail, string subject, string body, string toAddress) + public static bool SendMail(string subject , string body, string toAddress, string senderName, string senderEMail) { var server = ConfigurationManager.AppSettings.Get("SmptServer"); var user = ConfigurationManager.AppSettings.Get("SmtpUser"); @@ -114,27 +114,28 @@ namespace BeWo.Service.Core var body2 = "Kunde: " + MultitenancyOperationContextExt.Current.Tenant; //body2 += "\r\nIP: " + GetClientIP(); body += "\n\n" + body2; - //} + //} + - //if (to.Equals()) - - return SendMail(senderEMail.Trim(), senderName, to, subject, body, server, user, pass, sendAsync); - } + senderEMail = senderEMail.Trim(); - public static bool SendMail(string fromEMail, string fromName, string to, string subject, string body, string smtpServer, string smtpUser, string smtpPassword, bool sendAsync) + return SendMail(subject, body, to, senderName, senderEMail, server, user, pass, sendAsync); + } + + public static bool SendMail(string subject, string body, string toAddress, string senderName, string senderEMail, string smtpServer, string smtpUser, string smtpPassword, bool sendAsync) { try { - if (!IsValidEmail(to) || !IsValidEmail(fromEMail)) + if (!IsValidEmail(toAddress) || !IsValidEmail(senderEMail)) { return false; } - String from = fromEMail; + String from = senderEMail; - if (to.Equals("support@bewoplaner.de")) + if (toAddress.Equals("support@bewoplaner.de")) { var supportSenderMail = ConfigurationManager.AppSettings.Get("SupportSenderEMail"); if (String.IsNullOrEmpty(supportSenderMail)) @@ -146,20 +147,20 @@ namespace BeWo.Service.Core MailMessage message = null; - if (String.IsNullOrEmpty(fromName)) - message = new MailMessage(from, to, subject, body); + if (String.IsNullOrEmpty(senderName)) + message = new MailMessage(from, toAddress, subject, body); else { MailAddress fromMailAddress = new MailAddress(from); - MailAddress toMailAddress = new MailAddress(to); + MailAddress toMailAddress = new MailAddress(toAddress); message = new MailMessage(fromMailAddress, toMailAddress); message.Subject = subject; message.Body = body; } - if (fromEMail != from) + if (senderEMail != from) { - message.ReplyToList.Add(new MailAddress(fromEMail, fromName)); + message.ReplyToList.Add(new MailAddress(senderEMail, senderName)); } diff --git a/Service/DCEntityMapper/GkvAbrechnungDC_GkvAbrechnung.cs b/Service/DCEntityMapper/GkvAbrechnungDC_GkvAbrechnung.cs index db47101d7..1c455471f 100644 --- a/Service/DCEntityMapper/GkvAbrechnungDC_GkvAbrechnung.cs +++ b/Service/DCEntityMapper/GkvAbrechnungDC_GkvAbrechnung.cs @@ -88,7 +88,7 @@ namespace BeWo.Service.DCEntityMapper if (isReady) { - if(!DakotaValidator.IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle)) + if(!Validator.IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle)) { isReady = false; tooltip = "Organisation fehlen Informationen"; diff --git a/Service/DCEntityMapper/InvoiceBaseDC_InvoiceBase.cs b/Service/DCEntityMapper/InvoiceBaseDC_InvoiceBase.cs index f93c4d34f..22e09cb19 100644 --- a/Service/DCEntityMapper/InvoiceBaseDC_InvoiceBase.cs +++ b/Service/DCEntityMapper/InvoiceBaseDC_InvoiceBase.cs @@ -147,7 +147,7 @@ namespace BeWo.Service.DCEntityMapper { pDataContract.CustomerFirstName = customer.Person.FirstName; pDataContract.CustomerLastName = customer.Person.LastName; - var error = DakotaValidator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus); + var error = Validator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus); pDataContract.IsGkvValidError = error; pDataContract.IsGkvValid = error is null; } diff --git a/Service/DCEntityMapper/MandatorDC_Mandator.cs b/Service/DCEntityMapper/MandatorDC_Mandator.cs index 9929c3a4b..0378ea482 100644 --- a/Service/DCEntityMapper/MandatorDC_Mandator.cs +++ b/Service/DCEntityMapper/MandatorDC_Mandator.cs @@ -1,6 +1,8 @@ +using BeWo.Data.Access; using BeWo.Data.Entities; using BS.Shared.DataContracts; +using System; namespace BeWo.Service.DCEntityMapper { @@ -30,6 +32,13 @@ namespace BeWo.Service.DCEntityMapper #endif pDataContract.Apikey = pEntity.Apikey; pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer; + var can_edit = GetCanEditIKLeistungserbringer(); + + pDataContract.CanEditIKLeistungserbringer = can_edit; + pDataContract.CanEditIKLeistungserbringerTooltip = can_edit ? null : + "Mit dem Senden mind. einer GKV Abrechnung haben Sie sich bereits\n" + + "mit dieser IK bei uns registiert. Bei Änderungswunsch wenden Sie\n" + + "sich bitte an unseren Support."; return pDataContract; } @@ -65,5 +74,21 @@ namespace BeWo.Service.DCEntityMapper return pDC.MandatorOid == pEntity.Oid; } + + private bool GetCanEditIKLeistungserbringer() + { + try + { + var row_count = DAOFactory.GenericDAO.GetRowCount(); + + return row_count == 0; + } + catch (Exception) + { + + } + + return true; + } } } \ No newline at end of file diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs index fa63a1a5c..e3cb31760 100644 --- a/Service/Plugins/PluginLoader.cs +++ b/Service/Plugins/PluginLoader.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Reflection; using System.Threading; +using BeWo.Data; using BS.Shared.Core; namespace BeWo.Service.Plugins @@ -391,7 +392,7 @@ namespace BeWo.Service.Plugins //t = "7653029063"; // SkF Leverkusen JuHi //t = "1453324901"; // Akkurat //t = "5000000000"; - //t = "5564670353"; // Mittelpunkt GbR + t = "5564670353"; // Mittelpunkt GbR //t = "3788859817"; // Zukunft Leben (Stephan Hekermann) //t = "2663321234"; // Aachener Laienhelfer Initiative e.V. //t = "6290975576"; // Caritasverband Kelheim diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs index 065eb1f15..97978092b 100644 --- a/Service/Plugins/VacationService.cs +++ b/Service/Plugins/VacationService.cs @@ -335,7 +335,7 @@ namespace BeWo.Service.Plugins { var res = new List(); var filters = new List { "URLAUB" }; - var reasons = DAOFactory.GenericDAO.GetAllActive(); + var reasons = DAOFactory.GenericDAO.GetAll(); foreach (var reason in reasons) { diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs index 619484017..20fb8a222 100644 --- a/Service/ServiceImplementations/AccountingServiceImp.cs +++ b/Service/ServiceImplementations/AccountingServiceImp.cs @@ -1007,12 +1007,12 @@ namespace BeWo.Service.ServiceImplementations var manager = new DakotaManager(); var mandatordc = new OperationsServiceImp().GetMandator(); - DakotaValidator.ValidateMandator(mandatordc); + Validator.ValidateMandator(mandatordc); var gkvAbrechnungDC = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkvAbrechnung); var orgadc = gkvAbrechnungDC.Organisation; - DakotaValidator.ValidateOrganisation(orgadc); + Validator.ValidateOrganisation(orgadc); var datenannahmestelle = orgadc.IKDatenannahmestelle; var (datenaustauschreferenz, transfernummer) = GetNextDatenaustauschreferenzTransfernummer(gkvAbrechnung, datenannahmestelle); @@ -1032,7 +1032,7 @@ namespace BeWo.Service.ServiceImplementations var servicedc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(service); var customerdc = MapperFactory.CustomerDC_Customer.MapToNewDC(customer); - DakotaValidator.ValidateCustomer(customerdc); + Validator.ValidateCustomer(customerdc); manager.Add(servicedc, orgadc, customerdc, mandatordc, dat_short, tra_short); } diff --git a/Service/ServiceImplementations/CustomerServiceImp.cs b/Service/ServiceImplementations/CustomerServiceImp.cs index ef1a05af3..3430fb140 100644 --- a/Service/ServiceImplementations/CustomerServiceImp.cs +++ b/Service/ServiceImplementations/CustomerServiceImp.cs @@ -859,7 +859,7 @@ namespace BeWo.Service.ServiceImplementations { IList list = DAOFactory.GenericDAO.GetAllActiveAndArchived(); - list = list.Where(x => DakotaValidator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList(); + list = list.Where(x => Validator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList(); return CreateCompactOrganisations(list); } diff --git a/Service/ServiceImplementations/MailServiceImp.cs b/Service/ServiceImplementations/MailServiceImp.cs index b2ded7807..27381b513 100644 --- a/Service/ServiceImplementations/MailServiceImp.cs +++ b/Service/ServiceImplementations/MailServiceImp.cs @@ -122,7 +122,7 @@ namespace BeWo.Service.ServiceImplementations } } - return Utils.SendMail(senderName, senderEMail, subject, body, null); + return Utils.SendMail(subject, body, null, senderName, senderEMail); } private MailDC CreateMailDC(Mail2Receiver m2r) diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs index 10855aa25..1976055f1 100644 --- a/Shared/BeWoEntityEnums.cs +++ b/Shared/BeWoEntityEnums.cs @@ -1297,4 +1297,13 @@ namespace BS.Shared Erprobung, Echt } + + public enum ValidationType + { + CustomerVersichertenstatus, + CustomerVersichertennummer, + OrganisationIKNumber, + OrganisationLeistungserbringergruppe, + OrganisationBezDatenannahmestelle + } } \ No newline at end of file diff --git a/Shared/Core/DakotaValidator.cs b/Shared/Core/Validator.cs similarity index 65% rename from Shared/Core/DakotaValidator.cs rename to Shared/Core/Validator.cs index 873283dc3..57e70ea9e 100644 --- a/Shared/Core/DakotaValidator.cs +++ b/Shared/Core/Validator.cs @@ -9,8 +9,49 @@ using System.Threading.Tasks; namespace BS.Shared.Core { - public static class DakotaValidator + public static class Validator { + public static bool? IsValid(ValidationType val_type, string val_str) + { + if (string.IsNullOrEmpty(val_str)) + return null; + + switch (val_type) + { + case ValidationType.CustomerVersichertenstatus: + return IsVersichertenstatusValid(val_str); + case ValidationType.CustomerVersichertennummer: + return IsVersichertennummerValid(val_str); + case ValidationType.OrganisationIKNumber: + return IsIKNumberValid(val_str); + case ValidationType.OrganisationLeistungserbringergruppe: + return IsLeistungserbringergruppeValid(val_str); + case ValidationType.OrganisationBezDatenannahmestelle: + return IsBezDatenannahmestelleValid(val_str); + } + + return false; + } + + public static string InvalidTooltipTxt(ValidationType val_type) + { + switch (val_type) + { + case ValidationType.CustomerVersichertenstatus: + return "CustomerVersichertenstatus invalid"; + case ValidationType.CustomerVersichertennummer: + return "CustomerVersichertennummer invalid"; + case ValidationType.OrganisationIKNumber: + return "OrganisationIKNumber invalid"; + case ValidationType.OrganisationLeistungserbringergruppe: + return "OrganisationLeistungserbringergruppe invalid"; + case ValidationType.OrganisationBezDatenannahmestelle: + return "OrganisationBezDatenannahmestelle invalid"; + } + + return "xxx"; + } + public static string ValidateCustomer(string insuranceNumber, string versichertenStatus) { bool valid_number = IsVersichertennummerValid(insuranceNumber); @@ -26,21 +67,14 @@ namespace BS.Shared.Core return null; } - /// - /// Validiert in erster Phase den Mandator. - /// public static void ValidateMandator(MandatorDC mandatordc) { if (mandatordc == null) throw new GkvException("Mandator ist null"); - if (!DakotaValidator.IsIKNumberValid(mandatordc.IKLeistungserbringer)) + if (!Validator.IsIKNumberValid(mandatordc.IKLeistungserbringer)) throw new GkvException($"Die IK Nummer des Leistungserbringers \"{mandatordc.IKLeistungserbringer}\" ist ungültig."); } - - /// - /// Validiert in zweiter Phase die Daten. Bei Fehler wird eine DakotaException geworfen. - /// public static void ValidateCustomer(CustomerDC customerDC) { string error = null; @@ -55,7 +89,6 @@ namespace BS.Shared.Core if (error != null) throw new GkvException(error); } - public static void ValidateOrganisation(OrganisationDC orga) { string error = null; @@ -76,17 +109,22 @@ namespace BS.Shared.Core if (error != null) throw new GkvException(error); } - public static bool IsOrganisationInformationValid(string ik_datenannahmestelle, string ik_kostentrager, string ik_krankenkasse, string bez_datenannahmestelle) - => IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && !string.IsNullOrEmpty(bez_datenannahmestelle); + => IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && IsBezDatenannahmestelleValid(bez_datenannahmestelle); public static bool IsIKNumberValid(params string[] iks) => iks?.All(IsIKNumberValid) ?? false; + public static bool IsBezDatenannahmestelleValid(string bez_datenannahmestelle) + { + return !string.IsNullOrWhiteSpace(bez_datenannahmestelle); + } public static bool IsIKNumberValid(string iknummer) { if (iknummer == null) return false; + iknummer = iknummer.Trim(); + if (iknummer.Length != 9) return false; @@ -97,7 +135,12 @@ namespace BS.Shared.Core if (nummer == null) return false; - if (nummer.Length < 10) + nummer = nummer.Trim(); + + if (nummer.Length < 6) + return false; + + if (nummer.Length > 12) return false; return true; @@ -107,7 +150,15 @@ namespace BS.Shared.Core if (status == null) return false; - if (status.Length != 5 && status.Length != 7) + status = status.Trim(); + + if (status.Length == 0) + return false; + + if (status.Length == 6) + return false; + + if (status.Length >= 8) return false; return true; @@ -117,6 +168,8 @@ namespace BS.Shared.Core if (code == null) return false; + code = code.Trim(); + if (code.Length != 5 && code.Length != 7) return false; diff --git a/Shared/DataContracts/MandatorDC.cs b/Shared/DataContracts/MandatorDC.cs index 02b09bd88..1c9e00c80 100644 --- a/Shared/DataContracts/MandatorDC.cs +++ b/Shared/DataContracts/MandatorDC.cs @@ -58,5 +58,11 @@ namespace BS.Shared.DataContracts [DataMember] public string IKLeistungserbringer { get; set; } + + [DataMember] + public bool CanEditIKLeistungserbringer { get; set; } + + [DataMember] + public string CanEditIKLeistungserbringerTooltip { get; set; } } } \ No newline at end of file diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj index c242fc85b..93b00d5e8 100644 --- a/Shared/Shared.csproj +++ b/Shared/Shared.csproj @@ -135,7 +135,7 @@ - +