using System; using System.Collections.Generic; using BeWo.Report; using BeWo.Report.ReportObjects; using DevExpress.XtraReports.UI; namespace BeWo.IBPReports { public partial class ServiceInvoiceReport : XtraReport, IBeWoReport { public ServiceInvoiceReport() { this.InitializeComponent(); } public void SetReportDataSource(ServiceInvoiceRO pRO) { decimal totalFLSGeleistet = 0; decimal totalEURGesamt = 0; ServiceInvoiceItemRO fahrZeiten = null; ServiceInvoiceItemRO fehlkontakte = null; if (pRO.ServiceInvoicePeriods != null && pRO.ServiceInvoicePeriods.Count > 0) { List items = new List(); foreach (var sip in pRO.ServiceInvoicePeriods) { foreach (var ii in sip.ServiceInvoiceItems) { if (ii.ServiceDescription == "Fahrt- und Wegezeiten") { fahrZeiten = ii; } else if (ii.ServiceDescription == "Ausfallzeiten Fehlkontakte") { fehlkontakte = ii; } else { items.Add(ii); totalFLSGeleistet += ii.UnitCount ?? 0; totalEURGesamt += ii.NetAmount ?? 0; } } } pRO.ServiceInvoicePeriods.Clear(); var newSip = new ServiceInvoicePeriodRO(); newSip.ServiceInvoiceItems = new List(); newSip.ServiceInvoiceItems = items; pRO.ServiceInvoicePeriods.Add(newSip); } //lblFLSGesamtBewilligt.Text = String.Format("{0:0.00}", totalFLSBewilligt); lblFLSErbracht.Text = String.Format("{0:0.00}", totalFLSGeleistet); lblEURGesamt.Text = String.Format("{0:c}", totalEURGesamt); if (fahrZeiten != null) { lblFahrtzeitenBetrag.Text = String.Format("{0:c}", fahrZeiten.NetAmount); totalEURGesamt += fahrZeiten.NetAmount ?? 0; } if (fehlkontakte != null) { lblAusfallzeitenBetrag.Text = String.Format("{0:c}", fehlkontakte.NetAmount); totalEURGesamt += fehlkontakte.NetAmount ?? 0; } lblGesamtbetrag.Text = String.Format("{0:c}", totalEURGesamt); this.bindingSource1.DataSource = pRO; } } }