diff --git a/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.cs b/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.cs index aeb0cbff5..54497e800 100644 --- a/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.cs +++ b/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.cs @@ -24,8 +24,19 @@ namespace KontaktUndKrisenhilfeReports JahresReportRO b = new JahresReportRO(); //b.CreateReport(pRO); + + if (pRO.JahresReportTabelleList != null) { + for (int i = pRO.JahresReportTabelleList.Count - 1; i >= 0; i--) + { + var o = pRO.JahresReportTabelleList[i]; + if (o.Name == "Anzahl der betreuten Personen nach Ort" || o.Name == "Betreuungsumfang der betreuten Personen in FLS pro Woche" || o.Name == "Aktuelle Betreuungsdauer der betreuten Personen") + { + pRO.JahresReportTabelleList.Remove(o); + } + } + foreach (var tab in pRO.JahresReportTabelleList) { if (tab.JahresReportDetailList != null) diff --git a/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.designer.cs b/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.designer.cs index f37f4a6b9..20b790db8 100644 --- a/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.designer.cs +++ b/ReportImp/KontaktUndKrisenhilfeReports/JahresReport.designer.cs @@ -47,29 +47,31 @@ namespace KontaktUndKrisenhilfeReports this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell(); this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand(); this.Detail3 = new DevExpress.XtraReports.UI.DetailBand(); this.DetailReport3 = new DevExpress.XtraReports.UI.DetailReportBand(); this.Detail4 = new DevExpress.XtraReports.UI.DetailBand(); this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); - this.xrTable9 = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell(); this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand(); this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel(); this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.xrTable1 = new DevExpress.XtraReports.UI.XRTable(); + this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); ((System.ComponentModel.ISupportInitialize)(this.xrTable8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable9)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // // Detail @@ -172,6 +174,7 @@ namespace KontaktUndKrisenhilfeReports this.xrTableCell11, this.xrTableCell12, this.xrTableCell16, + this.xrTableCell4, this.xrTableCell17}); this.xrTableRow9.Name = "xrTableRow9"; this.xrTableRow9.Weight = 0.5D; @@ -197,7 +200,7 @@ namespace KontaktUndKrisenhilfeReports this.xrTableCell11.Name = "xrTableCell11"; this.xrTableCell11.StylePriority.UseTextAlignment = false; this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell11.Weight = 0.7230987127281342D; + this.xrTableCell11.Weight = 0.54232390582059531D; // // xrTableCell12 // @@ -206,7 +209,7 @@ namespace KontaktUndKrisenhilfeReports this.xrTableCell12.Name = "xrTableCell12"; this.xrTableCell12.StylePriority.UseTextAlignment = false; this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell12.Weight = 0.723099080515292D; + this.xrTableCell12.Weight = 0.54232421055852631D; // // xrTableCell16 // @@ -215,12 +218,42 @@ namespace KontaktUndKrisenhilfeReports this.xrTableCell16.Name = "xrTableCell16"; this.xrTableCell16.StylePriority.UseTextAlignment = false; this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell16.Weight = 0.72309924864656439D; + this.xrTableCell16.Weight = 0.542324189542117D; // // xrTableCell17 // this.xrTableCell17.Name = "xrTableCell17"; - this.xrTableCell17.Weight = 0.21090378376906091D; + this.xrTableCell17.Weight = 0.21090454679494081D; + // + // xrTableRow1 + // + this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell1, + this.xrTableCell13}); + this.xrTableRow1.Name = "xrTableRow1"; + this.xrTableRow1.Weight = 0.5D; + // + // xrTableCell1 + // + this.xrTableCell1.Name = "xrTableCell1"; + this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F); + this.xrTableCell1.StylePriority.UsePadding = false; + this.xrTableCell1.StylePriority.UseTextAlignment = false; + this.xrTableCell1.Text = "Namen der KlientInnen:"; + this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell1.Weight = 0.52490869872986667D; + // + // xrTableCell13 + // + this.xrTableCell13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "JahresReportTabelleList.JahresReportDetailList.AllCustomerString")}); + this.xrTableCell13.Multiline = true; + this.xrTableCell13.Name = "xrTableCell13"; + this.xrTableCell13.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F); + this.xrTableCell13.StylePriority.UsePadding = false; + this.xrTableCell13.StylePriority.UseTextAlignment = false; + this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell13.Weight = 2.015796264516617D; // // DetailReport2 // @@ -260,85 +293,12 @@ namespace KontaktUndKrisenhilfeReports // GroupHeader1 // this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { - this.xrTable9}); + this.xrTable1}); this.GroupHeader1.HeightF = 25F; this.GroupHeader1.KeepTogether = true; this.GroupHeader1.Name = "GroupHeader1"; this.GroupHeader1.RepeatEveryPage = true; // - // xrTable9 - // - this.xrTable9.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) - | DevExpress.XtraPrinting.BorderSide.Right) - | DevExpress.XtraPrinting.BorderSide.Bottom))); - this.xrTable9.BorderWidth = 1F; - this.xrTable9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); - this.xrTable9.Name = "xrTable9"; - this.xrTable9.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRow2}); - this.xrTable9.SizeF = new System.Drawing.SizeF(726.0417F, 25F); - this.xrTable9.StylePriority.UseBorders = false; - this.xrTable9.StylePriority.UseBorderWidth = false; - // - // xrTableRow2 - // - this.xrTableRow2.BackColor = System.Drawing.Color.SlateGray; - this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell4, - this.xrTableCell5, - this.xrTableCell6, - this.xrTableCell7, - this.xrTableCell8}); - this.xrTableRow2.Name = "xrTableRow2"; - this.xrTableRow2.StylePriority.UseBackColor = false; - this.xrTableRow2.Weight = 0.49999999999999994D; - // - // xrTableCell4 - // - this.xrTableCell4.Name = "xrTableCell4"; - this.xrTableCell4.Weight = 0.61979904824249443D; - // - // xrTableCell5 - // - this.xrTableCell5.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrTableCell5.ForeColor = System.Drawing.Color.White; - this.xrTableCell5.Name = "xrTableCell5"; - this.xrTableCell5.StylePriority.UseFont = false; - this.xrTableCell5.StylePriority.UseForeColor = false; - this.xrTableCell5.StylePriority.UseTextAlignment = false; - this.xrTableCell5.Text = "Anzahl"; - this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell5.Weight = 0.72309896492504233D; - // - // xrTableCell6 - // - this.xrTableCell6.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrTableCell6.ForeColor = System.Drawing.Color.White; - this.xrTableCell6.Name = "xrTableCell6"; - this.xrTableCell6.StylePriority.UseFont = false; - this.xrTableCell6.StylePriority.UseForeColor = false; - this.xrTableCell6.StylePriority.UseTextAlignment = false; - this.xrTableCell6.Text = "Weiblich"; - this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell6.Weight = 0.72309895441683791D; - // - // xrTableCell7 - // - this.xrTableCell7.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.xrTableCell7.ForeColor = System.Drawing.Color.White; - this.xrTableCell7.Name = "xrTableCell7"; - this.xrTableCell7.StylePriority.UseFont = false; - this.xrTableCell7.StylePriority.UseForeColor = false; - this.xrTableCell7.StylePriority.UseTextAlignment = false; - this.xrTableCell7.Text = "Männlich"; - this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; - this.xrTableCell7.Weight = 0.72309896492504233D; - // - // xrTableCell8 - // - this.xrTableCell8.Name = "xrTableCell8"; - this.xrTableCell8.Weight = 0.21090406749058277D; - // // GroupHeader2 // this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { @@ -377,40 +337,106 @@ namespace KontaktUndKrisenhilfeReports this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel1.SizeF = new System.Drawing.SizeF(92.70833F, 45.83333F); // - // xrTableRow1 - // - this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell1, - this.xrTableCell13}); - this.xrTableRow1.Name = "xrTableRow1"; - this.xrTableRow1.Weight = 0.5D; - // - // xrTableCell1 - // - this.xrTableCell1.Name = "xrTableCell1"; - this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F); - this.xrTableCell1.StylePriority.UsePadding = false; - this.xrTableCell1.StylePriority.UseTextAlignment = false; - this.xrTableCell1.Text = "Namen der KlientInnen:"; - this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell1.Weight = 0.61979917434094856D; - // - // xrTableCell13 - // - this.xrTableCell13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { - new DevExpress.XtraReports.UI.XRBinding("Text", null, "JahresReportTabelleList.JahresReportDetailList.AllCustomerString")}); - this.xrTableCell13.Multiline = true; - this.xrTableCell13.Name = "xrTableCell13"; - this.xrTableCell13.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F); - this.xrTableCell13.StylePriority.UsePadding = false; - this.xrTableCell13.StylePriority.UseTextAlignment = false; - this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell13.Weight = 2.3802008256590512D; - // // bindingSource1 // this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.JahresReportRO); // + // xrTable1 + // + this.xrTable1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top) + | DevExpress.XtraPrinting.BorderSide.Right) + | DevExpress.XtraPrinting.BorderSide.Bottom))); + this.xrTable1.BorderWidth = 1F; + this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F); + this.xrTable1.Name = "xrTable1"; + this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { + this.xrTableRow3}); + this.xrTable1.SizeF = new System.Drawing.SizeF(726.0417F, 25F); + this.xrTable1.StylePriority.UseBorders = false; + this.xrTable1.StylePriority.UseBorderWidth = false; + // + // xrTableRow3 + // + this.xrTableRow3.BackColor = System.Drawing.Color.SlateGray; + this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableCell2, + this.xrTableCell3, + this.xrTableCell10, + this.xrTableCell14, + this.xrTableCell15, + this.xrTableCell18}); + this.xrTableRow3.Name = "xrTableRow3"; + this.xrTableRow3.StylePriority.UseBackColor = false; + this.xrTableRow3.Weight = 0.49999999999999994D; + // + // xrTableCell2 + // + this.xrTableCell2.Name = "xrTableCell2"; + this.xrTableCell2.Weight = 0.61979904824249443D; + // + // xrTableCell3 + // + this.xrTableCell3.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrTableCell3.ForeColor = System.Drawing.Color.White; + this.xrTableCell3.Name = "xrTableCell3"; + this.xrTableCell3.StylePriority.UseFont = false; + this.xrTableCell3.StylePriority.UseForeColor = false; + this.xrTableCell3.StylePriority.UseTextAlignment = false; + this.xrTableCell3.Text = "Anzahl"; + this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell3.Weight = 0.54232422106673062D; + // + // xrTableCell10 + // + this.xrTableCell10.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrTableCell10.ForeColor = System.Drawing.Color.White; + this.xrTableCell10.Name = "xrTableCell10"; + this.xrTableCell10.StylePriority.UseFont = false; + this.xrTableCell10.StylePriority.UseForeColor = false; + this.xrTableCell10.StylePriority.UseTextAlignment = false; + this.xrTableCell10.Text = "Weiblich"; + this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell10.Weight = 0.5423242105585262D; + // + // xrTableCell14 + // + this.xrTableCell14.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrTableCell14.ForeColor = System.Drawing.Color.White; + this.xrTableCell14.Name = "xrTableCell14"; + this.xrTableCell14.StylePriority.UseFont = false; + this.xrTableCell14.StylePriority.UseForeColor = false; + this.xrTableCell14.StylePriority.UseTextAlignment = false; + this.xrTableCell14.Text = "Männlich"; + this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell14.Weight = 0.54232422106673062D; + // + // xrTableCell15 + // + this.xrTableCell15.Font = new System.Drawing.Font("Times New Roman", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.xrTableCell15.ForeColor = System.Drawing.Color.White; + this.xrTableCell15.Name = "xrTableCell15"; + this.xrTableCell15.StylePriority.UseFont = false; + this.xrTableCell15.StylePriority.UseForeColor = false; + this.xrTableCell15.StylePriority.UseTextAlignment = false; + this.xrTableCell15.Text = "Divers"; + this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell15.Weight = 0.54232422106673062D; + // + // xrTableCell18 + // + this.xrTableCell18.Name = "xrTableCell18"; + this.xrTableCell18.Weight = 0.21090432129627981D; + // + // xrTableCell4 + // + this.xrTableCell4.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Text", null, "JahresReportTabelleList.JahresReportDetailList.DiversAnzahl")}); + this.xrTableCell4.Name = "xrTableCell4"; + this.xrTableCell4.StylePriority.UseTextAlignment = false; + this.xrTableCell4.Text = "xrTableCell4"; + this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter; + this.xrTableCell4.Weight = 0.542324189542117D; + // // JahresReport // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { @@ -434,8 +460,8 @@ namespace KontaktUndKrisenhilfeReports this.DataField}); this.Version = "17.1"; ((System.ComponentModel.ISupportInitialize)(this.xrTable8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.xrTable9)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); } @@ -462,13 +488,6 @@ namespace KontaktUndKrisenhilfeReports private DevExpress.XtraReports.UI.XRTableCell xrTableCell17; private DevExpress.XtraReports.UI.DetailReportBand DetailReport2; private DevExpress.XtraReports.UI.DetailBand Detail3; - private DevExpress.XtraReports.UI.XRTable xrTable9; - private DevExpress.XtraReports.UI.XRTableRow xrTableRow2; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell5; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell6; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell7; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell8; private DevExpress.XtraReports.UI.XRLabel xrLabel8; private DevExpress.XtraReports.UI.DetailReportBand DetailReport3; private DevExpress.XtraReports.UI.DetailBand Detail4; @@ -479,5 +498,14 @@ namespace KontaktUndKrisenhilfeReports private DevExpress.XtraReports.UI.XRTableRow xrTableRow1; private DevExpress.XtraReports.UI.XRTableCell xrTableCell1; private DevExpress.XtraReports.UI.XRTableCell xrTableCell13; + private DevExpress.XtraReports.UI.XRTable xrTable1; + private DevExpress.XtraReports.UI.XRTableRow xrTableRow3; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell2; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell3; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell10; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell14; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell15; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell18; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; } } diff --git a/ReportImp/KontaktUndKrisenhilfeReports/Reporting/CustomAnnualReportFactory.cs b/ReportImp/KontaktUndKrisenhilfeReports/Reporting/CustomAnnualReportFactory.cs index 26ce756ef..aed65262f 100644 --- a/ReportImp/KontaktUndKrisenhilfeReports/Reporting/CustomAnnualReportFactory.cs +++ b/ReportImp/KontaktUndKrisenhilfeReports/Reporting/CustomAnnualReportFactory.cs @@ -16,7 +16,26 @@ namespace KontaktUndKrisenhilfeReports.Reporting { public class CustomAnnualReportFactory : AnnualReportFactory { - public override bool ShouldProcessSupportConcept(CostBearer2SupportConcept iCb2Sc, SupportConcept sc, Customer customer) + public override List CreateAnnualReport(CostBearer cb, long? teamOid, long? customerCareTypeValueListEntryOid, DateTime reportStartDate, + DateTime reportEndDate) + { + var annualReport = base.CreateAnnualReport(cb, teamOid, customerCareTypeValueListEntryOid, reportStartDate, reportEndDate); + + if (reportStartDate.Month + 1 != reportEndDate.Month) + return annualReport; + + var zugaenge = annualReport.FirstOrDefault(r => r.Name == "Anzahl der Zugänge"); + if (zugaenge != null) + { + zugaenge.Data = CreateZugaengeReport(ReportStartDate, ReportEndDate, Cb2ScListPerCustomerOid, CustomerByOid).Data; + } + + return annualReport; + } + + + + public override bool ShouldProcessSupportConcept(CostBearer2SupportConcept iCb2Sc, SupportConcept sc, Customer customer) { if (sc.IsActive != ActivationTypeId.Deleted && customer.IsActive != ActivationTypeId.Deleted) { @@ -31,5 +50,199 @@ namespace KontaktUndKrisenhilfeReports.Reporting } return false; } - } + + // Hier nur die aktiven Klienten im Monat des Reports holen statt alle pro Halbjahr + public override AnnualReportDC CreateCountPerYearReport() + { + if (ReportStartDate.Month + 1 != ReportEndDate.Month) + return base.CreateCountPerYearReport(); + + var countPerMonthAll = new Dictionary(); + var countPerMonthMale = new Dictionary(); + var countPerMonthFemale = new Dictionary(); + var countPerMonthDivers = new Dictionary(); + var countPerMonthNames = new Dictionary>(); + + countPerMonthAll.Add(ReportStartDate.Year, 0); + countPerMonthMale.Add(ReportStartDate.Year, 0); + countPerMonthFemale.Add(ReportStartDate.Year, 0); + countPerMonthDivers.Add(ReportStartDate.Year, 0); + countPerMonthNames.Add(ReportStartDate.Year, new List()); + + foreach (var customerOid in Cb2ScListPerCustomerOid.Keys) + { + var customer = CustomerByOid[customerOid]; + var c2sList = Cb2ScListPerCustomerOid[customerOid]; + bool isFirst = true; + + foreach (var c2s in c2sList) + { + var startDate = c2s.StartDate; + if (isFirst && customer.AssistanceBegin.HasValue && customer.AssistanceBegin < startDate) + { + startDate = customer.AssistanceBegin; + } + isFirst = false; + + var endDate = c2s.EndDate; + if (customer.TerminationDate.HasValue && customer.TerminationDate < endDate) + { + endDate = customer.TerminationDate; + } + if (startDate <= ReportEndDate && endDate >= ReportEndDate) + { + countPerMonthAll[ReportStartDate.Year] += 1; + + countPerMonthNames[ReportStartDate.Year].Add(String.Format("{0}, {1}", customer.Person.LastName, customer.Person.FirstName)); + + if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Male) + { + countPerMonthMale[ReportStartDate.Year] += 1; + } + else if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Female) + { + countPerMonthFemale[ReportStartDate.Year] += 1; + } + else if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Divers) + { + countPerMonthDivers[ReportStartDate.Year] += 1; + } + } + } + } + + + + var report = new AnnualReportDC(); + report.Name = "Anzahl der Betreuungen"; + + report.Data = new List(); + DateTime startYear = ReportStartDate; //reportStartDate.AddYears(-1); //Vorjahr + int index = 1; + AnnualReportDataDC data = new AnnualReportDataDC(); + report.Data.Add(data); + data.Index = index++; + data.Name = String.Format("{0:MMMM yyyy}", new DateTime(startYear.Year, startYear.Month, 1)); + data.Value = countPerMonthAll[startYear.Year]; + data.CustomerNames = countPerMonthNames[startYear.Year]; + + if (countPerMonthMale.ContainsKey(startYear.Year)) + { + data.Male = countPerMonthMale[startYear.Year]; + } + if (countPerMonthFemale.ContainsKey(startYear.Year)) + { + data.Female = countPerMonthFemale[startYear.Year]; + } + if (countPerMonthDivers.ContainsKey(startYear.Year)) + { + data.Divers = countPerMonthDivers[startYear.Year]; + } + + var testsb = new StringBuilder(); + foreach (var str in report.Data[report.Data.Count - 1].CustomerNames.OrderBy(s => s)) + { + testsb.AppendLine(str); + } + + var teststr = testsb.ToString(); + + return report; + } + + public static AnnualReportDC CreateZugaengeReport(DateTime reportStartDate, DateTime reportEndDate, Dictionary> cb2ScListPerCustomerOid, Dictionary customerByOid) + { + var countPerMonthAll = new Dictionary(); + var countPerMonthMale = new Dictionary(); + var countPerMonthFemale = new Dictionary(); + var countPerMonthDivers = new Dictionary(); + var countPerMonthNames = new Dictionary>(); + + countPerMonthAll.Add(reportStartDate.Year, 0); + countPerMonthMale.Add(reportStartDate.Year, 0); + countPerMonthFemale.Add(reportStartDate.Year, 0); + countPerMonthDivers.Add(reportStartDate.Year, 0); + countPerMonthNames.Add(reportStartDate.Year, new List()); + + foreach (var customerOid in cb2ScListPerCustomerOid.Keys) + { + var customer = customerByOid[customerOid]; + var c2sList = cb2ScListPerCustomerOid[customerOid]; + bool isFirst = true; + + foreach (var c2s in c2sList) + { + var startDate = c2s.StartDate; + if (isFirst && customer.AssistanceBegin.HasValue && customer.AssistanceBegin < startDate) + { + startDate = customer.AssistanceBegin; + } + isFirst = false; + + var endDate = c2s.EndDate; + if (customer.TerminationDate.HasValue && customer.TerminationDate < endDate) + { + endDate = customer.TerminationDate; + } + if (startDate >= reportStartDate && startDate <= reportEndDate) + { + countPerMonthAll[reportStartDate.Year] += 1; + + countPerMonthNames[reportStartDate.Year].Add(String.Format("{0}, {1}", customer.Person.LastName, customer.Person.FirstName)); + + if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Male) + { + countPerMonthMale[reportStartDate.Year] += 1; + } + else if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Female) + { + countPerMonthFemale[reportStartDate.Year] += 1; + } + else if (customer.Person.Sex.HasValue && customer.Person.Sex.Value == Sex.Divers) + { + countPerMonthDivers[reportStartDate.Year] += 1; + } + } + } + } + + + + var report = new AnnualReportDC(); + report.Name = "Anzahl der Betreuungen"; + + report.Data = new List(); + DateTime startYear = reportStartDate; //reportStartDate.AddYears(-1); //Vorjahr + int index = 1; + AnnualReportDataDC data = new AnnualReportDataDC(); + report.Data.Add(data); + data.Index = index++; + data.Name = String.Format("{0:MMMM yyyy}", new DateTime(startYear.Year, startYear.Month, 1)); + data.Value = countPerMonthAll[startYear.Year]; + data.CustomerNames = countPerMonthNames[startYear.Year]; + + if (countPerMonthMale.ContainsKey(startYear.Year)) + { + data.Male = countPerMonthMale[startYear.Year]; + } + if (countPerMonthFemale.ContainsKey(startYear.Year)) + { + data.Female = countPerMonthFemale[startYear.Year]; + } + if (countPerMonthDivers.ContainsKey(startYear.Year)) + { + data.Divers = countPerMonthDivers[startYear.Year]; + } + + var testsb = new StringBuilder(); + foreach (var str in report.Data[report.Data.Count - 1].CustomerNames.OrderBy(s => s)) + { + testsb.AppendLine(str); + } + + var teststr = testsb.ToString(); + + return report; + } + } } \ No newline at end of file