139 lines
5.1 KiB
C#
139 lines
5.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts;
|
|
using DevExpress.XtraReports.UI;
|
|
using BeWo.Report.ReportObjects;
|
|
using BeWo.Report;
|
|
|
|
namespace BeWo.IntegraReports.Alt
|
|
{
|
|
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
|
|
{
|
|
public Spitzabrechnung()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SetReportDataSource(SettlementRO pRO)
|
|
{
|
|
|
|
if (pRO.TerminationDate.HasValue)
|
|
{
|
|
lblTermination.Text = String.Format("{0:dd.MM.yyyy} {1}", pRO.TerminationDate, pRO.TerminationReason);
|
|
}
|
|
bool isOldVersion = true;
|
|
|
|
if (pRO.HourlyRate3 == 0 && !pRO.HourlyRateOld.HasValue && !pRO.HourlyRateNew.HasValue)
|
|
isOldVersion = false;
|
|
|
|
if (pRO.ClaimWithEigenbeteiligung >= 0)
|
|
lblClaimText.Text = "Rückzahlungsanspruch";
|
|
|
|
if (!isOldVersion && pRO.ApprovedFLSWeekly == 0 && pRO.Approvals != null && pRO.Approvals.Count > 0)
|
|
{
|
|
var app = pRO.Approvals[0];
|
|
if (app.ApprovalUnit.HasValue && app.ApprovalUnit.Value == AccountingIntervalType.Weekly && app.ApprovedPerUnit.HasValue)
|
|
pRO.ApprovedFLSWeekly = app.ApprovedPerUnit.Value;
|
|
}
|
|
else
|
|
{
|
|
pRO.ApprovedFLSWeekly *= (decimal)pRO.RateFactor;
|
|
}
|
|
|
|
pRO.ApprovedFLSWeekly = Math.Round(pRO.ApprovedFLSWeekly, 2, MidpointRounding.AwayFromZero);
|
|
|
|
DateTime dt1;
|
|
DateTime dt2;
|
|
DateTime.TryParse(pRO.AccountingStartDateString, out dt1);
|
|
DateTime.TryParse(pRO.AccountingEndDateString, out dt2);
|
|
|
|
TimeSpan sp = dt2.Subtract(dt1);
|
|
lblTage3.Text = String.Format("{0:0.#}", sp.TotalDays + 1);
|
|
lblWeeks3.Text = String.Format("{0:0.##}", (sp.TotalDays + 1) * 0.1427);
|
|
lblFLSTotal3.Text = String.Format("{0:0.##} FLS", Math.Round((sp.TotalDays + 1) * 0.1427, 2) * (double)pRO.ApprovedFLSWeekly);
|
|
|
|
if (pRO.InvoiceItems == null)
|
|
pRO.InvoiceItems = new List<InvoiceItemDC>();
|
|
|
|
if (!isOldVersion)
|
|
{
|
|
foreach (var ii in pRO.InvoiceItems)
|
|
{
|
|
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy} {2:0.00} Std. x {3:c} =", ii.ItemPeriodStart,
|
|
ii.ItemPeriodEnd, ii.UnitCount, ii.AmountPerUnit);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
pRO.InvoiceItems.Clear();
|
|
if (pRO.DifferentHourlyRateCount == 1)
|
|
{
|
|
pRO.TotalApprovedFLSWithNewHourlyRate = Math.Round(pRO.ApprovedFLSWeekly * pRO.WeeksWithNewHourlyRate, 2);
|
|
pRO.TotalApprovedFLSWithNewHourlyRateString = string.Format("{0:0.00}", pRO.TotalApprovedFLSWithNewHourlyRate);
|
|
|
|
var ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.AccountingStartDateString,
|
|
pRO.AccountingEndDateString, pRO.RecordedFLSWithNewHourlyRateString, pRO.HourlyRateNewString);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithNewHourlyRate;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
}
|
|
|
|
else if (pRO.DifferentHourlyRateCount == 2)
|
|
{
|
|
var ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.AccountingStartDateString,
|
|
pRO.HourlyRateOldEndDateString, pRO.RecordedFLSWithOldHourlyRateString, pRO.HourlyRateOldString);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithOldHourlyRate;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
|
|
ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.HourlyRateNewStartDateString,
|
|
pRO.AccountingEndDateString, pRO.RecordedFLSWithNewHourlyRateString, pRO.HourlyRateNewString);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithNewHourlyRate;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
}
|
|
else if (pRO.DifferentHourlyRateCount == 3)
|
|
{
|
|
var ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.AccountingStartDateString,
|
|
pRO.HourlyRate3EndDateString, pRO.RecordedFLSWithHourlyRate3String, pRO.HourlyRate3String);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithHourlyRate3;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
|
|
ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.HourlyRateOldStartDateString,
|
|
pRO.HourlyRateOldEndDateString, pRO.RecordedFLSWithOldHourlyRateString, pRO.HourlyRateOldString);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithOldHourlyRate;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
|
|
ii = new InvoiceItemDC();
|
|
ii.ItemDescription = String.Format("{0} - {1} {2} Std. x {3} € =", pRO.HourlyRateNewStartDateString,
|
|
pRO.AccountingEndDateString, pRO.RecordedFLSWithNewHourlyRateString, pRO.HourlyRateNewString);
|
|
|
|
ii.AmountTotal = pRO.AmountTotalWithNewHourlyRate;
|
|
|
|
pRO.InvoiceItems.Add(ii);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
this.bindingSource1.DataSource = pRO;
|
|
}
|
|
}
|
|
}
|