using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;

namespace BeWo.LebenshilfeDuisburgReports.Alt
{
    public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
    {
        public Spitzabrechnung()
        {
            InitializeComponent();
        }

        public void SetReportDataSource(SettlementRO pRO)
        {
	        pRO.ApprovalNoticeDateString = "";

	        if (pRO.InvoiceDateTime.HasValue)
		        pRO.ApprovalNoticeDateString = String.Format("{0:dd.MM.yyyy}", pRO.InvoiceDateTime.Value.AddDays(30));
            if (pRO.DifferentHourlyRateCount == 3)
            {
                //Erbrachte Leistungen (FLS) - bis [HourlyRateOldEndDateString] à [HourlyRateOldString] €

                pRO.Abrechnungstext1 = "Eingliederungshilfe Gem.§§ 53,54 SGB XII\n" +
									   "\"Betreutes Wohnen\" ambulante Eingliederungshilfe.\n" +
									   String.Format("Bewilligungszeitraum {0} bis {1}\n   ", 
                    pRO.AccountingStartDateString, pRO.AccountingEndDateString);

	            pRO.Abrechnungstext2 = pRO.Abrechnungstext1;
				pRO.Abrechnungstext3 = pRO.Abrechnungstext1;

				cellEinheiten1.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatz3 * (decimal)pRO.RateFactor);
	            cellPreis1.Text = String.Format("{0:0.00}", pRO.HourlyRate3);
				pRO.Betrag1 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatz3 * (decimal)pRO.RateFactor * pRO.HourlyRate3);

				cellEinheiten2.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor);
				cellPreis2.Text = String.Format("{0:0.00}", pRO.HourlyRateOld);
				pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);

				cellEinheiten3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor);
				cellPreis3.Text = String.Format("{0:0.00}", pRO.HourlyRateNew);
				pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            else if (pRO.DifferentHourlyRateCount == 2)
            {
				pRO.Abrechnungstext2 = "Eingliederungshilfe Gem.§§ 53,54 SGB XII\n" +
									   "\"Betreutes Wohnen\" ambulante Eingliederungshilfe.\n" +
									   String.Format("Bewilligungszeitraum {0} bis {1}\n   ",
					pRO.AccountingStartDateString, pRO.AccountingEndDateString);
				pRO.Abrechnungstext3 = pRO.Abrechnungstext2;

				cellEinheiten2.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor);
				cellPreis2.Text = String.Format("{0:0.00}", pRO.HourlyRateOld);
				pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);

				cellEinheiten3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor);
				cellPreis3.Text = String.Format("{0:0.00}", pRO.HourlyRateNew);
				pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            else
            {
				pRO.Abrechnungstext3 = "Eingliederungshilfe Gem.§§ 53,54 SGB XII\n" +
									   "\"Betreutes Wohnen\" ambulante Eingliederungshilfe.\n" +
									   String.Format("Bewilligungszeitraum {0} bis {1}\n   ",
					pRO.AccountingStartDateString, pRO.AccountingEndDateString);

				cellEinheiten3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor);
				cellPreis3.Text = String.Format("{0:0.00}", pRO.HourlyRateNew);
                pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            

            this.bindingSource1.DataSource = pRO;
        }
    }
}
