Files
BeWoPlaner/ReportImp/AwoWesel/Finanzauswertung.cs
2024-03-04 15:55:19 +01:00

143 lines
4.6 KiB
C#

using System;
using System.Linq;
using BS.Shared;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Data.Entities;
using BeWo.Data.Access;
using System.Collections.Generic;
using BS.Shared.Core;
using BS.Shared.Services;
using BS.Shared.DataContracts;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceImplementations;
using DevExpress.XtraReports.UI;
namespace AwoWesel
{
public partial class Finanzauswertung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<FinanceRO>
{
public Finanzauswertung()
{
InitializeComponent();
}
public void SetReportDataSource(FinanceRO pRO)
{
pRO.CalculateBillableAmountInReportTimeSpan();
if (pRO.ReportStartDate.HasValue && pRO.ReportEndDate.HasValue)
{
DateTime start = pRO.ReportStartDate.Value;
DateTime end = pRO.ReportEndDate.Value;
if (start.Year == end.Year && start.Month == end.Month && start.Day == 1 &&
end.Day == DateTime.DaysInMonth(end.Year, end.Month))
{
lblTitel.Text = String.Format("Finanzauswertung {0:MMMM yyyy}", start);
cellBewilligtImZeitraumHeader.Text = String.Format("bewilligte Std. {0:MMMM}", start);
cellGeleistetImZeitraumHeader.Text = String.Format("geleistete Std. {0:MMMM}", start);
}
else
{
lblTitel.Text = String.Format("Finanzauswertung {0:dd.MM.yyyy}-{1:dd.MM.yyyy}", start, end);
cellBewilligtImZeitraumHeader.Text = String.Format("bewilligte Std {0:dd.MM.yyyy}-{1:dd.MM.yyyy}", start, end);
cellGeleistetImZeitraumHeader.Text = String.Format("geleistete Std. {0:dd.MM.yyyy}-{1:dd.MM.yyyy}", start, end);
}
if (pRO.RateFactor.HasValue)
{
cellRateFactorHeader.Text = String.Format("geleistete Std. x {0:0.##}", pRO.RateFactor);
}
else
{
cellRateFactorHeader.Visible = false;
cellRateFactor.Visible = false;
}
}
else
{
cellBewilligtImZeitraumHeader.Visible = false;
cellBewilligteFLSImBereich.Visible = false;
cellGeleistetImBereich.Visible = false;
cellGeleistetImZeitraumHeader.Visible = false;
cellRateFactorHeader.Visible = false;
cellRateFactor.Visible = false;
}
if (pRO.SupportConceptFinanceList != null)
{
foreach (var f in pRO.SupportConceptFinanceList)
{
String ba = GetKostentraeger(f);
if (String.IsNullOrEmpty(ba))
{
f.Custom1 = " ";
}
else
{
f.Custom1 = ba;
}
f.Custom2 = "Bis dato bewilligte Std.";
f.Custom3 = "Bis dato geleistete Std.";
f.Custom4 = "bewilligte Std.";
f.Custom5 = "geleistete Std.";
//if (!String.IsNullOrWhiteSpace(f.Custom1) && f.Custom1.Contains("67"))
//{
// f.Custom2 = "Bis dato bewilligte Std.";
// f.Custom3 = "Bis dato geleistete Std.";
// f.Custom4 = "bewilligte Std.";
// f.Custom5 = "geleistete Std.";
//}
//else
//{
// f.Custom2 = "Bis dato bewilligte FLS";
// f.Custom3 = "Bis dato geleistete FLS";
// f.Custom4 = "bewilligte FLS";
// f.Custom5 = "geleistete FLS";
//}
}
}
this.bindingSource1.DataSource = pRO;
}
private String GetKostentraeger(FinanceRO.SupportConceptFinanceRO f)
{
if (f.Costbearer2Supportconcept != null)
{
var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(f.Costbearer2Supportconcept.CostBearer2SupportConceptOid.Value);
var org = c2s.CostBearer.Organisation;
return org.Name;
}
return "";
}
private void cellRateFactorHeader_BeforePrint(object sender, System.ComponentModel.CancelEventArgs e)
{
var ro = DetailReport.GetCurrentRow() as FinanceRO.SupportConceptFinanceRO;
if (ro != null)
{
if (ro.Custom1 != null && ro.Custom1.Contains("67"))
{
var cell = sender as XRTableCell;
if (cell != null)
{
cell.Text = "geleistete Std. x 1,5";
}
}
}
}
}
}