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 LebenshilfeRemscheid.Alt
{
    public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
    {
        public Spitzabrechnung()
        {
            InitializeComponent();
        }

        public void SetReportDataSource(SettlementRO pRO)
        {
			StringBuilder sb = new StringBuilder();

			if (!String.IsNullOrEmpty(pRO.RecipientOrganisation))
			{
				sb.AppendLine(pRO.RecipientOrganisation);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientContactPerson))
			{
				sb.AppendLine(pRO.RecipientContactPerson);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientDivision))
			{
				sb.AppendLine(pRO.RecipientDivision);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientStreet))
			{
				sb.AppendLine(pRO.RecipientStreet);
			}
			if (!String.IsNullOrEmpty(pRO.RecipientPostCodeAndTown))
			{
				sb.AppendLine(pRO.RecipientPostCodeAndTown);
			}
			lblAnschrift.Text = sb.ToString();

	        double approved = 0;
	        Double.TryParse(pRO.ApprovedFLS.Replace("FLS", "").Trim(), out approved);

			double diff = approved - pRO.RecordedFLSDouble;

	        if (diff >= 0)
	        {
		        lblFLSBewilligt.Text =
			        String.Format(
				        "Es wurden {0:0.##} Fachleistungsstunden bewilligt.\nDemnach wurden {1:0.##} Stunden zu wenig geleistet.",
				        approved, diff);
	        }
	        else
	        {
				lblFLSBewilligt.Text =
					String.Format(
						"Es wurden {0:0.##} Fachleistungsstunden bewilligt.\nDemnach wurden {1:0.##} Stunden zu viel geleistet.",
						approved, diff*-1);
	        }

	        String anrede = "geehrte";
	        String ansprechpartner = "Damen und Herren";

	        if (!String.IsNullOrWhiteSpace(pRO.RecipientContactPerson))
	        {
		        
	        }
	        lblAnrede.Text =
		        String.Format(
			        "Sehr {0} {1}\n\nanbei erhalten Sie die quittierten Betreuungsnachweise von {2} {3}.\n{2} {3} hat im vergangenen Bewilligungszeitraum {4:0.##} Fachleistungsstunden in Anspruch genommen.",
					anrede, ansprechpartner, pRO.Salutation1, pRO.CustomerName, pRO.RecordedFLSDouble);
			
	        if (pRO.DifferentHourlyRateCount == 3)
            {
                cellZeitraum1.Text = String.Format("{0} - {1}", pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString);

	            cellStunden1.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatz3);

				pRO.Abrechnungstext1 = String.Format("Fachleistungsstunden à {1:c}{0}",
                    pRO.RateFactor == 1 ? "" : " (x " + pRO.RateFactorText2 + ")", pRO.HourlyRate3);

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


				cellZeitraum2.Text = String.Format("{0} - {1}",
                    pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString);
				cellStunden2.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAlt);
				pRO.Abrechnungstext2 += String.Format("Fachleistungsstunden à {1:c}{0}",
					pRO.RateFactor == 1 ? "" : " (x " + pRO.RateFactorText2 + ")", pRO.HourlyRateOld);

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


				cellZeitraum3.Text = String.Format("{0} - {1}",
                    pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
				cellStunden3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell);
				pRO.Abrechnungstext3 += String.Format("Fachleistungsstunden à {1:c}{0}",
					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)
            {

				cellZeitraum2.Text = String.Format("{0} - {1}",
                    pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString);
				cellStunden2.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAlt);
				pRO.Abrechnungstext2 += String.Format("Fachleistungsstunden à {1:c}{0}",
					pRO.RateFactor == 1 ? "" : " (x " + pRO.RateFactorText2 + ")", pRO.HourlyRateOld);

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


				cellZeitraum3.Text = String.Format("{0} - {1}",
                    pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
				cellStunden3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell);
				pRO.Abrechnungstext3 += String.Format("Fachleistungsstunden à {1:c}{0}",
					pRO.RateFactor == 1 ? "" : " (x " + pRO.RateFactorText2 + ")", pRO.HourlyRateNew);

                pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
            }
            else
            {
				cellZeitraum3.Text = String.Format("{0} - {1}",
                    pRO.AccountingStartDateString, pRO.AccountingEndDateString);
				cellStunden3.Text = String.Format("{0:0.00}", pRO.GeleisteteFLSMitStundensatzAktuell);
				pRO.Abrechnungstext3 += String.Format("Fachleistungsstunden à {1:c}{0}",
					pRO.RateFactor == 1 ? "" : " (x " + pRO.RateFactorText2 + ")", pRO.HourlyRateNew);

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

            this.bindingSource1.DataSource = pRO;
        }
    }
}
