Files
BeWoPlaner/ReportImp/DiakonieLandshut/RechnungTwg.cs
2020-09-15 13:12:53 +02:00

121 lines
4.4 KiB
C#

using System;
using System.Text;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared;
using DevExpress.XtraReports.UI;
namespace DiakonieLandshut
{
public partial class RechnungTwg : XtraReport//, IBeWoReport<ServiceInvoiceRO>
{
public RechnungTwg()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
if (pRO.CustomerSalutation == "Herr")
{
pRO.CustomerSalutation = "Herrn";
}
DateTime start = pRO.AccountingPeriodStart;
DateTime end = pRO.AccountingPeriodEnd;
//if (start.Month == end.Month && start.Year == end.Year)
//{
// lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Monat {0:MMMM yyyy} folgende erbrachte Tätigkeiten:", start);
//}
//else
//{
// lblAbrechnungszeitraum.Text = String.Format("hiermit berechnen wir für den Zeitraum {0:MMMM yyyy} - {1:MMMM yyyy} folgende erbrachte Tätigkeiten:", start, end);
//}
StringBuilder sb = new StringBuilder();
if (!String.IsNullOrEmpty(pRO.RecipientOrganisation))
{
sb.AppendLine(pRO.RecipientOrganisation);
}
if (!String.IsNullOrEmpty(pRO.RecipientContactPerson))
{
sb.AppendLine(pRO.RecipientContactPerson);
}
if (!String.IsNullOrEmpty(pRO.RecipientDivision))
{
sb.AppendLine(pRO.RecipientDivision);
}
if (!String.IsNullOrEmpty(pRO.RecipientStreet))
{
sb.AppendLine(pRO.RecipientStreet);
}
if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown))
{
sb.AppendLine(pRO.RecipientPostCodeAndTown);
}
lblAdresse.Text = sb.ToString();
decimal bewilligt = 0;
decimal satz = 0;
String ansprechpartner = "";
foreach (var sip in pRO.ServiceInvoicePeriods)
{
if (sip.CostBearer2SupportConcept != null && sip.CostBearer2SupportConcept.CostBearerContactPerson != null)
{
ansprechpartner = String.Format("{0} {1}",
sip.CostBearer2SupportConcept.CostBearerContactPerson.Sex.HasValue &&
sip.CostBearer2SupportConcept.CostBearerContactPerson.Sex.Value == Sex.Male
? "Herr"
: "Frau", sip.CostBearer2SupportConcept.CostBearerContactPerson.LastName);
}
if (sip.SupportConceptApprovalPeriod != null)
{
bewilligt = sip.SupportConceptApprovalPeriod.ApprovedBEPerInterval ?? 0;
}
foreach (var ii in sip.ServiceInvoiceItems)
{
satz = ii.AmountPerUnit ?? 0;
}
}
var bs = GetBetreuungsschluessel(bewilligt);
if (bs > 0)
{
lblBetreuungssatz.Text = String.Format("Betreuungsschlüssel 1 : {0:0.##} / Betreuungssatz {1:c}", bs, satz);
}
else
{
lblBetreuungssatz.Text = String.Format("Betreuungssatz {1:c}", satz);
}
if (pRO.RecipientOrganisation.Contains("TWG"))
{
lblBetreff.Text = "Einzelabrechnung Therapeutische Wohngemeinschaft für";
lblAnrede.Text = String.Format("Sehr geehrter {0},\r\n\r\nnachfolgend die Abrechnung für\r\n{1} {2} {3} nach aktueller Vergütungsvereinbarung:", ansprechpartner, pRO.CustomerSalutation, pRO.CustomerFirstName, pRO.CustomerLastName);
}
else
{
lblAnrede.Text = String.Format("Sehr geehrter {0},\r\n\r\nnachfolgend die Abrechnung des Ambulant Betreuten Einzelwohnens für\r\n{1} {2} {3} für den Zeitraum vom {4:dd.MM.yyyy} bis {5:dd.MM.yyyy}:", ansprechpartner, pRO.CustomerSalutation, pRO.CustomerFirstName, pRO.CustomerLastName, pRO.AccountingPeriodStart, pRO.AccountingPeriodEnd);
}
this.bindingSource1.DataSource = pRO;
}
private int GetBetreuungsschluessel(decimal bewilligt)
{
if (bewilligt > 0)
{
return (int) (24m / bewilligt);
}
return -1;
}
}
}