105 lines
4.3 KiB
C#
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;
|
|
}
|
|
}
|
|
} |