public static int GeneratePM_EngagementLetter(Upsilab.Data.Model.MissionDocument pMissionDoc, string pathFileName, bool forceDownload, bool pIsEmptyDocument = false)
        {
            float y = 240;
            int height = 20;
            int width = 500;
            int interligne = 15;
            int paddingLeft = 50;
            float label_width = 200;
            float answer_width = 280;
            float answer_x = 200;

            FirmInstitution firmInstitution = pMissionDoc.CustomerProspect.FirmInstitution;
            string footerContent = pMissionDoc.CustomerProspect.FirmInstitution.DocumentFooterContent;
            Data.Model.User userAdviser = (pMissionDoc.User != null) ? pMissionDoc.User : pMissionDoc.CustomerProspect.User1;


            //Title and footer document
            string documentTitle = "Lettre de mission";
            string name = string.Empty;
            string date = string.Empty;
            string idDocument = string.Empty;

            if (!pIsEmptyDocument)
            {
                name = pMissionDoc.CustomerProspect.CompanyName;
                date = DateTime.Now.ToShortDateString();
                idDocument = pMissionDoc.idMissionDocument.ToString();
            }

            if (forceDownload)
                date = string.Empty;
            //FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent);
            FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent, name, string.Format("{0} {1}", string.IsNullOrEmpty(date) ? string.Empty : LanguageContentBL.Translate("PdfReportPP_004"), date));

            #region page 1
            //Logo
            string logoPathFileName = Upsilab.Business.Utility.FileManager.BuildLogoPath(firmInstitution.idFirmInstitution) + firmInstitution.Logo;
            pdfGen.AddBackgroungImage();
            pdfGen.AddLogoOnFirstPage(logoPathFileName, firmInstitution.LogoAlign);


            if (pIsEmptyDocument)
            {
                firmInstitution = new FirmInstitution();
                userAdviser = new Data.Model.User();
            }

            //pdfGen.AddReceuil_Title_Center_CalibriBold_Label(LanguageContentBL.Translate("PdfLM_001"), y, width, 100);
            //pdfGen.AddReceuil_SubTitle_Center_CalibriBold_Label(LanguageContentBL.Translate("PdfLM_134"), y += 50, width, height);

            //if (pIsEmptyDocument)
            //{
            //    string[] rowContents = { LanguageContentBL.Translate("PdfRapportMission_002") //Date de maj ou Date de création
            //                         , LanguageContentBL.Translate("PdfFirm_082")
            //                         , string.Empty
            //                       };
            //    pdfGen.LM_AddTableTitle(rowContents, 90, y += 50);
            //}
            //else
            //{
            //    string[] rowContents = { string.Format(LanguageContentBL.Translate("PdfRapportMission_002"), DateTime.Now.ToShortDateString()) //Date de maj ou Date de création
            //                         , string.Format("{0} LM-{1}",LanguageContentBL.Translate("PdfFirm_082"),pMissionDoc.idMissionDocument)
            //                         , string.Format("{0}", pMissionDoc.CustomerProspect.CompanyName)
            //                       };
            //    pdfGen.LM_AddTableTitle(rowContents, 90, y += 50);
            //}

            y = 380;
            pdfGen.AddWhiteTitle(LanguageContentBL.Translate("PdfLM_001"), y, 240, 60, 260, 20);

            pdfGen.AddWhiteTitle(LanguageContentBL.Translate("PdfLM_134"), y += (2 * interligne + 15), 500, 20, 0, 12);//PERSONNE MORALE

            pdfGen.AddWhiteBorder(y += interligne * 1.7f, 210, 290, 70);

            if (pIsEmptyDocument)
            {
            }
            else
            {
                if (!forceDownload)
                    pdfGen.AddWhiteTitleLeft(DateTime.Now.ToShortDateString(), y += 10, 500, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(name, y += (interligne), 500, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(string.Format("LM-{0}", pMissionDoc.idMissionDocument), y += (interligne), 500, 11, 220, 10);
            }


            //pdfGen.AddBlueBorder(y += 100, 105, 375, 30);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(string.Format("{0}", pMissionDoc.CustomerProspect.CompanyName), y + 5, 300, 20, 120);
            #endregion

            #region page 2

            Data.Model.CustomerProspect cust = new Data.Model.CustomerProspect();
            cust.User = new Data.Model.User();
            List<CustomerProspectOptionValue> data = new List<CustomerProspectOptionValue>();
            if (!pIsEmptyDocument)
            {
                cust = pMissionDoc.CustomerProspect;
                data = Upsilab.Business.CustomerProspect.CustomerProspectOptionBL.GetOptionValueListWithIdCustomerProspectAndIdParentOption(cust.idCustomer,
                    Upsilab.Business.CustomerProspect.CustomerProspectBL.EngagementLetterParentQuestionId);
            }

            pdfGen.CreatePage();
            y = 0;
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_003"), y, width, height);
            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_004"), cust.CompanyName), y += interligne * 1.5f, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_004"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(cust.CompanyName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format("Prénom : {0}", "XXX"), y += interligne, width, height);
            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_006"), cust.Adress), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_006"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(cust.Adress, y, answer_width, height * 3, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_007"), cust.ZipCode), y += interligne*2.8f, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_007"), string.Empty), y += interligne * 2.8f, label_width, height);
            pdfGen.AddAnswer(cust.ZipCode, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_008"), cust.City), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_008"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(cust.City, y, answer_width, height, answer_x);


            FirmInstitution firm = new FirmInstitution();
            if (!pIsEmptyDocument)
                firm = cust.FirmInstitution;
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_009"), y += interligne * 1.5f, width, height);
            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_010"), firm.FirmInstitutionName), y += interligne * 1.5f, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_010"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmInstitutionName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_011"), userAdviser.UserName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_011"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(userAdviser.UserName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_012"), userAdviser.UserFirstName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_012"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(userAdviser.UserFirstName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_013"), firm.LeaderName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_013"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.LeaderName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_014"), firm.LeaderFirstName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_014"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.LeaderFirstName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_015"), firm.FirmStreet), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_015"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmStreet, y, answer_width, height * 3, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_016"), firm.FirmPostCode), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_016"), string.Empty), y += interligne * 2.8f, label_width, height);
            pdfGen.AddAnswer(firm.FirmPostCode, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_017"), firm.FirmCity), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_017"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmCity, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_018"), firm.RCS), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_018"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.RCS, y, answer_width, height, answer_x);


            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_019"), firm.RegisteredInRegister), y += interligne, width, height);
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_019"), string.Empty), y += interligne, label_width, height);
                pdfGen.AddAnswer(firm.RegisteredInRegister, y, answer_width, height, answer_x);

                //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_020"), firm.AgregateurNoms), y += interligne, width, height);
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_020"), string.Empty), y += interligne, label_width, height);
                pdfGen.AddAnswer(firm.AgregateurNoms, y, answer_width, height, answer_x);

            }

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_021"), y += interligne * 2, width, height, paddingLeft);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_022"), y += interligne * 1.5f, width, height);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_023"), y += interligne * 1.5f, width, height * 2);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_024"), y += interligne * 3f, width, height * 2);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_025"), y += interligne * 2.5f, width, height * 2);

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_026"), y += interligne * 2.5f, width, height);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_027"), y += interligne * 1.5f, width, height * 3);


            #endregion

            #region page 3

            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_028"), y, width, height);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(138, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_029"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(139, data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_030"), y, width, height * 2, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(140, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_031"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(141, data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_032"), y, width, height * 2, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(142, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_033"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(143, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_034"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(144, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_035"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(145, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_036"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(146, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_037"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(147, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_038"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(148, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_039"), y, width, 20, 15);
            //PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetProspectValue(149, data), y += interligne, 0, "1");
            //pdfGen.AddDefaultText("Réception / transmission d’ordres", y, width, 20, 15);
            //PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetProspectValue(150, data), y += interligne, 0, "1");
            //pdfGen.AddDefaultText("Suivi annuel de patrimoine et produits financiers externes", y, width, 20, 15);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_040"), y += interligne, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(128, 96, data), y + 5, width, height, 5);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_040"), y += interligne * 1.5f, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(128, 97, data), y + 5, width, height, 5);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_040"), y += interligne * 1.5f, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(128, 98, data), y + 5, width, height, 5);

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_041"), y += interligne * 2, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_042"), y += interligne * 1.5f, width, height);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_031", data), y += interligne * 1.5f + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_043"), y, width, 40, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_032", data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_045"), y, width, 20, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_033", data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_054"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_034", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_055"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_035", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_135"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_036", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_136"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_037", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_137"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_038", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_138"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_039", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_139"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_040", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_140"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_041", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_141"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_042", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_142"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Letter_PM_043", data), y += interligne);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_143"), y, width, 20, 15);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_040"), y += interligne, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 20);
            //if (!cust.IsCorporation.Value)//PP
            //    pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(151, 59, data), y + 5, width, height, 5);
            //else
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue("Client_Letter_PM_044", data), y + 5, width, height, 5);

            #endregion

            #region page 4

            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_056"), y, width, height);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(166, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_057"), y, width, 20 * 2, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(167, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_058"), y, width, 20 * 3, 15);

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_059"), y += interligne * 3, width, height);
            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_060"), y += interligne * 1.5f, width, height);
            pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfLM_061"), y += interligne, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, 480, 280);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(168, 100, data), y + 5, 480, 280, 5);
            #endregion

            #region page 5
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_062"), y, width, height);
            pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfLM_061"), y += interligne, width, height);//Notes
            pdfGen.AddBlueBorder(y += interligne, 0, 480, 280);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(169, 101, data), y + 5, 480, 280, 5);

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_063"), y += interligne * 22f, width, height);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(172, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_064"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(173, data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_065"), y, width, 40, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(174, data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_066"), y, width, 20, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(175, data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_067"), y, width, 40, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(176, data), y += (interligne) + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_068"), y, width, 40, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(177, data), y += (interligne) + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_069"), y, width, 40, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(178, data), y += (interligne) + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_070"), y, width, 40, 15);

            #endregion

            #region page 6
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_040"), y, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(170, 102, data), y + 5, width, height, 5);

            pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfLM_061"), y += interligne * 2f, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 280);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(170, 103, data), y + 5, 480, 280, 5);
            #endregion

            #region page 7
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_071"), y, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_061"), y += interligne, width, height);
            pdfGen.AddBlueBorder(y += interligne, 0, 480, 280);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(171, 104, data), y + 5, 480, 125, 5);

            #endregion

            #region page 8

            pdfGen.CreatePage();
            y = 0;
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_072"), y, width, height);//Le mode de facturation et de rémunération
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_073"), y += interligne, width, 20);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_074"), y += interligne, width, 20 * 3);

            pdfGen.AddBlueBorder(y += interligne * 3, 0, 30, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(131, 105, data), y + 5, 50, 20, 5);
            pdfGen.AddDefaultText("X", y + 8, 20, 20, 40);
            pdfGen.AddBlueBorder(y, 60, 30, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(131, 106, data), y + 5, 50, 30, 65);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_075"), y + 8, width, height, 110);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_076"), y += interligne * 3, width, height * 2);
            // pdfGen.AddDefaultText("Au titre de l’accompagnement du client, une information plus précise sera fournie ultérieurement sur simple demande une fois connus les supports choisis par le client.", y += interligne * 3, width, height * 2, 15);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_077"), y += interligne * 2, width, height * 2, 15);


            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_078"), y += interligne * 3, width, height);//Les honoraires

            //Concernant 1
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(181, data), y += (interligne * 1.5f) + 10, 0, "1");
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_079")
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(181, 115, data)
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(181, 116, data)
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(181, 117, data))
                , y - 10, width, height * 4, 20);

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 3f, width, height);

            //Concernant 2
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(182, data), y += (interligne * 1.5f) + 10, 0, "1");
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_081")
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(182, 118, data)), y - 10, width, height * 3, 20);

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 2.5f, width, height);

            //Concernant 3
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(183, data), y += (interligne * 1.5f) + 20, 0, "1");
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_082")
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(183, 119, data)), y - 20, width, height * 5, 20);

            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_083")
                , pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(133, 120, data)), y += interligne * 4, width, height * 2);

            /*pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084")
               , ), y += interligne * 2, width, height);*/

            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084"), string.Empty), y += interligne * 2, label_width, height);
            pdfGen.AddAnswer(CustomerProspectOptionBL.GetAttributeValue(133, 121, data), y, answer_width, height, answer_x);

            /* pdfGen.CreatePage();
             y = 0;*/

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 2.5f, width, height);

            //Autre 4
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(1239, data), y += interligne, 0, "1");
            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084_1")), y, 480, 20, 20);
            //pdfGen.AddDefaultText(pIsEmptyDocument ? Espace : string.Format(CustomerProspectOptionBL.GetAttributeValue(1239, 765, data)), y += interligne, width, 280, 20);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084_1"), string.Empty), y, label_width, height, 15);
            //pdfGen.AddAnswer(pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(1239, 765, data), y, answer_width, height, answer_x);
            pdfGen.AddBlueBorder(y += interligne, 20, width - 20, 100);
            pdfGen.AddDefaultText(pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(1239, 765, data), y + 5, width - 30, 100, 25);

            //#endregion

            #endregion

            #region page 9

            pdfGen.CreatePage();
            y = 0;
            //Section : La nature et les modalités de la prestation de conseil
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_085"), y, width, height);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_086"), y += interligne, width, height);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(184, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_087"), y, width, height, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(185, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_088"), y, width, height, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(186, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_089"), y, width, height * 2, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(187, data), y += interligne + 5, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_090"), y, width, height * 2, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(188, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_091"), y, width, height, 15);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(189, data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_092"), y, width, height, 15);

            //Section : La durée et le calendrier de la mission
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_093"), y += interligne * 2.5f, width, height);

            pdfGen.AddJustifyText(string.Format(LanguageContentBL.Translate("PdfLM_094")
            , CustomerProspectOptionBL.GetAttributeValue(135, 122, data)), y += interligne * 1.5f, width, height * 2);

            pdfGen.AddJustifyText(string.Format(LanguageContentBL.Translate("PdfLM_095")
            , CustomerProspectOptionBL.GetAttributeValue(135, 123, data)), y += interligne * 1.5f, width, height * 2);

            //Section : Modalité de notre intervention
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_096"), y += interligne * 2.5f, width, height);

            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_097")
            , CustomerProspectOptionBL.GetAttributeValue(136, 124, data)), y += interligne * 1.5f, width, height * 2);

            //Section : Typologie de client
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_098"), y += interligne * 3, width, height);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_099"), y += interligne * 1.5f, width, height * 4);

            //Section : Déroulement de la mission
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_100"), y += interligne * 3f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_101"), y += interligne * 1.5f, width, height * 2);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_102"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_103"), y += interligne * 1.5f, width, height * 2);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_104"), y += interligne * 2f, width, height * 3);//Parallelement,...
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_105"), y += interligne * 2.5f, width, height * 3); //La totalité...
            #endregion

            #region page 10

            pdfGen.CreatePage();
            y = 0;
            //Suite Section : Déroulement de la mission
            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_106"), y, width, height * 2);
            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_107"), y += interligne * 2f, width, 2 * height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_108"), y += interligne * 2f, width, height * 2);

            //Section : Suivi patrimonial envisagé
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_109"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_110"), y += interligne * 1.5f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_111"), y += interligne * 1.5f, width, height * 3);

            //Section : Modalités d'information
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_112"), y += interligne * 2, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_113"), y += interligne * 1.5f, width, height);

            //Section : Dénonciation de la mission
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_114"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_115"), y += interligne * 1.5f, width, height * 3);
            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_116"), y += interligne * 3f, width, height * 4);
                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_117"), y += interligne * 4f, width, height * 3);
            }

            //Section : Responsabilité
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_118"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_119"), y += interligne * 1.5f, width, height * 4);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_120"), y += interligne * 2f, width, height * 2);

            //Section : Confidentialité
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_121"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_122"), y += interligne * 1.5f, width, height * 2);

            #endregion

            #region page 11

            pdfGen.CreatePage();
            y = 0;
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_123"), y, width, height);//Litiges
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_124"), y += interligne * 1.5f, width, height * 2);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_125"), y += interligne * 2f, width, height * 2);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_126"), y += interligne * 2f, width, height * 3);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_127"), y += interligne * 3f, width, height * 2);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_128"), y += interligne * 2f, width, height * 2);

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_129"), y += interligne * 3, width, height);//Traitement des informations
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_130"), y += interligne * 1.5f, width, height * 5);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_131"), y += interligne * 3f, width, height * 3);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_132"), y += interligne * 3f, width, height * 4);
            pdfGen.AddJustifyText(LanguageContentBL.Translate("PdfLM_133"), y += interligne * 3f, width, height * 4);
            #endregion

            #region page 12

            pdfGen.CreatePage();
            y = 0;
            //Signature
            pdfGen.AddSubtitle(LanguageContentBL.Translate("Pdf_Signature"), 0);

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("Pdf_Signature_Etabs"), 100, 500, 20, 80);


            pdfGen.AddBlueBorder(130, 35, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Lu_Et_Accepte"), 135, 200, 20, 40);
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Lu_Et_Approuve"), 145, 145, 20, 40);
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Date"), 160, 145, 20, 40);
            }

            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("Pdf_Signature_Client"), 100, 500, 20, 340);
            pdfGen.AddBlueBorder(130, 280, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Lu_Et_Accepte"), 135, 200, 20, 285);
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Lu_Et_Approuve"), 145, 145, 20, 285);
                pdfGen.AddDefaultText(LanguageContentBL.Translate("Pdf_Date"), 160, 145, 20, 285);
            }

            #endregion

            //Force download if pathFileName is not set
            if (forceDownload)
            {
                string fileName = string.Format("LettreMission_PM_{0}.pdf", pMissionDoc.idMissionDocument);
                pdfGen.GeneratePdfToWeb(fileName);
            }
            else
            {
                pdfGen.GeneratePdf(pathFileName);
            }
            return pdfGen.PageCount;
        }
        public static int Generate_MissionReport(Upsilab.Data.Model.MissionDocument pMissionDoc, string pathFileName, bool forceDownload, bool pIsEmptyDocument = false)
        {
            float y = 260;
            int height = 20;
            int width = 500;
            int interligne = 15;
            float label_width = 200;
            float answer_width = 280;
            float answer_x = 200;
            // int paddingLeft = 50;
            FirmInstitution firmInstitution = pMissionDoc.CustomerProspect.FirmInstitution;

            //Title and footer document
            string documentTitle = "Rapport de mission";
            string footerContent = firmInstitution.DocumentFooterContent;

            string name = string.Empty;
            string date = string.Empty;
            string idDocument = string.Empty;

            if (!pIsEmptyDocument)
            {
                if (pMissionDoc.CustomerProspect.IsCorporation.HasValue && pMissionDoc.CustomerProspect.IsCorporation.Value)
                    name = pMissionDoc.CustomerProspect.CompanyName;
                else
                    name = string.Format("{0} {1}", pMissionDoc.CustomerProspect.User.UserName, pMissionDoc.CustomerProspect.User.UserFirstName);

                date = DateTime.Now.ToShortDateString();
                idDocument = pMissionDoc.idMissionDocument.ToString();
            }
            if (forceDownload)
                date = string.Empty;
            FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent, name, string.Format("{0} {1}", string.IsNullOrEmpty(date) ? string.Empty : LanguageContentBL.Translate("PdfReportPP_004"), date));

            //FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent);

            #region page 1
            string logoPathFileName = Upsilab.Business.Utility.FileManager.BuildLogoPath(firmInstitution.idFirmInstitution) + firmInstitution.Logo;
            pdfGen.AddBackgroungImage();
            pdfGen.AddLogoOnFirstPage(logoPathFileName, firmInstitution.LogoAlign);



            y = 380;
            pdfGen.AddWhiteTitle(LanguageContentBL.Translate("PdfRapportMission_001"), y, 240, 60, 260, 20);

            pdfGen.AddWhiteTitle((pMissionDoc.CustomerProspect.IsCorporation.HasValue && pMissionDoc.CustomerProspect.IsCorporation.Value) ? LanguageContentBL.Translate("PdfLM_134") : LanguageContentBL.Translate("PdfReportPP_003"), y += (2 * interligne + 15), 500, 20, 0, 12);//PERSONNE PHYSIQUE ou PERSONNE MORALE

            pdfGen.AddWhiteBorder(y += interligne * 1.7f, 210, 290, 70);

            if (pIsEmptyDocument)
            {
            }
            else
            {
                if (!forceDownload)
                    pdfGen.AddWhiteTitleLeft(DateTime.Now.ToShortDateString(), y += 10, 500, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(name, y += (interligne), 500, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(string.Format("{0}-{1}", LanguageContentBL.Translate("PdfRapportMission_003"), idDocument), y += (interligne), 500, 11, 220, 10);
            }

            #endregion

            #region page 2

            Data.Model.CustomerProspect cust = new Data.Model.CustomerProspect();
            Data.Model.User userAdviser = new Data.Model.User();
            List<CustomerProspectOptionValue> data = new List<CustomerProspectOptionValue>();

            if (!pIsEmptyDocument)
            {
                cust = pMissionDoc.CustomerProspect;
                data = Upsilab.Business.CustomerProspect.CustomerProspectOptionBL.GetOptionValueListWithIdCustomerProspectAndIdParentOptionPlus(cust.idCustomer, Upsilab.Business.CustomerProspect.CustomerProspectBL.MissionParentQuestionId);
                userAdviser = (pMissionDoc.User != null) ? pMissionDoc.User : pMissionDoc.CustomerProspect.User1;
            }

            pdfGen.CreatePage();
            y = 0;
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfMissionClient"), y, width, height);
            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNom"), (pIsEmptyDocument) ? string.Empty : (cust.IsCorporation.HasValue && cust.IsCorporation.Value) ? cust.CompanyName : cust.User.UserName), y += interligne * 1.5f, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNom"), string.Empty), y += interligne * 1.5f, label_width, height);
            pdfGen.AddAnswer((pIsEmptyDocument) ? string.Empty : (cust.IsCorporation.HasValue && cust.IsCorporation.Value) ? cust.CompanyName : cust.User.UserName, y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenom"), (pIsEmptyDocument) ? string.Empty : (cust.IsCorporation.HasValue && cust.IsCorporation.Value) ? LanguageContentBL.Translate("PdfMission") : cust.User.UserFirstName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenom"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer((pIsEmptyDocument) ? string.Empty : (cust.IsCorporation.HasValue && cust.IsCorporation.Value) ? string.Empty : cust.User.UserFirstName, y, answer_width, height, answer_x);

            //  pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAdresse"), (pIsEmptyDocument) ? string.Empty : cust.Adress), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAdresse"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer((pIsEmptyDocument) ? string.Empty : cust.Adress, y, answer_width, height * 3, answer_x);

            // pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionCP"), (pIsEmptyDocument) ? string.Empty : cust.ZipCode), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionCP"), string.Empty), y += interligne * 2.8f, label_width, height);
            pdfGen.AddAnswer((pIsEmptyDocument) ? string.Empty : cust.ZipCode, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionVille"), (pIsEmptyDocument) ? string.Empty : cust.City), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionVille"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer((pIsEmptyDocument) ? string.Empty : cust.City, y, answer_width, height, answer_x);

            FirmInstitution firm = new FirmInstitution();
            if (!pIsEmptyDocument)
            {
                firm = cust.FirmInstitution;
            }
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfMissionConseiller"), y += interligne * 1.5f, width, height);
            // pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomEtabs"), firm.FirmInstitutionName), y += interligne * 1.5f, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomEtabs"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmInstitutionName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomCons"), userAdviser.UserName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomCons"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(userAdviser.UserName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenomCons"), userAdviser.UserFirstName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenomCons"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(userAdviser.UserFirstName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomDir"), firm.LeaderName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionNomDir"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.LeaderName, y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenomDir"), firm.LeaderFirstName), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionPrenomDir"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.LeaderFirstName, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAdrssSiege"), firm.FirmStreet), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAdrssSiege"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmStreet, y, answer_width, height * 3, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionCP"), firm.FirmPostCode), y += interligne*2.8f, width, height);//CP
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionCP"), string.Empty), y += interligne * 2.8f, label_width, height);
            pdfGen.AddAnswer(firm.FirmPostCode, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionVille"), firm.FirmCity), y += interligne, width, height);//Ville
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionVille"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.FirmCity, y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionRCS"), firm.RCS), y += interligne, width, height);
            pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionRCS"), string.Empty), y += interligne, label_width, height);
            pdfGen.AddAnswer(firm.RCS, y, answer_width, height, answer_x);


            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionRegistre"), firm.RegisteredInRegister), y += interligne, width, height);
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionRegistre"), string.Empty), y += interligne, label_width, height);
                pdfGen.AddAnswer(firm.RegisteredInRegister, y, answer_width, height, answer_x);

                //pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAgregateur"), ""), y += interligne, width, height);
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfMissionAgregateur"), string.Empty), y += interligne, label_width, height);
                pdfGen.AddAnswer("", y, answer_width, height, answer_x);

            }

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfMmeMsieur"), y += interligne * 2f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_004"), y += interligne * 2f, width, height * 3);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_005"), y += interligne * 2f, width, height * 3);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_006"), y += interligne * 3f, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_007"), y += interligne * 1.5f, width, height * 2);

            #endregion

            #region page 3

            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_008"), y, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_009"), y += interligne * 1.5f, width, height * 2);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_010"), y += interligne * 1.5f, width, height * 2);
            pdfGen.AddBlueBorder(y += interligne, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue("Client_Mission_008", data), y + 5 * 1.5f, width, height, 5);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_011"), y += interligne * 3f, width, height);

            pdfGen.AddBlueBorder(y += interligne * 1.5f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 126, data), y + 2 * 1.5f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 127, data), y + 2 * 1.5f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 128, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 129, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 130, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 131, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 132, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 133, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 134, data), y + 2 * 2.6f, width, height, 5);
            pdfGen.AddBlueBorder(y += interligne * 3f, 0, width, height * 2);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(192, 135, data), y + 2 * 2.6f, width, height, 5);

            #endregion

            #region page 4

            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_012"), y, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_013"), y += interligne * 1.5f, width, height * 3);

            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_012", data), y += interligne * 3, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_014"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_013", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_015"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_014", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_016"), y, width, height, 15);

            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_015", data), y += interligne, 0, "1");
                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_017"), y, width, height, 15);
                PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_016", data), y += interligne, 0, "1");
                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_018"), y, width, height, 15);
            }
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_017", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_019"), y, width, height, 15);

            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_1241", data), y += interligne, 0, "1");
                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_1241"), y, width, height, 15);
            }

            // PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetProspectValue("Client_Mission_018", data), y += interligne, 0, "1"); --> pas de checkbox sur le formulaire
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_020"), y += interligne, width, height);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue("Client_Mission_018", data), y, 480, height * 2, 40);




            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfReportPP_Notes"), y += interligne * 2, 500, 20);
                pdfGen.AddBlueBorder(y += interligne, 0, width, 280);
                pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue("Client_Mission_019", data), y + 5, 480, 280, 10);
            }

            #endregion

            #region page 5
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_021"), y, width, height);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_020", data), y += interligne * 1.5f, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_022"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_021", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_023"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_022", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_024"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_023", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_025"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_024", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_026"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_025", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_027"), y, width, height, 15);
            PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue("Client_Mission_026", data), y += interligne, 0, "1");
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_028"), y, width, height, 15);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(208, 138, data), y += interligne, 480, height * 2, 15);

            pdfGen.CreatePage();
            y = 0;
            pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfReportPP_Notes"), y += interligne, 500, 20);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 600);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(194, 139, data), y + 5, 480, 600, 10);

            #endregion

            #region page 6
            pdfGen.CreatePage();
            y = 0;

            //Analyse de la situation
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_029"), y, width, height);
            pdfGen.AddLabelNote(LanguageContentBL.Translate("PdfReportPP_Notes"), y += interligne * 2, 500, 20);
            pdfGen.AddBlueBorder(y += interligne, 0, width, 600);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(195, 140, data), y + 5, 480, 600, 10);
            #endregion

            #region page 7

            pdfGen.CreatePage();
            y = 0;

            //Rappel de la remuneration
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_029_0"), y, width, height);
            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfRapportmission_029_1"), y += interligne * 2, 500, 20);

            //From LM
            //Le mode de facturation et de rémunération
            pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_072"), y += (interligne * 2) - 5, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_073"), y += interligne * 2, width, 20);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_074"), y += interligne, width, 20 * 3);

            pdfGen.AddBlueBorder(y += interligne * 3, 0, 30, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(1234, 756, data), y + 5, 50, 20, 5);
            pdfGen.AddDefaultText("X", y + 8, 20, 20, 40);
            pdfGen.AddBlueBorder(y, 60, 30, 20);
            pdfGen.AddDefaultText(CustomerProspectOptionBL.GetAttributeValue(1234, 757, data), y + 5, 50, 30, 65);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_075"), y + 8, width, height, 110);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfLM_076"), y += interligne * 3, width, height * 2);
            // pdfGen.AddDefaultText("Au titre de l’accompagnement du client, une information plus précise sera fournie ultérieurement sur simple demande une fois connus les supports choisis par le client.", y += interligne * 3, width, height * 2, 15);
            pdfGen.AddReference(LanguageContentBL.Translate("PdfLM_077"), y += interligne * 2, width, height * 2, 15);

            //Les honoraires : n'afficher que les honoraires fournis
            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfLM_078"), y += interligne * 3, width, height);

            string honoraire_1_Value = CustomerProspectOptionBL.GetOptionValue(1236, data);
            string honoraire_2_Value = CustomerProspectOptionBL.GetOptionValue(1237, data);
            string honoraire_3_Value = CustomerProspectOptionBL.GetOptionValue(1238, data);
            string honoraire_4_Value = CustomerProspectOptionBL.GetOptionValue(1240, data);

            //1-
            if (honoraire_1_Value == "1" || pIsEmptyDocument)
            {
                PlotBooleanValue(pdfGen, honoraire_1_Value, y += (interligne * 1.5f) + 10, 0, "1");
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_079")
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1236, 760, data)
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1236, 761, data)
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1236, 762, data))
                    , y - 10, 480, height * 4, 20);
            }

            //Ou
            if (pIsEmptyDocument)
                pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 3f, width, height);

            //2-
            if (honoraire_2_Value == "1" || pIsEmptyDocument)
            {
                PlotBooleanValue(pdfGen, honoraire_2_Value, y += (interligne * 1.5f) + 10, 0, "1");
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_081")
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1237, 763, data)), y - 10, width, height * 3, 20);
            }

            if (pIsEmptyDocument)
                pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 2.5f, width, height);

            //3-
            if (honoraire_3_Value == "1" || pIsEmptyDocument)
            {
                PlotBooleanValue(pdfGen, honoraire_3_Value, y += (interligne * 1.5f) + 20, 0, "1");
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_082")
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1238, 764, data)), y - 20, width, height * 5, 20);
            }

            if (honoraire_4_Value == "0" || pIsEmptyDocument)
            {
                //Nous sommes convenus d'un règlement d'un montant de {0} Euros HT à l'acceptation de la lettre de mission et le solde lors du rendez-vous de synthèse de la mission.
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_083")
                    , (pIsEmptyDocument) ? Espace : CustomerProspectOptionBL.GetAttributeValue(1235, 758, data)), y += interligne * 4, width, height * 2);

                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084")
                   , CustomerProspectOptionBL.GetAttributeValue(1235, 759, data)), y += interligne * 2, width, height);
            }

            //Ou
            if (pIsEmptyDocument)
                pdfGen.AddDefaultBoldText(LanguageContentBL.Translate("PdfLM_080"), y += interligne * 2.5f, width, height);


            //4- Autre ?
            if (honoraire_4_Value == "1" || pIsEmptyDocument)
            {
                PlotBooleanValue(pdfGen, CustomerProspectOptionBL.GetOptionValue(1240, data), y += (interligne * 1.5f) + 10, 0, "1");
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfLM_084_1")), y, 480, 20, 20);
                //pdfGen.AddDefaultText(string.Format(CustomerProspectOptionBL.GetAttributeValue(1240, 766, data)), y += interligne, width, 280, 20);
                pdfGen.AddBlueBorder(y += interligne, 20, width - 20, 100);
                pdfGen.AddDefaultText(pIsEmptyDocument ? Espace : CustomerProspectOptionBL.GetAttributeValue(1240, 766, data), y + 5, width - 30, 100, 25);

            }

            #endregion

            #region page 8

            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddSubtitle(LanguageContentBL.Translate("PdfRapportmission_030"), y, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_031"), y += interligne * 2, width, height);
            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_032"), y += interligne, width, height);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_033"), y += interligne * 2, width, height * 2);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_034"), y += interligne * 2, width, height * 2);

            pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfRapportmission_035"), y += interligne * 2, width, height * 2);

            #endregion

            #region page 9

            pdfGen.CreatePage();
            y = 0;
            //Signature
            pdfGen.AddTitle(@"Signatures", 0);

            pdfGen.AddDefaultBoldText(@"Signature de l'Etablissement", 100, 500, 20, 80);


            pdfGen.AddBlueBorder(130, 35, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(@"J'ai lu et j'accepte les conditions générales.", 135, 200, 20, 40);
                pdfGen.AddDefaultText(@"Lu et approuvé.", 145, 145, 20, 40);
                pdfGen.AddDefaultText(@"Date:", 160, 145, 20, 40);
            }

            pdfGen.AddDefaultBoldText(@"Signature du Client", 100, 500, 20, 340);
            pdfGen.AddBlueBorder(130, 280, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(@"J'ai lu et j'accepte les conditions générales.", 135, 200, 20, 285);
                pdfGen.AddDefaultText(@"Lu et approuvé.", 145, 145, 20, 285);
                pdfGen.AddDefaultText(@"Date:", 160, 145, 20, 285);
            }

            #endregion

            //Force download if pathFileName is not set
            if (forceDownload)
            {
                string fileName = string.Format("RapportDeMission_{0}.pdf", pMissionDoc.idMissionDocument);
                pdfGen.GeneratePdfToWeb(fileName);
            }
            else
            {
                pdfGen.GeneratePdf(pathFileName);
            }
            return pdfGen.PageCount;
        }
        public static int GeneratePMReport(Guid idReport, string pathFilename, bool forceDownload, bool pIsEmptyReport = false)
        {
            var languageDataPP = PageLanguageHelper.GetLanguageContent("User", "PDFReportPP");
            FirmInstitution firmInstitution = new FirmInstitution();
            Data.Model.Report report = new Data.Model.Report();
            Data.Model.CustomerProspect customerProspect = new Data.Model.CustomerProspect();
            // int tabCheck = 15;
            //  int tabYesNo = 20;

            Data.Model.Report tempReport = ReportBL.GetReportWithValues(idReport);
            Data.Model.CustomerProspect tempCustomerProspect = CustomerProspectBL.GetCustomerProspectById(tempReport.idCustomerProspect);
            FirmInstitution tempFirmInstitution = Upsilab.Business.Configuration.FirmInstitutionBL.GetFirmInstitutionByIdFirmInstitution(tempCustomerProspect.idFirmInstitution);

            if (!pIsEmptyReport)
            {
                report = tempReport;
                customerProspect = tempCustomerProspect;
                firmInstitution = tempFirmInstitution;
            }



            report.IsEmptyReport = pIsEmptyReport;
            bool isEmptyReport = pIsEmptyReport;

            var languageData = PageLanguageHelper.GetLanguageContent("User", "PDF_PM_Report");

            double somme = 0, d;

            //Title and footer document
            string documentTitle = "Recueil d'informations";
            string footerContent = tempFirmInstitution.DocumentFooterContent; //temp is ok for empty or not empty doc

            //  FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent);
            //FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle)

            string name = string.Empty;
            string date = string.Empty;
            if (!pIsEmptyReport)
            {
                name = customerProspect.CompanyName;
                date = DateTime.Now.ToShortDateString();
            }
            if (forceDownload)
                date = string.Empty;

            FoxitPDFGenerator pdfGen = new FoxitPDFGenerator(documentTitle, footerContent, name, string.Format("{0} {1}", string.IsNullOrEmpty(date) ? string.Empty : languageDataPP.GetContent("PdfReportPP_004"), date));


            #region Page 1 : Title & Logo

            pdfGen.AddBackgroungImage();
            //Logo
            string logoPathFileName = FileManager.BuildLogoPath(tempFirmInstitution.idFirmInstitution) + tempFirmInstitution.Logo;
            pdfGen.AddLogoOnFirstPage(logoPathFileName, tempFirmInstitution.LogoAlign);


            ////Title
            //float y = 240;
            //pdfGen.AddReceuil_Title_Center_CalibriBold_Label(languageData.GetContent("Report_Title"), y, 500, 20);
            //pdfGen.AddReceuil_Title_Center_CalibriBold_Label(languageData.GetContent("Report_Title2"), y += paddingAfterParagraph, 500, 20);
            //pdfGen.AddReceuil_SubTitle_Center_CalibriBold_Label(languageData.GetContent("Report_Subtitle"), y += (2 * interline), 500, 11);

            float y = 360;
            pdfGen.AddWhiteTitle(languageData.GetContent("Report_Title"), y, 240, 60, 260, 20);//Questionnaire relatif au recueil d’informations
            pdfGen.AddWhiteTitle(languageData.GetContent("Report_Title2"), y += (2 * interline + 15), 200, 20, 300, 20);//clients/prospects
            pdfGen.AddWhiteTitle(languageData.GetContent("Report_Subtitle"), y += (2 * interline + 15), max_width, 20, 0, 12);

            pdfGen.AddWhiteBorder(y += interline * 1.7f, 195, 305, 70);

            if (isEmptyReport)
            {
                //string[] rowContents = { languageData.GetContent("Report_Date"), languageData.GetContent("Report_Reference"), string.Empty };
                //pdfGen.AddTableTitle(rowContents, 110, y += (2 * interline));
            }
            else
            {
                //string[] rowContents = { string.Format("{0} {1}", languageData.GetContent("Report_Date"), DateTime.Now.ToShortDateString())
                //                     , string.Format("{0}-{1}", languageData.GetContent("Report_Reference"), idReport)
                //                     , string.Format("{0}", customerProspect.CompanyName)
                //                   };
                //pdfGen.AddTableTitle(rowContents, 110, y += (2 * interline));
                if (!forceDownload)
                    pdfGen.AddWhiteTitleLeft(DateTime.Now.ToShortDateString(), y += 10, max_width, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(name, y += (interline), max_width, 11, 220, 10);
                pdfGen.AddWhiteTitleLeft(string.Format("{0}-{1}", languageDataPP.GetContent("PdfReportPP_005"), idReport), y += (interline), max_width, 11, 220, 10);

            }

            //pdfGen.AddBlueBorder(480, 108, 308, 30);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(string.Format("{0}", customerProspect.CompanyName), 490, 300, 20, 120);
            #endregion

            #region Page 2 : IDENTIFICATION DE L’ÉTABLISSEMENT
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddTitle(languageData.GetContent("Page1_Section1_Title"), y, 500, 20);
            /*pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section1_Paragraph1_Line1"), 20, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section1_Paragraph1_Line2"), 30, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section1_Paragraph1_Line3"), 40, 500, 20);
            */
            string stextLine1 = languageData.GetContent("Page1_Section1_Paragraph1_Line4");
            pdfGen.AddJustifyText(stextLine1, y += interline + 5, 500, 60);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section1_Paragraph2_Line1"), 60, 500, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section1_Paragraph2_Line2"), 70, 500, 20);

            string stextLine2 = languageData.GetContent("Page1_Section1_Paragraph2_Line3");
            pdfGen.AddJustifyText(stextLine2, y += interline * 2.8f, 500, 40, 0);

            pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_NameOfEstablishement"), y += interline * 2f, label_width, height);
            pdfGen.AddAnswer(firmInstitution.FirmInstitutionName, y, answer_width, height, answer_x);


            if (SessionManager.GetHostCodeSession() == PageLanguageHelper.HostCode.FR.ToString())
            {
                pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_Name"), y += interline, label_width, height);
                pdfGen.AddAnswer(firmInstitution.LeaderName, y, answer_width, height, answer_x);

                pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_FirstName"), y += interline, label_width, height);
                pdfGen.AddAnswer(firmInstitution.LeaderFirstName, y, answer_width, height, answer_x);

                pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_RCS"), y += interline, label_width, height);
                pdfGen.AddAnswer(firmInstitution.RCS, y, answer_width, height, answer_x);
                //y = 165;
            }
            else
            {
                //Numéro d'entreprise : 
                pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_RCS"), y += interline, label_width, height);
                pdfGen.AddAnswer(firmInstitution.RegisteredInRegister, y, answer_width, height, answer_x);

                //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format("{0} {1}", languageData.GetContent("Page1_Section1_769"), firmInstitution.RCS), 165, 600, 20, 300);//Numéro FSMA :
                var optionValue = Business.Configuration.FirmInstitutionOptionBL.GetFirmInstitutionOptionAttributeValueByFirmAndIdOptionAttribute(firmInstitution.idFirmInstitution, 1);
                var optFSMA = string.Empty;
                if (optionValue != null)
                    optFSMA = Convert.ToString(optionValue.Value);
                // pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format("{0} {1}", languageData.GetContent("Page1_Section1_769"), optFSMA), 165, 600, 20, 300);//Numéro FSMA :
                pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_769"), y += interline, label_width, height);
                pdfGen.AddAnswer(optFSMA, y, answer_width, height, answer_x);
                // y = 180;
            }
            //  pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page1_Section1_RCS"), firmInstitution.RCS), 165, 500, 20, 0, 10);
            // pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} {1}", languageData.GetContent("Page1_Section1_769"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 769))), 165, 600, 20, 300);
            // pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page1_Section1_StreetAddress"), firmInstitution.FirmStreet), 180, 500, 20, 0, 10);
            pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_StreetAddress"), y += interline, label_width, height);
            pdfGen.AddAnswer(firmInstitution.FirmStreet, y, answer_width, height, answer_x);

            // pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page1_Section1_PostalCode"), firmInstitution.FirmPostCode), 195, 500, 20, 0, 10);
            pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_PostalCode"), y += interline, label_width, height);
            pdfGen.AddAnswer(firmInstitution.FirmPostCode, y, answer_width, height, answer_x);

            //   pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page1_Section1_City"), firmInstitution.FirmCity), 210, 500, 20, 0, 10);
            pdfGen.AddDefaultText(languageData.GetContent("Page1_Section1_City"), y += interline, label_width, height);
            pdfGen.AddAnswer(firmInstitution.FirmCity, y, answer_width, height, answer_x);

            // y = 225;
            #region Conseiller signataire
            string signataireName = string.Empty;
            string signataireFirstName = string.Empty;

            if (!isEmptyReport)
            {
                Data.Model.User userAdviser = (report.User != null) ? report.User : customerProspect.User1;

                if (!string.IsNullOrEmpty(userAdviser.UserFirstName))
                {
                    signataireFirstName = userAdviser.UserFirstName;
                }

                if (!string.IsNullOrEmpty(userAdviser.UserName))
                {
                    signataireName = userAdviser.UserName;
                }
            }

            // pdfGen.AddJustifyText(String.Format(languageDataPP.GetContent("PdfReportPP_753"), signataireFirstName, signataireName), y, max_width, height);
            pdfGen.AddDefaultText(String.Format(languageDataPP.GetContent("PdfReportPP_753"), string.Empty, string.Empty), y += interline, label_width, height);
            if (SessionManager.GetHostCodeSession() == PageLanguageHelper.HostCode.FR.ToString())
                pdfGen.AddAnswer(String.Format("{0} {1} {2}", signataireFirstName, signataireName, " (signataire)"), y, answer_width, height, answer_x);
            else
                pdfGen.AddAnswer(String.Format("{0} {1}", signataireFirstName, signataireName), y, answer_width, height, answer_x);

            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(languageDataPP.GetContent("PdfReportPP_754"), signataireFirstName), y += 10, max_width, height);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(String.Format(languageDataPP.GetContent("PdfReportPP_755"), signataireName), y += 10, max_width, height);            
            #endregion

            pdfGen.AddOrangeTitle(languageData.GetContent("Page1_Section2_Title"), y += interline * 1.5f, 500, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page1_Section2_Paragraph1_Line1"), y += interline, 500, 20, 0);
            pdfGen.AddJustifyText(languageData.GetContent("Report_Symbol_Dash"), y += interline, 500 - 20, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section2_Paragraph1_Line2"), 245, 500 - 35, 20, 35,10);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page1_Section2_Paragraph1_Line3"), 230, 500 - 35, 20, 35,10);
            //string sText212 = string.Format(@"{0} {1}", languageData.GetContent("Page1_Section2_Paragraph1_Line2"), languageData.GetContent("Page1_Section2_Paragraph1_Line3"));
            string sText212 = languageData.GetContent("Page1_Section2_Paragraph1_Line8");
            pdfGen.AddJustifyText(sText212, y, 500 - 35, 40, 35);

            pdfGen.AddJustifyText(languageData.GetContent("Report_Symbol_Dash"), y += interline * 2, 500 - 20, 20, 20);
            //pdfGen.AddJustifyText(languageData.GetContent("Page1_Section2_Paragraph1_Line4"), 240, 500 - 35, 20, 35,10);
            //pdfGen.AddJustifyText(languageData.GetContent("Page1_Section2_Paragraph1_Line5"), 250, 500 - 35, 20, 35,10);
            //string sText214 = string.Format(@"{0} {1}", languageData.GetContent("Page1_Section2_Paragraph1_Line4"), languageData.GetContent("Page1_Section2_Paragraph1_Line5"));
            string sText214 = languageData.GetContent("Page1_Section2_Paragraph1_Line9");
            pdfGen.AddJustifyText(sText214, y, 500 - 35, 40, 35);
            pdfGen.AddJustifyText(languageData.GetContent("Report_Symbol_Dash"), y += interline * 2, 500 - 20, 20, 20);
            //pdfGen.AddJustifyText(languageData.GetContent("Page1_Section2_Paragraph1_Line6"), 260, 500 - 35, 20, 35,10);
            //pdfGen.AddJustifyText(languageData.GetContent("Page1_Section2_Paragraph1_Line7"), 270, 500 - 35, 20, 35,10);
            // string sText216 = string.Format(@"{0} {1}", languageData.GetContent("Page1_Section2_Paragraph1_Line6"), languageData.GetContent("Page1_Section2_Paragraph1_Line7"));
            string sText216 = languageData.GetContent("Page1_Section2_Paragraph1_Line10");
            pdfGen.AddJustifyText(sText216, y, 500 - 35, 40, 35);

            /*pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph2_Line1"), 290, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph2_Line2"), 300, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph2_Line3"), 310, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph2_Line4"), 320, 500, 20);
            */

            pdfGen.AddBlueBorder(y += 30, 0, max_width, 190);
            //string stext221 = string.Format(@"{0} {1} {2} {3}", languageData.GetContent("Page1_Section2_Paragraph2_Line1"), languageData.GetContent("Page1_Section2_Paragraph2_Line2"), languageData.GetContent("Page1_Section2_Paragraph2_Line3"), languageData.GetContent("Page1_Section2_Paragraph2_Line4"));
            string stext221 = languageData.GetContent("Page1_Section2_Paragraph2_Line5");
            pdfGen.AddJustifyText(stext221, y += 5, max_width - 20, 80, 10);

            /*pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph3_Line1"), 340, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph3_Line2"), 350, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph3_Line3"), 360, 500, 20);
            */
            string stext231 = string.Empty;
            float nextYPlus = 0;
            if (SessionManager.GetHostCodeSession() == PageLanguageHelper.HostCode.FR.ToString())
            {
                //stext231 = string.Format(@"{0} {1} {2}", languageData.GetContent("Page1_Section2_Paragraph3_Line1"), languageData.GetContent("Page1_Section2_Paragraph3_Line2"), languageData.GetContent("Page1_Section2_Paragraph3_Line3"));
                stext231 = languageData.GetContent("Page1_Section2_Paragraph3_Line4");
                pdfGen.AddJustifyText(stext231, y += interline * 3, max_width - 20, 60, 10);
                nextYPlus = interline * 2.8f;
            }
            else
            {
                stext231 = languageData.GetContent("Page1_Section2_Paragraph3_Line1");
                pdfGen.AddJustifyText(stext231, y += interline * 3, max_width - 20, 20, 10);
                nextYPlus = interline * 1.5f;
            }


            /*pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph4_Line1"), 380, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph4_Line2"), 390, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph4_Line3"), 400, 500, 20);
            */
            //string stext241 = string.Format(@"{0} {1} {2}", languageData.GetContent("Page1_Section2_Paragraph4_Line1"), languageData.GetContent("Page1_Section2_Paragraph4_Line2"), languageData.GetContent("Page1_Section2_Paragraph4_Line3"));
            string stext241 = languageData.GetContent("Page1_Section2_Paragraph4_Line4");
            pdfGen.AddJustifyText(stext241, y += nextYPlus, max_width - 20, 60, 10);

            /*pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph5_Line1"), 420, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph5_Line2"), 430, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph5_Line3"), 440, 500, 20);
            pdfGen.AddReceuil_DetailText_Justify_CalibriItalic_Label(languageData.GetContent("Page1_Section2_Paragraph5_Line4"), 450, 500, 20);
            */
            //string stext251 = string.Format(@"{0} {1} {2} {3}", languageData.GetContent("Page1_Section2_Paragraph5_Line1"), languageData.GetContent("Page1_Section2_Paragraph5_Line2"), languageData.GetContent("Page1_Section2_Paragraph5_Line3"), languageData.GetContent("Page1_Section2_Paragraph5_Line4"));
            string stext251 = languageData.GetContent("Page1_Section2_Paragraph5_Line5");
            pdfGen.AddJustifyText(stext251, y += interline * 2.8f, max_width - 20, 80, 10);
            #endregion

            #region Page 3 : IDENTIFICATION DU TITULAIRE :I- Identité de la personne morale
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddTitle(languageData.GetContent("Page2_Section1_Title"), y, 500, 20);

            if (isEmptyReport)
                ReportBL.PlotBooleanValue(pdfGen, string.Empty, y += interline + textInterline, 30, Boolean.FalseString);
            else
                ReportBL.PlotBooleanValue(pdfGen, customerProspect.IsCorporation.Value, y += interline + textInterline, 30, Boolean.FalseString);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section1_Line1"), y, 500, 20, 50);

            if (isEmptyReport)
                ReportBL.PlotBooleanValue(pdfGen, string.Empty, y += interline, 30, Boolean.TrueString);
            else
                ReportBL.PlotBooleanValue(pdfGen, customerProspect.IsCorporation.Value, y += interline, 30, Boolean.TrueString);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section1_Line2"), y, 500, 20, 50);

            //Present physiquement ?
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section1_Line3"), y += interline + textInterline, 500, 20);

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 502), y += interline, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes"), y, 500, 20, 40 + tabCheck);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 503), y, 80);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No"), y, 500, 20, 80 + tabCheck);

            //I. Identité de la personne morale
            pdfGen.AddSubtitle(languageData.GetContent("Page2_Section2_Title"), y += interline + textInterline, 500, 20);

            //Raison sociale
            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line1"), customerProspect.CompanyName), y += interline + textInterline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line1"), string.Empty), y += interline + textInterline, label_width, height);
            pdfGen.AddAnswer(customerProspect.CompanyName, y, answer_width, height, answer_x);
            //Sigle
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line2"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 382))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line2"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 382)), y, answer_width, height, answer_x);
            //RCS
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line3"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 383))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line3"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 383)), y, answer_width, height, answer_x);

            // Ne pas afficher pour BE
            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                //Ville
                //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line4"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 384))), y += interline, 500, 20);
                pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line4"), string.Empty), y += interline, label_width, height);
                pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 384)), y, answer_width, height, answer_x);

                //Siren
                //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line5"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 385))), y += interline, 500, 20);
                pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line5"), string.Empty), y += interline, label_width, height);
                pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 385)), y, answer_width, height, answer_x);

                //Date immatric
                //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line6"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 386))), y += interline, 500, 20);
                pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section2_Line6"), string.Empty), y += interline, label_width, height);
                pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 386)), y, answer_width, height, answer_x);
            }

            //Adresse
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(languageData.GetContent("Page2_Section5_Line7"), y += interline, 500, 20);
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 390)), y += interline, 480, 60, 10);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section5_Line7"), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 390)), y, answer_width, height * 3, answer_x);


            //CP
            //  pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_cp"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 743))), y += (interline * 3), 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_cp"), string.Empty), y += interline * 2.5f, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 743)), y, answer_width, height, answer_x);

            //Ville
            // pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_ville"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 744))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_ville"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 744)), y, answer_width, height, answer_x);

            //Tel
            // pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_Line8"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 391))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_Line8"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 391)), y, answer_width, height, answer_x);

            //Fax
            // pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_fax"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 745))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_fax"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 745)), y, answer_width, height, answer_x);

            //Mail
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_Line9"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 392))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_Line9"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 392)), y, answer_width, height, answer_x);


            #region Domiciliation
            //France / Hors France
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 556), y += interline + 2);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section5_Line1_Item1"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 557), y, 140);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section5_Line1_Item2"), y, 500, 20, 160);

            //Pays de domiciliation
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section5_Line2"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 389))), y += interline, 500, 20);
            pdfGen.AddBlueBorder(y += 25, 70, 410, 85);
            //Gafi
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(languageData.GetContent("Page2_Section5_Line3"), y += interline, 500, 20, 100);
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(languageData.GetContent("Page2_Section5_Line4"), y += interline, 500, 20, 100);
            //string sText253 = string.Format(@"{0} {1}", languageData.GetContent("Page2_Section5_Line3"), languageData.GetContent("Page2_Section5_Line4"));
            string sText253 = languageData.GetContent("Page2_Section5_Line3_1");
            pdfGen.AddJustifyText(sText253, y += 5, 380, 40, 90);

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 559), y += interline * 1.7f, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 115);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 560), y, 140);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 155);

            //Offshore
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(languageData.GetContent("Page2_Section5_Line5"), y += interline + textInterline, 500, 20, 100);
            //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(languageData.GetContent("Page2_Section5_Line6"), y += interline, 500, 20, 100);

            //string sText255 = string.Format(@"{0} {1}", languageData.GetContent("Page2_Section5_Line5"), languageData.GetContent("Page2_Section5_Line6"));
            string sText255 = languageData.GetContent("Page2_Section5_Line5_1");
            pdfGen.AddJustifyText(sText255, y += interline, 380, 40, 90);

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 562), y += interline * 1.7f, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 115);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 563), y, 140);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 155);
            #endregion

            #region Forme juridique
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line1"), y += interline + textInterline, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 542), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line2"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 543), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line3"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 544), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line4"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 545), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line5"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 546), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line6"), y, 500, 20, 20);
            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.FR.ToString())
            {
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 547), y, 320);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line6_Item1"), y, 500, 20, 340);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 548), y, 360);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line6_Item2"), y, 500, 20, 380);
            }

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 549), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line7"), y, 500, 20, 20);

            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.FR.ToString())
            {
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 550), y, 320);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line7_Item1"), y, 500, 20, 340);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 551), y, 360);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line7_Item2"), y, 500, 20, 380);
            }

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 552), y += interline);
            pdfGen.AddDefaultText(string.Format("{0} {1}", languageData.GetContent("Page2_Section3_Line8"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 387))), y, 500, 20, 20);
            //pdfGen.AddDefaultText(string.Format("{0} {1}", languageData.GetContent("Page2_Section3_Line8"), customerProspect.LegalForm_Autre), 355, 500, 20, 20);

            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.FR.ToString())
            {
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 553), y, 320);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line8_Item1"), y, 500, 20, 340);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 554), y, 360);
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line8_Item2"), y, 500, 20, 380);
            }

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 555), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line9"), y, 500, 20, 20);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, "LABPM_Client_0100")), y, 500, 20, 190); // A maintenir !!

            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.BE.ToString())
            {
                pdfGen.AddDefaultText(languageData.GetContent("Page2_Section3_Line10"), y += interline, 500, 20, 20);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 1258), y);
            }

            #endregion

            #region Societe cotee
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddDefaultText(languageData.GetContent("Page2_Section4_Line1"), y, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 565), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 566), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 55);

            //Sur quel marché
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page2_Section4_Line2"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 393))), y += interline + textInterline, 500, 20);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section4_Line3"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 394))), y += interline, 500, 20);
            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section4_Line4"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 395))), y += interline, 500, 20);
            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page2_Section4_Line5"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 396))), y += interline, 500, 20);
            #endregion

            #endregion

            #region II.     Secteur d’activité
            pdfGen.AddSubtitle(languageData.GetContent("Page3_Section1_Title"), y += (2 * paddingAfterParagraph), 500, 20);

            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 397)), y += (2 * interline), 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section1_Line1"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 398))), y += interline, 500, 20);

            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section1_Line2"), y += paddingAfterParagraph, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 570), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 571), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 55);

            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section1_Line3"), y += paddingAfterParagraph, 500, 20);
            pdfGen.AddBlueBorder(y + interline);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 388)), y += paddingAfterParagraph, 480, 65, 10);

            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section1_Line4"), y += 75, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 573), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 574), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 55);
            #endregion

            #region III.     Dirigeant/ mandataire social / représentant
            //Civilité
            pdfGen.AddSubtitle(languageData.GetContent("Page3_Section2_Title"), y += (2 * paddingAfterParagraph), 500, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line1"), y += (2 * interline), 500, 20);

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 577), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line1_Item1"), y, 500, 20, 55);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 578), y, 110);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line1_Item2"), y, 500, 20, 125);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 1231), y, 180);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line1_Item3"), y, 500, 20, 195);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line2"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 399))), y += paddingAfterParagraph, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line2"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 399)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line3"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 400))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line3"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 400)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_telPortable"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 401))), y += interline, 500, 20);//tel 
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_telPortable"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 401)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_telPro"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 402))), y += interline, 500, 20);//tel
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_telPro"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 402)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_fax"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 746))), y += interline, 500, 20);//fax
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_fax"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 746)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_email"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 747))), y += interline, 500, 20);//email
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_email"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 747)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(languageData.GetContent("PDFPM_adresse"), y += interline, 500, 20);//adresse
            // pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 748)), y, 400, 60, 50);//adresse
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_adresse"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 748)), y, answer_width, height * 3, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_cp"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 749))), y += (2.8f * interline), 500, 20);//cp
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_cp"), string.Empty), y += interline * 2.8f, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 749)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_ville"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 750))), y += interline, 500, 20);//ville
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("PDFPM_ville"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 750)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 403))), y, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 403)), y, answer_width, height, answer_x);
            if (SessionManager.GetHostCodeSession() == PageLanguageHelper.HostCode.BE.ToString())
            {
                //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4_767"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 767))), y, 500, 20, 150);
                pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4_767"), string.Empty), y += interline, label_width, height);
                pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 767)), y, answer_width, height, answer_x);

                //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4_768"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 768))), y, 500, 20, 300);
                pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line4_768"), string.Empty), y += interline, label_width, height);
                pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 768)), y, answer_width, height, answer_x);
            }
            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line5"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 404))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line5"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 404)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line6"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 405))), y, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section2_Line6"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 405)), y, answer_width, height, answer_x);

            if (SessionManager.GetHostCodeSession() == PageLanguageHelper.HostCode.BE.ToString())
            {
                pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line7_Item1_1244"), y += interline + 5, 500, 20);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 580), y, 200);
                pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line7_Item1_1245"), y, 500, 20, 215);
                ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 581), y, 240);
                pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line7_Item2_1246"), y, 500, 20, 255);
            }

            #region Resident
            pdfGen.CreatePage();
            y = 0;

            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 580), y);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line7_Item1"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 581), y, 80);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section2_Line7_Item2"), y, 500, 20, 95);

            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page3_Section3_Line1"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 406))), y += interline, 500, 20);
            //pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line2"), y += interline, 500, 20, 100);
            //pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line3"), y += interline, 500, 20, 100);

            pdfGen.AddBlueBorder(y += 20, 70, 400, 95);
            // string sText332 = string.Format(@"{0} {1}", languageData.GetContent("Page3_Section3_Line2"), languageData.GetContent("Page3_Section3_Line3"));
            string sText332 = languageData.GetContent("Page3_Section3_Line3_1");
            pdfGen.AddDefaultText(sText332, y = y + interline, 350, height, 90);

            float x = 90;


            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 584), y = y + interline * 1.5f, x);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, max_width, height, x += tabCheck);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 585), y, x += tabYesNo);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, max_width, height, x += tabCheck);

            /*pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line4"), y += interline, 500, 20, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line5"), y += interline, 500, 20, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line6"), y += interline, 500, 20, 100);
            */

            //            string sText334 = string.Format(@"{0} {1} {2}", languageData.GetContent("Page3_Section3_Line4"), languageData.GetContent("Page3_Section3_Line5"), languageData.GetContent("Page3_Section3_Line6"));
            string sText334 = languageData.GetContent("Page3_Section3_Line4_1");
            pdfGen.AddDefaultText(sText334, y = y + interline, 350, height, 90);

            x = 90;
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 587), y = y + interline * 1.5f, x);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, max_width, height, x += tabCheck);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 588), y, x += tabYesNo);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, max_width, height, x += tabCheck);

            pdfGen.AddDefaultText(languageData.GetContent("Page3_Section3_Line7"), y += interline * 1.8f, 500, 20);
            pdfGen.AddReference(languageData.GetContent("Page3_Section3_Line8"), y += interline, 500, 20);
            // pdfGen.AddReference(languageData.GetContent("Page3_Section3_Line9"), y += interline, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 590), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 591), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 55);
            #endregion

            #endregion

            #region IV- Personnes habilitées

            pdfGen.CreatePage();

            pdfGen.AddSubtitle(languageData.GetContent("Page4_Section1_Title"), 0, 500, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1"), 20, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 594), 20, 180);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1_Item1"), 20, 500, 20, 195);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 595), 20, 205);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1_Item2"), 20, 500, 20, 220);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 596), 20, 230);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1_Item3"), 20, 500, 20, 245);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 597), 20, 255);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1_Item4"), 20, 500, 20, 270);
            ReportBL.PlotBooleanValue(pdfGen, ReportBL.GetReportOptionValueFromReportInstance(report, 598), 20, 280);
            pdfGen.AddDefaultText(languageData.GetContent("Page4_Section1_Line1_Item5"), 20, 500, 20, 295);

            int repeat = 0;

            if (ReportBL.GetReportOptionValueFromReportInstance(report, 594) != null)
                repeat = 1;
            else if (ReportBL.GetReportOptionValueFromReportInstance(report, 595) != null)
                repeat = 2;
            else if (ReportBL.GetReportOptionValueFromReportInstance(report, 596) != null)
                repeat = 3;
            else if (ReportBL.GetReportOptionValueFromReportInstance(report, 597) != null)
                repeat = 4;
            else if (ReportBL.GetReportOptionValueFromReportInstance(report, 598) != null)
                repeat = 5;
            else repeat = 0;

            float currentPosition = 20;

            if (repeat > 0)
            {
                List<ReportOptionAttributeValue> personnes = new List<ReportOptionAttributeValue>();
                switch (repeat)
                {
                    case 1:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 407).FirstOrDefault());
                        break;
                    case 2:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 407).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 408).FirstOrDefault());
                        break;
                    case 3:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 407).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 408).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 409).FirstOrDefault());
                        break;
                    case 4:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 407).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 408).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 409).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 410).FirstOrDefault());
                        break;

                    case 5:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 407).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 408).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 409).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 410).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 411).FirstOrDefault());
                        break;

                }



                for (int r = 1; r <= repeat; r++)
                {
                    currentPosition = ReportBL.GeneratePMRLesPersonnesHabilitées(pdfGen, personnes[r - 1], languageData, currentPosition);
                }
            }
            #endregion

            #region V. Origine de la relation

            pdfGen.CreatePage();

            pdfGen.AddSubtitle(languageData.GetContent("Page5_Section1_Title"), 0, 500, 20);

            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(600, idReport), 25);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line1_Item1"), 25, 500, 20, 20);

            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(601, idReport), 25, 250);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page5_Section1_Line1_Item2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(422, idReport))), 25, 500, 20, 270);

            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line2"), 40, 500, 20, 250);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(603, idReport), 40, 350);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 40, 500, 20, 365);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(604, idReport), 40, 400);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 40, 500, 20, 415);

            //pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line3"), 55, 500, 20, 200);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 55, 300);
            //pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 55, 500, 20, 320);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 55, 350);
            //pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 55, 500, 20, 370);

            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(605, idReport), 40);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line4"), 40, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(606, idReport), 55);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line5"), 55, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(607, idReport), 70);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line6"), 70, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(608, idReport), 85);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line7"), 85, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(609, idReport), 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line8"), 100, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(610, idReport), 115);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line9"), 115, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(611, idReport), 130);
            pdfGen.AddDefaultText(languageData.GetContent("Page5_Section1_Line10"), 130, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(612, idReport), 145);
            pdfGen.AddDefaultText(String.Format(@"{0}: {1}", languageData.GetContent("Page5_Section1_Line11"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(423, idReport))), 145, 500, 20, 20);
            #endregion

            #region VI.     Le client/prospect a-t-il été démarché ?
            if (SessionManager.GetHostCodeSession() != PageLanguageHelper.HostCode.BE.ToString())
            {
                pdfGen.AddSubtitle(languageData.GetContent("Page5_Section2_Title"), 180, 500, 20);

                ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(614, idReport), 215);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line1"), 215, 500, 20, 15);
                ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(615, idReport), 230);
                /*pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line2"), 230, 500, 20, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line3"), 245, 500, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line4"), 260, 500, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line5"), 275, 500, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line6_Item1"), 290, 500, 20);
                pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page5_Section2_Line6_Item2"), 290, 500, 20, 247);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line6_Item3"), 290, 500, 20, 432);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line7"), 305, 500, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line8"), 320, 500, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line9"), 335, 500, 20);
                */
                //pdfGen.AddDefaultText(String.Format(@"{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}", languageData.GetContent("Page5_Section2_Line2"), languageData.GetContent("Page5_Section2_Line3"), languageData.GetContent("Page5_Section2_Line4"), languageData.GetContent("Page5_Section2_Line5"), languageData.GetContent("Page5_Section2_Line6_Item1"), languageData.GetContent("Page5_Section2_Line6_Item2"), languageData.GetContent("Page5_Section2_Line6_Item3"), languageData.GetContent("Page5_Section2_Line7"), languageData.GetContent("Page5_Section2_Line8"), languageData.GetContent("Page5_Section2_Line9")), 230, 500 - 20, 160, 20);
                pdfGen.AddDefaultText(languageData.GetContent("Page5_Section2_Line2_1"), 230, 500 - 20, 160, 20);
            }
            #endregion

            #region VII.     Relations à diligences accrues

            pdfGen.CreatePage();

            y = 0;
            pdfGen.AddSubtitle(languageData.GetContent("Page6_Section1_Title"), y, 500, 20);
            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page6_Section1_Line1"), y += interline, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(618, idReport), y += interline, 35);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 50);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(619, idReport), y, 80);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 95);

            pdfGen.AddBlueBorder(y += interline, 20, max_width - 10, 130);
            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page6_Section1_Line2"), y += 10, max_width - 30, 60, 30);

            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page6_Section1_Line3"), y += interline * 4f, max_width - 30, 60, 30);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page6_Section1_Line4"), y += interline * 5.5f, 500 - 15, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(621, idReport), y += interline, 35);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 50);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(622, idReport), y, 80);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 95);
            pdfGen.AddReference(languageData.GetContent("Page6_Section1_Line5"), y += interline, 500, 20, 35);
            #endregion

            #region VIII.     Bénéficiaire effectif
            pdfGen.AddSubtitle(languageData.GetContent("Page6_Section2_Title"), y += interline * 1.5f, 500, 20);
            pdfGen.AddReference(languageData.GetContent("Page6_Section2_Line1"), y += interline, 500, 20);

            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line2"), y += interline, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(625, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), y, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(626, idReport), y, 40);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), y, 500, 20, 55);

            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3"), y += interline * 1.3f, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(628, idReport), y, 140);
            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3_Item1"), y, 500, 20, 155);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(629, idReport), y, 165);
            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3_Item2"), y, 500, 20, 180);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(630, idReport), y, 190);
            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3_Item3"), y, 500, 20, 205);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(631, idReport), y, 215);
            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3_Item4"), y, 500, 20, 230);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(632, idReport), y, 240);
            pdfGen.AddDefaultText(languageData.GetContent("Page6_Section2_Line3_Item5"), y, 500, 20, 255);
            //TODO: value not correct ?????
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 330, 265);
            //TODO: value not correct ???????????
            // pdfGen.AddDefaultText(String.Format(@"Autre: {0}", ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(423, idReport))), 330, 500, 20, 280);

            int repeat2 = 0;

            if (ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(628, idReport) != null)
                repeat2 = 1;
            else if (ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(629, idReport) != null)
                repeat2 = 2;
            else if (ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(630, idReport) != null)
                repeat2 = 3;
            else if (ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(631, idReport) != null)
                repeat2 = 4;
            else if (ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(632, idReport) != null)
                repeat2 = 5;
            else repeat2 = 0;

            float currentPosition2 = 330;

            if (repeat2 > 0)
            {
                List<ReportOptionAttributeValue> personnes = new List<ReportOptionAttributeValue>();
                switch (repeat2)
                {
                    case 1:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 424).FirstOrDefault());
                        break;
                    case 2:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 424).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 425).FirstOrDefault());
                        break;
                    case 3:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 424).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 425).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 426).FirstOrDefault());
                        break;
                    case 4:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 424).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 425).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 426).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 427).FirstOrDefault());
                        break;
                    case 5:
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 424).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 425).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 426).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 427).FirstOrDefault());
                        personnes.Add(report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 428).FirstOrDefault());
                        break;

                }

                for (int r = 1; r <= repeat2; r++)
                {
                    currentPosition2 = ReportBL.GeneratePMRLesBénéficiaireEffectif(pdfGen, personnes[r - 1], languageData, currentPosition2);
                }
            }

            //if (currentPosition2 + 123 >= 700)
            //{
            //    pdfGen.CreatePage();
            //    currentPosition2 = 0;
            //}

            //TODO: no data yet. can't find in UI
            //pdfGen.AddLabelNote("Notes", currentPosition2 + 15, 500, 20);
            //pdfGen.AddBlueBorder(currentPosition2 + 30);
            //pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(0, idReport)), currentPosition2 + 40, 480, 65, 10);
            #endregion

            #region RESULTATS FINANCIERS ET REVENUS
            #region I.     Résultats financiers
            pdfGen.CreatePage();
            y = 0;

            pdfGen.AddTitle(languageData.GetContent("Page7_Section1_Title"), y, 500, 20);

            /*pdfGen.AddDefaultText(languageData.GetContent("Page7_Section1_Line1"), y += (2 * interline), 500, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page7_Section1_Line2"), y += interline, 500, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page7_Section1_Line3"), y += interline, 500, 20);
            */
            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode ==
                Upsilab.Business.Utility.PageLanguageHelper.HostCode.FR.ToString())
            {
                //string str = String.Format(@"{0} {1} {2}", languageData.GetContent("Page7_Section1_Line1"),
                //    languageData.GetContent("Page7_Section1_Line2"), languageData.GetContent("Page7_Section1_Line3"));
                string str = languageData.GetContent("Page7_Section1_Line2_1");
                pdfGen.AddDefaultText(str, y += (2 * interline), 500, 60);
            }
            else
                pdfGen.AddDefaultText(String.Format(@"{0}", languageData.GetContent("Page7_Section1_Line1")),
                    y += (2 * interline), 500, 60);

            #endregion

            #region II.     L’actif
            pdfGen.AddSubtitle(languageData.GetContent("Page7_Section2_Title"), y += (4 * interline), 500, 20);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line1"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(352, idReport))), y += paddingAfterParagraph, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line1"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(352, idReport)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(353, idReport))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line2"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(353, idReport)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line3"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(354, idReport))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line3"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(354, idReport)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(355, idReport))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line4"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(355, idReport)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line5"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(356, idReport))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page7_Section2_Line5"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(356, idReport)), y, answer_width, height, answer_x);


            pdfGen.AddSubtitle(languageData.GetContent("Page7_Section3_Title"), y += (2 * interline), 500, 20);

            pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line1"), y += paddingAfterParagraph, 500, 20, 50);

            pdfGen.AddDefaultText(GetReportOptionAttributeValueByIdOptionAttribute(725, report), y, 500, 20, 200);


            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(507, idReport), 285);
            //pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line2_Item1"), 285, 500, 20, 20);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(508, idReport), 285, 70);
            //pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line2_Item2"), 285, 500, 20, 90);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(509, idReport), 285, 180);
            //pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line2_Item3"), 285, 500, 20, 200);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(510, idReport), 285, 295);
            //pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line2_Item4"), 285, 500, 20, 315);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(511, idReport), 285, 415);
            //pdfGen.AddDefaultText(languageData.GetContent("Page7_Section3_Line2_Item5"), 285, 500, 20, 435);

            Dictionary<int, string[]> rowData = new Dictionary<int, string[]>();
            somme = 0;
            string presentValue = "";
            var data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(358, idReport);
            presentValue = ReportBL.GetStringValue(data, "PresentValue");
            if (Double.TryParse(presentValue.Replace(".", ","), out d))
                somme += d;
            rowData.Add(0, new string[] {languageData.GetContent("Page7_Section3_Table1_Row1_Column1"), 
                                       presentValue,
                                        ReportBL.GetStringValue(data, "Source"),
                                        ReportBL.GetStringValue(data, "Description"),
                                        ReportBL.GetStringValue(data, "Country")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(359, idReport);
            presentValue = ReportBL.GetStringValue(data, "PresentValue");
            if (Double.TryParse(presentValue.Replace(".", ","), out d))
                somme += d;
            rowData.Add(1, new string[] { languageData.GetContent("Page7_Section3_Table1_Row2_Column1"), 
                                       presentValue,
                                        ReportBL.GetStringValue(data, "Source"),
                                        ReportBL.GetStringValue(data, "Description"),
                                        ReportBL.GetStringValue(data, "Country")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(360, idReport);
            presentValue = ReportBL.GetStringValue(data, "PresentValue");
            if (Double.TryParse(presentValue.Replace(".", ","), out d))
                somme += d;
            rowData.Add(2, new string[] { languageData.GetContent("Page7_Section3_Table1_Row3_Column1"),
                                        presentValue,
                                        ReportBL.GetStringValue(data, "Source"),
                                        ReportBL.GetStringValue(data, "Description"),
                                        ReportBL.GetStringValue(data, "Country")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(361, idReport);
            presentValue = ReportBL.GetStringValue(data, "PresentValue");
            if (Double.TryParse(presentValue.Replace(".", ","), out d))
                somme += d;
            rowData.Add(3, new string[] { languageData.GetContent("Page7_Section3_Table1_Row4_Column1"), 
                                       presentValue,
                                        ReportBL.GetStringValue(data, "Source"),
                                        ReportBL.GetStringValue(data, "Description"),
                                        ReportBL.GetStringValue(data, "Country")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(362, idReport);
            presentValue = ReportBL.GetStringValue(data, "PresentValue");
            if (Double.TryParse(presentValue.Replace(".", ","), out d))
                somme += d;
            rowData.Add(4, new string[] { languageData.GetContent("Page7_Section3_Table1_Row5_Column1"), 
                                       presentValue,
                                        ReportBL.GetStringValue(data, "Source"),
                                        ReportBL.GetStringValue(data, "Description"),
                                        ReportBL.GetStringValue(data, "Country")});

            rowData.Add(5, new string[] {  languageData.GetContent("Total"), 
                                       isEmptyReport?string.Empty: somme.ToString(),
                                       "",
                                       "",
                                       ""});

            pdfGen.AddTable(new string[] {  languageData.GetContent("Page7_Section3_Table1_Column1"), 
                                                    languageData.GetContent("Page7_Section3_Table1_Column2"), 
                                                    languageData.GetContent("Page7_Section3_Table1_Column3"), 
                                                    languageData.GetContent("Page7_Section3_Table1_Column4"), 
                                                    languageData.GetContent("Page7_Section3_Table1_Column5") },
                                                    rowData, 0, y += paddingAfterParagraph, 600, 220);
            data = null;
            rowData = null;

            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line3"), y += 220, 500, 20); //525
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line4"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line5"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line6"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line7"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line8"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line9"), y += 10, 500, 20, 10);
            pdfGen.AddReference(languageData.GetContent("Page7_Section3_Line10"), y += 10, 500, 20, 10);

            pdfGen.AddLabelNote(languageData.GetContent("Page7_Section3_Line11"), y += (2 * interline), 500, 20);
            pdfGen.AddBlueBorder(y += interline);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(357, idReport)), y += 5, 480, 65, 10);
            #endregion

            #region III.     Le passif
            pdfGen.CreatePage();

            pdfGen.AddSubtitle(languageData.GetContent("Page8_Section1_Title"), 0, 500, 20);

            pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line1") + " : ", 30, 500, 20, 50);

            pdfGen.AddDefaultText(GetReportOptionAttributeValueByIdOptionAttribute(726, report), 30, 500, 20, 210);

            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(507, idReport), 60);
            //pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line2_Item1"), 60, 500, 20, 20);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(508, idReport), 60, 70);
            //pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line2_Item2"), 60, 500, 20, 90);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(509, idReport), 60, 180);
            //pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line2_Item3"), 60, 500, 20, 200);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(510, idReport), 60, 295);
            //pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line2_Item4"), 60, 500, 20, 315);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(511, idReport), 60, 415);
            //pdfGen.AddDefaultText(languageData.GetContent("Page8_Section1_Line2_Item5"), 60, 500, 20, 435);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page8_Section1_Line3"), 90, 500, 20, 50);

            rowData = new Dictionary<int, string[]>();

            somme = 0;
            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(363, idReport);
            var AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(0, new string[] {languageData.GetContent("Page8_Section1_Table1_Row1_Column1"), 
                                        AnnualAmount ,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(364, idReport);
            AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(1, new string[] { languageData.GetContent("Page8_Section1_Table1_Row2_Column1"), 
                                         AnnualAmount,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(365, idReport);
            AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(2, new string[] { languageData.GetContent("Page8_Section1_Table1_Row3_Column1"),
                                       AnnualAmount,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(366, idReport);
            AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(3, new string[] { languageData.GetContent("Page8_Section1_Table1_Row4_Column1"), 
                                       AnnualAmount,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(367, idReport);
            AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(4, new string[] { languageData.GetContent("Page8_Section1_Table1_Row5_Column1"), 
                                       AnnualAmount,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(368, idReport);
            AnnualAmount = ReportBL.GetStringValue(data, "AnnualAmount");
            if (Double.TryParse(AnnualAmount.Replace(".", ","), out d))
                somme += d;
            rowData.Add(5, new string[] { languageData.GetContent("Page8_Section1_Table1_Row6_Column1"), 
                                         AnnualAmount,
                                        ReportBL.GetStringValue(data, "Term"),
                                        ReportBL.GetStringValue(data, "AdditionalInfo")});

            rowData.Add(6, new string[] { languageData.GetContent("Total"), 
                                       isEmptyReport?string.Empty:somme.ToString(),
                                        "",
                                       ""});

            pdfGen.AddTable(new string[] { languageData.GetContent("Page8_Section1_Table1_Column1"), 
                                                    languageData.GetContent("Page8_Section1_Table1_Column2"), 
                                                    languageData.GetContent("Page8_Section1_Table1_Column3"), 
                                                    languageData.GetContent("Page8_Section1_Table1_Column4") }, rowData, 0, 80, 600, 400);
            data = null;
            rowData = null;

            pdfGen.AddLabelNote(languageData.GetContent("Page8_Section1_Line4"), 400, 500, 20);
            pdfGen.AddBlueBorder(415);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(369, idReport)), 420, 480, 65, 10);
            #endregion

            #endregion

            #region VOS ORIENTATIONS PATRIMONIALES
            pdfGen.CreatePage();

            pdfGen.AddTitle(languageData.GetContent("Page9_Section1_Title"), 0);

            #region Hiérarchisation des priorités
            pdfGen.AddSubtitle(languageData.GetContent("Page9_Section1_Subtitle"), 30);

            pdfGen.AddDefaultText(languageData.GetContent("Page9_Section1_Line1"), 60);

            rowData = new Dictionary<int, string[]>();

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(595, idReport);
            rowData.Add(0, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                        languageData.GetContent("Page9_Section1_Table1_Row1_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(596, idReport);
            rowData.Add(1, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                        languageData.GetContent("Page9_Section1_Table1_Row2_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(597, idReport);
            rowData.Add(2, new string[] {  data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                        languageData.GetContent("Page9_Section1_Table1_Row3_Column2"),
                                       data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(598, idReport);
            rowData.Add(3, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                        languageData.GetContent("Page9_Section1_Table1_Row4_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(599, idReport);
            rowData.Add(4, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row5_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(600, idReport);
            rowData.Add(5, new string[] {  data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row6_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(601, idReport);
            rowData.Add(6, new string[] {  data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row7_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(602, idReport);
            rowData.Add(7, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row8_Column2"),
                                       data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(603, idReport);
            rowData.Add(8, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row9_Column2"),
                                       data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(604, idReport);
            rowData.Add(9, new string[] {  data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         languageData.GetContent("Page9_Section1_Table1_Row10_Column2"),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            data = ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(605, idReport);
            rowData.Add(10, new string[] { data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.Priority), 5):"",
                                         string.Format("{0} : {1}", languageData.GetContent("Page9_Section1_Table1_Row11_Column2"), data!=null?ReportBL.GetStringValue(data.CustomObjectValue.Object):""),
                                        data!=null?GetEnumValue(Convert.ToString(data.CustomObjectValue.YearImmediate), 6):""});

            pdfGen.AddRecueil_Table_HiérarchisationDesPriorités(new string[] { languageData.GetContent("Page9_Section1_Table1_Column1"), 
                                                                               languageData.GetContent("Page9_Section1_Table1_Column2"), 
                                                                               languageData.GetContent("Page9_Section1_Table1_Column3") }, rowData, 45, 90, 500, 400, 8, false);
            data = null;
            rowData = null;

            pdfGen.AddLabelNote(languageData.GetContent("Page9_Section1_Line2"), 450, 500, 20, 45);
            pdfGen.AddBlueBorder(465, 45, 400);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(594, idReport)), 470, 500, 65, 55);
            #endregion

            #region a)  Transmettre votre entreprise

            y = 530;
            pdfGen.AddDefaultBoldText(languageData.GetContent("Page9_Section2_Line1"), y += interline, 500, 20, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page9_Section2_Line2"), y += paddingAfterParagraph);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1014, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page9_Section2_Line3_Item1"), y, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1015, idReport), y, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page9_Section2_Line3_Item2"), y, 500, 20, 120);

            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page9_Section2_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(606, idReport))), y += interline);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page9_Section2_Line5"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(607, idReport))), y += interline);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page9_Section2_Line6"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(608, idReport))), y += interline);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page9_Section2_Line7"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(609, idReport))), y += interline);
            #endregion

            #region b)  Céder votre entreprise
            pdfGen.CreatePage();

            pdfGen.AddDefaultBoldText(languageData.GetContent("Page10_Section1_Line1"), 0, 500, 20, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section1_Line2"), 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1019, idReport), 35);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section1_Line3_Item1"), 35, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1020, idReport), 35, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section1_Line3_Item2"), 35, 500, 20, 120);

            y = 55;
            //pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section1_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(610, idReport))), 55);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section1_Line4"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(610, idReport)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section1_Line5"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(611, idReport))), 70);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section1_Line5"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(611, idReport)), y, answer_width, height, answer_x);

            // pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section1_Line6"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(612, idReport))), 85);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section1_Line6"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(612, idReport)), y, answer_width, height, answer_x);

            //pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section1_Line7"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(613, idReport))), 100);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section1_Line7"), string.Empty), y += interline, label_width, height);
            pdfGen.AddAnswer(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(613, idReport)), y, answer_width, height, answer_x);

            #endregion

            #region c)  Réduire vos impôts
            pdfGen.AddDefaultBoldText(languageData.GetContent("Page10_Section2_Line1"), 130, 500, 20, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line2"), 145);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1024, idReport), 160, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line3_Item1"), 160, 500, 20, 40);
            y = 160;
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1025, idReport), y += interline, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line3_Item2"), y, 500, 20, 40);

            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line4"), y += interline);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1027, idReport), y += interline, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line5_Item1"), y, 500, 20, 40);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1028, idReport), y, 200);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line5_Item2"), y, 500, 20, 220);

            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section2_Line6"), y += interline);
            pdfGen.AddDefaultText(String.Format(@" {0} {1} {2}    {3} ",
                isEmptyReport ? "      " : ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(614, idReport)),
                languageData.GetContent("Page10_Section2_Line6_Item1"),
                isEmptyReport ? "      " : ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(615, idReport)),
                languageData.GetContent("Page10_Section2_Line6_Item2"))
                , y, 500, 20, 200);
            #endregion

            #region d)  Gérer votre trésorerie
            pdfGen.AddDefaultBoldText(languageData.GetContent("Page10_Section3_Line1"), y += interline + 5, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section3_Line2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(617, idReport))), y += interline);

            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1034, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section3_Line3"), y, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section3_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(619, idReport))), y += interline, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1035, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section3_Line5"), y, 500, 20, 15);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section3_Line6"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(620, idReport))), y += interline, 500, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1036, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section3_Line7"), y, 500, 20, 15);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section3_Line8"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(621, idReport))), y += interline, 500, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section3_Line9"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(618, idReport))), y += interline, 500, 20);

            pdfGen.AddLabelNote(languageData.GetContent("Page10_Section3_Line10"), y += interline, 500, 20);
            pdfGen.AddBlueBorder(y += interline, 0, 510, 65);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(616, idReport)), y += interline, 500, 35);
            #endregion

            #region e)  Autres placements
            y = 520;
            pdfGen.AddDefaultBoldText(languageData.GetContent("Page10_Section4_Line1"), y, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section4_Line2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(622, idReport))), y += interline);
            pdfGen.AddDefaultText(String.Format(@"{0} {1}", languageData.GetContent("Page10_Section4_Line3"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(623, idReport))), y += interline);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1042, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section4_Line4"), y, 500, 20, 15);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section4_Line5"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(624, idReport))), y += interline, 500, 20, 20);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1043, idReport), y += interline);
            pdfGen.AddDefaultText(languageData.GetContent("Page10_Section4_Line6"), y, 500, 20, 15);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section4_Line7"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(625, idReport))), y += interline, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page10_Section4_Line8"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(626, idReport))), y += interline);
            #endregion

            #region f) Acquérir un bien immobilier
            pdfGen.CreatePage();

            pdfGen.AddDefaultBoldText(languageData.GetContent("Page11_Section1_Line1"), 0, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} {1} {2}", languageData.GetContent("Page11_Section1_Line2_Item1"), isEmptyReport ? "       " : ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(627, idReport)), languageData.GetContent("Page11_Section1_Line2_Item2")), 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line3"), 35);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line4"), 50);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1050, idReport), 50, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 50, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1051, idReport), 50, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 50, 500, 20, 305);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line5"), 65);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1053, idReport), 65, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 65, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1054, idReport), 65, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 65, 500, 20, 305);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line6"), 80);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1056, idReport), 80, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 80, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1057, idReport), 80, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 80, 500, 20, 305);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line7"), 95);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1059, idReport), 95, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 95, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1060, idReport), 95, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 95, 500, 20, 305);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line8"), 110);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1062, idReport), 110, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 110, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1063, idReport), 110, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 110, 500, 20, 305);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section1_Line9"), 125);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1065, idReport), 125, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 125, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1066, idReport), 125, 290);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 125, 500, 20, 305);
            pdfGen.AddDefaultText(String.Format("{0} : {1}", languageData.GetContent("Page11_Section1_Line10"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(628, idReport))), 140);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page11_Section2_Line1"), 165, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format(@"{0} {1} {2}", languageData.GetContent("Page11_Section2_Line2_Item1"), isEmptyReport ? "       " : ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(629, idReport)), languageData.GetContent("Page11_Section2_Line2_Item2")), 185);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section2_Line3"), 200);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1072, idReport), 200, 160);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section2_Line3_Item1"), 200, 500, 20, 175);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1073, idReport), 200, 250);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section2_Line3_Item2"), 200, 500, 20, 265);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 200, 355);
            pdfGen.AddDefaultText(string.Format("{0} : {1}", languageData.GetContent("Page11_Section2_Line3_Item3"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(630, idReport))), 200, 500, 20, 370);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page11_Section3_Line1"), 225, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section3_Line2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(631, idReport))), 245);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section3_Line3"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(632, idReport))), 260);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page11_Section4_Line1"), 285, 500, 20, 20);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section4_Line2"), 305);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1080, idReport), 320);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section4_Line2_Item1"), 320, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1081, idReport), 335);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section4_Line2_Item2"), 335, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1082, idReport), 350);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section4_Line2_Item3"), 350, 500, 20, 15);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1083, idReport), 365);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section4_Line2_Item4"), 365, 500, 20, 15);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section4_Line3"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(633, idReport))), 395);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section4_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(634, idReport))), 425);

            pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Label(languageData.GetContent("Page11_Section5_Line1"), 450, 500, 20, 20);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section5_Line2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(636, idReport))), 480);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section5_Line3"), 495);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1088, idReport), 495, 280);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 495, 500, 20, 295);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1089, idReport), 495, 325);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 495, 500, 20, 340);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section5_Line4"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(637, idReport))), 515);
            pdfGen.AddDefaultText(languageData.GetContent("Page11_Section5_Line5"), 530);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1092, idReport), 530, 280);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_Yes_Caps"), 530, 500, 20, 295);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1093, idReport), 530, 325);
            pdfGen.AddDefaultText(languageData.GetContent("Report_Symbol_No_Caps"), 530, 500, 20, 340);
            pdfGen.AddDefaultText(String.Format("{0} {1}", languageData.GetContent("Page11_Section5_Line6"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(638, idReport))), 545);

            pdfGen.AddLabelNote(languageData.GetContent("Page11_Section5_Line7"), 575);
            pdfGen.AddBlueBorder(590);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(635, idReport)), 595, 500, 65, 55);

            #endregion

            #endregion

            #region PROFIL ET OBJECTIF D'INVESTISSEMENT
            pdfGen.CreatePage();
            y = 0;

            //Titre : PROFIL ET OBJECTIFS D’INVESTISSEMENTS
            pdfGen.AddTitle(languageData.GetContent("Page12_Section1_Title"), y);

            //Questionnaire autre UPSIDE0
            y = y + paddingAfterParagraph;
            float yCheckbox = y + paddingAfterParagraph;
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(1207, report), yCheckbox);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_756"), yCheckbox, 500, 2 * height, 20);

            pdfGen.AddDefaultText(string.Format("{0} {1}", languageData.GetContent("PDF_PM_Report_1207"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 753))), y += paddingAfterParagraph + interline, 500, 2 * height);
            pdfGen.AddDefaultText(languageData.GetContent("PDF_PM_Report_753"), y += paddingAfterParagraph + 5, max_width, 2 * height);

            //Questionnaire UPSIDEO
            yCheckbox = y += (2 * paddingAfterParagraph);
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(1208, report), yCheckbox);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_757"), yCheckbox, 500, 2 * height, 20);

            pdfGen.AddDefaultText(languageData.GetContent("PDF_PM_Report_1208"), y += interline, 500, 2 * height);

            #region I.  Niveau de connaissance ou d’intervention sur les instruments financiers et les marchés
            pdfGen.AddSubtitle(languageData.GetContent("Page12_Section1_Subtitle"), y += interline + 10, max_width, height, ChapiterPaddingLeft);

            rowData = new Dictionary<int, string[]>();

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Columns(50, y + paddingAfterParagraph, 450, new List<string>()
            {
                  languageData.GetContent("Page12_Section1_Table1_Column1"),
                  languageData.GetContent("Page12_Section1_Table1_Column2"),
                  languageData.GetContent("Report_Symbol_Yes"),
                  languageData.GetContent("Report_Symbol_No"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn1"),
                  
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn2"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn3"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn1_Item1"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn1_Item2"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn2_Item1"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn2_Item2"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn3_Item1"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn3_Item2"),
                  languageData.GetContent("Page12_Section1_Table1_Column2_SubColumn3_Item3")
            });
            List<List<String>> list = new List<List<string>>();
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row1_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(370, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row2_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(371, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row3_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(372, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row4_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(373, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row5_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(374, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table2_Row6_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(375, idReport),"3", "TransactionVolume").ToString()
            });

            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.BE.ToString())
            {
                list.Add(new List<string>() { 
                languageData.GetContent("ClientPM_Profile_Produits_structures"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(777, idReport),"3", "TransactionVolume").ToString()
            });
                list.Add(new List<string>() { 
                languageData.GetContent("ClientPM_Profile_Produits_derives"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(778, idReport),"3", "TransactionVolume").ToString()
            });
            }

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Body(0, y + paddingAfterParagraph + 140 /*195*/, 500, languageData.GetContent("Page12_Section1_Table2_Column1"), list);

            list = new List<List<string>>();

            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table3_Row1_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(376, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table3_Row2_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(377, idReport),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageData.GetContent("Page12_Section1_Table3_Row3_Column1"),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(378, idReport),"3", "TransactionVolume").ToString()
            });

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Body(0, y + paddingAfterParagraph + 330 /*368*/, 500, languageData.GetContent("Page12_Section1_Table3_Column1"), list);
            list = null;

            //pdfGen.AddBlueBorder(477, 0, 500, 40);
            //pdfGen.AddReceuil_DetailText_Center_Calibri_Label(@"Quels sont les marchés sur lesquels le mandant est intervenu ?", 482);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 497, 60);
            //pdfGen.AddDefaultText(@"je l’ignore", 497, 500, 20, 80);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 497, 135);
            //pdfGen.AddDefaultText(@"Marché réglementé", 497, 500, 20, 155);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 497, 250);
            //pdfGen.AddDefaultText(@"Marché dérivé", 497, 500, 20, 270);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 497, 340);
            //pdfGen.AddDefaultText(@"Marché de gré à gré", 497, 500, 20, 360);

            //pdfGen.AddLabelNote("Notes", 550);
            //pdfGen.AddBlueBorder(565);
            //pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(380, idReport)), 570, 500, 65, 55);
            #endregion

            #region II. Expérience en matière de services d’investissements
            bool showFooterContent = false;
            pdfGen.CreatePage(showFooterContent);
            y = 0;

            pdfGen.AddSubtitle(languageData.GetContent("Page13_Section1_Line1"), 0);

            pdfGen.AddBlueBorder(20, 0, 500, 20);
            pdfGen.AddReceuil_DetailText_Center_Calibri_Label(languageData.GetContent("Page13_Section1_Line2"), 23);


            //Bottom Section : Oui
            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_2_BottomSection(0, 278 /*222*/, 500, new List<string>() {
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(525, idReport)),
                languageData.GetContent("Report_Symbol_Yes"),
                languageData.GetContent("Page13_Section1_Table2_Row1_Column2"),                
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(949, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row2_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(950, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row2_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(951, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row2_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(952, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row2_Column5"),
               
                languageData.GetContent("Page13_Section1_Table2_Row4_Column2") + ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(590, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row5_Column2"),
                 GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1003, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row6_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1004, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row6_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(1005, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row6_Column4"),

                 languageData.GetContent("Page13_Section1_Table2_Row7_Column2")  + ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(592, idReport)),

                languageData.GetContent("Page13_Section1_Table2_Row8_Column2"),
                 GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(955, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row9_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(956, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row9_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(957, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row9_Column4"),
                
                languageData.GetContent("Page13_Section1_Table2_Row10_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(959, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row11_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(960, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row11_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(961, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row11_Column4"),

                languageData.GetContent("Page13_Section1_Table2_Row12_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(964, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row13_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(965, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row13_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(966, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row13_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(967, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row13_Column5"),

                /*languageData.GetContent("Page13_Section1_Table2_Row14_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(970, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row15_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(971, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row15_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(972, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row15_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(973, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row15_Column5"),*/

                languageData.GetContent("Page13_Section1_Table2_Row16_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(976, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row17_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(977, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row17_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(978, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row17_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(979, idReport)),
                languageData.GetContent("Page13_Section1_Table2_Row17_Column5"),

                languageData.GetContent("PDF_PM_Report_1210"),
                GetBooleanString(GetReportOptionValueByIdOption(1211, report)),
                languageData.GetContent("PDF_PM_Report_1211"),
                GetBooleanString(GetReportOptionValueByIdOption(1212, report)),
                languageData.GetContent("PDF_PM_Report_1212"),
                GetBooleanString(GetReportOptionValueByIdOption(1213, report)),
                languageData.GetContent("PDF_PM_Report_1213")
            });

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_2_TopSection(0, 40, 600, new List<string>() { 
                //Top Section
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(526, idReport)),
                languageData.GetContent("Report_Symbol_No"),

                languageDataPP.GetContent("Page13_Section1_Table1_Row1_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(982, idReport)),
                languageData.GetContent("Report_Symbol_Yes"),
               
                languageData.GetContent("Page13_Section1_Table1_Row3_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(986, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row4_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(987, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row4_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(988, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row4_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(989, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row4_Column5"),

                languageData.GetContent("Page13_Section1_Table1_Row5_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(991, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row6_Column2"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(992, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row6_Column3"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(993, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row6_Column4"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(994, idReport)),
                languageData.GetContent("Page13_Section1_Table1_Row6_Column5"),
                GetBooleanString(ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(983, idReport)),
                languageData.GetContent("Report_Symbol_No"),
                String.Format("{0} : {1}", languageData.GetContent("Page13_Section1_Table1_Row8_Column2"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(593, idReport))),

                languageData.GetContent("PDF_PM_Report_1215"),
                GetBooleanString(GetReportOptionValueByIdOption(1216, report)),
                languageData.GetContent("PDF_PM_Report_1216"),
                GetBooleanString(GetReportOptionValueByIdOption(1217, report)),
                languageData.GetContent("PDF_PM_Report_1217"),
                GetBooleanString(GetReportOptionValueByIdOption(1218, report)),
                languageData.GetContent("PDF_PM_Report_1218")
            });
            #endregion

            #endregion

            pdfGen.CreatePage();

            //TODO : texte

            pdfGen.AddReference(languageData.GetContent("PDF_PM_Report_Description_1"), 0, 500, 40);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line2_Item1"), 0);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line2"), 0, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line3"), 13, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line4"), 28, 500, 20, 20);

            pdfGen.AddReference(languageData.GetContent("PDF_PM_Report_Description_2"), 30, 500, 60);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line5_Item1"), 48);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line5"), 48, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line6"), 63, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line7"), 78, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line8"), 93, 500, 20, 20);

            pdfGen.AddReference(languageData.GetContent("PDF_PM_Report_Description_3"), 70, 500, 80);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line9_Item1"), 113);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line9"), 113, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line10"), 128, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line11"), 143, 500, 20, 20);

            pdfGen.AddReference(languageData.GetContent("PDF_PM_Report_Description_4"), 100, 500, 80);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line12_Item1"), 163);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line12"), 163, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line13"), 178, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line14"), 193, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line15"), 208, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page14_Section1_Line16"), 223, 500, 20, 20);

            pdfGen.AddImage(FileManager.AssemblyDirectory + "\\PDF\\PM_Graph.gif", 50, 250, 350, 200);

            pdfGen.AddDefaultText(String.Format(@"{0} : {1}", languageData.GetContent("Page14_Section1_Line17"), ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(379, idReport))), 470);

            pdfGen.AddLabelNote(languageData.GetContent("Page14_Section1_Line18"), 500);
            pdfGen.AddBlueBorder(515);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(ReportOptionBL.GetReportOptionAttributeValueByIdOptionAttributeAndIdReport(380, idReport)), 520, 500, 65, 55);

            #region Catégorisation client
            pdfGen.CreatePage();

            pdfGen.AddTitle(languageData.GetContent("Page15_Section1_Title"), 0);

            pdfGen.AddDefaultBoldText(languageData.GetContent("Page15_Section1_Line1"), 30);
            pdfGen.AddDefaultBoldText(languageData.GetContent("Page15_Section1_Line2"), 45);
            //  pdfGen.AddDefaultBoldText(languageData.GetContent("Page15_Section1_Line3"), 60);

            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line4"), 90);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(529, idReport), 90, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line4_Item1"), 90, 500, 20, 115);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(530, idReport), 105, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line5_Item1"), 105, 500, 20, 115);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(531, idReport), 120, 140);
            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line6_Item1"), 120, 500, 20, 155);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(532, idReport), 120, 220);
            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line6_Item2"), 120, 500, 20, 235);
            ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(533, idReport), 135, 100);
            pdfGen.AddDefaultText(languageData.GetContent("Page15_Section1_Line7_Item1"), 135, 500, 20, 115);


            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.FR.ToString())
            {
                pdfGen.AddReference(languageData.GetContent("Page15_Section1_Line8"), 160);
                pdfGen.AddReference(languageData.GetContent("Page15_Section1_Line9"), 190);
                pdfGen.AddReference(languageData.GetContent("Page15_Section1_Line10"), 205);
                pdfGen.AddReference(languageData.GetContent("Page15_Section1_Line11"), 220);
                pdfGen.AddReference(languageData.GetContent("Page15_Section1_Line12"), 235);
            }
            else
            {
                pdfGen.AddFormatttedReference(languageData.GetContent("categorie_ref_pm"), 160, max_width, height * 10);

            }

            //pdfGen.CreatePage();

            //pdfGen.AddTitle(languageData.GetContent("Page16_Section1_Title"), 0);

            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 75);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line1"), 75, 500, 20, 20);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 100);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line2"), 100, 500, 20, 20);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 125);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line3"), 125, 500, 20, 20);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line4"), 140);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 165);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line5"), 165, 500, 20, 20);
            //pdfGen.AddRecueil_Line(190);
            //pdfGen.AddRecueil_Line(215);
            //pdfGen.AddRecueil_Line(240);
            //pdfGen.AddRecueil_Line(265);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 290);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line6"), 290, 500, 20, 20);
            //pdfGen.AddRecueil_Line(315);
            //pdfGen.AddRecueil_Line(340);
            //pdfGen.AddRecueil_Line(365);
            //pdfGen.AddRecueil_Line(390);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 415);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line7"), 415, 500, 20, 20);
            //ReportBL.PlotBooleanValue(pdfGen, ReportOptionBL.GetReportOptionValueByIdOptionAndIdReport(0, idReport), 440);
            //pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageData.GetContent("Page16_Section1_Line8"), 440, 500, 20, 20);

            #endregion

            pdfGen.CreatePage();

            pdfGen.AddTitle(languageData.GetContent("Page17_Section1_Title"), 0);

            var reportAlerts = ReportAlertBL.GetReportNonBlockingAlertsByIdReport(idReport);
            List<List<String>> reportAlertArray = new List<List<string>>();
            var alertLanguageData = PageLanguageHelper.GetLanguageContent("User", "AlertPanel");
            foreach (var reportAlert in reportAlerts)
            {
                var tempList = new List<String>();
                tempList.Add(alertLanguageData.GetContent(AlertBL.GetAlertById(reportAlert.idAlert).NameKey));
                tempList.Add(reportAlert.JustifyingReason);
                reportAlertArray.Add(tempList);
            }

            pdfGen.AddRecueil_Table_Remarques(reportAlertArray, 0, 40, 500, new List<string>()
            {
                languageData.GetContent("Report_Remarques"),
                languageData.GetContent("Report_Reason")
            });

            pdfGen.CreatePage();

            pdfGen.AddTitle(languageData.GetContent("Page18_Section1_Title"), 0);

            pdfGen.AddDefaultBoldText(languageData.GetContent("Page18_Section1_Line1"), 100, 500, 20, 80);
            pdfGen.AddBlueBorder(130, 35, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line2"), 135, 200, 20, 45);
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line3"), 145, 145, 20, 45);
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line4"), 160, 145, 20, 45);
            }

            pdfGen.AddDefaultBoldText(languageData.GetContent("Page18_Section1_Line5"), 100, 500, 20, 340);
            pdfGen.AddBlueBorder(130, 280, 200, 170);

            //Ne pas afficher si signature electronique
            if (forceDownload)
            {
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line6"), 135, 200, 20, 290);
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line7"), 145, 145, 20, 290);
                pdfGen.AddDefaultText(languageData.GetContent("Page18_Section1_Line8"), 160, 145, 20, 290);
            }

            // Generate pdf
            if (forceDownload)
            {
                string fileName = string.Format("PM_QuestionnaireRecueil_{0}.pdf", idReport);
                pdfGen.GeneratePdfToWeb(fileName);
            }
            else
            {
                pdfGen.GeneratePdf(pathFilename);
            }

            Int32 pageCount = pdfGen.PageCount;
            pdfGen = null;
            return pageCount;
        }
        private static void GeneratePPProfilEtObjectif(FoxitPDFGenerator pdfGen, Data.Model.Report report)
        {
            var languageDataPP = PageLanguageHelper.GetLanguageContent("User", "PDFReportPP");
            pdfGen.CreatePage();
            float y = 0;


            //PROFIL ET OBJECTIFS D’INVESTISSEMENTS
            pdfGen.AddTitle(languageDataPP.GetContent("PdfReportPP_226"), y, max_width, 20);

            //Questionnaire autre UPSIDE0
            float yCheckbox = y + interline + 10;
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(1196, report), yCheckbox);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_756"), yCheckbox, 500, 2 * height, 20);

            y += yCheckbox;
            pdfGen.AddDefaultText(string.Format("{0} {1}", languageDataPP.GetContent("PdfReportPP_1196"), ReportBL.GetStringValue(ReportBL.GetReportOptionAttributeValueFromReportInstance(report, 752))), y += interline, 500, 2 * height);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_752"), y += paddingAfterParagraph + 5, max_width, 2 * height);

            //Questionnaire UPSIDEO
           // y += 20;
            yCheckbox = y += paddingAfterParagraph;
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(1197, report), yCheckbox);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_757"), yCheckbox, 500, 20, 20);

            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_1197"), y += interline);

            #region I- Niveau de connaissance
            //I- Niveau de connaissance
            pdfGen.AddOrangeTitle(languageDataPP.GetContent("PdfReportPP_227"), y += interline + 10, max_width, height, ChapiterPaddingLeft);

            Dictionary<int, string[]> rowData = new Dictionary<int, string[]>();

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Columns(50, y + paddingAfterParagraph, 450, new List<string>()
            {
                  languageDataPP.GetContent("PdfReportPP_417"),
                  languageDataPP.GetContent("PdfReportPP_418"),
                  languageDataPP.GetContent("PdfReportPP_Yes"),
                  languageDataPP.GetContent("PdfReportPP_No"),
                  languageDataPP.GetContent("PdfReportPP_419"),
                  
                  languageDataPP.GetContent("PdfReportPP_420"),
                  languageDataPP.GetContent("PdfReportPP_421"),
                  languageDataPP.GetContent("PdfReportPP_422"),
                  languageDataPP.GetContent("PdfReportPP_423"),
                  languageDataPP.GetContent("PdfReportPP_424"),
                  languageDataPP.GetContent("PdfReportPP_425"),
                  languageDataPP.GetContent("PdfReportPP_426"),
                  languageDataPP.GetContent("PdfReportPP_427"),
                  languageDataPP.GetContent("PdfReportPP_428")
            });

            List<List<String>> list = new List<List<string>>();
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_228"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(244, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_229"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(245, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_230"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report), "1", "HasTransaction").ToString(),
                  ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(246, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_231"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report), "1", "HasTransaction").ToString(),
                 ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(247, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_232"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(248, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_233"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report), "1", "HasTransaction").ToString(),
                              ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(249, report),"3", "TransactionVolume").ToString()
            });
            if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode == Upsilab.Business.Utility.PageLanguageHelper.HostCode.BE.ToString())
            {
                list.Add(new List<string>() { 
                languageDataPP.GetContent("ClientPP_Profile_Produits_structures"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(775, report),"3", "TransactionVolume").ToString()
            });

                list.Add(new List<string>() { 
                languageDataPP.GetContent("ClientPP_Profile_Produits_derives"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(776, report),"3", "TransactionVolume").ToString()
            });
            }

            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Body(0, y + paddingAfterParagraph + 120 /*195*/, 500, languageDataPP.GetContent("PdfReportPP_237"), list);

            list = new List<List<string>>();

            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_234"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report), "1", "HasTransaction").ToString(),
                                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(250, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_235"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report), "1", "HasTransaction").ToString(),
                                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(251, report),"3", "TransactionVolume").ToString()
            });
            list.Add(new List<string>() { 
                languageDataPP.GetContent("PdfReportPP_236"),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report), "1", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report), "2", "HasKnowledge").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report), "1", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report), "2", "HasTransaction").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"1", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"2", "TransactionFrequency").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"1", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"2", "TransactionPeriod").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"1", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"2", "TransactionVolume").ToString(),
                ReportBL.GetBooleanValue(GetReportOptionAttributeByIdOptionAttribute(252, report),"3", "TransactionVolume").ToString()
            });



            var tbgt = pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_Body(0, y + paddingAfterParagraph + 270 /*368*/, 500, languageDataPP.GetContent("PdfReportPP_238"), list);
            list = null;

            //Quels sont les marchés sur lesquels le mandant est intervenu ?
            //pdfGen.CreatePage();
            //y = 0;
            y = 510;
            float ytmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y,40);
            if (y > 0) y = ytmp;
            //y += (paddingAfterParagraph + 422);
            pdfGen.AddBlueBorder(y, 0, 500, 40);
            pdfGen.AddCenterText(languageDataPP.GetContent("PdfReportPP_239"), y += 5);
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(372, report), y += interline, 60);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_240"), y, 500, 20, 80);
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(373, report), y, 135);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_241"), y, 500, 20, 155);
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(374, report), y, 250);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_242"), y, 500, 20, 270);
            ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(375, report), y, 340);
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_243"), y, 500, 20, 360);

            //Note
            y += 40;
            //pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 50);
            //if (y > 0) y = ytmp;

            /*pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y);
            pdfGen.AddBlueBorder(y += interline);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(272, report)), y += interline, 500, 65, 55);*/
            float oHeightNivConn = 0;
            string noteNivConnValue = GetReportOptionAttributeValueByIdOptionAttribute(272, report);
            pdfGen.DynamicBlueBorderZoneSize(noteNivConnValue, y, out oHeightNivConn);
            y = y + interline;
            ytmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeightNivConn);

            if (y > 0) y = ytmp;

            pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y += interline, 500, 20);
            y += interline;
            pdfGen.AddDynamicBlueBorderWithText(noteNivConnValue, ref y, 0, max_width, 50); //TODO_TONNY
            #endregion

            #region II. Expérience en matière de services d'investissements
            //II. Expérience en matière de services d'investissements
            bool showFooter = false;
            pdfGen.CreatePage(showFooter);
            float yTmp = 0;
            float oHeight = 0;
            y = 0;

            pdfGen.AddOrangeTitle(@languageDataPP.GetContent("PdfReportPP_373"), y, max_width, height);

            pdfGen.AddBlueBorder(20, 0, 500, 20);
            pdfGen.AddDefaultText(@languageDataPP.GetContent("PdfReportPP_374"), 23);

            //Bottom Section : Oui
            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_2_BottomSection(0, 278, 500, new List<string>() {
                GetBooleanString(GetReportOptionValueByIdOption(342, report)),
                languageDataPP.GetContent("PdfReportPP_Yes"),
                languageDataPP.GetContent("PdfReportPP_375"),                
                GetBooleanString(GetReportOptionValueByIdOption(762, report)),
                languageDataPP.GetContent("PdfReportPP_376"),
                GetBooleanString(GetReportOptionValueByIdOption(763, report)),
                languageDataPP.GetContent("PdfReportPP_377"),
                GetBooleanString(GetReportOptionValueByIdOption(764, report)),
                languageDataPP.GetContent("PdfReportPP_378"),
                GetBooleanString(GetReportOptionValueByIdOption(765, report)),
                languageDataPP.GetContent("PdfReportPP_379"),

                languageDataPP.GetContent("PdfReportPP_380") + ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(535, report)),
                languageDataPP.GetContent("PdfReportPP_381"),
                GetBooleanString(GetReportOptionValueByIdOption(998, report)),
                languageDataPP.GetContent("PdfReportPP_388"),
                GetBooleanString(GetReportOptionValueByIdOption(999, report)),
                languageDataPP.GetContent("PdfReportPP_383"),
                GetBooleanString(GetReportOptionValueByIdOption(1000, report)),
                languageDataPP.GetContent("PdfReportPP_389"),

                string.Format(languageDataPP.GetContent("PdfReportPP_385"),GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(537, report))),
                languageDataPP.GetContent("PdfReportPP_386"),
                GetBooleanString(GetReportOptionValueByIdOption(768, report)),
                languageDataPP.GetContent("PdfReportPP_382"),
                GetBooleanString(GetReportOptionValueByIdOption(769, report)),
                languageDataPP.GetContent("PdfReportPP_383"),
                GetBooleanString(GetReportOptionValueByIdOption(770, report)),
                languageDataPP.GetContent("PdfReportPP_384"),
                languageDataPP.GetContent("PdfReportPP_387"),
                GetBooleanString(GetReportOptionValueByIdOption(772, report)),
                languageDataPP.GetContent("PdfReportPP_382"),
                GetBooleanString(GetReportOptionValueByIdOption(773, report)),
                languageDataPP.GetContent("PdfReportPP_383"),
                GetBooleanString(GetReportOptionValueByIdOption(774, report)),
                languageDataPP.GetContent("PdfReportPP_384_1"),
                languageDataPP.GetContent("PdfReportPP_390"),
                GetBooleanString(GetReportOptionValueByIdOption(777, report)),
                languageDataPP.GetContent("PdfReportPP_391"),
                GetBooleanString(GetReportOptionValueByIdOption(778, report)),
                languageDataPP.GetContent("PdfReportPP_392"),
                GetBooleanString(GetReportOptionValueByIdOption(779, report)),
                languageDataPP.GetContent("PdfReportPP_393"),
                GetBooleanString(GetReportOptionValueByIdOption(780, report)),
                languageDataPP.GetContent("PdfReportPP_394"),
                languageDataPP.GetContent("PdfReportPP_395"),
                GetBooleanString(GetReportOptionValueByIdOption(789, report)),
                languageDataPP.GetContent("PdfReportPP_396"),
                GetBooleanString(GetReportOptionValueByIdOption(790, report)),
                languageDataPP.GetContent("PdfReportPP_397"),
                GetBooleanString(GetReportOptionValueByIdOption(791, report)),
                languageDataPP.GetContent("PdfReportPP_398"),
                GetBooleanString(GetReportOptionValueByIdOption(792, report)),
                languageDataPP.GetContent("PdfReportPP_399"),
                languageDataPP.GetContent("PdfReportPP_1202"),
                GetBooleanString(GetReportOptionValueByIdOption(1203, report)),
                languageDataPP.GetContent("PdfReportPP_1203"),
                GetBooleanString(GetReportOptionValueByIdOption(1204, report)),
                languageDataPP.GetContent("PdfReportPP_1204"),
                GetBooleanString(GetReportOptionValueByIdOption(1205, report)),
                languageDataPP.GetContent("PdfReportPP_1205"),
            });

            //Top Section : Non
            pdfGen.AddRecueil_Table_PROFILETOBJECTIFSDINVESTISSEMENTS_2_TopSection(0, 40, 600, new List<string>() { 
                GetBooleanString(GetReportOptionValueByIdOption(343, report)),
                languageDataPP.GetContent("PdfReportPP_No"),
                languageDataPP.GetContent("PdfReportPP_401"),
                GetBooleanString(GetReportOptionValueByIdOption(795, report)),
                languageDataPP.GetContent("PdfReportPP_Yes"),
                languageDataPP.GetContent("PdfReportPP_402"),
                GetBooleanString(GetReportOptionValueByIdOption(799, report)),
                languageDataPP.GetContent("PdfReportPP_391"),
                GetBooleanString(GetReportOptionValueByIdOption(800, report)),
                languageDataPP.GetContent("PdfReportPP_392"),
                GetBooleanString(GetReportOptionValueByIdOption(801, report)),
                languageDataPP.GetContent("PdfReportPP_393"),
                GetBooleanString(GetReportOptionValueByIdOption(802, report)),
                languageDataPP.GetContent("PdfReportPP_394"),
                languageDataPP.GetContent("PdfReportPP_403"),
                GetBooleanString(GetReportOptionValueByIdOption(804, report)),
                languageDataPP.GetContent("PdfReportPP_396"),
                GetBooleanString(GetReportOptionValueByIdOption(805, report)),
                languageDataPP.GetContent("PdfReportPP_397"),
                GetBooleanString(GetReportOptionValueByIdOption(806, report)),
                languageDataPP.GetContent("PdfReportPP_398"),
                GetBooleanString(GetReportOptionValueByIdOption(807, report)),
                languageDataPP.GetContent("PdfReportPP_399"),
                GetBooleanString(GetReportOptionValueByIdOption(796, report)),
                languageDataPP.GetContent("PdfReportPP_No"),
                string.Format(languageDataPP.GetContent("PdfReportPP_404"), GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(538, report))),
                languageDataPP.GetContent("PdfReportPP_1198"),
                GetBooleanString(GetReportOptionValueByIdOption(1199, report)),
                languageDataPP.GetContent("PdfReportPP_1199"),
                GetBooleanString(GetReportOptionValueByIdOption(1200, report)),
                languageDataPP.GetContent("PdfReportPP_1200"),
                GetBooleanString(GetReportOptionValueByIdOption(1201, report)),
                languageDataPP.GetContent("PdfReportPP_1201")
            });


            y = 0; pdfGen.CreatePage();

            /*pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Blue_Label(languageDataPP.GetContent("PdfReportPP_Notes"), 0);
            pdfGen.AddRecueil_Notes_Rectangle(15);
            pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(0, report)), 20, 500, 65, 55);*/


            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageDataPP.GetContent("PdfReportPP_405"),
                y += 0, max_width, height * 2, 0, 8);

            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageDataPP.GetContent("PdfReportPP_406"),
                y += paddingAfterParagraph * 1.5f, max_width, height * 3, 0, 8);

            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageDataPP.GetContent("PdfReportPP_407"),
                y += paddingAfterParagraph * 2, max_width, height * 3, 0, 8);

            pdfGen.AddReceuil_DetailText_Justify_Calibri_Label(languageDataPP.GetContent("PdfReportPP_408"),
               y += paddingAfterParagraph * 2, max_width, height * 4, 0, 8);

            pdfGen.AddImage(FileManager.AssemblyDirectory + string.Format("\\PDF\\{0}.gif", languageDataPP.GetContent("Pdf_Nom_image")), 65, y += 50, 350, 200);

            pdfGen.AddDefaultText(String.Format(languageDataPP.GetContent("PdfReportPP_409"), ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(253, report))), y += 225, max_width, height);
            pdfGen.AddDefaultText(String.Format(languageDataPP.GetContent("PdfReportPP_410"), ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(254, report))), y += paddingAfterParagraph, max_width, height);

            /*pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y += interline * 2, 500, 20);
            pdfGen.AddBlueBorder(y += interline, 0, max_width);
            pdfGen.AddDefaultText(ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(273, report)), y += textInterline, 480, 65, 10);*/

            string noteExpValue = GetReportOptionAttributeValueByIdOptionAttribute(273, report);
            pdfGen.DynamicBlueBorderZoneSize(noteExpValue, y, out oHeight);
            y = y + interline;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

            if (y > 0) y = yTmp;

            pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y += interline, 500, 20);
            y += interline;
            pdfGen.AddDynamicBlueBorderWithText(noteExpValue, ref y, 0, max_width, 50); //TODO_TONNY
            #endregion

        }
        private static void GeneratePPOrientationPatrimoniales(FoxitPDFGenerator pdfGen, Data.Model.Report report,ref float y,bool pIsEmptyReport)
        {
            var languageDataPP = PageLanguageHelper.GetLanguageContent("User", "PDFReportPP");
            if(y > 0) y += interline + 10;

            #region Hierarchisation des priorités

            var yTmp1 = y;
            var hGth1 = 3f*paddingAfterParagraph + height + 2*20;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y,hGth1);

            pdfGen.AddTitle(languageDataPP.GetContent("PdfReportPP_149"), y, max_width, height);//V0S ORIENTATIONS PATRIMONIALES
            pdfGen.AddDefaultBoldText(languageDataPP.GetContent("PdfReportPP_150"), y += (1f * paddingAfterParagraph), max_width, 20);//Hiérarchisation des priorités
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_151"), y += interline, max_width, 20);
            y += interline;
            var listIdOptionAttributes = BuildOrientationTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);

            //Note
            y += 10;
            pdfGen.AddLabelNoteWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_Notes"), ref y, 500, 20);
            y += interline;

            pdfGen.AddDynamicBlueBorderWithText(GetReportOptionAttributeValueByIdOptionAttribute(229, report),ref y, 0, max_width,50);
            #endregion
            float x = 0;
            float oHeight = 0;
            float yTmp = 0;

            var indexation = new List<string> { "a)", "b)", "c)", "d)", "e)", "f)", "g)" };
            var usedIndexation = new List<string>();

            Func<string> NextIndexation = () =>
            {
                string nxt = string.Empty;
                foreach (string idx in indexation)
                {
                    if (!usedIndexation.Any(q => q == idx))
                    {
                        usedIndexation.Add(idx);
                        nxt = idx;
                        break;
                    }
                }
                return nxt;
            };

            Func<string, int, int, string, int, int, float, bool, string> GenerateDoubleColonneOrientationPatrimoine = (colonneALbl, idAYes, idANo, colonneBLbl, idBYes, idBNo, y1, isWithSecondCol) =>
            {
                x = 0;
                const float maxColWidth = 240;
                float lnpxAA = 150, lnpxBB = 162;
                float wdthAA = lnpxAA * 31 / 50;
                float wdthAAnswer = maxColWidth - (10 + wdthAA);
                float wdthBB = lnpxBB * 31 / 50;

                pdfGen.AddDefaultText(colonneALbl, y1, 180, height, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y1, max_width, height, x += 180);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idAYes, report), y1, x = x + 15);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y1, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idANo, report), y1, x = x + 15);

                if (isWithSecondCol)
                {
                    x = 250;
                    pdfGen.AddDefaultText(colonneBLbl, y1, label_width, height, x);
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y1, max_width, height, x += 180);
                    ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idBYes, report), y1, x = x + 15);
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y1, max_width, height, x = x + tabYesNo);
                    ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idBNo, report), y1, x = x + 15); 
                }
                return string.Empty;
            };
	

                
            #region a) Aquerir un bien immobilier
            if (listIdOptionAttributes.Any(ioa => ioa == 237) || pIsEmptyReport)
            {

                yTmp = y + interline;

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y,3*height);
                if (y > 0) y = yTmp;

                pdfGen.AddOrangeTitleWithAutomaticNewPage(string.Format("{0} {1}",NextIndexation(),LanguageContentBL.Translate("PdfReportPP_152").Replace("a)",string.Empty)), ref y, 500, 20, 15);//a) Acquérir un bien immobilier
                y += interline+5;
                var montantAInvestir = GetReportOptionAttributeValueByIdOptionAttribute(547, report);
                pdfGen.AddDefaultTextWithAutomaticNewPage(String.Format(LanguageContentBL.Translate("PdfReportPP_153").Replace("€",string.Empty), string.Empty), ref y, max_width, height);
                pdfGen.AddAnswer(pIsEmptyReport?string.Empty: montantAInvestir, y, 100, 20, 250);
                pdfGen.AddDefaultTextWithAutomaticNewPage("€", ref y, 100, height,345);
                y += interline;
                pdfGen.AddDefaultTextWithAutomaticNewPage(String.Format(LanguageContentBL.Translate("PdfReportPP_154")), ref y, max_width, height);

                y = y + interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 6 * height);

                if (y > 0)
                {
                    y = yTmp;
                }

                #region "zone 1 "

                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                #region "Row 1"

                string lblColA = languageDataPP.GetContent("PdfReportPP_155");
                string lblColB = languageDataPP.GetContent("PdfReportPP_156");
                GenerateDoubleColonneOrientationPatrimoine(lblColA,813,814, lblColB,816,817,y,true);
                #endregion

                #region "Row 2"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_157");
                lblColB = languageDataPP.GetContent("PdfReportPP_158");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 819, 820, lblColB, 822, 823, y,true);
	            #endregion

                #region "Row 3"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_159");
                lblColB = languageDataPP.GetContent("PdfReportPP_160");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 825, 826, lblColB, 828, 829, y,true);
                #endregion
                #endregion

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 6 * height);

                #region "Zone 2"

                if (y > 0)
                {
                    y = yTmp;
                  //  y += interline + 15;
                }
                pdfGen.AddDefaultTextWithAutomaticNewPage(string.Format(languageDataPP.GetContent("PdfReportPP_161"), GetReportOptionAttributeValueByIdOptionAttribute(548, report)), ref y, max_width, height);

                pdfGen.AddDefaultText(String.Format(languageDataPP.GetContent("PdfReportPP_162")), y += interline, max_width, height);//L’immobilier pour vous est synonyme de :

                #region "Row 1"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_163");
                lblColB = languageDataPP.GetContent("PdfReportPP_164");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 832, 833, lblColB, 835, 836, y,true);
                #endregion

                #region "Row 2"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_165");
                lblColB = languageDataPP.GetContent("PdfReportPP_166");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 838, 839, lblColB, 841, 842, y,true);
                #endregion

                #region "Row 3"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_167");
                lblColB = languageDataPP.GetContent("PdfReportPP_168");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 844, 845, lblColB, 847, 848, y,true);
                #endregion

                #region "Row 4"
                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_169");
                lblColB = string.Empty;
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 850, 851, lblColB, 0, 0, y, false); 
                #endregion
                #endregion

                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(549, report);
                pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                y = y + interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y += interline, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue,ref y, 0, max_width ,50); //TODO_TONNY
            }
            #endregion

            #region b) Constituer une épargne, accroître la rentabilité
            if (listIdOptionAttributes.Any(ioa => ioa == 235 || ioa == 236) || pIsEmptyReport)
            {
                y = y + interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 2 * height);
                if (y > 0) y = yTmp;

                pdfGen.AddOrangeTitleWithAutomaticNewPage(string.Format("{0} {1}", NextIndexation(), languageDataPP.GetContent("PdfReportPP_170").Replace("b)", string.Empty)), ref y, 500, 20, 15);//b) Constituer une épargne, accroître la rentabilité
                x = 0;

                y += interline + 5;
                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_171"), ref y, max_width, height);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += 100);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(855, report), y, x = x + tabCheck + 5);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(856, report), y, x = x + tabCheck + 5);

                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_172"), GetReportOptionAttributeValueByIdOptionAttribute(550, report)), y += interline, max_width, height);

                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 6 * height);
                if (y > 0)
                {
                    y = yTmp;
                }

                x = 0;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_173"), y += interline, max_width, height);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += 325);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(858, report), y, x = x + tabCheck + 5);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(859, report), y, x = x + tabCheck + 5);
                string value722 = GetReportOptionAttributeValueByIdOptionAttribute(722, report);
                value722 = string.Format("{0}", !string.IsNullOrEmpty(value722) ? value722 : string.Empty);
                pdfGen.AddAnswer(value722, y, 50, height, x += tabCheck + 5);
                pdfGen.AddDefaultText("€", y, 75, height, x += 50);

                x = 0;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_174"), y += interline, max_width, height);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += 325);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(861, report), y, x = x + tabCheck + 5);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(862, report), y, x = x + tabCheck + 5);
                string value723 = GetReportOptionAttributeValueByIdOptionAttribute(723, report);
                value723 = string.Format("{0}", !string.IsNullOrEmpty(value723) ? value723 : string.Empty);
                pdfGen.AddAnswer(value723, y, 50, height, x += tabCheck + 5);
                pdfGen.AddDefaultText("€", y, 75, height, x += 50);

                x = 0;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_175"), y += interline, max_width, height);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += 325);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(864, report), y, x = x + tabCheck + 5);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(865, report), y, x = x + tabCheck + 5);
                string value724 = GetReportOptionAttributeValueByIdOptionAttribute(724, report);
                value724 = string.Format("{0}", !string.IsNullOrEmpty(value724) ? value724 : string.Empty);
                pdfGen.AddAnswer(value724, y, 50, height, x += tabCheck + 5);
                pdfGen.AddDefaultText("€", y, 75, height, x += 50);

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                var lblColA = languageDataPP.GetContent("PdfReportPP_176");
                var lblColB = languageDataPP.GetContent("PdfReportPP_177");
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 867, 868, lblColB, 0, 0, y, false);

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_177");
                lblColB = string.Empty;
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 870, 871, lblColB, 0, 0, y, false);

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_178");
                lblColB = string.Empty;
                GenerateDoubleColonneOrientationPatrimoine(lblColA, 873, 874, lblColB, 0, 0, y, false);

                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(551, report);
                pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                yTmp = y + interline;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue ,ref y, 0, max_width,50);
            }
            #endregion

            #region c) Protection de la Famille

            Func<string, int, int, string, int, float, string> GenerateDoubleColonneOrientationPatrimoineWithAnswer = (colonneALbl, idAYes, idANo, colonneBLbl, idAnswer, y1) =>
            {
                x = 0;
                const float maxColWidth = 240;
                float lnpxAA = 150, lnpxBB = 162;
                float wdthAA = lnpxAA * 31 / 50;
                float wdthAAnswer = maxColWidth - (10 + wdthAA);
                float wdthBB = lnpxBB * 31 / 50;

                pdfGen.AddDefaultText(colonneALbl, y1, label_width, height, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y1, max_width, height, x += 180);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idAYes, report), y1, x = x + 15);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y1, max_width, height, x = x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(idANo, report), y1, x = x + 15);

                x = 250;
                pdfGen.AddDefaultText(string.Format(colonneBLbl,string.Empty), y1, label_width, height, x);
                pdfGen.AddAnswer(GetReportOptionAttributeValueByIdOptionAttribute(idAnswer, report), y1, 75, height, x += 160);
                return string.Empty;
            };

            if (listIdOptionAttributes.Any(ioa => ioa == 230) || pIsEmptyReport)
            {
                yTmp = y + interline;

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 2 * height);
                if (y > 0) y = yTmp;

                pdfGen.AddOrangeTitle(string.Format("{0} {1}", NextIndexation(), languageDataPP.GetContent("PdfReportPP_179").Replace("c)", string.Empty)), y, 500, 20, 15);//c) Protection de la Famille  
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_180"), y += interline + 5, max_width, height);


                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                var lblColA = languageDataPP.GetContent("PdfReportPP_181");
                var lblColB = languageDataPP.GetContent("PdfReportPP_184");
                GenerateDoubleColonneOrientationPatrimoineWithAnswer(lblColA, 879, 880, lblColB, 552, y);

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_182");
                lblColB = languageDataPP.GetContent("PdfReportPP_184");
                GenerateDoubleColonneOrientationPatrimoineWithAnswer(lblColA, 883, 884, lblColB, 553, y);

                y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, height);
                if (y > 0) y = yTmp;
                lblColA = languageDataPP.GetContent("PdfReportPP_183");
                lblColB = languageDataPP.GetContent("PdfReportPP_184");
                GenerateDoubleColonneOrientationPatrimoineWithAnswer(lblColA, 887, 888, lblColB, 554, y);

                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(555, report);
                pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                yTmp = y + interline;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y += paddingAfterParagraph, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue, ref y, 0, max_width,50);
            }
            #endregion

            #region d) Préparer le budget étude des enfants
            if (listIdOptionAttributes.Any(ioa => ioa == 234) || pIsEmptyReport)
            {
                yTmp = y + interline;

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 4 * height);
                if (y > 0) y = yTmp;

                pdfGen.AddOrangeTitle(string.Format("{0} {1}", NextIndexation(), LanguageContentBL.Translate("PdfReportPP_185").Replace("d)", string.Empty)), y, 500, 20, 15);//d) Préparer le budget étude des enfants 
                pdfGen.AddDefaultText(String.Format(LanguageContentBL.Translate("PdfReportPP_186").Replace("€",string.Empty),string.Empty), y += interline);
                x = 250;
                var value556 = GetReportOptionAttributeValueByIdOptionAttribute(556, report);
                pdfGen.AddAnswer(value556, y, 75, 20, x);
                pdfGen.AddDefaultText("€", y, 75, 20, x += 75);
                x = 250;
                pdfGen.AddDefaultText(String.Format(LanguageContentBL.Translate("PdfReportPP_187"), string.Empty), y += interline);
                pdfGen.AddAnswer(GetReportOptionAttributeValueByIdOptionAttribute(557, report),y,75,20,x);
                pdfGen.AddDefaultText(String.Format(LanguageContentBL.Translate("PdfReportPP_188")), y += interline);

                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 4 * height);

                if (y > 0)
                {
                    y = yTmp;
                    y += interline + 5;
                }
                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(895, report), y , x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_189"), y, max_width, height * 2, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(896, report), y, x += 110);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_190"), y, max_width, height * 2, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(897, report), y, x += 90);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_191"), y, max_width, height * 2, x += tabYesNo);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(898, report), y += interline, x);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_192"), string.Empty), y, label_width, height, x += tabYesNo);

                 float lnpxA2 = pdfGen.GetWidthOfString(string.Format(languageDataPP.GetContent("PdfReportPP_192"), string.Empty));
                float wdthA2 = lnpxA2 * 31 / 50;
                float wdthA2nswer = 500 - (10 + wdthA2);
                float additiveA2 = lnpxA2 >= 150 ? (lnpxA2 / 10) : 10;

                pdfGen.AddAnswer(GetReportOptionAttributeValueByIdOptionAttribute(558, report), y, wdthA2nswer, 20, x += wdthA2 + additiveA2);

                 string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(559, report);
                pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                yTmp = y + interline;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight+20);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y , 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue,ref y , 0, max_width,50);
            }
            #endregion
            
            #region e) Réduire vos impôts
            if (listIdOptionAttributes.Any(ioa => ioa == 233) || pIsEmptyReport)
            {
                y = y + interline + 5;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 2 * height);
                if (y > 0) y = yTmp;

                pdfGen.AddOrangeTitle(string.Format("{0} {1}", NextIndexation(), languageDataPP.GetContent("PdfReportPP_193").Replace("e)", string.Empty)), y, 500, 20, 15);//e) Réduire vos impôts  

                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (20 + 4 * height));
                if (y > 0)
                {
                    y = yTmp;
                }

                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_194"), y += interline, 500, 20, 15);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(902, report), y += interline, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_195"), y, max_width, height * 2, x += tabYesNo);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(903, report), y += interline, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_196"), y, max_width, height * 2, x += tabYesNo);

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (20 + 2 * height));
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_197"), y += interline + 5, 500, 20, 15);
                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(905, report), y += interline, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_198"), y, max_width, height * 2, x += tabYesNo);

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(906, report), y, x += 80);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_199"), y, max_width, height * 2, x += tabYesNo);

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(907, report), y, x += 80);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_190"), y, max_width, height * 2, x += tabYesNo);//l’Immobilier

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(908, report), y, x += 80);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_200"), y, max_width, height * 2, x += tabYesNo);

                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (20 + 2 * height));
                if (y > 0) y = yTmp;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_201"), y += interline + 5, 500, 20, 15);
                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(910, report), y += interline, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_202"), y, max_width, height, x += tabYesNo);

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(911, report), y, x += 185);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_203"), y, max_width, height, x += tabYesNo);

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(912, report), y, x += 80);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_204"), y, max_width, height, x += tabYesNo);

                pdfGen.AddDefaultText(LanguageContentBL.Translate("PdfReportPP_205"), y += interline, max_width, height);
                pdfGen.AddDefaultText(string.Format(LanguageContentBL.Translate("PdfReportPP_206"), report.IsEmptyReport ? "        " : GetReportOptionAttributeValueByIdOptionAttribute(560, report),
                     report.IsEmptyReport ? "        " : GetReportOptionAttributeValueByIdOptionAttribute(561, report)), y, max_width, height, 160);

                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(562, report);
                    pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                yTmp = y + interline;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue,ref y,0,max_width,50);
            }
            #endregion

            #region f) Retraite

            if (listIdOptionAttributes.Any(ioa => ioa == 232) || pIsEmptyReport)
            {
                y = y + interline + 10;
                yTmp = y;

                string hostCode = Upsilab.Business.Utility.SessionManager.GetHostCodeSession();
                float hGth = 3 * height + 10;
                hGth += 2*height;
                hGth += 4 * height + 40 + 4 * interline;
                hGth += 2 * height + 40 + 20;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGth);

                pdfGen.AddOrangeTitle(string.Format("{0} {1}", NextIndexation(), languageDataPP.GetContent("PdfReportPP_207").Replace("f)", string.Empty)), y, 500, 20, 15);
                //f) Retraite :

                y += 15;

                #region "create table retraite"
                
                #endregion

                var yLast = y;
                //var currentPageNumber = pdfGen.GetCurrentPageNumber;

                

                yTmp = y;
                AddRetraitePPTable(pdfGen, ref y);

                y = yTmp;
                #region "First row"
                //float hGth = 3 * height + 10;
                //pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGth);
                //Disposez-vous d’un bilan de retraite ?
                string BilanVousOuiNon = "";
                string BilanVousDate = "";
                string BilanConjointOuiNon = "";
                string BilanConjointDate = "";

                var Vous =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 564).FirstOrDefault();
                if (Vous != null)
                {
                    BilanVousOuiNon = Convert.ToString(Vous.CustomObjectValue.HasAssessmentPlan);
                    BilanVousDate = Convert.ToString(Vous.CustomObjectValue.AssessmentPlanDate);
                }

                var Conjoint =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 565).FirstOrDefault();
                if (Conjoint != null)
                {
                    BilanConjointOuiNon = Convert.ToString(Conjoint.CustomObjectValue.HasAssessmentPlan);
                    BilanConjointDate = Convert.ToString(Conjoint.CustomObjectValue.AssessmentPlanDate);
                }


                x = 0;
                y = yLast;
                ReportBL.PlotBooleanValue(pdfGen, BilanVousOuiNon, y = y + interline, x += 190, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                pdfGen.AddDefaultText(string.Format("Date : {0} ", BilanVousDate), y, max_width, height, x += 20);
                ReportBL.PlotBooleanValue(pdfGen, BilanConjointOuiNon, y, x += 125, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                pdfGen.AddDefaultText(string.Format("Date : {0} ", BilanConjointDate), y, max_width, height, x += 20);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, BilanVousOuiNon, y = y + interline, x += 190, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, BilanConjointOuiNon, y, x += 145, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                #endregion


                #region "Second row"

                //isnewpage = false;
                //yLast = y;
                //hGth = 4 * height + 40 + 4 * interline;
                //pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGth);


                // Avez-vous mis en place des solutions de retraite complémentaire ?

                string SolutionVousOuiNon = "";
                string SolutionVousDemarche = "";
                string SolutionConjointOuiNon = "";
                string SolutionConjointDemarche = "";
                string ReversionVousOuiNon = "";
                string ReversionConjointOuiNon = "";


                Vous = report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 566).FirstOrDefault();
                if (Vous != null)
                {
                    SolutionVousOuiNon = Convert.ToString(Vous.CustomObjectValue.HasPensionPlan);
                    SolutionVousDemarche = Convert.ToString(Vous.CustomObjectValue.Reason);
                    ReversionVousOuiNon = Convert.ToString(Vous.CustomObjectValue.HasOptForRevision);
                }

                Conjoint =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 567).FirstOrDefault();
                if (Conjoint != null)
                {
                    SolutionConjointOuiNon = Convert.ToString(Conjoint.CustomObjectValue.HasPensionPlan);
                    SolutionConjointDemarche = Convert.ToString(Conjoint.CustomObjectValue.Reason);
                    ReversionConjointOuiNon = Convert.ToString(Conjoint.CustomObjectValue.HasOptForRevision);
                }

                x = 0;
                y -= 25;
                ReportBL.PlotBooleanValue(pdfGen, SolutionVousOuiNon, y = y + 43, x += 190, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, SolutionVousOuiNon, y, x += tabYesNo, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                ReportBL.PlotBooleanValue(pdfGen, SolutionConjointOuiNon, y, x += 110, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, SolutionConjointOuiNon, y, x += tabYesNo, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                x = 0;
                pdfGen.AddDefaultText(
                    string.Format(languageDataPP.GetContent("PdfReportPP_210"), SolutionVousDemarche), y = y + interline,
                    max_width, height * 2, x += 190);
                pdfGen.AddDefaultText(
                    string.Format(languageDataPP.GetContent("PdfReportPP_210"), SolutionConjointDemarche), y, max_width,
                    height * 2, x += 155);

                x = 0;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_211"), y += interline, max_width,
                    height * 2, x += 185);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_211"), y, max_width, height, x += 160);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, ReversionVousOuiNon, y = y + interline, x += 190, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, ReversionVousOuiNon, y, x += tabYesNo, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                ReportBL.PlotBooleanValue(pdfGen, ReversionConjointOuiNon, y, x += 110, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, ReversionConjointOuiNon, y, x += tabYesNo, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                #endregion


                //Assurance individuelle ?
          
                if (!string.IsNullOrEmpty(hostCode) && hostCode == "BE")
                {
                    //hGth = 2*height + 40 + 20;
                    //pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGth);

                    string AssIndivVousOuiNon = "";
                    string AssIndivVousDate = "";
                    string AssIndivConjointOuiNon = "";
                    string AssIndivConjointDate = "";

                    var AssVous =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 770).FirstOrDefault();
                    if (AssVous != null)
                    {
                        AssIndivVousOuiNon = Convert.ToString(AssVous.CustomObjectValue.HasInsuranceIndividualLife);
                        AssIndivVousDate = Convert.ToString(AssVous.CustomObjectValue.InsuranceIndividualLifeDate);
                    }

                    var AssConjoint =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 771).FirstOrDefault();
                    if (AssConjoint != null)
                    {
                        AssIndivConjointOuiNon =
                            Convert.ToString(AssConjoint.CustomObjectValue.HasInsuranceIndividualLife);
                        AssIndivConjointDate =
                            Convert.ToString(AssConjoint.CustomObjectValue.InsuranceIndividualLifeDate);
                    }

                    x = 0;
                    ReportBL.PlotBooleanValue(pdfGen, AssIndivVousOuiNon, y = y + 40, x += 190, "1");
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height,
                        x += tabCheck);
                    pdfGen.AddDefaultText(string.Format("Date : {0} ", AssIndivVousDate), y, max_width, height, x += 20);
                    ReportBL.PlotBooleanValue(pdfGen, AssIndivConjointOuiNon, y, x += 120, "1");
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height,
                        x += tabCheck);
                    pdfGen.AddDefaultText(string.Format("Date : {0} ", AssIndivConjointDate), y, max_width, height,
                        x += 20);

                    x = 0;
                    ReportBL.PlotBooleanValue(pdfGen, AssIndivVousOuiNon, y = y + 20, x += 190, "2");
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height,
                        x += tabCheck);
                    ReportBL.PlotBooleanValue(pdfGen, AssIndivConjointOuiNon, y, x += 140, "2");
                    pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height,
                        x += tabCheck);
                }
                //---------------> changer ce y 

                //y = yLast;
               // pdfGen.CurrentPage = currentPageNumber-1;
                //AddRetraitePPTable(pdfGen, ref y, 0);

                y += 30;
                //pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Blue_Label(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
                //pdfGen.AddRecueil_Notes_Rectangle(y += interline, 0, max_width);
                //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(GetReportOptionAttributeValueByIdOptionAttribute(563, report), y += 5, 480, 65, 5);


                var montantFrequence = "";

                var freq =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 569).FirstOrDefault();
                if (freq != null)
                {
                    montantFrequence = GetEnumValue(Convert.ToString(freq.CustomObjectValue.Frequency), 3);
                }
                else // mensuel par défaut
                {
                    montantFrequence = report.IsEmptyReport
                        ? string.Empty
                        : LanguageContentBL.Translate("Frequency2_Enum_001");
                }

                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_212"),
                    report.IsEmptyReport ? "       " : GetReportOptionAttributeValueByIdOptionAttribute(568, report)
                    , montantFrequence)
                    , y, max_width, height);

                var revenuFrequence = "";

                freq = report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 572).FirstOrDefault();
                if (freq != null)
                {
                    revenuFrequence = GetEnumValue(Convert.ToString(freq.CustomObjectValue.Frequency), 15);
                }
                else // mensuel par défaut
                {
                    revenuFrequence = report.IsEmptyReport
                        ? string.Empty
                        : LanguageContentBL.Translate("Frequency2_Enum_001");
                }

                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_213"),
                    report.IsEmptyReport ? "       " : GetReportOptionAttributeValueByIdOptionAttribute(570, report)
                    , report.IsEmptyReport ? "       " : GetReportOptionAttributeValueByIdOptionAttribute(571, report)
                    , revenuFrequence)
                    , y += interline, max_width, height);

                var revenuFuturFrequence = "";

                freq = report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 574).FirstOrDefault();
                if (freq != null)
                {
                    revenuFuturFrequence = GetEnumValue(Convert.ToString(freq.CustomObjectValue.Frequency), 3);
                }
                else // mensuel par défaut
                {
                    revenuFuturFrequence = report.IsEmptyReport
                        ? string.Empty
                        : LanguageContentBL.Translate("Frequency2_Enum_001");
                }


                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_214"),
                    report.IsEmptyReport ? "       " : GetReportOptionAttributeValueByIdOptionAttribute(573, report)
                    , revenuFuturFrequence)
                    , y += interline, max_width, height);


                x = 0;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_215"), y += interline, max_width, height);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(926, report), y, x += 235);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y,
                    max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(927, report), y, x += tabYesNo);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_216"), y += interline, max_width, height);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(929, report), y, x += 235);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), y, max_width, height, x += tabCheck);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(930, report), y, x += tabYesNo);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), y, max_width, height, x += tabCheck);

                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_217"), y += interline, max_width, height);

                x = 0;
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(932, report), y += interline, x);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_189"), y, max_width, height * 2,
                    x += tabYesNo); //dES SUPPORTS

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(933, report), y, x += 120);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_190"), y, max_width, height * 2,
                    x += tabYesNo);

                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(934, report), y, x += 100);
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_191"), y, max_width, height * 2,
                    x += tabYesNo);

                //Contrat epargne
                //pdfGen.CreatePage();
                //y = 0;
                y += interline + 10;
                pdfGen.AddDefaultTextWithAutomaticNewPage(string.Format(languageDataPP.GetContent("PdfReportPP_218")), ref y,
                    max_width, height);

                y += interline + 5;
                GenerateContratsEpargneTable1(pdfGen, report, ref y, pIsEmptyReport);

                // NOT FOUND IN UI
                //pdfGen.AddReceuil_DefaultText_Justify_CalibriBold_Blue_Label(languageDataPP.GetContent("PdfReportPP_Notes"), y += 160, 500, 20);
                //pdfGen.AddRecueil_Notes_Rectangle(y += interline, 0, max_width);
                //pdfGen.AddReceuil_DefaultText_Justify_Calibri_Label(GetReportOptionAttributeValueByIdOptionAttribute(0, report), y += 5, 480, 65, 10);

                y += interline;
                //float yPlus = 135;
                //if (Upsilab.Business.Utility.ConfigurationManager.ExtranetHostCode ==
                //    Upsilab.Business.Utility.PageLanguageHelper.HostCode.BE.ToString())
                //    yPlus = 115;

                //y += yPlus;
                GenerateContratsEpargneTable2(pdfGen, report, ref y);

                y += interline + 10;
                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(563, report);
                    pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                y = y + interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if(y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue, ref y, 0, max_width,50);

                //bool beakExist = noteValue.Contains(((char)13));

            }
            #endregion

            #region "g) Prévoyance"
            if (listIdOptionAttributes.Any(ioa => ioa == 241) || pIsEmptyReport)
            {
                //y = 0;
                //pdfGen.CreatePage();
                y = y + interline;
                yTmp = y;

                float hGht = (10f* height);

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGht);
                if (y > 0) y = yTmp;
                pdfGen.AddOrangeTitleWithAutomaticNewPage(string.Format("{0} {1}", NextIndexation(), languageDataPP.GetContent("PdfReportPP_219").Replace("g)", string.Empty)), ref y, 500, 20, 15);//g) Prévoyance (rentes conjoints, indemnités journalières, capital-décès, etc)

                string VousComplementaireSante = "";
                string VousComplementaireSanteNiveau = "";
                string VousPrevoyance = "";
                string VousForfait = "";
                string VousPendant = "";
                string VousSalaireBrut = "";
                string VousFranchises = "";
                string VousCotiAnnuel1 = "";
                string VousCotiAnnuel2 = "";
                string VousCompany1 = "";
                string VousCompany2 = "";
                string VousDateEcheance1 = "";
                string VousDateEcheance2 = "";
                var Vous = report.ReportOptionAttributeValue.FirstOrDefault(roav => roav.idOptionAttribute == 588);
                if (Vous != null)
                {
                    VousComplementaireSante = Convert.ToString(Vous.CustomObjectValue.ComplementaryHealthContractType);
                    VousComplementaireSanteNiveau = Convert.ToString(Vous.CustomObjectValue.ComplementaryHealthGuaranteeType);
                    VousPrevoyance = Convert.ToString(Vous.CustomObjectValue.InsuranceContractType);
                    VousForfait = report.IsEmptyReport ? "        " : Convert.ToString(Vous.CustomObjectValue.InsurancePlan);
                    VousPendant = report.IsEmptyReport ? "        " : Convert.ToString(Vous.CustomObjectValue.InsuranceDuration);
                    VousSalaireBrut = Convert.ToString(Vous.CustomObjectValue.InsuranceGrossPercentage);
                    VousFranchises = Convert.ToString(Vous.CustomObjectValue.InsuranceFranchise);
                    VousCotiAnnuel1 = Convert.ToString(Vous.CustomObjectValue.ComplementaryHealthCurrentContribution); ;
                    VousCotiAnnuel2 = Convert.ToString(Vous.CustomObjectValue.InsuranceCurrentContribution);
                    VousCompany1 = Convert.ToString(Vous.CustomObjectValue.ComplementaryHealthCompany);
                    VousCompany2 = Convert.ToString(Vous.CustomObjectValue.InsuranceCompany);
                    VousDateEcheance1 = Convert.ToString(Vous.CustomObjectValue.ComplementaryHealthMaturityDate);
                    VousDateEcheance2 = Convert.ToString(Vous.CustomObjectValue.InsuranceMaturityDate);

                }

                AddPrevoyanceTable1(pdfGen, y += interline + 5);
                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, VousComplementaireSante, y += interline, x, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_220"), y, max_width, height, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, VousComplementaireSanteNiveau, y, x += 120, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_221"), y, max_width, height, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, VousComplementaireSanteNiveau, y, x += 50, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_222"), y, max_width, height, x += tabYesNo);


                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, VousComplementaireSante, y += interline, x, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_223"), y, max_width, height, x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, VousComplementaireSanteNiveau, y, x += 140, "3");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_224"), y, max_width, height, x += tabYesNo);


                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, VousPrevoyance, y += 30, x, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_220"), y, max_width, height, x += tabYesNo);

                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_225"), VousForfait), y - 15, max_width, height, x += 110);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_483"), VousPendant), y - 15 + interline, max_width, height, x);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_484"), VousSalaireBrut), y - 15 + (interline * 2), max_width, height, x);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_485"), VousFranchises), y - 15 + (interline * 3), max_width, height, x);

                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, VousPrevoyance, y += interline, x, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_223"), y, max_width, height, x + tabYesNo);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                   VousCotiAnnuel1)
                  , y += 35, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
                VousCotiAnnuel2)
                , y, max_width, height, x += 140);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                   VousCompany1)
                  , y += 20, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
                 VousCompany2)
                , y, max_width, height, x += 140);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                  VousDateEcheance1)
                  , y += 20, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
                 VousDateEcheance2)
                , y, max_width, height, x += 140);

                //:**************** PREVOYANCE VOTRE CONJOINT **********//////////:

                string ConjointComplementaireSante = "";
                string ConjointComplementaireSanteNiveau = "";
                string ConjointPrevoyance = "";
                string ConjointForfait = "";
                string ConjointPendant = "";
                string ConjointSalaireBrut = "";
                string ConjointFranchises = "";
                string ConjointCotiAnnuel1 = "";
                string ConjointCotiAnnuel2 = "";
                string ConjointCompany1 = "";
                string ConjointCompany2 = "";
                string ConjointDateEcheance1 = "";
                string ConjointDateEcheance2 = "";

                var Conjoint = report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == 589).FirstOrDefault();
                if (Conjoint != null)
                {
                    ConjointComplementaireSante = Convert.ToString(Conjoint.CustomObjectValue.ComplementaryHealthContractType);
                    ConjointComplementaireSanteNiveau = Convert.ToString(Conjoint.CustomObjectValue.ComplementaryHealthGuaranteeType);
                    ConjointPrevoyance = Convert.ToString(Conjoint.CustomObjectValue.InsuranceContractType);
                    ConjointForfait = report.IsEmptyReport ? "        " : Convert.ToString(Conjoint.CustomObjectValue.InsurancePlan);
                    ConjointPendant = report.IsEmptyReport ? "        " : Convert.ToString(Conjoint.CustomObjectValue.InsuranceDuration);
                    ConjointSalaireBrut = Convert.ToString(Conjoint.CustomObjectValue.InsuranceGrossPercentage);
                    ConjointFranchises = Convert.ToString(Conjoint.CustomObjectValue.InsuranceFranchise);
                    ConjointCotiAnnuel1 = Convert.ToString(Conjoint.CustomObjectValue.ComplementaryHealthCurrentContribution); ;
                    ConjointCotiAnnuel2 = Convert.ToString(Conjoint.CustomObjectValue.InsuranceCurrentContribution);
                    ConjointCompany1 = Convert.ToString(Conjoint.CustomObjectValue.ComplementaryHealthCompany);
                    ConjointCompany2 = Convert.ToString(Conjoint.CustomObjectValue.InsuranceCompany);
                    ConjointDateEcheance1 = Convert.ToString(Conjoint.CustomObjectValue.ComplementaryHealthMaturityDate);
                    ConjointDateEcheance2 = Convert.ToString(Conjoint.CustomObjectValue.InsuranceMaturityDate);

                }

                y = y + interline+10;
                yTmp = y;

                hGht = (10f * height);

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, hGht);
                if (y > 0) y = yTmp;

                AddPrevoyanceTable2(pdfGen, y);
                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, ConjointComplementaireSante, y += interline, x, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_220"), y, max_width, height, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, ConjointComplementaireSanteNiveau, y, x += 120, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_221"), y, max_width, height, x += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, ConjointComplementaireSanteNiveau, y, x += 50, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_222"), y, max_width, height, x += tabYesNo);

                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, ConjointComplementaireSante, y += interline, x, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_223"), y, max_width, height, x + tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, ConjointComplementaireSanteNiveau, y, x += 140, "3");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_224"), y, max_width, height, x += tabYesNo);

                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, ConjointPrevoyance, y += 30, x, "1");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_220"), y, max_width, height, x += tabYesNo);

                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_225"), ConjointForfait), y - 15, max_width, height, x += 110);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_483"), ConjointPendant), y - 15 + interline, max_width, height, x);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_484"), ConjointSalaireBrut), y - 15 + (interline * 2), max_width, height, x);
                pdfGen.AddDefaultText(string.Format(languageDataPP.GetContent("PdfReportPP_485"), ConjointFranchises), y - 15 + (interline * 3), max_width, height, x);

                x = 230;
                ReportBL.PlotBooleanValue(pdfGen, ConjointPrevoyance, y += interline, x, "2");
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_223"), y, max_width, height, x + tabYesNo);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                   ConjointCotiAnnuel1)
                  , y += 35, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
                ConjointCotiAnnuel2)
                , y, max_width, height, x += 140);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                   ConjointCompany1)
                  , y += 20, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
                ConjointCompany2)
                , y, max_width, height, x += 140);

                x = 230;
                pdfGen.AddDefaultText(string.Format("{0}",
                   ConjointDateEcheance1)
                  , y += 20, max_width, height, x);
                pdfGen.AddDefaultText(string.Format("{0}",
              ConjointDateEcheance2)
                , y, max_width, height, x += 140);

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 20 + 65 + 10);
                if (y > 0)
                {
                    y += 10;
                }

                string noteValue = GetReportOptionAttributeValueByIdOptionAttribute(587, report);
                pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out oHeight);
                yTmp = y + interline;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, oHeight);

                if (y > 0) y = yTmp;

                pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
                y += interline;
                pdfGen.AddDynamicBlueBorderWithText(noteValue, ref y, 0, max_width,50);
            }

            #endregion

        }
        private static void GeneratePPRevenuEtPatrimoine(FoxitPDFGenerator pdfGen, Data.Model.Report report, ref float y, bool pIsEmptyReport)
        {
            const string key = "pprevenupatrimoine";
            #region "DEBUG Begin"

            if (IS_DEBUG)
            {
                Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace,"debut revenu et patrimoine",DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            }

            #endregion
            var languageDataPP = PageLanguageHelper.GetLanguageContent("User", "PDFReportPP");
            var languageDataPatFin = PageLanguageHelper.GetLanguageContent("User", "ClientPP_ParimoineFinancier");
            //REVENUS ET PATRIMOINE
            float x = 0;
            y += (interline*2f);
            var yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 4 * height);
            if (y > 0) y = yTmp;

            pdfGen.AddTitle(languageDataPP.GetContent("PdfReportPP_042"), y, max_width, height);
            pdfGen.AddJustifyText(languageDataPP.GetContent("PdfReportPP_043"), y += paddingAfterParagraph + 10, max_width, height * 3);//Cpnformement .....

            /******************* I - REVENUS **********************/
            #region "I - Revenus"
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "I - REVENUS", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            //I. Revenus
            pdfGen.AddSubtitle(languageDataPP.GetContent("PdfReportPP_044"), y += (interline * 2) , max_width, height);

            // "revenuebreakdown"
            List<int> lstIdOption = new List<int>() { 194, 195, 774, 196, 197, 198, 199 };
            bool isAnydata = false;
            var hasDetailRevenu = GetReportOptionValueByIdOption(1259, report) != null;
            if (hasDetailRevenu)// si details checked
            {
                var dataRevenusDetails = report.ReportOptionAttributeValue.Where(roav => roav.OptionAttribute.idOption == 314).OrderBy(roav => roav.idReportOptionAttributeValue).ToList();
                foreach (var dt in dataRevenusDetails)
                {
                    isAnydata = IsAnyDataAnd(dt, new string[] {/*"Amount", */"SourceDestination" });
                    // old criteria
                    if (!isAnydata)
                    {
                        isAnydata = IsAnyDataAnd(dt, new string[] {/*"Amount", */"Designation" });
                        if (!isAnydata && dt.CustomObjectValue != null)
                        {
                           // var amt = dt.CustomObjectValue.Amount ?? string.Empty;
                            var dgt = dt.CustomObjectValue.Designation ?? string.Empty;
                            //isAnydata = !string.IsNullOrEmpty(amt) && !string.IsNullOrEmpty(dgt);
                            isAnydata = !string.IsNullOrEmpty(dgt);
                        }
                    }
                    if (isAnydata) break;
                }
            }

            /*-------------------------------------------------------
                a) Revenus annuels nets (en K euros)
            ---------------------------------------------------------*/
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "a) Revenus annuels nets (en K euros)", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
        
           // if (!hasDetailRevenu)
            {
                y += interline;
                pdfGen.AddTextBoldSubtitle(string.Format("{0}", languageDataPP.GetContent("PdfReportPP_045")), y, max_width, height, ChapiterPaddingLeft);
                string revenuV = GetReportOptionAttributeValueByIdOptionAttribute(727, report);
                pdfGen.AddAnswer(revenuV, y, 100, 20, 250);
            }

            /*-------------------------------------------------------
                b) Détail des revenus
            ---------------------------------------------------------*/
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "b) Détail des revenus", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));

            #region "DELEGATE"
            Func<float, float, int, int, string, bool> BlockQuestion = (yp, xs, yesIdOption, noIdOption, questionNamekey) =>
            {
                var reportAnyyes = GetReportOptionValueByIdOption(yesIdOption, report);
                pdfGen.AddDefaultText(languageDataPatFin.GetContent(questionNamekey), yp, max_width, height, xs += padding_left);

                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_Yes"), yp, max_width, height, xs += 270);
                ReportBL.PlotBooleanValue(pdfGen, reportAnyyes, yp, xs += tabCheck + 5);

                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_No"), yp, max_width, height, xs += tabYesNo);
                ReportBL.PlotBooleanValue(pdfGen, GetReportOptionValueByIdOption(noIdOption, report), yp, xs += tabCheck + 5);
                return reportAnyyes != null;
            };

            /*Func<float, float, int, string, string> BlockMontant = (yp, xt, idx, t) =>
            {
                pdfGen.AddDefaultText(languageDataPatFin.GetContent(t).Replace("&euro;", "€"), yp, max_width, height, xt += padding_left);
                string liquidity = GetReportOptionAttributeValueByIdOptionAttribute(idx, report);
                liquidity = !pIsEmptyReport ? (!string.IsNullOrEmpty(liquidity) ? liquidity : "0") : string.Empty;
                //pdfGen.AddDefaultText(liquidity, yp, max_width, 20, x += 250);
                pdfGen.AddAnswer(liquidity, yp, 100, 20, xt += 270);
                return string.Empty;
            };*/

            //[09-02-2016:Tonny] Ne pas afficher la ligne si montant non renseinger ou égale à 0
            Func<float, float, int, string, string> BlockMontant = (yp, xt, idx, t) =>
            {
                string liquidity = GetReportOptionAttributeValueByIdOptionAttribute(idx, report);
                //liquidity = !pIsEmptyReport ? (!string.IsNullOrEmpty(liquidity) ? liquidity : "0") : string.Empty;
                if (!pIsEmptyReport)
                {
                    if (!string.IsNullOrEmpty(liquidity) && !liquidity.Equals("0"))
                    {
                        pdfGen.AddDefaultText(languageDataPatFin.GetContent(t).Replace("&euro;", "€"), yp, max_width, height, xt += padding_left);
                        //pdfGen.AddDefaultText(liquidity, yp, max_width, 20, x += 250);
                        pdfGen.AddAnswer(liquidity, yp, 100, 20, xt += 270);
                    }
                }
                else
                {
                    pdfGen.AddDefaultText(languageDataPatFin.GetContent(t).Replace("&euro;", "€"), yp, max_width, height, xt += padding_left);
                    //pdfGen.AddDefaultText(liquidity, yp, max_width, 20, x += 250);
                    pdfGen.AddAnswer(string.Empty, yp, 100, 20, xt += 270);                
                }
                return string.Empty;
            };
            #endregion

            int nbLine = 0;

            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "begin test any data", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            if ((/*hasDetailRevenu && */isAnydata) || pIsEmptyReport)
            {
                if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "debut tableau des revenus", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));

                y += interline;
                pdfGen.AddTextBoldSubtitle(string.Format("{0}", languageDataPP.GetContent("PdfReportPP_046").Replace(":", string.Empty)), y, max_width, height, ChapiterPaddingLeft);
                y += interline;
                GenerateDetailRevenuTableFixIssue9985(pdfGen, report, ref nbLine, ref y, pIsEmptyReport);

                if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "fin tableau des revenus", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            }

            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "debut note revenus", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));

            y += interline;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (20 + 80 + 10));
            if (y > 0) yTmp = y;
            pdfGen.AddLabelNote(languageDataPP.GetContent("PdfReportPP_Notes"), y, 500, 20);
            string noteValue = ReportBL.GetStringValue(GetReportOptionAttributeValueByIdOptionAttribute(270, report));
            float heightCalcul = 0;
           // y += interline;
            y += 5;
            pdfGen.DynamicBlueBorderZoneSize(noteValue, y, out heightCalcul, 80);
            yTmp = y + interline;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, heightCalcul);
            if (y > 0)
            {
                y = yTmp;
            }

            pdfGen.AddDynamicBlueBorderWithText(noteValue, ref y, 0, max_width, 50);

            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "fin note revenus", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            #endregion

            /******************* II - PATRIMOINE **********************/
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "II - PATRIMOINE", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
          
            #region "II. Patrimoine"
            y += interline + 10;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 2 * height);
            pdfGen.AddSubtitle(languageDataPP.GetContent("PdfReportPP_059"), y, max_width, height);

            #region "Actif global"
            //Actif global estimé (en K€) :
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "Actif global", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            
            pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_060"), y += interline + 5, max_width, height, ChapiterPaddingLeft);
            string actif = GetReportOptionAttributeValueByIdOptionAttribute(728, report);
            pdfGen.AddAnswer(actif, y, 100, 20, 250);
            #endregion

            #region "a) Patrimoine financier"
            if (IS_DEBUG && _listDebug.Any(px => px == key)) Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "a) Patrimoine financier", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            
            yTmp = y + interline+5;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
            if (y > 0)
                y = yTmp;

            pdfGen.AddTextBoldSubtitle(string.Format("{0}", languageDataPP.GetContent("PdfReportPP_061")), y, max_width, height, ChapiterPaddingLeft);
            int nbLigneAAfficher1 = 0, nbLigneAAfficher2 = 0, nbLigneAAfficher3 = 0, nbLigneAAfficher4 = 0, nbLigneAAfficher5 = 0, nbLigneAAfficher6 = 0, nbLigneAAfficher7 = 0;
            bool GotoNextPage = true;
            int nbLinesTmp = 0;
            float TabHeight = 0;
            int nbligne = 0;
            const float patrimoinRowheight = 25;

            x = 0;
            y += interline;

            //Le client a-t-il un patrimoine financier ?
            var hasPatrimoineFinancier = BlockQuestion(y, x, 1260, 1261, "ClientPP_ParimoineFinancier_004");

            if (hasPatrimoineFinancier || pIsEmptyReport)
            {
                /*------------------------------------------------
                1 - LIQUIDITE
                /*------------------------------------------------*/
                #region "1 - Liquidité"
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "1 - Liquidité", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }
                x = 0;
                //Patrimoine financier (en €):
                y += interline;
                BlockMontant(y, x, 779, "ClientPP_ParimoineFinancier_003");

                y += interline+10;

                //1.  Liquidités (compte chèque, CODEVI, CEL, LEP, livrets, etc.)
                x = padding_left + 10;
                pdfGen.AddDefaultText(languageDataPP.GetContent("PdfReportPP_062"), y, max_width, height, x);

                var hasLiquidite = GetReportOptionValueByIdOption(1262, report) != null;
                var hasDetailLiquidite = GetReportOptionValueByIdOption(1264, report) != null;

                // -------------- test existence data
                bool isAnyLiquiditeData = false;
                var optAttrs = GetOptionAttributesByDataType("patrimoinefinancier");
                List<int> IdOptions = new HashSet<int>(optAttrs.Select(t => t.idOptionAttribute)).ToList();
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] {"Description"/*, "CurrentValue"*/}))
                        {
                            isAnyLiquiditeData = true;
                            break;
                        }
                    }
                }
                //----------------------------------
               
                x += 5;

                    if (!pIsEmptyReport)
                    {
                        if (hasLiquidite)
                        {
                            if (!isAnyLiquiditeData)
                            {
                                y += interline;
                                //Le client a-t-il des liquidités ?
                                BlockQuestion(y, x, 1262, 1263, "ClientPP_ParimoineFinancier_008");
                                //Liquidités (en €)
                                y += interline;
                                BlockMontant(y, x, 780, "ClientPP_ParimoineFinancier_007");
                            }
                            else
                            {
                                y = y + interline;
                                yTmp = y;
                                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * 25);
                                if (y > 0)
                                    y = yTmp;

                                GenerateLiquiditesTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, patrimoinRowheight);
                            }
                        }
                        else
                        {
                            y += interline;
                            //Le client a-t-il des liquidités ?
                            BlockQuestion(y, x, 1262, 1263, "ClientPP_ParimoineFinancier_008");
                        }
                    }
                    else
                    { //LIQUIDITES EMPTY REPORT
                        y += interline;
                        //Le client a-t-il des liquidités ?
                        BlockQuestion(y, x, 1262, 1263, "ClientPP_ParimoineFinancier_008");
                        //Liquidités (en €)
                        y += interline;
                        BlockMontant(y, x, 780, "ClientPP_ParimoineFinancier_007");

                        y = y + interline;
                        yTmp = y;
                        pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * 25);
                        if (y > 0)
                            y = yTmp;

                        GenerateLiquiditesTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, patrimoinRowheight);
                    }
              

                #endregion

                /*------------------------------------------------
	        2 - Term investissment
	        /*------------------------------------------------*/
                #region "2 - Term investissment"
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "2 - Term investissment", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }
                const float rowPlacementHeight = 25;
                y += interline + 10; //TO_POSITION
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                if (y > 0) y = yTmp;

                x = padding_left + 10;

                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_063"), ref y, max_width - padding_left, 40, x);

                x += 5;
                var hasPlacementAterme = GetReportOptionValueByIdOption(1269, report) != null;
                var hasDetailPlacementAterme = GetReportOptionValueByIdOption(1267, report) != null;

                // -------------- test existence data
                bool isAnyTermInvData = false;
                optAttrs = GetOptionAttributesByDataType("terminvestments");
                IdOptions = new HashSet<int>(optAttrs.Select(t => t.idOptionAttribute)).ToList();
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "CurrentValue"*/ }))
                        {
                            isAnyTermInvData = true;
                            break;
                        }
                    }
                }
                //----------------------------------

               // if ((!hasPlacementAterme || !hasDetailPlacementAterme) && !pIsEmptyReport)
                //if ((!hasPlacementAterme || !isAnyTermInvData) && !pIsEmptyReport)

                if (!pIsEmptyReport)
                {
                    if (hasPlacementAterme)
                    {

                        if (!isAnyTermInvData)
                        {
                            y += interline + 5;
                            BlockQuestion(y, x, 1269, 1270, "ClientPP_ParimoineFinancier_012");
                            //Patrimoine financier (en €)
                            y += interline;
                            BlockMontant(y, x, 787, "ClientPP_ParimoineFinancier_011");
                        }
                        else
                        {
                            y = y + interline + 10;
                            yTmp = y;
                            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                            if (y > 0)
                                y = yTmp;

                            GeneratePlacementATermesTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                        }
                    }
                    else
                    {
                        //Patrimoine financier (en €)
                        y += interline + 5;
                        BlockQuestion(y, x, 1269, 1270, "ClientPP_ParimoineFinancier_012");
                    }
                }
                else
                { //EMPTY REPORT
                    y += interline + 5;
                    BlockQuestion(y, x, 1269, 1270, "ClientPP_ParimoineFinancier_012");
                    //Patrimoine financier (en €)
                    y += interline;
                    BlockMontant(y, x, 787, "ClientPP_ParimoineFinancier_011");

                    y = y + interline + 10;
                    yTmp = y;
                    pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                    if (y > 0)
                        y = yTmp;

                    GeneratePlacementATermesTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                }
                #endregion

                /*------------------------------------------------
	        3 -Life insurance
	        /*------------------------------------------------*/
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "3 -Life insurance", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }
                #region "3 -Life insurance"
                y = y + interline + 10;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                if (y > 0)
                    y = yTmp;

                x = padding_left + 10;
                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_064"), ref y, max_width, 40, x);

                x += 5;

                var hasAssuranceVie = GetReportOptionValueByIdOption(1273, report) != null;
                var hasDetailAssuranceVie = GetReportOptionValueByIdOption(1271, report) != null;

                // -------------- test existence data
                bool isAnyLifeInsData = false;
                optAttrs = GetOptionAttributesByDataType("lifeinsurance");
                IdOptions = new HashSet<int>(optAttrs.Select(t => t.idOptionAttribute)).ToList();
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "CurrentValue"*/ }))
                        {
                            isAnyLifeInsData = true;
                            break;
                        }
                    }
                }
                //----------------------------------

                //if ((!hasAssuranceVie || !hasDetailAssuranceVie) && !pIsEmptyReport)
                //if ((!hasAssuranceVie || !isAnyLifeInsData) && !pIsEmptyReport)
                if(!pIsEmptyReport)
                {
                    if (hasAssuranceVie)
                    {
                        if (!isAnyLifeInsData)
                        {
                            y += interline;
                            //Le client a-t-il des assurances-vie ?
                            BlockQuestion(y, x, 1273, 1274, "ClientPP_ParimoineFinancier_016");
                            //Assurance-vie (en €)
                            y += interline;
                            BlockMontant(y, x, 788, "ClientPP_ParimoineFinancier_015");
                        }
                        else
                        {
                            y = y + interline;
                            yTmp = y;
                            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                            if (y > 0)
                                y = yTmp;

                            GenerateAssurancesVieTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                        }
                    }
                    else
                    {
                        y += interline;
                        //Le client a-t-il des assurances-vie ?
                        BlockQuestion(y, x, 1273, 1274, "ClientPP_ParimoineFinancier_016");                
                    }
                }else
                { // EMPTY REPORT
                    y += interline;
                    //Le client a-t-il des assurances-vie ?
                    BlockQuestion(y, x, 1273, 1274, "ClientPP_ParimoineFinancier_016");
                    //Assurance-vie (en €)
                    y += interline;
                    BlockMontant(y, x, 788, "ClientPP_ParimoineFinancier_015");

                    y = y + interline;
                    yTmp = y;
                    pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                    if (y > 0)
                        y = yTmp;

                    GenerateAssurancesVieTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                }

                #endregion

                /*------------------------------------------------
	        4 -Securities
	        /*------------------------------------------------*/
                #region "4 -Securities"
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "4 -Securities", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }
                y = y + interline + 10;
                //y += interline;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                if (y > 0)
                    y = yTmp;

                x = padding_left + 10;
                const float rowValMobHeight = 25;
                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_065"), ref y,
                    max_width - padding_left, 40, x);
                x += 5;

                var hasValeurImmobiliere = GetReportOptionValueByIdOption(1277, report) != null;
                var hasDetailValeurImmobiliere = GetReportOptionValueByIdOption(1275, report) != null;

                // -------------- test existence data
                bool isAnySecuritiesData = false;
                optAttrs = GetOptionAttributesByDataType("securities");
                IdOptions = new HashSet<int>(optAttrs.Select(t => t.idOptionAttribute)).ToList();
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "CurrentValue"*/ }))
                        {
                            isAnySecuritiesData = true;
                            break;
                        }
                    }
                }
                //----------------------------------

                //if ((!hasValeurImmobiliere || !hasDetailValeurImmobiliere) && !pIsEmptyReport)
                //if ((!hasValeurImmobiliere || !isAnySecuritiesData) && !pIsEmptyReport)
                if(!pIsEmptyReport)
                {
                    if (hasValeurImmobiliere)
                    {
                        if (!isAnySecuritiesData)
                        {
                            y += interline;
                            BlockQuestion(y, x, 1277, 1278, "ClientPP_ParimoineFinancier_019");
                            //Patrimoine financier (en €)
                            y += interline + 5;
                            BlockMontant(y, x, 789, "ClientPP_ParimoineFinancier_018");
                        }
                        else
                        {
                            y = y + interline;
                            yTmp = y;
                            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                            if (y > 0)
                                y = yTmp;

                            GenerateValeursImmobilieresTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                        }
                    }
                    else
                    {
                        y += interline;
                        BlockQuestion(y, x, 1277, 1278, "ClientPP_ParimoineFinancier_019");                
                    }
                }else
                { //EMPY REPORT
                    y += interline;
                    BlockQuestion(y, x, 1277, 1278, "ClientPP_ParimoineFinancier_019");
                    //Patrimoine financier (en €)
                    y += interline + 5;
                    BlockMontant(y, x, 789, "ClientPP_ParimoineFinancier_018");

                    y = y + interline;
                    yTmp = y;
                    pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3 * height);
                    if (y > 0)
                        y = yTmp;

                    GenerateValeursImmobilieresTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                }

                #endregion
            }
            

           

            #endregion //"a) Patrimoine financier"


            #region "b ) Patrimoine immobilier"
            if (IS_DEBUG && _listDebug.Any(px => px == key))
            {
                Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "b ) Patrimoine immobilier", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            }

            y = y + interline + 15;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
            if (y > 0)
                y = yTmp;

            pdfGen.AddTextBoldSubtitle(string.Format("{0}", languageDataPP.GetContent("PdfReportPP_361")), y,
                max_width, height, ChapiterPaddingLeft);

            y += interline;
            x = 0;
            //Le client a-t-il un patrimoine immobilier ?
            var hasPatrimoineImmobilier = BlockQuestion(y, x, 1280, 1281, "ClientPP_ParimoineFinancier_0021");
            const float rowPatImHeight = 25;

            if (hasPatrimoineImmobilier || pIsEmptyReport)
            {
                //Patrimoine financier (en €)
                y += interline;
                BlockMontant(y, x, 790, "ClientPP_ParimoineFinancier_020");

                y = y + interline + 5;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
                if (y > 0)
                    y = yTmp;

                x = padding_left;

                /*----------------------------------------------------
                1 - Immobilier de joissance
                ----------------------------------------------------*/
                #region "1 - Immobilier de joissance"
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "1 - Immobilier de joissance", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }

                //1.  Immobilier de jouissance (résidence principale, résidence secondaire, etc.)
                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_362"), ref y,
                   max_width, 40, x);
                x += 10;

                var hasImmoJouissance = GetReportOptionValueByIdOption(1283, report) != null;
                var hasDetailJouissance = GetReportOptionValueByIdOption(1285, report) != null;
                //Details immobilier de joissance  "oui"

                // -------------- test existence data
                bool isAnyImmobJouissanceData = false;
                var IdOptions = new List<int>() { 204, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873 };
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "CurrentValue"*/ }))
                        {
                            isAnyImmobJouissanceData = true;
                            break;
                        }
                    }
                }
                //----------------------------------

                //if ((!hasImmoJouissance || !hasDetailJouissance) && !pIsEmptyReport)
                //if ((!hasImmoJouissance || !isAnyImmobJouissanceData) && !pIsEmptyReport)  
                if(!pIsEmptyReport)
                {
                    if (hasImmoJouissance)
                    {
                        if (!isAnyImmobJouissanceData)
                        {
                            y += interline;
                            //Le client a-t-il de l'immobilier de joissance ?
                            BlockQuestion(y, x, 1283, 1284, "ClientPP_ParimoineFinancier_025");
                            y += interline + 5;
                            //Immobiler de joissance (en €)
                            BlockMontant(y, x, 791, "ClientPP_ParimoineFinancier_022");
                        }
                        else
                        {
                            y += interline;
                            yTmp = y;
                            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
                            if (y > 0)
                                y = yTmp;
                            GenerateImmobilierDeJouissanceTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowPatImHeight);
                        }
                    }
                    else
                    {
                        y += interline;
                        //Le client a-t-il de l'immobilier de joissance ?
                        BlockQuestion(y, x, 1283, 1284, "ClientPP_ParimoineFinancier_025");                
                    }
                }else
                { //EMPY REPORT
                    y += interline;
                    //Le client a-t-il de l'immobilier de joissance ?
                    BlockQuestion(y, x, 1283, 1284, "ClientPP_ParimoineFinancier_025");
                    y += interline + 5;
                    //Immobiler de joissance (en €)
                    BlockMontant(y, x, 791, "ClientPP_ParimoineFinancier_022");

                    y += interline;
                    yTmp = y;
                    pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
                    if (y > 0)
                        y = yTmp;
                    GenerateImmobilierDeJouissanceTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowPatImHeight);
                }
                #endregion


                /*----------------------------------------------------
		        2 - Immobilier de rapport
		        ----------------------------------------------------*/
                #region "2 - Immobilier de rapport"
                if (IS_DEBUG && _listDebug.Any(px => px == key))
                {
                    Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "2 - Immobilier de rapport", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
                }

                const float rowImRapHeight = 25;
                y += interline + 10;
                x = padding_left;
                yTmp = y;
                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (3 * height)+40);
                if (y > 0)
                    y = yTmp;
                pdfGen.AddDefaultTextWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_363"), ref y,
                    max_width, 40, x);
             
                
                x += 5;

                var hasImmoRapport = GetReportOptionValueByIdOption(1287, report) != null;
                var hasDetailRapport = GetReportOptionValueByIdOption(1289, report) != null;
                //Details immobilier de rapport  "oui"

                // -------------- test existence data
                bool isAnyImmobRapportData = false;
                IdOptions = new List<int>() { 205, 874, 875, 876 };
                for (int k = 0; k < IdOptions.Count; k++)
                {
                    int idOptAttrVal = IdOptions[k];
                    List<ReportOptionAttributeValue> dataLiquidites =
                        report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                            .OrderBy(roav => roav.idReportOptionAttributeValue)
                            .ToList();
                    foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                    {
                        if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "CurrentValue"*/ }))
                        {
                            isAnyImmobRapportData = true;
                            break;
                        }
                    }
                }
                //----------------------------------

                //if ((!hasImmoRapport || !hasDetailRapport) && !pIsEmptyReport)
                //if ((!hasImmoRapport || !isAnyImmobRapportData) && !pIsEmptyReport)
                if (!pIsEmptyReport)
                {
                    if (hasImmoRapport)
                    {
                        if (!isAnyImmobRapportData)
                        {
                            y += interline;
                            //Le client a-t-il de l'immobilier de joissance ?
                            BlockQuestion(y, x, 1287, 1288, "ClientPP_ParimoineFinancier_027");
                            //Immobiler de rapport (en €)
                            y += interline;

                            BlockMontant(y, x, 792, "ClientPP_ParimoineFinancier_026");

                            y += interline;
                        }
                        else
                        {
                            y += interline;
                            GenerateImmobilierDeRapportTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowImRapHeight, 0, 670);
                        }
                    }
                    else
                    {
                        y += interline;
                        //Le client a-t-il de l'immobilier de joissance ?
                        BlockQuestion(y, x, 1287, 1288, "ClientPP_ParimoineFinancier_027");
                    }
                }
                else
                { // EMPTY REPORT
                    y += interline;
                    //Le client a-t-il de l'immobilier de joissance ?
                    BlockQuestion(y, x, 1287, 1288, "ClientPP_ParimoineFinancier_027");
                    //Immobiler de rapport (en €)
                    y += interline;

                    BlockMontant(y, x, 792, "ClientPP_ParimoineFinancier_026");

                    y += interline;
                    GenerateImmobilierDeRapportTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowImRapHeight, 0, 670);
                }

                #endregion
            }

            #endregion //"b ) Patrimoine immobilier"


            #region "c - Patrimoine professionnel"
            if (IS_DEBUG && _listDebug.Any(px => px == key))
            {
                Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "c - Patrimoine professionnel", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            }

            const float rowPatFinHeight = 25;
            y = y + interline + 13;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, (40 + (2f * height)), y > 0 ? 670 : 0);
            if (y > 0)
                y = yTmp;

            pdfGen.AddTextBoldSubtitle(languageDataPP.GetContent("PdfReportPP_367"), y, max_width, 40,
                ChapiterPaddingLeft);

            x = 0;
            

            var hasImmoProfessionnel = GetReportOptionValueByIdOption(1291, report) != null;
            var hasDetailProfessionnel = GetReportOptionValueByIdOption(1293, report) != null;
            //Details immobilier professionnel  "oui"

            // -------------- test existence data
            bool isAnyPatriProfData = false;
            var optAttrs1 = GetOptionAttributesByDataType("patrimoineprofessionnel");
            var IdOptions1 = new HashSet<int>(optAttrs1.Select(t => t.idOptionAttribute)).ToList();
            for (int k = 0; k < IdOptions1.Count; k++)
            {
                int idOptAttrVal = IdOptions1[k];
                List<ReportOptionAttributeValue> dataLiquidites =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                        .OrderBy(roav => roav.idReportOptionAttributeValue)
                        .ToList();
                foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                {
                    if (IsAnyDataAnd(reportOptonAttrValue, new string[] { "Description"/*, "OwnedCapital"*/ }))
                    {
                        isAnyPatriProfData = true;
                        break;
                    }
                }
            }
            //----------------------------------

            //if ((!hasImmoProfessionnel || !hasDetailProfessionnel) && !pIsEmptyReport)
            //if ((!hasImmoProfessionnel || !isAnyPatriProfData) && !pIsEmptyReport)
            if (!pIsEmptyReport)
            {
                if (hasImmoProfessionnel)
                {
                    if (!isAnyPatriProfData)
                    {
                        y += interline;
                        BlockQuestion(y, x, 1291, 1292, "ClientPP_ParimoineFinancier_030");
                        //Patrimoine divers (en €)
                        y += interline;

                        BlockMontant(y, x, 793, "ClientPP_ParimoineFinancier_029");

                        y += interline;
                    }
                    else
                    {
                        y = y + interline;
                        yTmp = y;

                        pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
                        if (y > 0)
                            y = yTmp;
                        GeneratePatrimoineProfessionnelTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
                    }
                }
                else
                {
                    y += interline;
                    BlockQuestion(y, x, 1291, 1292, "ClientPP_ParimoineFinancier_030");
                }
            }
            else
            { // EMPTY REPORT
                y += interline;
                BlockQuestion(y, x, 1291, 1292, "ClientPP_ParimoineFinancier_030");
                //Patrimoine divers (en €)
                y += interline;

                BlockMontant(y, x, 793, "ClientPP_ParimoineFinancier_029");

                y += interline;
                yTmp = y;

                pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 3f * height);
                if (y > 0)
                    y = yTmp;
                GeneratePatrimoineProfessionnelTableFixIssue9985(pdfGen, report, ref y, pIsEmptyReport);
            }

            #endregion //"c - Patrimoine professionnel"

            y = y + interline + 10;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 90);
            if (y > 0)
                y = yTmp;

            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_369"), ref y, max_width, 10);
            y += textInterline;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_370"), ref y, max_width, 40);
            y += textInterline * 4;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_371"), ref y, max_width, 10, 10);
            y += textInterline;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_372"), ref y, max_width, 30, 10);
            y += textInterline * 1.5f;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_372_2"), ref y, max_width, 30, 10);
            y += textInterline;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_372_3"), ref y, max_width, 30, 10);

            y = y + interline + 5;
            yTmp = y;
            pdfGen.CalculeZoneWithAutomaticNewPage(ref y, 30);
            if (y > 0)
                y = yTmp;

            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_364"), ref y, max_width, 10);
            y += textInterline;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_365"), ref y, max_width, 10);
            y += textInterline;
            pdfGen.AddReferenceWithZone(languageDataPP.GetContent("PdfReportPP_366"), ref y, max_width, 10);

            #endregion  //"II. Patrimoine"

            y += interline*2f;

            /******************* II - DIVERS **********************/
            #region "III. Divers"
            if (IS_DEBUG && _listDebug.Any(px => px == key))
            {
                Upsilab.Business.Log.Log.AppendException(new Exception(string.Format(trace, "III. Divers", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))));
            }
            const float rowDiversHeight = 25;
            pdfGen.AddSubtitleWithAutomaticNewPage(languageDataPP.GetContent("PdfReportPP_368"), ref y, max_width,
                height);
            //GenerateTablePatrimoineDivers(pdfGen, report, y += paddingAfterParagraph);

            x = 0;
            



            var hasDiversImmo = GetReportOptionValueByIdOption(1295, report) != null;
            var hasDetailDiversImmo = GetReportOptionValueByIdOption(1297, report) != null;

            // -------------- test existence data
            PageLanguageHelper globalLanguageData = PageLanguageHelper.GetLanguageContent("User", "ClientPP_Revenue");
            bool isAnyDiversData = false;
            var optAttrs2 = GetOptionAttributesByDataType("driver");
            var IdOptions2 = new HashSet<int>(optAttrs2.Select(t => t.idOptionAttribute)).ToList();
            for (int k = 0; k < IdOptions2.Count; k++)
            {
                int idOptAttrVal = IdOptions2[k];
                List<ReportOptionAttributeValue> dataLiquidites =
                    report.ReportOptionAttributeValue.Where(roav => roav.idOptionAttribute == idOptAttrVal)
                        .OrderBy(roav => roav.idReportOptionAttributeValue)
                        .ToList();
                foreach (ReportOptionAttributeValue reportOptonAttrValue in dataLiquidites)
                {
                    bool isAnydataInt = IsAnyDataAnd(reportOptonAttrValue, new string[] { /*"CurrentValue", "Active"*/ }); // old criteria
                    if (!isAnydataInt)
                    {
                        isAnydataInt = IsAnyDataAnd(reportOptonAttrValue, new string[] { /*"CurrentValue",*/ "Designation" });
                    }
                    if (!isAnydataInt)
                    {
                        int idOptionAttribute = 0;
                        Int32.TryParse(Convert.ToString(reportOptonAttrValue.idOptionAttribute), out idOptionAttribute);
                        var obj = ReportOptionBL.GetOptionAttributeById(idOptionAttribute);
                        string designation = string.Empty;
                        if (obj != null)
                        {
                            designation = globalLanguageData.GetContent(obj.NameKey);
                        }
                        isAnydataInt = !string.IsNullOrEmpty(designation);
                    }
                    if (isAnydataInt)
                    {
                        isAnyDiversData = true;
                        break;
                    }
                }
            }
            //----------------------------------

            //if ((!hasDiversImmo || !hasDetailDiversImmo) && !pIsEmptyReport)
            //if ((!hasDiversImmo || !isAnyDiversData) && !pIsEmptyReport)
            if (!pIsEmptyReport)
            {
                if (hasDiversImmo)
                {
                    if (!isAnyDiversData)
                    {
                        y += interline;
                        BlockQuestion(y, x, 1295, 1296, "ClientPP_ParimoineFinancier_033");
                        //Patrimoine divers (en €)
                        y += interline;
                        BlockMontant(y, x, 794, "ClientPP_ParimoineFinancier_032");

                        y += interline;
                    }
                    else
                    {
                        y += interline;
                        GenerateTablePatrimoineDiversFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowDiversHeight, 0, 0);
                    }
                }
                else
                {
                    y += interline;
                    BlockQuestion(y, x, 1295, 1296, "ClientPP_ParimoineFinancier_033");
                }
            }
            else
            { // EMPTY REPORT
                y += interline;
                BlockQuestion(y, x, 1295, 1296, "ClientPP_ParimoineFinancier_033");
                //Patrimoine divers (en €)
                y += interline;
                BlockMontant(y, x, 794, "ClientPP_ParimoineFinancier_032");

                y += interline;
                GenerateTablePatrimoineDiversFixIssue9985(pdfGen, report, ref y, pIsEmptyReport, rowDiversHeight, 0, 0);
            }

            #endregion
        }