Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo

This commit is contained in:
2026-04-28 12:01:56 +02:00
253 changed files with 44245 additions and 396029 deletions

View File

@@ -73,7 +73,7 @@ namespace BeWo.Report
public abstract XtraReport CreateFinanceReport(DateTime? start, DateTime? end, bool splitByServiceCategory, bool onlyNotApproved);
public abstract XtraReport CreateJahresberichtReport(int year, long? cbOid, long? teamOid, long? betreuungsartOid);
public abstract XtraReport CreateJahresberichtReport(AnnualReportConfigDC config);
public abstract XtraReport CreateKassenbelegReport(BargeldtransaktionDC transaktion, long objectOid, TableID objectTid);

View File

@@ -1156,11 +1156,11 @@ namespace BeWo.Report
return report as XtraReport;
}
public override XtraReport CreateJahresberichtReport(int year, long? cbOid, long? teamOid, long? betreuungsartOid)
public override XtraReport CreateJahresberichtReport(AnnualReportConfigDC config)
{
var report = FindReportImp<JahresReportRO>();
report.SetReportDataSource(JahresReportRO.Create(year, cbOid, teamOid, betreuungsartOid));
report.SetReportDataSource(JahresReportRO.Create(config));
return report as XtraReport;
}
@@ -1633,8 +1633,8 @@ namespace BeWo.Report
table.Rows.Add(row);
}
var queryReportObject = QueryRO.Create(new Query() { Title = "Mitarbeiter" }, table);
queryReportObject.Name = "Mitarbeiter";
var queryReportObject = QueryRO.Create(new Query() { Title = "Klienten" }, table);
queryReportObject.Name = "Klienten";
queryReport.SetReportDataSource(queryReportObject);
return queryReport as XtraReport;

File diff suppressed because it is too large Load Diff

View File

@@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -63,6 +63,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
@@ -83,7 +84,6 @@ namespace BeWo.Report.DefaultReports
this.fieldDifferenzWoche2 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzWoche3 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldDifferenzWoche4 = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableData)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
@@ -452,6 +452,10 @@ namespace BeWo.Report.DefaultReports
this.GroupHeader1.Level = 1;
this.GroupHeader1.Name = "GroupHeader1";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -520,7 +524,7 @@ namespace BeWo.Report.DefaultReports
this.xrLabel1.SizeF = new System.Drawing.SizeF(560F, 25F);
this.xrLabel1.StyleName = "Title";
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.Text = "Auswertung über geleistete Fachleistungsstunden";
this.xrLabel1.Text = "Auswertung über geleistete Stunden";
//
// pageFooterBand1
//
@@ -633,10 +637,6 @@ namespace BeWo.Report.DefaultReports
this.fieldDifferenzWoche4.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldDifferenzWoche4.Name = "fieldDifferenzWoche4";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.FLSSollIstReportRO);
//
// FLSSollIstWeeklyReport
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -57,7 +57,7 @@ namespace BeWo.Report.DefaultReports
private String GetWochenKey(FLSSollIstReportRO.FLSSollIstWochenSummen woche)
{
return String.Format("KW {0}, {1:dd.MM.yy} - {2:dd.MM.yy}", woche.KalenderWoche, woche.WocheStart, woche.WocheEnde);
return String.Format("{3}: KW {0}, {1:dd.MM.yy} - {2:dd.MM.yy}", woche.KalenderWoche, woche.WocheStart, woche.WocheEnde, woche.ObjectOid);
}
private void CreateTableCells(List<FLSSollIstReportRO.FLSSollIstWochenSummen> wochen)
{

View File

@@ -8,8 +8,6 @@ namespace BeWo.Report.DefaultReports
[IDSpecificClass(Identifier = "Mitarbeiterauslastung")]
public partial class Mitarbeiterauslastung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterauslastungRO>
{
public Mitarbeiterauslastung()
{
InitializeComponent();
@@ -22,6 +20,5 @@ namespace BeWo.Report.DefaultReports
this.bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -42,6 +42,7 @@ namespace BeWo.Report.DefaultReports
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();
@@ -52,13 +53,8 @@ namespace BeWo.Report.DefaultReports
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.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.lblMonat = new DevExpress.XtraReports.UI.XRLabel();
this.pageFooterBand1 = new DevExpress.XtraReports.UI.PageFooterBand();
@@ -73,14 +69,18 @@ namespace BeWo.Report.DefaultReports
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.fieldTotalSC = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldTotalEmp = new DevExpress.XtraReports.UI.CalculatedField();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
((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.xrTable2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -195,6 +195,15 @@ namespace BeWo.Report.DefaultReports
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.FreiProWoche")});
this.xrTableCell8.Multiline = true;
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.TextFormatString = "{0:0.00}";
this.xrTableCell8.Weight = 0.090171325518485085D;
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -279,7 +288,7 @@ namespace BeWo.Report.DefaultReports
// xrTableCell1
//
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Text = "Kostenträger";
this.xrTableCell1.Text = "Kostentr<EFBFBD>ger";
this.xrTableCell1.Weight = 0.15329125478030678D;
//
// xrTableCell9
@@ -289,70 +298,21 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell9.Text = "Bewilligt/Woche";
this.xrTableCell9.Weight = 0.090171325937473845D;
//
// xrTableCell7
//
this.xrTableCell7.Multiline = true;
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Text = "Frei/Woche";
this.xrTableCell7.Weight = 0.090171325937473845D;
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable1});
this.GroupFooter1.HeightF = 61.04164F;
this.xrTable2});
this.GroupFooter1.HeightF = 61.04167F;
this.GroupFooter1.Level = 1;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrTable1
//
this.xrTable1.Font = new DevExpress.Drawing.DXFont("Arial", 8F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((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(697F, 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.xrTableCell10});
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.1249972614437581D;
//
// 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.0849316752773914D;
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -473,36 +433,75 @@ namespace BeWo.Report.DefaultReports
this.fieldTotalEmp.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldTotalEmp.Name = "fieldTotalEmp";
//
// xrTableCell7
//
this.xrTableCell7.Multiline = true;
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Text = "Frei/Woche";
this.xrTableCell7.Weight = 0.090171325937473845D;
//
// xrTableCell8
//
this.xrTableCell8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.FreiProWoche")});
this.xrTableCell8.Multiline = true;
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.TextFormatString = "{0:0.00}";
this.xrTableCell8.Weight = 0.090171325518485085D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterauslastungRO);
//
// xrTableCell10
// xrTableCell15
//
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.FreiProWoche")});
this.xrTableCell10.Multiline = true;
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.FreiProWoche")});
this.xrTableCell15.Multiline = true;
this.xrTableCell15.Name = "xrTableCell15";
xrSummary1.FormatString = "{0:0.00}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrTableCell10.Summary = xrSummary1;
this.xrTableCell10.Weight = 0.0849316752773914D;
this.xrTableCell15.Summary = xrSummary1;
this.xrTableCell15.Weight = 0.0849316752773914D;
//
// xrTableCell14
//
this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.ApprovedHoursPerWeek", "{0:0.00}")});
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.Text = "cellSollGesamt";
this.xrTableCell14.Weight = 0.0849316752773914D;
//
// xrTableCell13
//
this.xrTableCell13.Name = "xrTableCell13";
this.xrTableCell13.Weight = 0.1249972614437581D;
//
// xrTableCell12
//
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.Weight = 0.15329111579090118D;
//
// xrTableCell11
//
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell11.StylePriority.UseFont = false;
this.xrTableCell11.StylePriority.UsePadding = false;
this.xrTableCell11.StylePriority.UseTextAlignment = false;
this.xrTableCell11.Text = "Gesamt (zum Monatsende)";
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell11.Weight = 0.18034254096455143D;
//
// xrTableRow2
//
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell11,
this.xrTableCell12,
this.xrTableCell13,
this.xrTableCell14,
this.xrTableCell15});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Weight = 1D;
//
// xrTable2
//
this.xrTable2.Font = new DevExpress.Drawing.DXFont("Arial", 8F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
this.xrTable2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable2.Name = "xrTable2";
this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2});
this.xrTable2.SizeF = new System.Drawing.SizeF(697F, 25F);
this.xrTable2.StylePriority.UseBorders = false;
this.xrTable2.StylePriority.UseFont = false;
this.xrTable2.StylePriority.UsePadding = false;
this.xrTable2.StylePriority.UseTextAlignment = false;
this.xrTable2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// Mitarbeiterauslastung
//
@@ -532,8 +531,8 @@ namespace BeWo.Report.DefaultReports
this.Watermarks.Add(xrWatermark1);
((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.xrTable2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -566,11 +565,6 @@ namespace BeWo.Report.DefaultReports
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;
@@ -581,9 +575,14 @@ namespace BeWo.Report.DefaultReports
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;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
private DevExpress.XtraReports.UI.XRTable xrTable2;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
@@ -24,7 +25,6 @@ namespace BeWo.Report.DefaultReports.Alt
{
lblNotice.Visible = false;
}
if (pRO.InvoiceItems != null && pRO.InvoiceItems.Count == 1)
{
var ii = pRO.InvoiceItems[0];
@@ -35,7 +35,7 @@ namespace BeWo.Report.DefaultReports.Alt
}
if (!isDefaultSpitzabrechnung)
{
if (pRO.DifferentHourlyRateCount > 0 && pRO.HourlyRateNew.HasValue)
if (pRO.DifferentHourlyRateCount > 0 && pRO.HourlyRateNew.HasValue && !pRO.InvoiceItems.Any(d => d.ItemDescription != null && d.ItemDescription.Contains("Storno")))
{
isDefaultSpitzabrechnung = true;
}
@@ -70,11 +70,19 @@ namespace BeWo.Report.DefaultReports.Alt
{
foreach (var ii in pRO.InvoiceItems)
{
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.00##} FLS {3}x {4:c}",
if (ii.ItemDescription != null && ii.ItemDescription.Contains("Storno"))
{
ii.ItemDescription = String.Format("Ausbuchung zur vorherigen Rechnung - {0:dd.MM.yyyy} bis {1:dd.MM.yyyy}",
ii.ItemPeriodStart, ii.ItemPeriodEnd);
}
else
{
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.00##} FLS {3}x {4:c}",
ii.ItemPeriodStart, ii.ItemPeriodEnd,
ii.UnitCount, ii.RateFactor == 0 ? "" : "x " + pRO.RateFactorText2 + " ",
ii.AmountPerUnit);
}
}
}
}
}
}

