Files
BeWoPlaner/ReportImp/ChristopherusHausMID/Leistungsnachweis.cs
Christian 1fef984037 - Ersteinrichtung LH Bad Kreuznach FUD
- Projekt Kopie LH Remscheid -> LH Remscheid Frühförderung nach DB Spiegelung
- Bugfixing Pool Abrechnung Christopherus Haus
- Änderung Ansprechpartner LH Frankfurt Oder
- Leistungsnachweis für KK Praxis Pusteblume
- Bugfixing Kloss Vertretungssuche und Frau Hildmann diverse Stundenkonten
2025-05-15 20:41:41 +02:00

107 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using DevExpress.XtraReports.UI;
using System.Data;
using BS.Shared.Core;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System.Linq;
using ChristopherusHausMID.Invoicing;
namespace ChristopherusHausMID
{
public partial class Leistungsnachweis : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SbdStundenaufstellungRO>
{
public Leistungsnachweis()
{
InitializeComponent();
}
public void SetReportDataSource(SbdStundenaufstellungRO pRO)
{
cellDatum.Text = String.Format("{0:dd.MM.yyyy}", DateTime.Now);
String klienten = "";
String klassen = "";
String bewilligungen = "";
Customer mainCustomer = DAOFactory.GenericDAO.LoadByID<Customer>(pRO.CustomerOid);
var weiterePoolKinder = new List<Customer>();
var hauptbetreuung = PoolHelper.GetHauptbetreuung(mainCustomer, pRO.StartDate);
if (hauptbetreuung != null)
{
pRO.EmployeeName = hauptbetreuung.Person.FirstNameLastName;
}
klienten = mainCustomer.Person.FirstNameLastName;
klassen = mainCustomer.Childs; //CB: Ich habe das Feld "Kinder" bei denen in "Klasse" umbenannt
if (pRO.ApprovedPerWeek == 0)
{
pRO.ApprovedPerWeek = GetAktuelleBewilligung(mainCustomer, pRO.StartDate);
}
bewilligungen = String.Format("{0:0.00}", pRO.ApprovedPerWeek);
var allCustomer = PoolHelper.GetWeiterePoolKinder(mainCustomer, pRO.StartDate, pRO.EndDate);
if (allCustomer.Count > 0)
{
foreach (var c in allCustomer)
{
//Alle betreuten Kinder, für den der Beleg nicht gedruckt wurde, müssen mit Namen aufgeführt werden.
if (c.Oid != pRO.CustomerOid)
{
weiterePoolKinder.Add(c);
klienten += "\n";
klienten += c.Person.FirstNameLastName;
klassen += "\n";
klassen += c.Childs;
decimal bewilligt = GetAktuelleBewilligung(c, pRO.StartDate);
bewilligungen += "\n";
bewilligungen += String.Format("{0:0.00}", bewilligt);
}
}
}
cellKinder.Text = klienten;
cellKlasse.Text = klassen;
cellBewilligung.Text = bewilligungen;
PoolHelper.BerechnePoolFaktorenFuerQuittierungsbeleg(pRO);
this.bindingSource1.DataSource = pRO;
}
private decimal GetAktuelleBewilligung(Customer c, DateTime datum)
{
var scList = c.SupportConcepts;
foreach (var sc in scList)
{
foreach (var c2s in sc.CostBearer2SupportConceptList)
{
foreach (var scap in c2s.ApprovalPeriodList)
{
if (scap.StartDate <= datum && datum <= scap.EndDate && scap.ApprovedBEPerInterval.HasValue)
{
return scap.ApprovedBEPerInterval.Value;
}
}
}
}
return 0;
}
}
}