From 93bac17ca257ed62f5b6fe974cd0c85a0a03de0c Mon Sep 17 00:00:00 2001 From: Alexandra Date: Sat, 2 Mar 2024 09:32:11 +0100 Subject: [PATCH 01/10] Wetterleuchten/Budgetnachweis - neue Telefonnr --- .../Wetterleuchten/Budgetnachweis.Designer.cs | 11 ++--- .../Budgetnachweis2.Designer.cs | 41 ++++++++++--------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/ReportImp/Wetterleuchten/Budgetnachweis.Designer.cs b/ReportImp/Wetterleuchten/Budgetnachweis.Designer.cs index 389433484..8fbb2b5dd 100644 --- a/ReportImp/Wetterleuchten/Budgetnachweis.Designer.cs +++ b/ReportImp/Wetterleuchten/Budgetnachweis.Designer.cs @@ -288,7 +288,7 @@ namespace Wetterleuchten this.xrLabel19.Name = "xrLabel19"; this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel19.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel19.SizeF = new System.Drawing.SizeF(142.1041F, 73.24997F); + this.xrLabel19.SizeF = new System.Drawing.SizeF(142.1041F, 89.99999F); this.xrLabel19.StylePriority.UseBorders = false; this.xrLabel19.StylePriority.UseFont = false; this.xrLabel19.Text = "Ansprechpartner/in:\r\nTelefon:\r\nFax:\r\nE-Mail:"; @@ -301,14 +301,15 @@ namespace Wetterleuchten this.xrLabel1.Name = "xrLabel1"; this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel1.SizeF = new System.Drawing.SizeF(223.44F, 73.24997F); + this.xrLabel1.SizeF = new System.Drawing.SizeF(223.44F, 90F); this.xrLabel1.StylePriority.UseBorders = false; this.xrLabel1.StylePriority.UseFont = false; - this.xrLabel1.Text = "Cristina Rohmann\r\n02335-8448920\r\n02335-8448921\r\nwetterleuchten.kst@t-online.de"; + this.xrLabel1.Text = "Cristina Rohmann\r\n02330-9165754\r\n02330-9165755\r\nc.rohmann@verein-\r\nwetterleuchten" + + ".de"; // // xrLabel2 // - this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(351.4559F, 94.29163F); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(351.4559F, 111.0417F); this.xrLabel2.Multiline = true; this.xrLabel2.Name = "xrLabel2"; this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -371,7 +372,7 @@ namespace Wetterleuchten // // xrLabel11 // - this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(493.56F, 94.29163F); + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(493.56F, 111.0417F); this.xrLabel11.Multiline = true; this.xrLabel11.Name = "xrLabel11"; this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); diff --git a/ReportImp/Wetterleuchten/Budgetnachweis2.Designer.cs b/ReportImp/Wetterleuchten/Budgetnachweis2.Designer.cs index 1f3df388d..c4050a379 100644 --- a/ReportImp/Wetterleuchten/Budgetnachweis2.Designer.cs +++ b/ReportImp/Wetterleuchten/Budgetnachweis2.Designer.cs @@ -48,7 +48,6 @@ namespace Wetterleuchten.Neu this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand(); this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel(); @@ -63,6 +62,7 @@ namespace Wetterleuchten.Neu this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // @@ -291,27 +291,14 @@ namespace Wetterleuchten.Neu this.xrLabel19.Name = "xrLabel19"; this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel19.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel19.SizeF = new System.Drawing.SizeF(142.1041F, 73.24997F); + this.xrLabel19.SizeF = new System.Drawing.SizeF(142.1041F, 89.04168F); this.xrLabel19.StylePriority.UseBorders = false; this.xrLabel19.StylePriority.UseFont = false; this.xrLabel19.Text = "Ansprechpartner/in:\r\nTelefon:\r\nFax:\r\nE-Mail:"; // - // xrLabel1 - // - this.xrLabel1.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); - this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(493.5576F, 20.00001F); - this.xrLabel1.Multiline = true; - this.xrLabel1.Name = "xrLabel1"; - this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); - this.xrLabel1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel1.SizeF = new System.Drawing.SizeF(223.44F, 73.24997F); - this.xrLabel1.StylePriority.UseBorders = false; - this.xrLabel1.StylePriority.UseFont = false; - this.xrLabel1.Text = "Cristina Rohmann\r\n02335-8448920\r\n02335-8448921\r\nwetterleuchten.kst@t-online.de"; - // // xrLabel2 // - this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(351.4534F, 93.24995F); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(351.4534F, 110.7709F); this.xrLabel2.Multiline = true; this.xrLabel2.Name = "xrLabel2"; this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -324,6 +311,7 @@ namespace Wetterleuchten.Neu // GroupHeader1 // this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.xrLabel1, this.xrLabel14, this.xrLabel_RecipientContactPerson, this.xrLabel_RecipientDivision, @@ -336,7 +324,6 @@ namespace Wetterleuchten.Neu this.xrLabel6, this.xrLabel5, this.xrLabel2, - this.xrLabel1, this.xrLabel19}); this.GroupHeader1.Font = new System.Drawing.Font("Arial", 11F); this.GroupHeader1.HeightF = 385.0417F; @@ -420,12 +407,12 @@ namespace Wetterleuchten.Neu // // xrLabel11 // - this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(493.5576F, 93.24995F); + this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(493.5576F, 110.7709F); this.xrLabel11.Multiline = true; this.xrLabel11.Name = "xrLabel11"; this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel11.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel11.SizeF = new System.Drawing.SizeF(154.6041F, 73.24998F); + this.xrLabel11.SizeF = new System.Drawing.SizeF(166.4398F, 73.24998F); this.xrLabel11.StylePriority.UseBorders = false; this.xrLabel11.StylePriority.UseFont = false; this.xrLabel11.Text = "60-33/01-03/40 N 08"; @@ -469,6 +456,20 @@ namespace Wetterleuchten.Neu // bindingSource1 // this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO); + // + // xrLabel1 + // + this.xrLabel1.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(493.56F, 20.00001F); + this.xrLabel1.Multiline = true; + this.xrLabel1.Name = "xrLabel1"; + this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); + this.xrLabel1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel1.SizeF = new System.Drawing.SizeF(170F, 90F); + this.xrLabel1.StylePriority.UseBorders = false; + this.xrLabel1.StylePriority.UseFont = false; + this.xrLabel1.Text = "Cristina Rohmann\r\n02330-9165754\r\n02330-9165755\r\nc.rohmann@verein-\r\nwetterleuchten" + + ".de"; // // Budgetnachweis // @@ -504,7 +505,6 @@ namespace Wetterleuchten.Neu private DevExpress.XtraReports.UI.XRLabel xrLabel35; private DevExpress.XtraReports.UI.XRLine xrLine1; private DevExpress.XtraReports.UI.XRLabel xrLabel19; - private DevExpress.XtraReports.UI.XRLabel xrLabel1; private DevExpress.XtraReports.UI.XRLabel xrLabel2; private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1; private DevExpress.XtraReports.UI.XRLabel xrLabel4; @@ -526,5 +526,6 @@ namespace Wetterleuchten.Neu private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientDivision; private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientStreet; private DevExpress.XtraReports.UI.XRLabel RecipientPostCodeAndTown; + private DevExpress.XtraReports.UI.XRLabel xrLabel1; } } From 37a2c99778c7c1d8fff5d70ee84db6236d52e238 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Sat, 2 Mar 2024 09:32:53 +0100 Subject: [PATCH 02/10] FeidPartnerReports - Anpassung Ministatistik --- .../CustomSupportConceptAnalysisCreator.cs | 105 ++++++++++++++++++ .../CustomServiceRecordStatisticFactory.cs | 55 +++++---- 2 files changed, 139 insertions(+), 21 deletions(-) create mode 100644 ReportImp/FeidPartnerReports/CustomSupportConceptAnalysisCreator.cs diff --git a/ReportImp/FeidPartnerReports/CustomSupportConceptAnalysisCreator.cs b/ReportImp/FeidPartnerReports/CustomSupportConceptAnalysisCreator.cs new file mode 100644 index 000000000..3bd523e38 --- /dev/null +++ b/ReportImp/FeidPartnerReports/CustomSupportConceptAnalysisCreator.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Service.DCEntityMapper; + +using BS.Shared; +using BS.Shared.Core; +using BS.Shared.DataContracts; +using BS.Shared.DataContracts.Compact; +using BS.Shared.Extensions; +using BS.Shared.Services; +using BeWo.Service.Configuration; +using BeWo.Service.Plugins; +using BeWo.Service.ServiceImplementations; + +namespace FeidPartnerReports +{ + public class CustomSupportConceptAnalysisCreator : SupportConceptAnalysisCreator + { + public override List GetServiceRecordDCs(CostBearer2SupportConcept c2s, DateTime minDate, DateTime maxDate) + { + var dcList = new List(); + if (_cs2ServiceRecords != null && _cs2ServiceRecords.Count > 0) + { + if (_cs2ServiceRecords.ContainsKey(c2s.Oid.Value)) + { + dcList = _cs2ServiceRecords[c2s.Oid.Value]; + dcList.Where(s => s.Start >= minDate && s.Start < maxDate).ToList(); + } + } + + // PseudoZeiteinträge gemäß Bewilligung hinzufügen + var service = new OperationsServiceImp(); + long cb2scOid = c2s.Oid.Value; + if (maxDate == DateTime.MaxValue) + { + maxDate = DateTime.Today; + } + + var stats = service.CreateSupportConceptStatistics(cb2scOid, maxDate); + if (stats.PeriodStatistics != null && stats.PeriodStatistics.Count > 0) + { + foreach (var item in stats.PeriodStatistics) + { + DateTime start = minDate; + DateTime end = maxDate; + DateTime bewStart = item.SupportConceptApprovalPeriod.StartDate ?? DateTime.MinValue; + DateTime bewEnd = item.SupportConceptApprovalPeriod.EndDate ?? DateTime.MaxValue; + if (bewEnd < end) + { + end = bewEnd; + } + if (bewStart > start) + { + start = bewStart; + } + + while (start < end.Date) + { + if (start > new DateTime(2024, 02, 29) && !EnthaeltEintraege(start, start.AddDays(7), dcList)) + { + var sr = new ServiceRecord(); + sr.Start = start; + sr.End = end; + sr.ServiceDescription = DAOFactory.GenericDAO.LoadByID(89); + sr.RoundedDuration = item.MinutesApprovedPerWeek; + + if (bewStart.DayOfWeek != DayOfWeek.Monday && start >= bewStart && start <= bewStart.GetNext(DayOfWeek.Sunday).Date) + { + DateTime sundayDt = bewStart.GetNext(DayOfWeek.Sunday).Date; + var days = sundayDt.Day - start.Day + 1; + var firstAppr = item.MinutesApprovedPerWeek / 7 * days; + sr.RoundedDuration = firstAppr; + } + else if (bewEnd.DayOfWeek != DayOfWeek.Sunday && start < bewEnd && start >= bewEnd.GetLast(DayOfWeek.Monday).Date) + { + DateTime mondayDt = bewEnd.GetLast(DayOfWeek.Monday).Date; + var days = start.Day - mondayDt.Day + 1; + var lastAppr = item.MinutesApprovedPerWeek / 7 * days; + sr.RoundedDuration = lastAppr; + } + + dcList.Add(CreateServiceRecordDC(sr)); + } + start = start.AddDays(7); + } + } + } + return dcList; + } + + private bool EnthaeltEintraege(DateTime start, DateTime end, List serviceRecords) + { + bool vorhandeneEintraege = false; + if (serviceRecords != null && serviceRecords.Count > 0) + { + vorhandeneEintraege = serviceRecords.Any(s => s.Start.Value.Date >= start.Date && s.Start.Value.Date <= end.Date && s.RoundedDuration > 0 && s.ServiceDescription.Category.IsBillable); + } + return vorhandeneEintraege; + } + } +} \ No newline at end of file diff --git a/ReportImp/FeidPartnerReports/Statistics/CustomServiceRecordStatisticFactory.cs b/ReportImp/FeidPartnerReports/Statistics/CustomServiceRecordStatisticFactory.cs index eda0cf0a7..18f309e9d 100644 --- a/ReportImp/FeidPartnerReports/Statistics/CustomServiceRecordStatisticFactory.cs +++ b/ReportImp/FeidPartnerReports/Statistics/CustomServiceRecordStatisticFactory.cs @@ -15,15 +15,14 @@ namespace FeidPartnerReports.Statistics { public override SupportConceptStatisticsDC CreateSupportConceptStatisticsImpl(long costBearer2SupportConceptOid, DateTime statisticsDate, long? ignoreServiceRecordOid) { - var stat = base.CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate, ignoreServiceRecordOid); + var stat = base.CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate, null); foreach (var item in stat.PeriodStatistics) { - DateTime start = item.SupportConceptApprovalPeriod.StartDate.Value; - DateTime end = item.SupportConceptApprovalPeriod.EndDate.Value; - DateTime bewStart = item.SupportConceptApprovalPeriod.StartDate.Value; - DateTime bewEnd = item.SupportConceptApprovalPeriod.EndDate.Value; - + DateTime start = item.SupportConceptApprovalPeriod.StartDate ?? DateTime.MinValue; + DateTime end = item.SupportConceptApprovalPeriod.EndDate ?? DateTime.MaxValue; + DateTime bewStart = item.SupportConceptApprovalPeriod.StartDate ?? DateTime.MinValue; + DateTime bewEnd = item.SupportConceptApprovalPeriod.EndDate ?? DateTime.MaxValue; if (statisticsDate < end) { @@ -35,24 +34,38 @@ namespace FeidPartnerReports.Statistics item.MinutesProvidedThisWeek = item.MinutesApprovedPerWeek; stat.MinutesProvidedThisWeek = item.MinutesApprovedPerWeek; } - //if (item.MinutesProvidedThisMonth == 0) - //{ - // item.MinutesProvidedThisMonth = item.MinutesApprovedPerMonth; - //} - //if (stat.MinutesProvidedThisMonth == 0) - //{ - // stat.MinutesProvidedThisWeek = stat.MinutesApprovedPerMonth; - //} while (start < end.Date) { - if (!EnthaeltEintraege(start, start.AddDays(7), item.ServiceRecords)) + if (start > new DateTime(2024,02,29) && !EnthaeltEintraege(start, start.AddDays(7), item.ServiceRecords)) { - //item.MinutesProvidedThisMonth += item.MinutesApprovedPerWeek; - item.MinutesProvidedTotal += item.MinutesApprovedPerWeek; - item.MinutesProvidedTotalRounded += item.MinutesApprovedPerWeek; - stat.MinutesProvidedTotal += item.MinutesApprovedPerWeek; - stat.MinutesProvidedTotalRounded += item.MinutesApprovedPerWeek; + if (bewStart.DayOfWeek != DayOfWeek.Monday && start >= bewStart && start <= bewStart.GetNext(DayOfWeek.Sunday).Date) + { + DateTime sundayDt = bewStart.GetNext(DayOfWeek.Sunday).Date; + var days = sundayDt.Day - start.Day + 1; + var firstAppr = item.MinutesApprovedPerWeek / 7 * days; + item.MinutesProvidedTotal += firstAppr; + item.MinutesProvidedTotalRounded += firstAppr; + stat.MinutesProvidedTotal += firstAppr; + stat.MinutesProvidedTotalRounded += firstAppr; + } + else if (bewEnd.DayOfWeek != DayOfWeek.Sunday && start < bewEnd && start >= bewEnd.GetLast(DayOfWeek.Monday).Date) + { + DateTime mondayDt = bewEnd.GetLast(DayOfWeek.Monday).Date; + var days = start.Day - mondayDt.Day + 1; + var lastAppr = item.MinutesApprovedPerWeek / 7 * days; + item.MinutesProvidedTotal += lastAppr; + item.MinutesProvidedTotalRounded += lastAppr; + stat.MinutesProvidedTotal += lastAppr; + stat.MinutesProvidedTotalRounded += lastAppr; + } + else + { + item.MinutesProvidedTotal += item.MinutesApprovedPerWeek; + item.MinutesProvidedTotalRounded += item.MinutesApprovedPerWeek; + stat.MinutesProvidedTotal += item.MinutesApprovedPerWeek; + stat.MinutesProvidedTotalRounded += item.MinutesApprovedPerWeek; + } } start = start.AddDays(7); } @@ -65,7 +78,7 @@ namespace FeidPartnerReports.Statistics bool vorhandeneEintraege = false; if (serviceRecords != null && serviceRecords.Count > 0) { - vorhandeneEintraege = serviceRecords.Any(s => s.Start.Value.Date >= start.Date && s.Start.Value.Date <= end.Date && s.RoundedDuration > 0); + vorhandeneEintraege = serviceRecords.Any(s => s.Start.Value.Date >= start.Date && s.Start.Value.Date <= end.Date && s.RoundedDuration > 0 && s.ServiceDescription.Category.IsBillable); } return vorhandeneEintraege; } From f35d06046434bb34b521831efe515dd694630af3 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 3 Mar 2024 19:07:45 +0100 Subject: [PATCH 03/10] =?UTF-8?q?Avise=20Import=20f=C3=BCr=20Abschlagszahl?= =?UTF-8?q?ungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AccountingTransactionBookingView.xaml.cs | 4 + Model/Changes_alle_fuer_neue_db.txt | 32 +++- Report/DefaultReportCreator.cs | 29 ++- .../MitarbeiterstundenkontoBerechnung.cs | 162 +++++++--------- ReportImp/Fortis/CustomReportCreator.cs | 4 +- ...CustomMitarbeiterstundenkontoBerechnung.cs | 29 +-- ReportImp/VkmHamm/VkmHamm.csproj | 3 + Service/Import/AvisImport/Avis.cs | 24 +++ Service/Import/AvisImport/AviseImporter.cs | 181 ++++++++++++++++++ Service/Import/AvisImport/HilfeplanInfo.cs | 25 +++ Service/Import/AvisImport/LvrAvisPdfReader.cs | 106 ++++++++++ Service/Import/AvisImport/LvrAviseImporter.cs | 42 ++++ Service/Plugins/DataImporter.cs | 19 +- Service/Plugins/PluginLoader.cs | 6 +- Service/Service.csproj | 5 + .../StreamingServiceImp.cs | 3 +- 16 files changed, 553 insertions(+), 121 deletions(-) create mode 100644 Service/Import/AvisImport/Avis.cs create mode 100644 Service/Import/AvisImport/AviseImporter.cs create mode 100644 Service/Import/AvisImport/HilfeplanInfo.cs create mode 100644 Service/Import/AvisImport/LvrAvisPdfReader.cs create mode 100644 Service/Import/AvisImport/LvrAviseImporter.cs diff --git a/BeWo/View/Detail/AccountingTransactionBookingView.xaml.cs b/BeWo/View/Detail/AccountingTransactionBookingView.xaml.cs index b06270eab..a33182e90 100644 --- a/BeWo/View/Detail/AccountingTransactionBookingView.xaml.cs +++ b/BeWo/View/Detail/AccountingTransactionBookingView.xaml.cs @@ -64,6 +64,10 @@ namespace BeWo.View.Detail popupedit_file.Visibility = Visibility.Collapsed; ButtonImport.Visibility = Visibility.Collapsed; } +#if DEBUG + popupedit_file.Visibility = Visibility.Visible; + ButtonImport.Visibility = Visibility.Visible; +#endif Loaded += AccountingTransactionBookingView_Loaded; } diff --git a/Model/Changes_alle_fuer_neue_db.txt b/Model/Changes_alle_fuer_neue_db.txt index 95a8e7390..60d5da2f3 100644 --- a/Model/Changes_alle_fuer_neue_db.txt +++ b/Model/Changes_alle_fuer_neue_db.txt @@ -996,16 +996,16 @@ CREATE TABLE `AdditionalServiceNotice` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `customer` -ADD COLUMN `VersichertenStatus` VARCHAR(16) NULL DEFAULT NULL; +ADD COLUMN `VersichertenStatus` VARCHAR(256) NULL DEFAULT NULL; ALTER TABLE `organisation` -ADD COLUMN `IKKrankenkasse` VARCHAR(16) NULL DEFAULT NULL, -ADD COLUMN `IKKostentrager` VARCHAR(16) NULL DEFAULT NULL, -ADD COLUMN `IKDatenannahmestelle` VARCHAR(16) NULL DEFAULT NULL; +ADD COLUMN `IKKrankenkasse` VARCHAR(256) NULL DEFAULT NULL, +ADD COLUMN `IKKostentrager` VARCHAR(256) NULL DEFAULT NULL, +ADD COLUMN `IKDatenannahmestelle` VARCHAR(256) NULL DEFAULT NULL; ALTER TABLE `mandator` -ADD COLUMN `IKLeistungserbringer` VARCHAR(16) NULL; +ADD COLUMN `IKLeistungserbringer` VARCHAR(256) NULL; ALTER TABLE signature ADD COLUMN EmployeeOid BIGINT DEFAULT NULL, @@ -1036,4 +1036,24 @@ CREATE TABLE `bargeldtransaktionshistory` ( BargeldtransaktionInsUser VARCHAR(256) DEFAULT NULL, BargeldtransaktionVersion BIGINT DEFAULT NULL, BargeldtransaktionUdpUser VARCHAR(256) DEFAULT NULL -) ENGINE=InnoDB; \ No newline at end of file +) ENGINE=InnoDB; + +ALTER TABLE bargeldtransaktion ADD COLUMN SignatureOid BIGINT; + + + + +ALTER TABLE `customer` +CHANGE COLUMN `HealthInsurance` `HealthInsurance` VARCHAR(256) NULL DEFAULT NULL , +CHANGE COLUMN `InsuranceNumber` `InsuranceNumber` VARCHAR(256) NULL DEFAULT NULL , +CHANGE COLUMN `VersichertenStatus` `VersichertenStatus` VARCHAR(256) NULL DEFAULT NULL ; + + +ALTER TABLE `organisation` +CHANGE COLUMN `IKKrankenkasse` `IKKrankenkasse` VARCHAR(256) NULL DEFAULT NULL , +CHANGE COLUMN `IKKostentrager` `IKKostentrager` VARCHAR(256) NULL DEFAULT NULL , +CHANGE COLUMN `IKDatenannahmestelle` `IKDatenannahmestelle` VARCHAR(256) NULL DEFAULT NULL ; + + +ALTER TABLE `mandator` +CHANGE COLUMN `IKLeistungserbringer` `IKLeistungserbringer` VARCHAR(256) NULL DEFAULT NULL ; diff --git a/Report/DefaultReportCreator.cs b/Report/DefaultReportCreator.cs index 8c2ef5173..dea70d305 100644 --- a/Report/DefaultReportCreator.cs +++ b/Report/DefaultReportCreator.cs @@ -18,6 +18,7 @@ using DevExpress.XtraReports.UI; using BS.Shared.DataContracts.Compact; using BeWo.Service.Plugins; using BeWo.Service.Reporting; +using System.Web; namespace BeWo.Report { @@ -588,9 +589,27 @@ namespace BeWo.Report } } - var sortedList = roList.OrderBy(r => r.CustomerLastName + ", " + r.CustomerFirstName).ToList(); + QBSortOrderEnum sortOrder = QBSortOrderEnum.NachKlient; - if (sortedList.Count > 0) + if (HttpContext.Current != null) + { + var so = HttpContext.Current.Request.Params["sortorder"]; + if (!String.IsNullOrWhiteSpace(so)) + { + sortOrder = (QBSortOrderEnum)(Int32.Parse(so)); + } + } + if (sortOrder == QBSortOrderEnum.NachHauptbetreuung) + { + roList = roList.OrderBy(r => r.MainAttendant).ToList(); + } + else + { + roList = roList.OrderBy(r => r.CustomerLastName + ", " + r.CustomerFirstName).ToList(); + } + + + if (roList.Count > 0) { String reportId = null; if (orgaOid.HasValue && orgaOid > 0) @@ -600,16 +619,16 @@ namespace BeWo.Report reportId = organisation.Name; } - var rootReport = CreateReportForServicesOverviewRo(sortedList[0], reportId); + var rootReport = CreateReportForServicesOverviewRo(roList[0], reportId); if (rootReport.Pages.Count == 0) { rootReport.CreateDocument(); } - for (int i = 1; i < sortedList.Count; i++) + for (int i = 1; i < roList.Count; i++) { - var lNext = CreateReportForServicesOverviewRo(sortedList[i], reportId); + var lNext = CreateReportForServicesOverviewRo(roList[i], reportId); if (lNext.Pages.Count == 0) { lNext.CreateDocument(); diff --git a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs index d937c2e1f..5d8fbd12f 100644 --- a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs +++ b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs @@ -196,11 +196,7 @@ namespace BeWo.Report.ReportObjects } empDetail.SollProTag = (weeklyTotalHours / empDetail.ArbeitstageProWoche); empDetail.SollProWoche = BerechneSollProWoche(c, empDetail); - if (empDetail.SollProTag == 0 && empDetail.SollProWoche > 0 && empDetail.ArbeitstageProWoche > 0) - { - empDetail.SollProTag = empDetail.SollProWoche / empDetail.ArbeitstageProWoche; - } HandleServiceRecords(empDetail, groupFilteredRecords, c); if (CheckIst) @@ -710,14 +706,12 @@ namespace BeWo.Report.ReportObjects if (festeflsSollProMonat.HasValue) { - - return festeflsSollProMonat.Value; - //if (stundenSollProMonat.HasValue) - //{ - // flsSollImVertragsUndBerichtzeitraum = tatSollStdImVertragsUndBerichtzeitraum; + flsSollImVertragsUndBerichtzeitraum = tatSollStdImVertragsUndBerichtzeitraum; - // flsSollImVertragsUndBerichtzeitraum *= (festeflsSollProMonat.Value / stundenSollProMonat.Value); - //} + if (stundenSollProMonat.HasValue) + { + flsSollImVertragsUndBerichtzeitraum *= (festeflsSollProMonat.Value / stundenSollProMonat.Value); + } } else { @@ -1692,7 +1686,7 @@ namespace BeWo.Report.ReportObjects dd.NightEnd = 6; dd.MaxHoursUntilBreak = 6; dd.BreakMinutes = 30; - if (date.Year == 2023 && date.Month == 6 && date.Day == 5) + if (date.Year == 2022 && date.Month == 12 && date.Day == 27) { int test = 0; } @@ -1839,7 +1833,8 @@ namespace BeWo.Report.ReportObjects DateTime day = span.StartDate; var faktor = GetFeiertagsFaktor(day); - if (faktor < 1 && (day.DayOfWeek != DayOfWeek.Saturday || ed.ArbeitstageProWoche == 6) && (day.DayOfWeek != DayOfWeek.Sunday || ed.ArbeitstageProWoche > 6)) // Prüfung auf 6 + bzw 7 Tage Woche eingefügt + + if (faktor < 1 && day.DayOfWeek != DayOfWeek.Saturday && day.DayOfWeek != DayOfWeek.Sunday) { //Berechne Soll, entweder aus Vertrag oder Arbeitszeiten var sollDiesenTag = ed.SollProTag; @@ -1872,7 +1867,7 @@ namespace BeWo.Report.ReportObjects decimal wth = 0; int apw = ANZ_WOCHENTAGE; - if (c.WeeklyTotalHours.HasValue && c.WeeklyTotalHours.Value > 0) + if (c.WeeklyTotalHours.HasValue) { wth = c.WeeklyTotalHours.Value; } @@ -1880,10 +1875,8 @@ namespace BeWo.Report.ReportObjects { apw = c.WeeklyDays.Value; } - if (wth > 0 && apw > 0) - { - sollDiesenTag = wth / apw; - } + + sollDiesenTag = wth / apw; } } } @@ -1891,7 +1884,6 @@ namespace BeWo.Report.ReportObjects //Dauer der Abwesenheit = Soll an diesem Tag bool istGanztaegig = true; - var abwesenheitsDauer = sollDiesenTag; if (span.StartDate.Hour > 0 && span.EndDate.Hour > 0) @@ -2146,11 +2138,7 @@ namespace BeWo.Report.ReportObjects ed.ArbeitstageProWoche = arbeitstageProWoche; ed.ArbeitstageImBerichtszeitraum = arbeitstage; ed.SollProWoche = BerechneSollProWoche(c, ed); - if (ed.SollProTag == 0 && ed.SollProWoche > 0 && ed.ArbeitstageProWoche > 0) - { - ed.SollProTag = ed.SollProWoche / ed.ArbeitstageProWoche; - } ed.Employee = emp; AktuellBearbeitetesEmployeeDetail = ed; @@ -2437,30 +2425,28 @@ namespace BeWo.Report.ReportObjects { foreach (var at in emp.AbsenceTimes) { - if (IstAnrechenbareAbsenceTime(at)) + + if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) && (!at.End.HasValue || at.End.Value >= arbeitstagStart.Date)) { - if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) && (!at.End.HasValue || at.End.Value >= arbeitstagStart.Date)) + var faktor = GetFeiertagsFaktor(arbeitstagStart); + + if (faktor < 1) { - var faktor = GetFeiertagsFaktor(arbeitstagStart); + var hours = (decimal)arbeitstagEnde.Subtract(arbeitstagStart).TotalHours; - if (faktor < 1) + // Prüfen, ob halber Tag + if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value)) + hours /= 2; + + if (faktor != 0) { - var hours = (decimal)arbeitstagEnde.Subtract(arbeitstagStart).TotalHours; - - // Prüfen, ob halber Tag - if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value)) - hours /= 2; - - if (faktor != 0) - { - hours *= faktor; - } - - return hours; + hours *= faktor; } - + return hours; } + + } } @@ -2849,54 +2835,51 @@ namespace BeWo.Report.ReportObjects foreach (var at in emp.AbsenceTimes) { - if (IstAnrechenbareAbsenceTime(at)) + if ((!at.Start.HasValue || at.Start.Value.Date <= arbeitstagEnde.Date) && (!at.End.HasValue || at.End.Value.Date >= arbeitstagStart.Date)) { - if ((!at.Start.HasValue || at.Start.Value.Date <= arbeitstagEnde.Date) && (!at.End.HasValue || at.End.Value.Date >= arbeitstagStart.Date)) + + var faktor = GetFeiertagsFaktor(arbeitstagStart); + + if (faktor < 1) { + var tag = 1m; - var faktor = GetFeiertagsFaktor(arbeitstagStart); + // Prüfen, ob halber Tag + if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value)) + tag = 0.5m; - if (faktor < 1) + if (faktor != 0) { - var tag = 1m; - - // Prüfen, ob halber Tag - if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value)) - tag = 0.5m; - - if (faktor != 0) - { - tag *= faktor; - hours *= faktor; - } - - //if (at.Start.HasValue && at.End.HasValue && at.Start.Value.Day == at.End.Value.Day && - // at.Start.Value.Month == at.End.Value.Month) - //{ - // var std = at.End.Value.Subtract(at.Start.Value) - //} - - if (IsKrankheitAbsenceTime(at)) - { - if (!atd.TageKrankheit.HasValue) - atd.TageKrankheit = 0; - - atd.TageKrankheit += tag; - } - - if (IsUrlaubAbsenceTime(at)) - { - if (!atd.TageUrlaub.HasValue) - atd.TageUrlaub = 0; - - atd.TageUrlaub += tag; - } - if (!atd.TageGesamt.HasValue) - atd.TageGesamt = 0; - - - atd.TageGesamt += tag; + tag *= faktor; + hours *= faktor; } + + //if (at.Start.HasValue && at.End.HasValue && at.Start.Value.Day == at.End.Value.Day && + // at.Start.Value.Month == at.End.Value.Month) + //{ + // var std = at.End.Value.Subtract(at.Start.Value) + //} + + if (IsKrankheitAbsenceTime(at)) + { + if (!atd.TageKrankheit.HasValue) + atd.TageKrankheit = 0; + + atd.TageKrankheit += tag; + } + + if (IsUrlaubAbsenceTime(at)) + { + if (!atd.TageUrlaub.HasValue) + atd.TageUrlaub = 0; + + atd.TageUrlaub += tag; + } + if (!atd.TageGesamt.HasValue) + atd.TageGesamt = 0; + + + atd.TageGesamt += tag; } } } @@ -3400,14 +3383,12 @@ namespace BeWo.Report.ReportObjects //gibt 1 zurück wenn ganzer Feiertag und z.B. 0.5 bei halben etc. public virtual decimal GetFeiertagsFaktor(DateTime start) { - //CB 26.02.2024: Darf nicht über den VacationService gehen, sonst werden die im CustomMitarbeiterstundenkontoBerechnung hinterlegten Feiertage ignoriert - //return vacationService.GetFeiertagsFaktor(start); - if (IstFeiertag(start)) - { - return 1; - } - return 0; - } + if (IstFeiertag(start)) + { + return 1; + } + return 0; + } public virtual bool IstFeiertag(DateTime start) { @@ -3436,6 +3417,7 @@ namespace BeWo.Report.ReportObjects protected DateTime GetOsterSonntag(int year) { return VacationService.GetOsterSonntag(year); + return VacationService.GetOsterSonntag(year); } public virtual bool IsServiceRecordFehlzeit(ServiceRecord sr) diff --git a/ReportImp/Fortis/CustomReportCreator.cs b/ReportImp/Fortis/CustomReportCreator.cs index 555416f6d..33d7266e9 100644 --- a/ReportImp/Fortis/CustomReportCreator.cs +++ b/ReportImp/Fortis/CustomReportCreator.cs @@ -59,12 +59,12 @@ namespace Fortis if (roList.Count > 0) { var rootReport = CreateServicesOverviewReportForRo(roList[0], serviceCategoryOid); - rootReport.CreateDocument(); + for (int i = 1; i < roList.Count; i++) { var lNext = CreateServicesOverviewReportForRo(roList[i], serviceCategoryOid); - lNext.CreateDocument(); + rootReport.Pages.AddRange(lNext.Pages); } diff --git a/ReportImp/SHKServiceSBD/CustomMitarbeiterstundenkontoBerechnung.cs b/ReportImp/SHKServiceSBD/CustomMitarbeiterstundenkontoBerechnung.cs index c87fbf472..b83ca2dd2 100644 --- a/ReportImp/SHKServiceSBD/CustomMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/SHKServiceSBD/CustomMitarbeiterstundenkontoBerechnung.cs @@ -263,18 +263,23 @@ namespace SHKServiceSBD { if (IstAnrechenbareAbsenceTime(at)) { - - if (IsKrankheitAbsenceTime(at)) + var faktor = GetFeiertagsFaktor(dd.Date); + + + if (faktor < 1 && dd.Date.DayOfWeek != DayOfWeek.Saturday && dd.Date.DayOfWeek != DayOfWeek.Sunday) { - dd.HoursSick = ed.SollProTag; - } - else if (IsUrlaubAbsenceTime(at)) - { - dd.HoursInVacation = ed.SollProTag; - } - else - { - dd.MinutesTotal = ed.SollProTag * 60; + if (IsKrankheitAbsenceTime(at)) + { + dd.HoursSick = ed.SollProTag; + } + else if (IsUrlaubAbsenceTime(at)) + { + dd.HoursInVacation = ed.SollProTag; + } + else + { + dd.MinutesTotal = ed.SollProTag * 60; + } } } else @@ -382,7 +387,7 @@ namespace SHKServiceSBD public override decimal? GetSollStundenForAbsenceTime(MitarbeiterstundenkontoRO.EmployeeDetail ed, AbsenceTime at, DateTime datum) { - if (at.AbsenceReason.Description.StartsWith("krank in der Schulzeit") || at.AbsenceReason.Description.StartsWith("eigenes Kind krank")) + if (at.AbsenceReason.Description.Contains("krank in der Schulzeit") || at.AbsenceReason.Description.Contains("eigenes Kind krank")) { return BerechneSollStundenFuerTag(ed, datum); } diff --git a/ReportImp/VkmHamm/VkmHamm.csproj b/ReportImp/VkmHamm/VkmHamm.csproj index 5aafe4816..8b1c7f890 100644 --- a/ReportImp/VkmHamm/VkmHamm.csproj +++ b/ReportImp/VkmHamm/VkmHamm.csproj @@ -34,6 +34,9 @@ + + False + diff --git a/Service/Import/AvisImport/Avis.cs b/Service/Import/AvisImport/Avis.cs new file mode 100644 index 000000000..a8dd75c4f --- /dev/null +++ b/Service/Import/AvisImport/Avis.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Import.AvisImport +{ + public class Avis + { + public String Klient { get; set; } + + public String Aktenzeichen { get; set; } + + public String Verwendungszweck { get; set; } + + public decimal Betrag { get; set; } + + public DateTime BuchungsDatum { get; set; } + + public DateTime GueltigkeitsDatum { get; set; } + + } +} diff --git a/Service/Import/AvisImport/AviseImporter.cs b/Service/Import/AvisImport/AviseImporter.cs new file mode 100644 index 000000000..cd18ecdb9 --- /dev/null +++ b/Service/Import/AvisImport/AviseImporter.cs @@ -0,0 +1,181 @@ +using BeWo.Data.Access; +using BeWo.Data.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Import.AvisImport +{ + public class AviseImporter + { + private int bereitsVorhandenCount = 0; + private int importiertCount = 0; + + //Der Rückgabewert wird beim Client in einer Messagebox angezeigt + + public virtual String ImportAvise(List avise) + { + var hilfeplaene = CreateHilfeplanInfos(); + + var importresult = ImportAbschlagszahlungen(avise, hilfeplaene); + + String importDaten = "1 Datensatz"; + String vorhandenDaten = "1 Datensatz"; + + if (importiertCount != 1) + { + importDaten = String.Format("{0} Datensätze", importiertCount); + } + + if (bereitsVorhandenCount != 1) + { + vorhandenDaten = String.Format("{0} Datensätze", bereitsVorhandenCount); + } + + if (String.IsNullOrEmpty(importresult)) + { + return String.Format( + "Die Daten wurden erfolgreich importiert.\nEs wurden {0} neu importiert. {1} waren bereits vorhanden.", + importDaten, vorhandenDaten); + } + else + { + return String.Format("Die Daten wurden erfolgreich importiert.\nEs wurden {0} neu importiert. {1} waren bereits vorhanden.\n\nFolgende Zahlungen konnten nicht importiert werden:\n{2}", importDaten, vorhandenDaten, importresult); + } + } + + public virtual String ImportAbschlagszahlungen(List avise, List hilfeplaene) + { + StringBuilder ergebnis = new StringBuilder(); + + foreach (var avis in avise) + { + bool importiert = false; + foreach (var hilfeplanInfo in hilfeplaene) + { + importiert = ImportAbschlagszahlung(avis, hilfeplanInfo, ergebnis); + if (importiert) + break; + } + + if (!importiert) + { + if (ergebnis.Length > 0) + ergebnis.Append("\n"); + ergebnis.Append(avis.Verwendungszweck); + } + } + + return ergebnis.ToString(); + } + + public virtual bool ImportAbschlagszahlung(Avis avis, HilfeplanInfo hp, StringBuilder log) + { + if (avis.GueltigkeitsDatum >= hp.Start && avis.GueltigkeitsDatum <= hp.Ende) + { + if (!String.IsNullOrEmpty(avis.Verwendungszweck)) + { + if (VergleicheAvisMitHilfeplan(avis, hp)) + { + if (!CheckObAbschlagszahlungBereitsImportiert(avis, hp)) + { + CreateAbschlagszahlung(avis, hp); + importiertCount++; + } + else + { + bereitsVorhandenCount++; + } + + return true; + } + + } + } + + return false; + } + + public virtual bool VergleicheAvisMitHilfeplan(Avis avis, HilfeplanInfo hp) + { + //Prüfe ob Aktenzeichen vorkommt + + //Prüfe ob Klientname vorkommt + var nameBuchung = avis.Verwendungszweck.ToLower(); + + var nachname = hp.CustomerLastName.ToLower(); + var vorname = hp.CustomerFirstName.ToLower(); + nachname = nachname.Replace("ö", "oe"); + nachname = nachname.Replace("ü", "ue"); + nachname = nachname.Replace("ä", "ae"); + nachname = nachname.Replace("ß", "ss"); + vorname = vorname.Replace("ö", "oe"); + vorname = vorname.Replace("ü", "ue"); + vorname = vorname.Replace("ä", "ae"); + vorname = vorname.Replace("ß", "ss"); + + var name = String.Format("{0}{1}", nachname, vorname); + + if (nameBuchung.Contains(name)) + { + return true; + } + + return false; + } + + public virtual void CreateAbschlagszahlung(Avis avis, HilfeplanInfo hp) + { + var newAz = new AccountingTransaction(); + + newAz.CostBearer2SupportConcept = hp.CostBearer2SupportConcept; + newAz.Amount = avis.Betrag; + newAz.BookingDate = avis.BuchungsDatum; + newAz.ImportNotice = avis.Verwendungszweck; + newAz.ValidityDate = avis.GueltigkeitsDatum; + newAz.Notice = "Automatischer Import " + avis.Verwendungszweck; + + DAOFactory.GenericDAO.Insert(newAz); + } + + public virtual bool CheckObAbschlagszahlungBereitsImportiert(Avis avis, HilfeplanInfo hp) + { + var azAltList = DAOFactory.SearchDAO.FindAccountingTransactionsWithImportNotice(avis.Verwendungszweck); + + return azAltList != null && azAltList.Any(); + } + + public virtual List CreateHilfeplanInfos() + { + List liste = new List(); + + var scList = DAOFactory.GenericDAO.GetAllActiveAndArchived(); + + foreach (var supportConcept in scList) + { + foreach (var cb2sc in supportConcept.CostBearer2SupportConceptList) + { + HilfeplanInfo hi = new HilfeplanInfo(); + + hi.Start = cb2sc.StartDate; + hi.Ende = cb2sc.EndDate; + + hi.Aktenzeichen = cb2sc.CustomerReferenceNumber; + hi.CostBearer2SupportConcept = cb2sc; + hi.CustomerFirstName = cb2sc.SupportConcept.Customer.Person.FirstName; + hi.CustomerLastName = cb2sc.SupportConcept.Customer.Person.LastName; + + if (hi.Start.HasValue && hi.Ende.HasValue && !String.IsNullOrEmpty(hi.Aktenzeichen)) + { + liste.Add(hi); + } + } + } + + return liste; + } + } +} + diff --git a/Service/Import/AvisImport/HilfeplanInfo.cs b/Service/Import/AvisImport/HilfeplanInfo.cs new file mode 100644 index 000000000..b0f55a4bd --- /dev/null +++ b/Service/Import/AvisImport/HilfeplanInfo.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using BeWo.Data.Entities; + +namespace BeWo.Service.Import.AvisImport +{ + public class HilfeplanInfo + { + //Auftragskonto; Buchungstag; Valutadatum; Buchungstext; Verwendungszweck; Glaeubiger ID; Mandatsreferenz; Kundenreferenz(End - to - End); Sammlerreferenz; Lastschrift Ursprungsbetrag; Auslagenersatz Ruecklastschrift; + //Beguenstigter / Zahlungspflichtiger; Kontonummer / IBAN; BIC(SWIFT - Code); Betrag; Waehrung; Info + + public String CustomerFirstName { get; set; } + public String CustomerLastName { get; set; } + public DateTime? Start { get; set; } + public DateTime? Ende { get; set; } + public DateTime? BescheidVom { get; set; } + public String Aktenzeichen { get; set; } + + public CostBearer2SupportConcept CostBearer2SupportConcept { get; set; } + + + } +} diff --git a/Service/Import/AvisImport/LvrAvisPdfReader.cs b/Service/Import/AvisImport/LvrAvisPdfReader.cs new file mode 100644 index 000000000..58f4472c8 --- /dev/null +++ b/Service/Import/AvisImport/LvrAvisPdfReader.cs @@ -0,0 +1,106 @@ +using DevExpress.Pdf; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Import.AvisImport +{ + public class LvrAvisPdfReader + { + public List LeseAvise(byte[] daten) + { + List avise = new List(); + + using (var processor = new PdfDocumentProcessor()) + { + using (var ms = new MemoryStream(daten)) + { + processor.LoadDocument(ms); + + + var pdfText = processor.Text; + + var lines = pdfText.Split('\n'); + + + + int index = 0; + Avis avis = null; + while (index < lines.Length) + { + + //Prüfe ob für letzten Klienten mehreren Abschlagszahlungen für unterschiedliche Monate existieren + var line = lines[index]; + if (avis != null && line.Length >= 7 && DateTime.TryParse(line.Substring(0, 7), out var d1) && lines.Length > index + 1) + { + var klient = avis.Klient; + var az = avis.Aktenzeichen; + + avis = new Avis(); + avis.Klient = klient; + avis.Aktenzeichen = az; + avis.BuchungsDatum = DateTime.Now; + avis.GueltigkeitsDatum = d1; + SetzeBetragUndVerwendungszweck(avis, lines[index + 1]); + index += 1; + if (avis.Betrag > 0) + { + avise.Add(avis); + } + } + //Suche nächsten Klient + else if (line.StartsWith("GP:")) + { + + if (lines.Length > index + 4) + { + avis = new Avis(); + avis.BuchungsDatum = DateTime.Now; + avis.Aktenzeichen = line.Replace("GP:", "").Trim(); + + avis.Klient = lines[index + 2].Replace("Ihr Aktenzeichen", "").Replace(":", "").Trim(); + String datum = lines[index + 3].Substring(0, 7); + if (DateTime.TryParse(datum, out var d2)) + { + avis.GueltigkeitsDatum = d2; + } + + SetzeBetragUndVerwendungszweck(avis, lines[index + 4]); + + + avise.Add(avis); + index += 4; + } + } + index++; + } + } + } + + return avise; + + } + + private void SetzeBetragUndVerwendungszweck(Avis avis, string zeile) + { + String euroZeile = zeile; + if (euroZeile.IndexOf("€") > 0) + { + euroZeile = euroZeile.Substring(0, euroZeile.IndexOf("€")).Trim(); + if (euroZeile.LastIndexOf(" ") > 0) + { + avis.Verwendungszweck = euroZeile.Substring(0, euroZeile.LastIndexOf(" ")); + euroZeile = euroZeile.Substring(euroZeile.LastIndexOf(" ")).Trim(); + if (Decimal.TryParse(euroZeile, out var betrag)) + { + avis.Betrag = betrag; + } + + } + } + } + } +} diff --git a/Service/Import/AvisImport/LvrAviseImporter.cs b/Service/Import/AvisImport/LvrAviseImporter.cs new file mode 100644 index 000000000..1f1243684 --- /dev/null +++ b/Service/Import/AvisImport/LvrAviseImporter.cs @@ -0,0 +1,42 @@ +using BeWo.Data.Access; +using BeWo.Data.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeWo.Service.Import.AvisImport +{ + public class LvrAviseImporter : AviseImporter + { + public String ImportAvise(String filename, byte[] daten) + { + if (filename.EndsWith(".pdf")) + { + return ImportPdfAvise(daten); + } + else + { + String csvString = System.Text.Encoding.Default.GetString(daten); + return ImportCsvAvise(csvString); + } + } + + public String ImportPdfAvise(byte[] daten) + { + var reader = new LvrAvisPdfReader(); + var avise = reader.LeseAvise(daten); + + return ImportAvise(avise); + } + + public String ImportCsvAvise(String csv) + { + // noch nicht implementiert + return null; + } + + } +} + diff --git a/Service/Plugins/DataImporter.cs b/Service/Plugins/DataImporter.cs index 1ccd92eae..7ccb042e3 100644 --- a/Service/Plugins/DataImporter.cs +++ b/Service/Plugins/DataImporter.cs @@ -1,4 +1,5 @@ -using BeWo.Service.MessageContracts; +using BeWo.Service.Import.AvisImport; +using BeWo.Service.MessageContracts; using BS.Shared.Core; namespace BeWo.Service.Plugins @@ -8,13 +9,25 @@ namespace BeWo.Service.Plugins public virtual UploadImportFileResult ImportData(string filename, byte[] daten) { //muss überschrieben werden. Es gibt keinen Standardimport - var result = new UploadImportFileResult +#if DEBUG + //das ist nur zum Testen + var aviseImport = new LvrAviseImporter(); + var message = aviseImport.ImportAvise(filename, daten); + + var result = new UploadImportFileResult(); + result.Success = true; + result.ResultMessage = message; + + return result; + +#endif + return new UploadImportFileResult { Success = false, ResultMessage = "Die Daten konnten nicht importiert werden." }; - return result; } + } } diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs index 6bd296b15..83190c257 100644 --- a/Service/Plugins/PluginLoader.cs +++ b/Service/Plugins/PluginLoader.cs @@ -70,7 +70,7 @@ namespace BeWo.Service.Plugins //t = "5351926758"; // Viva a Vida //t = "2215396183"; // Diakonie Remscheid Lennep //t = "5157599087"; // SHG Schwerte - //t = "4526293996"; // Fortis + t = "4526293996"; // Fortis //t = "3647969417"; // Caritas Bottrop //t = "3057313346"; // SSB Mainz //t = "6246287823"; // BeWo Alsdorf @@ -276,7 +276,7 @@ namespace BeWo.Service.Plugins //t = "5929601293"; // Lebenshilfe Duisburg Frühförderung (Projekt heißt LebenshilfeDuisburgAtz) //t = "6860475645"; // Lebenshilfe Duisburg ATZ (Projekt heißt LebenshilfeDuisburgAtz6860475645) //t = "9678360705"; // Lebenshilfe Duisburg HPTG (Projekt heißt LebenshilfeDuisburgHPTG) - t = "4823067940"; // Die Kette 2 + //t = "4823067940"; // Die Kette 2 //t = "8283849714"; // Forum e.V. (proviel GmbH) //t = "3915346496"; // Sprungbrett 2. DB (Haus Theresia) //t = "2387527289"; // Lebenshilfe Duisburg HPFH @@ -379,6 +379,8 @@ namespace BeWo.Service.Plugins //t = "3936475760"; // PROgynmnasium Bensberg e.V. (PRO Train - Betreutes Wohnen) //t = "2804185856"; // BEWO Pyramide GmbH (früher HSH Cologne / IFH Cologne) //t = "2661610871"; // Spitalstiftung Konstanz + //t = "8641002030"; // PHÖNIX BeWo GbR + return t; #else diff --git a/Service/Service.csproj b/Service/Service.csproj index 987924ec0..ec3204414 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -376,6 +376,11 @@ + + + + + diff --git a/Service/ServiceImplementations/StreamingServiceImp.cs b/Service/ServiceImplementations/StreamingServiceImp.cs index 466aa3c46..0ca7f3a74 100644 --- a/Service/ServiceImplementations/StreamingServiceImp.cs +++ b/Service/ServiceImplementations/StreamingServiceImp.cs @@ -199,7 +199,8 @@ namespace BeWo.Service.ServiceImplementations } catch (Exception e) { - return null; // e.Message; + throw Utils.CreateBeWoFaultException(e); + } } From 4be7211ff4f0da96c4bc5843ddaab07bb997aa05 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 3 Mar 2024 21:42:06 +0100 Subject: [PATCH 04/10] Update auf DevExpress 23.2.4 --- BeWo/BeWo.csproj | 165 +++++++++--------- BeWo/BeWo.csproj.user | 2 +- BeWo/Properties/licenses.licx | 1 - BeWo/Scheduler/View/SchedulerView.xaml | 4 +- .../View/ServiceRecordScheduler.xaml | 2 +- BeWo/View/BargeldkassenView.xaml.cs | 5 +- .../Controls/ComboBoxTreeViewControlV2.xaml | 2 +- .../Controls/EnumComboBoxStyleSettings.cs | 13 +- BeWo/View/Detail/AdditionalServiceView.xaml | 6 +- BeWo/View/Detail/BudgetView.xaml | 5 +- BeWo/View/Detail/NotizenKategorieView.xaml | 11 +- BeWo/View/Detail/RatingTypeView.xaml | 13 +- BeWo/View/Detail/Report/AbwesenheitsView.xaml | 55 +++--- .../Detail/Report/AbwesenheitsView.xaml.cs | 3 +- BeWo/View/Detail/Report/DienstplanerView.xaml | 129 +++++++------- .../Detail/Report/PivotGridReport.Designer.cs | 26 +-- BeWo/View/Detail/TextbausteinView.xaml | 2 +- BeWo/View/Detail/TextbausteinView.xaml.cs | 2 +- .../View/Detail/WordDocumentTemplateView.xaml | 2 +- .../Zeiterfassung/ServiceRecordView2.xaml.cs | 2 +- .../Detail/backup/AdditionalServiceView.xaml | 4 +- .../Report/FLSReport/FLSOverviewChart.xaml | 4 +- BeWo/app.config | 63 ++++--- Shared/Shared.csproj | 25 ++- 24 files changed, 289 insertions(+), 257 deletions(-) diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj index 47912b11a..a98a8ee0a 100644 --- a/BeWo/BeWo.csproj +++ b/BeWo/BeWo.csproj @@ -43,13 +43,13 @@ de-DE BeWoPlaner ownSoft GmbH - 2.0.1.231 + 2.0.1.232 true publish.htm false true 232 - 2.0.1.%2a + 2.0.1.232 false true true @@ -98,45 +98,52 @@ False ..\Lib\Blacklight.Wpf.Controls.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False @@ -2586,7 +2593,7 @@ True Assembly - + False @@ -2596,7 +2603,7 @@ True Assembly - + False @@ -2606,7 +2613,7 @@ True Assembly - + False @@ -2616,7 +2623,7 @@ True Assembly - + False @@ -2626,7 +2633,7 @@ True Assembly - + False @@ -2636,7 +2643,7 @@ True Assembly - + False @@ -2646,7 +2653,7 @@ True Assembly - + False @@ -2656,7 +2663,7 @@ True Assembly - + False @@ -2666,7 +2673,7 @@ True Assembly - + False @@ -2676,7 +2683,7 @@ True Assembly - + False @@ -2686,7 +2693,7 @@ True Assembly - + False @@ -2696,7 +2703,7 @@ True Assembly - + False @@ -2706,7 +2713,7 @@ True Assembly - + False @@ -2716,7 +2723,7 @@ True Assembly - + False @@ -2726,7 +2733,7 @@ True Assembly - + False @@ -2736,7 +2743,7 @@ True Assembly - + False @@ -2746,7 +2753,7 @@ True Assembly - + False @@ -2756,7 +2763,7 @@ True Assembly - + False @@ -2766,7 +2773,7 @@ True Assembly - + False @@ -2776,7 +2783,7 @@ True Assembly - + False @@ -2786,7 +2793,7 @@ True Assembly - + False @@ -2796,7 +2803,7 @@ True Assembly - + False @@ -2806,7 +2813,7 @@ True Assembly - + False @@ -2816,7 +2823,7 @@ True Assembly - + False @@ -2826,7 +2833,7 @@ True Assembly - + False @@ -2836,7 +2843,7 @@ True Assembly - + False @@ -2846,7 +2853,7 @@ True Assembly - + False @@ -2856,7 +2863,7 @@ True Assembly - + False @@ -2866,7 +2873,7 @@ True Assembly - + False @@ -2876,7 +2883,7 @@ True Assembly - + False @@ -2886,7 +2893,7 @@ True Assembly - + False @@ -2896,7 +2903,7 @@ True Assembly - + False @@ -2906,7 +2913,7 @@ True Assembly - + False @@ -2916,7 +2923,7 @@ True Assembly - + False @@ -2926,7 +2933,7 @@ True Assembly - + False @@ -2936,7 +2943,7 @@ True Assembly - + False @@ -2946,7 +2953,7 @@ True Assembly - + False @@ -2956,7 +2963,7 @@ True Assembly - + False diff --git a/BeWo/BeWo.csproj.user b/BeWo/BeWo.csproj.user index 51ff8990c..93dc2c0b3 100644 --- a/BeWo/BeWo.csproj.user +++ b/BeWo/BeWo.csproj.user @@ -2,7 +2,7 @@ D:\Projects\beyondsoft\BeWoPlaner\Publish\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\ - https://app.ownsoft.de/|http://app.beyondsoft.de/|http://app.beyondsoft.de/test/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/sbdtest/ + https://app.ownsoft.de/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/ https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/ diff --git a/BeWo/Properties/licenses.licx b/BeWo/Properties/licenses.licx index c7fd819d5..e69de29bb 100644 --- a/BeWo/Properties/licenses.licx +++ b/BeWo/Properties/licenses.licx @@ -1 +0,0 @@ -DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/BeWo/Scheduler/View/SchedulerView.xaml b/BeWo/Scheduler/View/SchedulerView.xaml index 1ab97d2d2..1fac64952 100644 --- a/BeWo/Scheduler/View/SchedulerView.xaml +++ b/BeWo/Scheduler/View/SchedulerView.xaml @@ -7,8 +7,8 @@ xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler" xmlns:dxschint="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal" - xmlns:dxschcore="clr-namespace:DevExpress.XtraScheduler;assembly=DevExpress.XtraScheduler.v17.1.Core" - xmlns:dxschui="clr-namespace:DevExpress.Xpf.Scheduler.Drawing;assembly=DevExpress.Xpf.Scheduler.v17.1" + xmlns:dxschcore="clr-namespace:DevExpress.XtraScheduler;assembly=DevExpress.XtraScheduler.v23.2.Core" + xmlns:dxschui="clr-namespace:DevExpress.Xpf.Scheduler.Drawing;assembly=DevExpress.Xpf.Scheduler.v23.2" xmlns:dxscht="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/themekeys" xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" xmlns:search="clr-namespace:BeWo.View.Search" diff --git a/BeWo/Scheduler/View/ServiceRecordScheduler.xaml b/BeWo/Scheduler/View/ServiceRecordScheduler.xaml index 44edd0378..3efd11382 100644 --- a/BeWo/Scheduler/View/ServiceRecordScheduler.xaml +++ b/BeWo/Scheduler/View/ServiceRecordScheduler.xaml @@ -6,7 +6,7 @@ xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" - xmlns:dxschd="clr-namespace:DevExpress.Xpf.Scheduler.Drawing;assembly=DevExpress.Xpf.Scheduler.v17.1" + xmlns:dxschd="clr-namespace:DevExpress.Xpf.Scheduler.Drawing;assembly=DevExpress.Xpf.Scheduler.v23.2" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="600" dx:ThemeManager.ThemeName="Office2010Black"> diff --git a/BeWo/View/BargeldkassenView.xaml.cs b/BeWo/View/BargeldkassenView.xaml.cs index b60a023c1..7b46c2d4c 100644 --- a/BeWo/View/BargeldkassenView.xaml.cs +++ b/BeWo/View/BargeldkassenView.xaml.cs @@ -351,7 +351,10 @@ namespace BeWo.View { return; } - + if (!NewBargeldtransaktion.Betrag.HasValue || NewBargeldtransaktion.Zahlungstyp == null) + { + return; + } var transaktionsBetrag = NewBargeldtransaktion.Betrag * (NewBargeldtransaktion.Zahlungstyp.Enum == Zahlungstyp.Auszahlung ? -1 : 1); var latestTransactionDate = new DateTime(1, 1, 1); diff --git a/BeWo/View/Controls/ComboBoxTreeViewControlV2.xaml b/BeWo/View/Controls/ComboBoxTreeViewControlV2.xaml index cb678f2ec..fd4586440 100644 --- a/BeWo/View/Controls/ComboBoxTreeViewControlV2.xaml +++ b/BeWo/View/Controls/ComboBoxTreeViewControlV2.xaml @@ -3,7 +3,7 @@ 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:dx="clr-namespace:DevExpress.Xpf.Core;assembly=DevExpress.Xpf.Core.v17.1" + xmlns:dx="clr-namespace:DevExpress.Xpf.Core;assembly=DevExpress.Xpf.Core.v23.2" xmlns:shared="clr-namespace:BeWo.Core" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> diff --git a/BeWo/View/Controls/EnumComboBoxStyleSettings.cs b/BeWo/View/Controls/EnumComboBoxStyleSettings.cs index 5eb0193af..d28efa812 100644 --- a/BeWo/View/Controls/EnumComboBoxStyleSettings.cs +++ b/BeWo/View/Controls/EnumComboBoxStyleSettings.cs @@ -30,13 +30,18 @@ namespace BeWo.View.Controls cb.DisplayTextConverter = (IValueConverter)Application.Current.FindResource("enumToDescriptionConverter"); } - protected override Style GetItemContainerStyle(LookUpEditBase cb) + protected override Style GetItemContainerStyle(LookUpEditBase control) { - if (HasFlagsAttribute()) - return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.CheckBoxItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) }); - return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.DefaultItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) }); + throw new NotImplementedException(); } + //protected override Style GetItemContainerStyle(LookUpEditBase cb) + //{ + // if (HasFlagsAttribute()) + // return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.CheckBoxItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) }); + // return (Style)cb.FindResource(new EditorListBoxThemeKeyExtension { ResourceKey = EditorListBoxThemeKeys.DefaultItemStyle, ThemeName = ThemeHelper.GetEditorThemeName(cb) }); + //} + //protected override SelectionMode SelectionMode diff --git a/BeWo/View/Detail/AdditionalServiceView.xaml b/BeWo/View/Detail/AdditionalServiceView.xaml index 632a4edf7..20d1fdc34 100644 --- a/BeWo/View/Detail/AdditionalServiceView.xaml +++ b/BeWo/View/Detail/AdditionalServiceView.xaml @@ -12,9 +12,9 @@ xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:shared2="clr-namespace:BS.Shared;assembly=BS.Shared" xmlns:sys="clr-namespace:System;assembly=mscorlib" - xmlns:dxg="clr-namespace:DevExpress.Xpf.Grid;assembly=DevExpress.Xpf.Grid.v17.1" + xmlns:dxg="clr-namespace:DevExpress.Xpf.Grid;assembly=DevExpress.Xpf.Grid.v23.2" xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys" - xmlns:grid="clr-namespace:DevExpress.Xpf.Grid;assembly=DevExpress.Xpf.Grid.v17.1.Core" + xmlns:grid="clr-namespace:DevExpress.Xpf.Grid;assembly=DevExpress.Xpf.Grid.v23.2.Core" xmlns:converter="clr-namespace:BeWo.Converter" xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:detail="clr-namespace:BeWo.View.Detail" @@ -705,7 +705,7 @@ - + diff --git a/BeWo/View/Detail/BudgetView.xaml b/BeWo/View/Detail/BudgetView.xaml index a431b07e8..3d6009736 100644 --- a/BeWo/View/Detail/BudgetView.xaml +++ b/BeWo/View/Detail/BudgetView.xaml @@ -1,12 +1,11 @@ - diff --git a/BeWo/View/Detail/NotizenKategorieView.xaml b/BeWo/View/Detail/NotizenKategorieView.xaml index b425f3f30..bd777589e 100644 --- a/BeWo/View/Detail/NotizenKategorieView.xaml +++ b/BeWo/View/Detail/NotizenKategorieView.xaml @@ -1,16 +1,15 @@ - - - + + @@ -20,7 +19,7 @@ - + diff --git a/BeWo/View/Detail/RatingTypeView.xaml b/BeWo/View/Detail/RatingTypeView.xaml index 10b93a2e7..07201a605 100644 --- a/BeWo/View/Detail/RatingTypeView.xaml +++ b/BeWo/View/Detail/RatingTypeView.xaml @@ -1,12 +1,11 @@ - @@ -25,11 +24,11 @@ - + - + - + - + - - - - + + + + - - - + + + - diff --git a/BeWo/View/Detail/Report/PivotGridReport.Designer.cs b/BeWo/View/Detail/Report/PivotGridReport.Designer.cs index 60d2d16e1..8baf25949 100644 --- a/BeWo/View/Detail/Report/PivotGridReport.Designer.cs +++ b/BeWo/View/Detail/Report/PivotGridReport.Designer.cs @@ -42,7 +42,7 @@ namespace BeWo.View.Detail.Report // this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { this.xrPivotGrid1}); - this.Detail.Font = new System.Drawing.Font("Arial", 10F); + this.Detail.Font = new DevExpress.Drawing.DXFont("Arial", 10F); this.Detail.HeightF = 60.00001F; this.Detail.Name = "Detail"; this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); @@ -61,15 +61,15 @@ namespace BeWo.View.Detail.Report // // xrPivotGrid1 // - this.xrPivotGrid1.Appearance.Cell.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.CustomTotalCell.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.FieldHeader.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.FieldValue.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.FieldValueGrandTotal.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.FieldValueTotal.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.GrandTotalCell.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.Lines.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.xrPivotGrid1.Appearance.TotalCell.Font = new System.Drawing.Font("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.Cell.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.CustomTotalCell.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.FieldHeader.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.FieldValue.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.FieldValueGrandTotal.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.FieldValueTotal.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.GrandTotalCell.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.Lines.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); + this.xrPivotGrid1.Appearance.TotalCell.Font = new DevExpress.Drawing.DXFont("Tahoma", 8.25F); this.xrPivotGrid1.Fields.AddRange(new DevExpress.XtraReports.UI.PivotGrid.XRPivotGridField[] { this.pivotGridField3}); this.xrPivotGrid1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); @@ -90,12 +90,12 @@ namespace BeWo.View.Detail.Report this.topMarginBand1, this.bottomMarginBand1}); this.DataSource = this.bindingSource1; - this.Font = new System.Drawing.Font("Arial", 10F); + this.Font = new DevExpress.Drawing.DXFont("Arial", 10F); this.Landscape = true; - this.Margins = new System.Drawing.Printing.Margins(75, 75, 75, 75); + this.Margins = new DevExpress.Drawing.DXMargins(75, 75, 75, 75); this.PageHeight = 827; this.PageWidth = 1169; - this.PaperKind = System.Drawing.Printing.PaperKind.A4; + this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4; this.Version = "17.1"; ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); diff --git a/BeWo/View/Detail/TextbausteinView.xaml b/BeWo/View/Detail/TextbausteinView.xaml index 476fc77dd..42c5e1c38 100644 --- a/BeWo/View/Detail/TextbausteinView.xaml +++ b/BeWo/View/Detail/TextbausteinView.xaml @@ -68,7 +68,7 @@