Files
BeWoPlaner/ReportImp/CaritasverbandDuerenJuelichEV/ServiceInvoiceReport.cs

105 lines
4.3 KiB
C#

using System;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
namespace CaritasverbandDuerenJuelichEV
{
public partial class ServiceInvoiceReport : XtraReport, IBeWoReport<ServiceInvoiceRO>
{
public ServiceInvoiceReport()
{
this.InitializeComponent();
}
public void SetReportDataSource(ServiceInvoiceRO pRO)
{
lblRechnungsnummer.Text = pRO.InvoiceNumber;
lblRechnungsnamen.Text = pRO.CustomerLastName + ", " + pRO.CustomerFirstName + " - RE" + pRO.InvoiceNumber;
lblBewZeitraum.Text = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}", pRO.InvoiceBase.SupportConceptCostBearerRelDc.StartDate, pRO.InvoiceBase.SupportConceptCostBearerRelDc.EndDate);
SetBetreuung(pRO);
var bewStunden = 0.00m;
if (pRO.ServiceInvoicePeriods != null && pRO.ServiceInvoicePeriods.Count > 0)
{
decimal rateFactor = 1;
foreach (var sip in pRO.ServiceInvoicePeriods)
{
if (sip.SupportConceptApprovalPeriod.ApprovedBETotal.HasValue)
bewStunden += sip.SupportConceptApprovalPeriod.ApprovedBETotal.Value;
else if (sip.SupportConceptApprovalPeriod.ApprovedBEPerInterval.HasValue)
bewStunden += sip.SupportConceptApprovalPeriod.ApprovedBEPerInterval.Value;
foreach (var ii in sip.ServiceInvoiceItems)
{
if (!String.IsNullOrEmpty(ii.RateFactor))
{
var rfStr = ii.RateFactor.Replace("%", "").Replace(",00", "").Trim();
int rfInt = 0;
Int32.TryParse(rfStr, out rfInt);
rateFactor = (100m + rfInt) / 100m;
}
if (ii.Hours.HasValue)
{
ii.Hours = ii.Hours.Value * rateFactor;
}
}
}
}
if (bewStunden != 0)
{
lblBewFLS.Text = string.Format("{0:0.00}", bewStunden);
}
this.bindingSource1.DataSource = pRO;
}
private void SetBetreuung(ServiceInvoiceRO pRO)
{
if (pRO.ServiceInvoicePeriods != null && pRO.ServiceInvoicePeriods.Count > 0)
{
var c = DAOFactory.GenericDAO.LoadByID<Customer>(pRO.ServiceInvoicePeriods[0].Customer.Oid.Value);
if (c != null)
{
var betreuendePersonen = c.Employee2CustomerList.Where(
e2c => e2c.ValueList.Any(ve => ve.Entry.Value != null && ve.Entry.Value != "Verwaltung" ||
ve.Entry.SystemEntryID.HasValue && ve.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)).ToList();
if (betreuendePersonen != null && betreuendePersonen.Count > 0)
{
lblBetreuungskraft.Text = betreuendePersonen[0].Employee.Person.FirstNameLastName;
for (int i = 1; i < betreuendePersonen.Count; i++)
{
lblBetreuungskraft.Text += " / " + betreuendePersonen[i].Employee.Person.FirstNameLastName;
}
}
var betreuungsarten = c.ValueList.Where(v2o => v2o.Entry.Type == ValueListEntryType.CustomerCareType).ToList();
if (betreuungsarten != null && betreuungsarten.Count > 0)
{
if (betreuungsarten.Count >= 1)
lblBetreuungsart.Text = betreuungsarten[0].Entry.Value;
if (betreuungsarten.Count >= 2)
lblBetreuungsart.Text += " / " + betreuungsarten[1].Entry.Value;
}
}
}
}
private void ChangeName(object sender, EventArgs e)
{
PrintingSystem.Document.Name = lblRechnungsnamen.Text;
}
}
}