72 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|
|
} |