View File

@@ -45,6 +45,8 @@ namespace BeWo.Report.ReportObjects
scd.IstKw5 /= 60;
scd.IstKw6 /= 60;
if (scd.EndDate.HasValue && scd.EndDate.Value.AddDays(1) >= ro.ReportEndDate)
{
empDetail.DirectIst += scd.DirectIst;
empDetail.MittelbarIst += scd.MittelbarIst;
empDetail.ApprovedHoursPerWeekTotal += scd.ApprovedHoursPerWeekTotal;
@@ -55,6 +57,9 @@ namespace BeWo.Report.ReportObjects
empDetail.ApprovedHoursPerMonth += scd.ApprovedHoursPerMonth;
empDetail.ApprovedHoursPerMonthWithRateFactorTotal += scd.ApprovedHoursPerMonthWithRateFactorTotal;
empDetail.ApprovedHoursPerMonthWithRateFactor += scd.ApprovedHoursPerMonthWithRateFactor;
empDetail.FreiProWoche += scd.FreiProWoche;
empDetail.FreiProMonat += scd.FreiProMonat;
}
}
}
}

View File

@@ -13,7 +13,7 @@ namespace BeWo.Report.ReportObjects
public class FLSSollIstReportRO
{
public DateTime? ReportEndDate { get; set; }
public FLSAnalysisConfigDC ReportConfig { get; set; }
public DateTime? ReportStartDate { get; set; }
public List<FLSSollIstRootRO> RootObjectList { get; set; } = new List<FLSSollIstRootRO>();
@@ -75,6 +75,7 @@ namespace BeWo.Report.ReportObjects
public class FLSSollIstWochenSummen
{
public long ObjectOid { get; set; } // Entweder Employee oder CustomerOid, je nachdem wer ausgewertet wird
public decimal? SollStunden { get; set; }
public decimal? IstStunden { get; set; }
@@ -118,7 +119,7 @@ namespace BeWo.Report.ReportObjects
public static FLSSollIstReportRO Create(List<FLSAnalysisRootDC> dcList, FLSAnalysisConfigDC config)
{
var ro = new FLSSollIstReportRO();
ro.ReportConfig = config;
ro.ReportStartDate = config.StartDate;
ro.ReportEndDate = config.EndDate;
@@ -141,7 +142,6 @@ namespace BeWo.Report.ReportObjects
{
var grpRo = new FLSSollIstReportGroupRO();
grpRo.Name = item.DisplayName;
grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null);
if (item.Employee != null)
{
grpRo.ObjectOid = item.Employee.EmployeeOid;
@@ -152,6 +152,17 @@ namespace BeWo.Report.ReportObjects
grpRo.ObjectOid = item.Customer.CustomerOid;
grpRo.ObjectTid = TableID.Customer;
}
long wochenObjectOid = 0;
if (root.Employee != null)
{
wochenObjectOid = root.Employee.EmployeeOid;
}
else if (root.Customer != null)
{
wochenObjectOid = root.Customer.CustomerOid;
}
grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null, wochenObjectOid);
foreach (var sc in item.SupportConcepts)
{
grpRo.CostBearer2SupportConceptList.Add(sc.SupportConcept2CostBearer);
@@ -206,7 +217,7 @@ namespace BeWo.Report.ReportObjects
return ro;
}
private static List<FLSSollIstWochenSummen> ErstelleWochensummen(DateTime? startDate, DateTime? endDate, decimal? defaultSoll)
private static List<FLSSollIstWochenSummen> ErstelleWochensummen(DateTime? startDate, DateTime? endDate, decimal? defaultSoll, long objectOid)
{
var liste = new List<FLSSollIstWochenSummen>();
if (startDate.HasValue && endDate.HasValue)
@@ -219,6 +230,7 @@ namespace BeWo.Report.ReportObjects
var sonntag = dt.AddDays(days);
var ws = new FLSSollIstWochenSummen();
ws.ObjectOid = objectOid;
ws.WocheStart = dt;
//Ermittele den nächsten Sonntag

View File

@@ -223,15 +223,20 @@ namespace BeWo.Report.ReportObjects
{
records = new List<ServiceRecordDC>();
}
// AB, 22.04.2026: Bugfix wenn Betreuung beendet und ein Zeitraum über Ende hinweg gewählt wird
var terminationDate = ro.Costbearer2Supportconcept.SupportConcept.Customer.TerminationDate;
DateTime? effectiveEnd = end;
if (terminationDate.HasValue && (!effectiveEnd.HasValue || terminationDate.Value < effectiveEnd.Value))
{
effectiveEnd = terminationDate.Value;
}
//1.
if (ro.SupportConceptApprovalPeriod != null && ro.SupportConceptApprovalPeriod.ServiceCategory != null)
{
ro.Leistungskategorie = ro.SupportConceptApprovalPeriod.ServiceCategory.Name;
ro.ServiceRecords = records.Where(sr =>
sr.ServiceDescription.Category.ServiceCategoryOid == ro.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid)
.ToList();
ro.ServiceRecords = records.Where(sr => sr.ServiceDescription.Category.ServiceCategoryOid == ro.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid).ToList();
}
else
{
@@ -272,7 +277,7 @@ namespace BeWo.Report.ReportObjects
}
else
{
ro.ApprovedHours = calc.GetApprovedHoursTillNow(ro.Costbearer2Supportconcept, end.Value) ?? 0;
ro.ApprovedHours = calc.GetApprovedHoursTillNow(ro.Costbearer2Supportconcept, effectiveEnd.Value) ?? 0;
}
ro.StundenNichtFehlkontakte = calc.GetBillableDurationInMinutes(flsRecords.Where(sr => sr.Start.Value.Date < end.Value.AddDays(1)).ToList()) / 60;
ro.StundenFehlkontakte = calc.GetBillableDurationInMinutes(fkRecords.Where(sr => sr.Start.Value.Date < end.Value.AddDays(1)).ToList()) / 60;
@@ -317,20 +322,20 @@ namespace BeWo.Report.ReportObjects
}
if (ro.SupportConceptApprovalPeriod != null)
{
ro.ApprovedHoursInReportTimeSpan = calc.GetApprovedHoursForPeriod(ro.SupportConceptApprovalPeriod, costRateDcs, start, end) ?? 0;
ro.ApprovedHoursInReportTimeSpan = calc.GetApprovedHoursForPeriod(ro.SupportConceptApprovalPeriod, costRateDcs, start, effectiveEnd) ?? 0;
}
else
{
ro.ApprovedHoursInReportTimeSpan = calc.GetApprovedHoursForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value);
ro.ApprovedHoursInReportTimeSpan = calc.GetApprovedHoursForPeriod(ro.Costbearer2Supportconcept, start.Value, effectiveEnd.Value);
}
if (splitByServiceCategory && ro.SupportConceptApprovalPeriod != null)
{
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value, ro.SupportConceptApprovalPeriod.ServiceCategory);
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, effectiveEnd.Value, ro.SupportConceptApprovalPeriod.ServiceCategory);
}
else
{
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, end.Value, null);
ro.ApprovedAmountInReportTimeSpan = (decimal)calc.GetApprovedAmountForPeriod(ro.Costbearer2Supportconcept, start.Value, effectiveEnd.Value, null);
}
ro.AmountInReportTimeSpan = 0;
ro.AmountNichtFehlkontakteInReportTimeSpan = 0;

