Files
BeWoPlaner/ReportImp/AidshilfeEssen/ServiceInvoiceReport.cs

88 lines
3.9 KiB
C#
Raw Permalink Normal View History

2022-02-02 17:50:40 +01:00
using System;
using BeWo.Data.Access;
using BeWo.Data.Entities;
2022-04-29 20:37:37 +02:00
using BeWo.Report;
2022-02-02 17:50:40 +01:00
using BeWo.Report.ReportObjects;
using DevExpress.XtraReports.UI;
2022-04-29 20:37:37 +02:00
namespace AidshilfeEssen
2022-02-02 17:50:40 +01:00
{
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
{
public ServiceInvoiceReport()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
decimal hourlyRate = 0;
decimal rateFactor = 1;
decimal hours = 0;
if (pRO.ServiceInvoicePeriods != null && pRO.ServiceInvoicePeriods.Count > 0)
{
foreach (var p in pRO.ServiceInvoicePeriods)
{
if (p.ServiceInvoiceItems != null && p.ServiceInvoiceItems.Count > 0)
{
foreach (var i in p.ServiceInvoiceItems)
{
if (i.HourlyRate.HasValue)
{
hourlyRate = i.HourlyRate.Value;
if (!String.IsNullOrEmpty(i.RateFactor))
{
var rfStr = i.RateFactor.Replace("%", "").Replace(",00", "").Trim();
int rfInt = 0;
Int32.TryParse(rfStr, out rfInt);
rateFactor = (100m + rfInt) / 100m;
}
}
if (i.Hours.HasValue)
hours += i.Hours.Value;
}
}
}
}
DateTime changeDt = new DateTime(2019, 12, 10); //CB Am 10.12.2019 habe ich die <20>nderungen gemacht, dass der Ratefactor nicht mehr nachtr<74>glich hier im Formular auf die Stunden gerechnet werden muss.
if (pRO.InvoiceDateTime.HasValue && pRO.InvoiceDateTime < new DateTime(2019, 12, 10) && pRO.InvoiceBase != null)
{
var ib = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(pRO.InvoiceBase.InvoiceBaseOid.Value);
if (ib.InsTs < changeDt)
{
hours *= rateFactor;
}
}
if (pRO.RecipientOrganisation.ToLower().Contains("lvr") || pRO.RecipientOrganisation.ToLower().Contains("landschaftsverband rheinland"))
2022-02-02 17:50:40 +01:00
lblSchlusssatz.Text = "Es wird ausdr<64>cklich best<73>tigt, dass in den angegebenen Dienstleistungsstunden nur unmittelbare Betreuungsleistungen im Sinne der " +
"Leistungs- und Pr<50>fungs- sowie der Verg<72>tungsvereinbarung enthalten sind. Eine Dienstleistungsstunde besteht aus 40 (Zeit-)Minuten. Alle gemachten Angaben " +
"k<>nnen anhand der vorgehaltenen Quittierungsbelege sowie der Betreuungsdokumentation nachgewiesen werden. Es wird weiterhin best<73>tigt, dass die " +
"Verpflichtungen aus der Leistungs- und Pr<50>fungs- sowie der Verg<72>tungsvereinbarung eingehalten wurden.\n\nBitte geben Sie bei einer <20>berweisung die o. g. Rechnungsnummer an. " +
"Die Bankverbindung lautet: ";
else
lblSchlusssatz.Text = "Bitte geben Sie bei einer <20>berweisung die o.g.Rechnungsnummer an. Die Bankverbindung lautet:";
lblForderung.Text =
String.Format("Hieraus ergibt sich eine Forderung von {0:0.00} Std. x {1:0.00} EUR = {2:0.00} EUR.", hours, hourlyRate, pRO.NetClaim);
lblAbrechnungszeitraum.Text =
String.Format(
2022-05-12 12:08:52 +02:00
"Im Zeitraum vom {0:dd.MM.yyyy} bis {1:dd.MM.yyyy} wurden {2:0.00} Dienstleistungsstunden des Ambulant Betreuten Wohnens erbracht.",
2022-02-02 17:50:40 +01:00
pRO.AccountingPeriodStart, pRO.AccountingPeriodEnd, hours);
this.bindingSource1.DataSource = pRO;
}
}
}