MH: Mittelpunkt Dienstplanungsdruck

This commit is contained in:
2025-06-04 13:54:55 +02:00
parent 9328e1535b
commit 005b136f19
5 changed files with 1278 additions and 0 deletions

View File

@@ -100,6 +100,12 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="QueryListReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="QueryListReport.Designer.cs">
<DependentUpon>QueryListReport.cs</DependentUpon>
</Compile>
<Compile Include="Quittierungsbeleg.cs">
<SubType>Component</SubType>
</Compile>
@@ -112,6 +118,12 @@
<Compile Include="QuittierungsbelegAssistenz.Designer.cs">
<DependentUpon>QuittierungsbelegAssistenz.cs</DependentUpon>
</Compile>
<Compile Include="RosterIstReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="RosterIstReport.designer.cs">
<DependentUpon>RosterIstReport.cs</DependentUpon>
</Compile>
<Compile Include="ServiceInvoiceReport.cs">
<SubType>Component</SubType>
</Compile>
@@ -176,6 +188,10 @@
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="QueryListReport.resx">
<DependentUpon>QueryListReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Quittierungsbeleg.resx">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
<SubType>Designer</SubType>
@@ -184,6 +200,9 @@
<DependentUpon>QuittierungsbelegAssistenz.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="RosterIstReport.resx">
<DependentUpon>RosterIstReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ServiceInvoiceReport.resx">
<DependentUpon>ServiceInvoiceReport.cs</DependentUpon>
<SubType>Designer</SubType>

View File

@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BS.Shared.Core;
using BS.Shared.Extensions;
using DevExpress.XtraReports.UI;
namespace Mittelpunkt
{
public partial class RosterIstReport : XtraReport, IBeWoReport<RosterIstRO>
{
public RosterIstReport()
{
InitializeComponent();
}
public void SetReportDataSource(RosterIstRO pRO)
{
var empOids = pRO.PageObjects.Select(po => po.Mitarbeiter.EmployeeOid.Value);
DateTime datum = DateTime.Today;
if (pRO.PageObjects != null && pRO.PageObjects.Count > 0)
{
CultureInfo deCulture = new CultureInfo("de-DE");
string datumString = "1. " + pRO.PageObjects[0].Monat + " " + pRO.PageObjects[0].Jahr;
datum = DateTime.ParseExact(datumString, "d. MMMM yyyy", deCulture);
}
var berechnung = new CustomMitarbeiterstundenkontoBerechnung();
var msro = MitarbeiterstundenkontoRO.Create(null, null, datum, datum.AddMonths(1), empOids);
berechnung.CreateEmployeeDetails(msro);
foreach (var po in pRO.PageObjects)
{
var emp = DAOFactory.GenericDAO.GetByID<Employee>(po.Mitarbeiter.EmployeeOid.Value);
if (emp != null)
{
var ed = msro.EmployeeDetailList.FirstOrDefault(e => e.Employee.Oid == po.Mitarbeiter.EmployeeOid);
po.Mitarbeiter.Text5 = string.Format("{0:0.00}", ed.SollProTag);
var dauer = po.EintraegeProMitarbeiter.Sum(e => Convert.ToDecimal(e.DauerInStunden.IsNullOrEmpty() || e.DauerInStunden == " " ? null : e.DauerInStunden));
var urlaub = ed.TageUrlaub != null ? ed.TageUrlaub * ed.SollProTag : 0;
var krankheit = ed.TageKrankheit != null ? ed.TageKrankheit * ed.SollProTag : 0;
summeGesamtDauer.Text = string.Format("{0:0.00}", dauer);
summeGesamtUrlaub.Text = string.Format("{0:0.00}", urlaub);
summeGesamtKrankheit.Text = string.Format("{0:0.00}", krankheit);
if (ed != null)
{
po.Mitarbeiter.Text1 = string.Format("{0:0.00}", dauer + urlaub + krankheit);
po.Mitarbeiter.Text2 = string.Format("{0:0.00}", ed.StundenSollMax);
po.Mitarbeiter.Text3 = string.Format("{0:0.00}", dauer + urlaub + krankheit - ed.StundenSollMax);
}
}
foreach (var eintrag in po.EintraegeProMitarbeiter)
{
if (!eintrag.Urlaub.IsNullOrEmpty() && eintrag.Urlaub != " ")
eintrag.Urlaub = "X";
if (!eintrag.Krankheit.IsNullOrEmpty() && eintrag.Krankheit != " ")
eintrag.Krankheit = "X";
}
}
this.RosterIstRO.DataSource = pRO;
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB