using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Text;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;

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

        public void SetReportDataSource(SettlementRO pRO)
        {
            if (pRO.DifferentHourlyRateCount == 3)
            {
                //Erbrachte Leistungen (FLS) - bis [HourlyRateOldEndDateString] à [HourlyRateOldString] €

                pRO.Abrechnungstext1 = String.Format("{0} bis {1}", 
                    pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString);

                pRO.Abrechnungstext1 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3);

               //[AccountingStartDateString] - [HourlyRate3EndDateString] sind [RecordedFLSWithHourlyRate3String] Std. x [HourlyRate3String] € =";

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


                pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
                    pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString);
                pRO.Abrechnungstext2 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);

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


                pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
                    pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
                pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);

                pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            else if (pRO.DifferentHourlyRateCount == 2)
            {
                
                pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
                    pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString);
                pRO.Abrechnungstext2 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);

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


                pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
                    pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
                pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);

                pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            else
            {
                pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
                    pRO.AccountingStartDateString, pRO.AccountingEndDateString);
                pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
                    pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);

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

	        if (pRO.ClaimWithEigenbeteiligung >= 0)
	        {
		        //lblEndText.Text =
				//	"Wir bitten um Erstattung des Differenzbetrages auf das Konto 10 10208 021 der KD-Bank eG, BLZ 350 601 90.";
				//Wir bitte um Erstattung des Differenzbetrages auf das Konto des Ev. Kirchenkreises Lennep, IBAN: DE02 3506 0190 1010 2080 21, BIC: GENODED1DKD
	        }
	        else
	        {
				lblEndText.Text =
					"Wir bitten um Mitteilung, in welcher Form oben genannter Betrag ausgeglichen werden soll.";
	        }


			StringBuilder sb = new StringBuilder();

			if (!String.IsNullOrEmpty(pRO.RecipientOrganisation) && !String.IsNullOrEmpty(pRO.RecipientOrganisation.Trim()))
			{
				if (pRO.RecipientOrganisation.Trim().ToLower() == "lvr" && String.IsNullOrEmpty(pRO.RecipientDivision))
				{
					pRO.RecipientDivision = "Dezernat 7";
				}
				sb.AppendLine(pRO.RecipientOrganisation);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientContactPerson) && !String.IsNullOrEmpty(pRO.RecipientContactPerson.Trim()))
			{
				sb.AppendLine(pRO.RecipientContactPerson);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientDivision) && !String.IsNullOrEmpty(pRO.RecipientDivision.Trim()))
			{
				sb.AppendLine(pRO.RecipientDivision);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientStreet) && !String.IsNullOrEmpty(pRO.RecipientStreet.Trim()))
			{
				sb.AppendLine(pRO.RecipientStreet);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown))
			{
				sb.AppendLine(pRO.RecipientPostCodeAndTown);
			}
			lblAnschrift.Text = sb.ToString();

            this.bindingSource1.DataSource = pRO;
        }
    }
}