View File

@@ -64,23 +64,15 @@ namespace BeWo.Report.ReportObjects
}
public static JahresReportRO Create(int year, long? orgOid, long? teamOid, long? betreuungsartOid)
{
DateTime startDate = new DateTime(year, 1, 1);
return Create(startDate, startDate.AddYears(1), orgOid, teamOid, betreuungsartOid);
}
public static JahresReportRO Create(DateTime start, DateTime end, long? orgOid, long? teamOid, long? betreuungsartOid)
public static JahresReportRO Create(AnnualReportConfigDC config)
{
AnalysisServiceImp service = new AnalysisServiceImp();
var list = service.CreateAnnualReport(orgOid, teamOid, betreuungsartOid, start, end);
var list = service.CreateAnnualReport2(config);
var ro = Create(list);
ro.ReportStartDate = start;
ro.ReportEndDate = end;
ro.ReportStartDate = config.StartDate;
ro.ReportEndDate = config.EndDate;
return ro;
}

View File

@@ -249,6 +249,10 @@ namespace BeWo.Report.ReportObjects
public String AbsenceTimeString { get; set; }
public decimal FreiProWoche { get; set; }
public decimal FreiProMonat { get; set; }
public List<SupportConceptDetail> SupportConceptDetailList
{
get { return scDetailList; }