Files
BeWoPlaner/ReportImp/LeiendeckerReports/ServiceInvoiceReport.cs
Christian a896a7bfec cb
2019-09-17 17:44:57 +02:00

72 lines
2.2 KiB
C#

using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using DevExpress.XtraReports.UI;
namespace BeWo.LeiendeckerReports
{
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
{
public ServiceInvoiceReport()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
lblAbrechnungstext.Text =
string.Format("Abrechnung Betreuungsleistungen für {0} {1}, geb. {2:dd.MM.yyyy}",
pRO.CustomerSalutation, pRO.CustomerName, pRO.CustomerBirthdate);
decimal hoursTotal = 0;
decimal einzelbetrag = 0;
decimal gesamt = 0;
decimal rateFactor = 1;
if (pRO.ServiceInvoicePeriods != null)
{
foreach (var sip in pRO.ServiceInvoicePeriods)
{
if (sip.ServiceInvoiceItems != null)
{
foreach (var sii in sip.ServiceInvoiceItems)
{
if (sii.Hours.HasValue)
hoursTotal += sii.Hours.Value;
if (sii.HourlyRate.HasValue && einzelbetrag == 0)
einzelbetrag = sii.HourlyRate.Value;
if (!String.IsNullOrEmpty(sii.RateFactor))
{
var rfStr = sii.RateFactor.Replace("%", "").Replace(",00", "").Trim();
int rfInt = 0;
Int32.TryParse(rfStr, out rfInt);
rateFactor = (100m + rfInt) / 100m;
}
if (rateFactor > 0)
gesamt += sii.NetAmount.Value * rateFactor;
}
}
}
}
cellHours.Text = String.Format("{0:0.##}", hoursTotal);
cellHourlyRate.Text = String.Format("{0:c}", einzelbetrag);
if (rateFactor > 1)
{
cellHourlyRate.Text = String.Format("{0:c} X {1:0.##}", einzelbetrag, rateFactor);
}
cellTotal.Text = String.Format("{0:c}", gesamt);
this.bindingSource1.DataSource = pRO;
}
}
}