Files
BeWoPlaner/ReportImp/FenixSozialeDienste/ServiceInvoiceReportFLS.cs

58 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BS.Shared;
using BS.Shared.Extensions;
using DevExpress.XtraReports.UI;
namespace FenixSozialeDienste
{
public partial class ServiceInvoiceReportFLS : XtraReport
{
public List<ServiceInvoicePeriodRO> flsList { get; set; }
public List<ServiceInvoicePeriodRO> aggregiert { get; set; }
public ServiceInvoiceReportFLS()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
if (pRO.ServiceInvoicePeriods != null && pRO.ServiceInvoicePeriods.Count > 0)
{
if (pRO.ServiceInvoicePeriods.All(sip => sip.ServiceInvoiceItems != null))
{
decimal km = 0;
foreach (var sip in pRO.ServiceInvoicePeriods)
{
if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 0)
{
if (sip.ServiceInvoiceItems.Any(ii => ii.UnitDescription.Contains("km:")))
{
sip.ServiceInvoiceItems = sip.ServiceInvoiceItems.Where(ii => !ii.UnitDescription.Contains("km:")).ToList();
}
foreach (var ii in sip.ServiceInvoiceItems)
{
ii.UnitCountString = "";
ii.Duration = String.Format("{0:dd.MM.yyyy} ({0:ddd})", ii.ServiceRecord.Start.Value);
if (ii.ServiceRecord.DistanceInMeter.HasValue)
{
ii.RateFactor = ii.ServiceRecord.DistanceInMeter.Value.ToString("n2");
km += ii.ServiceRecord.DistanceInMeter.Value;
}
}
}
}
xrTableCell17.Text = km.ToString("n2");
}
}
this.bindingSource1.DataSource = pRO;
}
}
}