public virtual ActionResult Index(string OperationNumber)
        {
            ClauseReport ModelClauseReport = new ClauseReport();

            ModelClauseReport.OperationID = ClientGenericRepositoty.GetOperationIDForOperationNumber(OperationNumber);

            var ContractNumber   = ClientGenericRepositoty.GetContractNumberForOperationId(ModelClauseReport.OperationID).ToList();
            var ListClauseStatus = ClientGenericRepositoty.GetClauseStatus(Lang).OrderBy(x => x.Name).ToList();
            var ClauseCategory   = ClientGenericRepositoty.GetClauseCategory(Lang).OrderBy(x => x.Name).ToList();
            var ClauseType       = ClientGenericRepositoty.GetClauseType(Lang).OrderBy(x => x.Name).ToList();
            var ClauseLocation   = ClientGenericRepositoty.GetClauseLocation(Lang).OrderBy(x => x.Name).ToList();

            ViewBag.ListContractNumber = new MultiSelectList(ContractNumber, "ContractId", "ContractNumber");
            ViewBag.ListClauseStatus   = new MultiSelectList(ListClauseStatus, "ConvergenceMasterDataId", "Name");
            ViewBag.ClauseCategory     = new MultiSelectList(ClauseCategory, "ConvergenceMasterDataId", "Name");
            ViewBag.ClauseType         = new MultiSelectList(ClauseType, "ConvergenceMasterDataId", "Name");
            ViewBag.ClauseLocation     = new MultiSelectList(ClauseLocation, "ConvergenceMasterDataId", "Name");

            var opTypes = OperationTypeHelper.GetOperationTypes(ModelClauseReport.OperationID).First();

            ViewBag.isTCOperation = opTypes == OperationType.TCP;
            ViewBag.TypeBank      = false;

            if (opTypes == OperationType.TCP)
            {
                var attributesExecuteBy = _attributesEngineService.GetAttributeValueByCode(OperationNumber, AttributeCode.EXECUTED_BY);
                if (attributesExecuteBy.IsValid && attributesExecuteBy.Value != null)
                {
                    var convergenceMasterCodeByIdResponse = _catalogService.GetConvergenceMasterCodeByIdResponse(int.Parse(attributesExecuteBy.FormAttribute.InitialValue));
                    ViewBag.TypeBank = convergenceMasterCodeByIdResponse.Code == AttributeValue.BANK;
                }
            }

            return(View(ModelClauseReport));
        }
Esempio n. 2
0
        public virtual ActionResult Header(
            string operationNumber, int stage, bool calculateInMemory = true, bool isLive = false)
        {
            string cacheName = CacheHelper.GetCacheName(isLive, IDBContext.Current.Operation);

            var pmiOperation = _cacheData.Get <PMIOperation>(cacheName) ??
                               _cacheData.Add(
                cacheName,
                _clientPMIDetails.LoadOperationContext(operationNumber, calculateInMemory, isLive),
                _timeCachingVal);

            ViewBag.firstDisbursement = pmiOperation.YearOfDisbursement;
            int stageTitle = pmiOperation.StageValue;

            var classification = pmiOperation.SyntethicIndicatorState;
            var pmrCycleName   = pmiOperation.PmrCycleName;

            var operationTypes = OperationTypeHelper.GetOperationTypes(operationNumber);

            if (operationTypes.Contains(OperationType.PDL) ||
                operationTypes.Contains(OperationType.PBL) ||
                operationTypes.Contains(OperationType.PBP) ||
                operationTypes.Contains(OperationType.HIB) ||
                string.IsNullOrEmpty(classification))
            {
                classification = "N/A";
            }

            var basicPmiDetails = new BasicPMIDetailsModel
            {
                OperationId            = pmiOperation.OperationId,
                OperationNumber        = operationNumber,
                OperationTypes         = operationTypes,
                LastStageValueAchieved = pmiOperation.StageValue,
                StageNumber            = stage,
                Stage = stageTitle == 1 ?
                        Localization.GetText("From Approval to Eligibility") :
                        stageTitle == 2 ? Localization.GetText("After Eligibility") :
                        stageTitle == 3 ? Localization.GetText("After Operation Reaches 95% of total Disbursements") :
                        Localization.GetText("Validation process status"),
                SyntheticIndicator          = (double)pmiOperation.SyntheticIndicator,
                LastValidatedClassification = pmiOperation.LastValidationClass,
                Classification  = classification,
                CycleName       = pmrCycleName,
                CycleId         = pmiOperation.PmrCycleId,
                CycleYear       = pmiOperation.CycleYear,
                CycleTypeCode   = pmiOperation.CycleTypeCode,
                IsLiveMode      = isLive,
                IsModelComplete = pmiOperation.IsModelComplete
            };

            HttpContext.Items["classification"] = basicPmiDetails.Classification;

            return(PartialView("IndexSharedHeader", basicPmiDetails));
        }
        public virtual ActionResult Index(
            string operationNumber, bool calculateInMemory = true, bool isLive = false)
        {
            //check if have data in Output and Component
            ViewBag.OperationType = OperationTypeHelper.GetOperationTypes(operationNumber);

            string cacheName = CacheHelper.GetCacheName(isLive, IDBContext.Current.Operation);

            var pmiOperation = _cacheData.Get <PMIOperation>(cacheName) ??
                               _cacheData.Add(
                cacheName,
                _clientPMIDetails.LoadOperationContext(operationNumber, calculateInMemory, isLive),
                _timeCachingVal);

            IDBContext.Current.ContextPMIOperation = pmiOperation;
            bool HaveData = pmiOperation.HaveDataOutputsAndComponent;

            if (!HaveData)
            {
                return(ShowWarning(operationNumber, 1));
            }

            bool HaveDataOYP = pmiOperation.HaveDataOutputYearPlan;

            if (!HaveDataOYP)
            {
                return(ShowWarning(operationNumber, 2));
            }
            else
            {
                ViewBag.Expected     = pmiOperation.ExpectedExecutionDuration;
                ViewBag.Enviromental = pmiOperation.Enviromental;

                ViewBag.OperationNUmber     = operationNumber;
                ViewData["OperationNumber"] = operationNumber;

                ViewBag.Tab = "S3G";
            }

            LoadAnnualGraphData(operationNumber, pmiOperation);
            LoadPeriodGraphData(pmiOperation, operationNumber);
            var historicalAccumulated = _clientPMIDetails.GetHistoricalAccumulated(operationNumber);

            ViewBag.AccumalteDisbursementsGraphData = GraphicGenerator
                                                      .LoadAccumalteDisbursementsGraphData(
                historicalAccumulated, pmiOperation, operationNumber, calculateInMemory);
            LoadPercentageProgress(pmiOperation, operationNumber);
            LoadPercentageProgressAnnual(pmiOperation, operationNumber);
            LoadDISB95(pmiOperation, operationNumber, isLive);

            //TODO: The entire model should be sent to the view instead of using the viewbag
            return(View(isLive));
        }
Esempio n. 4
0
        public virtual ActionResult PCRChecklist(
            string operationNumber,
            string errorMessages,
            int selectedTab = 0)
        {
            var summaryViewModel = _viewModelMapperHelper
                                   .GetSummaryViewModel(operationNumber).Summary;
            var model = _viewModelMapperHelper.GetChecklistViewModel(operationNumber);

            ViewBag.Categories = _viewModelMapperHelper.GetCategories();
            ViewBag.Header     = _viewModelMapperHelper.GetHeaderViewModel(operationNumber);

            IList <string> opTypes = model.PCRGeneralViewModel.OperationType;

            if (opTypes == null)
            {
                opTypes = OperationTypeHelper.GetOperationTypes(operationNumber);
            }

            ViewBag.OperationType = opTypes;
            ViewBag.PCRId         = model.PCRId;
            ViewBag.SelectedTab   = selectedTab;
            ViewBag.Verify        = _pcrFollowUpService.GetVerifyContent(
                summaryViewModel,
                model.PCREffectivenessViewModel,
                model.PCRGeneralViewModel)
                                    .FollowUpVerifyViewModel;
            ViewBag.Permission = _authorizationService.IsAuthorized(
                IDBContext.Current.UserLoginName,
                operationNumber,
                ActionEnum.ConvergenceReadPermission,
                true);

            model.RedoResponse = _pcrChecklistService.GetRedoData(
                model.PCRValidationsViewModel.OperationId, operationNumber);
            ViewBag.LastPCRRedo   = model.RedoResponse.LastPCRForRedo;
            ViewBag.IsActiveRedo  = model.RedoResponse.IsValid;
            model.OperationNumber = operationNumber;
            if (!string.IsNullOrWhiteSpace(errorMessages))
            {
                ViewBag.ErrorMessage = HttpUtility
                                       .HtmlEncode(HttpUtility.UrlDecode(errorMessages).ProcessStringForView());
                ViewBag.LockScreen  = false;
                ViewBag.SelectedTab = 2;
            }

            ViewBag.LockScreenWorkflowValidation = false;

            return(View(model));
        }
Esempio n. 5
0
        public virtual ActionResult EditPCR(string opNum, bool published, bool required)
        {
            var message = string.Empty;

            if (opNum == null || opNum == string.Empty)
            {
                message = "Operation Number is Empty";
                return(View(viewName: "TestPCR", model: message));
            }

            var operation = _operationRepository.GetOne(x => x.OperationNumber == opNum);

            if (operation == null)
            {
                message = "Operation Null";
                return(View(viewName: "TestPCR", model: message));
            }

            if (!OperationTypeHelper.GetOperationTypes(operation.OperationId).Contains(OperationType.LON) &&
                !OperationTypeHelper.GetOperationTypes(operation.OperationId).Contains(OperationType.GUA) &&
                !OperationTypeHelper.GetOperationTypes(operation.OperationId).Contains(OperationType.IGR))
            {
                message = "Operation Not SG";
                return(View(viewName: "TestPCR", model: message));
            }

            var cmb = CMBusiness.Get(operation);
            var activityItemInter = cmb.GetActivityItem(CMConstants.DefaultActivityItems.PCRINTER);
            var activityItemIntra = cmb.GetActivityItem(CMConstants.DefaultActivityItems.PCRINTRA);

            if (activityItemInter == null && activityItemIntra == null)
            {
                message = "Operation Not Have PCRINTRA/PCRINTER";
                return(View(viewName: "TestPCR", model: message));
            }

            var message1 = ChangeStatePCRMilestone(published, operation, activityItemInter, activityItemIntra);
            var message2 = ChangeWorkflowRequired(operation, required);

            if (published && required)
            {
                var message3 = CreateAverageScore(operation);
            }

            //Test
            message = TestPCRForDebugg(operation);
            return(View(viewName: "TestPCR", model: "Result Value: " + message));
        }
Esempio n. 6
0
        public virtual ActionResult IndexSummaryTable(
            string operationNumber, bool calculateInMemory = true, bool isLive = false)
        {
            string cacheName = CacheHelper.GetCacheName(isLive, IDBContext.Current.Operation);

            var pmiOperation = _cacheData.Get <PMIOperation>(cacheName) ??
                               _cacheData.Add(cacheName,
                                              _clientPMIDetails.LoadOperationContext(operationNumber, calculateInMemory, isLive),
                                              _timeCachingVal);

            var pmi = _clientPMIDetails.GetCurrentPMIEscalarBenchmark(operationNumber, pmiOperation, isLive);

            pmi.IsLiveMode = isLive;

            ViewBag.OperationType   = OperationTypeHelper.GetOperationTypes(operationNumber);
            ViewBag.OperationNUmber = operationNumber;
            ViewBag.Tab             = "S1T";

            return(View(pmi));
        }
        public virtual ActionResult RenderSummaryTable(
            string operationNumber, bool calculateInMemory = true, bool isLive = false)
        {
            string cacheName = CacheHelper.GetCacheName(isLive, IDBContext.Current.Operation);

            var pmiOperation = _cacheData.Get <PMIOperation>(cacheName) ??
                               _cacheData.Add(
                cacheName,
                _clientPMIDetails.LoadOperationContext(operationNumber, calculateInMemory, isLive),
                _timeCachingVal);

            bool hasData = pmiOperation.HaveDataOutputsAndComponent;

            if (!hasData)
            {
                return(View("_WarningMessage", 1));
            }

            bool hasDataOutputYearPlan = pmiOperation.HaveDataOutputYearPlan;

            if (!hasDataOutputYearPlan)
            {
                return(View("_WarningMessage", 2));
            }

            float yearLimitAccumulated = 0f;
            int   yearLimit            = pmiOperation.GetYearLimitForIndicators;
            int   monthCalculated      = pmiOperation.DisbursedMonths;

            var pmiValues = _clientPMIDetails
                            .GetCurrentPMIDetailsModel(operationNumber, pmiOperation, isLive);

            pmiValues.IsLiveMode = isLive;

            if (pmiOperation.OperationIsClosed && (yearLimit < DateTime.Now.Year))
            {
                //If the operation is closed, the accumulated refers to the closing year
                List <HistoricAcumulated> history = _clientPMIDetails
                                                    .GetHistoricalAccumulated(operationNumber);

                yearLimitAccumulated = history
                                       .Where(hx => hx.YEAR == yearLimit)
                                       .Select(hx => hx.ACUMULATED)
                                       .FirstOrDefault();

                pmiValues.AfterEligibility.Accumulated_disbursements =
                    (decimal)yearLimitAccumulated;
            }

            //The accumulated disbursements are from the closing year
            List <ListPMICurveModel> curveModelValues = pmiValues.AfterEligibility.IntervalsList;

            ViewBag.UpperLimit = curveModelValues
                                 .Where(x => x.PeriodNumber == monthCalculated)
                                 .Select(x => x.UpperLimit)
                                 .FirstOrDefault();

            ViewBag.Problem = curveModelValues
                              .Where(x => x.PeriodNumber == monthCalculated)
                              .Select(x => x.ProblemLevel)
                              .FirstOrDefault();

            int firstDisbursement = pmiOperation.YearOfDisbursement;

            ViewBag.Schedule_Performance = -1;
            ViewBag.Cost_Performance     = -1;
            const int YEAR_CPI_SPI_APPLIABLE = 2012;

            if (firstDisbursement >= YEAR_CPI_SPI_APPLIABLE)
            {
                ViewBag.Schedule_Performance_ExactValue = pmiOperation.LastSchedulePerformance;
                ViewBag.Schedule_Performance_Truncated  =
                    decimal.Round(pmiOperation.LastSchedulePerformance, 2);

                ViewBag.Cost_Performance_ExactValue = pmiOperation.LastCostPerformance;
                ViewBag.Cost_Performance_Truncated  =
                    decimal.Round(pmiOperation.LastCostPerformance, 2);
            }

            ViewBag.Schedule_Performance_Annual_ExactValue =
                pmiOperation.LastSchedulePerformanceAnnual;
            ViewBag.Schedule_Performance_Annual_Truncated =
                decimal.Round(pmiOperation.LastSchedulePerformanceAnnual, 2);

            ViewBag.Cost_Performance_Annual_ExactValue = pmiOperation.LastCostPerformanceAnnual;
            ViewBag.Cost_Performance_Annual_Truncated  =
                decimal.Round(pmiOperation.LastCostPerformanceAnnual, 2);

            pmiValues.Averageweighted       = decimal.Round(pmiOperation.WeightedAverage, 2);
            pmiValues.AverageweightedAnnual = decimal.Round(pmiOperation.WeightedAverageAnnual, 2);

            ViewBag.OperationType = OperationTypeHelper.GetOperationTypes(operationNumber);

            ViewBag.ExpectedDuration = Convert.ToDecimal(
                string.Format("{0:0.##}", pmiOperation.ExpectedExecutionDuration));

            ViewBag.Disbursementshort = Convert.ToString(
                decimal.Round(pmiValues.AfterEligibility.Accumulated_disbursements, 2));

            return(View(pmiValues));
        }
        public virtual ActionResult RenderSummaryTable(
            string operationNumber, bool calculateInMemory = true, bool isLive = false)
        {
            string cacheName = CacheHelper.GetCacheName(isLive, IDBContext.Current.Operation);

            var pmiOperation = _cacheData.Get <PMIOperation>(cacheName) ??
                               _cacheData.Add(cacheName,
                                              _clientPMIDetails.LoadOperationContext(operationNumber, calculateInMemory, isLive),
                                              _timeCachingVal);

            bool OperationIsClosed = pmiOperation.OperationIsClosed;
            bool sw        = false;
            var  AccDis    = 0f;
            int  AccMonth  = 0;
            int  yearLimit = pmiOperation.GetYearLimitForIndicators;
            var  history   = _clientPMIDetails.GetHistoricalAccumulated(operationNumber);

            if (OperationIsClosed)
            {
                //IF THE OPERATION IS CLOSED, THE ACCUMULATED IS OF CLOSING YEAR
                if (yearLimit < DateTime.Now.Year)
                {
                    sw = true;
                }
                else
                {
                    sw = false;
                }
            }

            if (OperationIsClosed && sw)
            {
                //IF THE OPERATION IS CLOSED, THE CLOSING YEAR IS "YEAR LIMIT"
                AccDis   = history.Where(hx => hx.YEAR == yearLimit).Select(hx => hx.ACUMULATED).FirstOrDefault();
                AccMonth = history.Where(hx => hx.YEAR == yearLimit).Select(hx => hx.MONTHS).FirstOrDefault();
            }
            else
            {
                sw = false;
            }

            bool HaveData = pmiOperation.HaveDataOutputsAndComponent;

            if (!HaveData)
            {
                return(View("_WarningMessage", 1));
            }

            bool HaveDataOYP = pmiOperation.HaveDataOutputYearPlan;

            //if not have data in OutputYearPlan
            if (!HaveDataOYP)
            {
                return(View("_WarningMessage", 2));
            }

            var MIValues = _clientPMIDetails.GetCurrentPMIDetailsModel(operationNumber, pmiOperation, isLive);

            MIValues.IsLiveMode = isLive;

            var PmiEscalar = _clientPMIDetails.GetCurrentPMIEscalarBenchmark(operationNumber, pmiOperation, isLive);

            decimal SchedulePerformanceAnnualValue = pmiOperation.LastSchedulePerformanceAnnual;
            decimal SchedulePerformanceValue       = pmiOperation.LastSchedulePerformance;
            decimal CostPerformanceValue           = pmiOperation.LastCostPerformance;
            decimal CostPerformanceAnnualValue     = pmiOperation.LastCostPerformanceAnnual;
            int     disbursedMonths = pmiOperation.DisbursedMonths;

            ////////THE ACCUMULATED DISBURSEMENTS IS OF CLOSING YEAR
            if (sw == true)
            {
                MIValues.AfterEligibility.Accumulated_disbursements = (decimal)AccDis;
            }

            var intervals = MIValues.AfterEligibility.IntervalsList;

            ViewBag.UpperLimit = intervals
                                 .Where(x => x.PeriodNumber == disbursedMonths)
                                 .Select(x => x.UpperLimit)
                                 .FirstOrDefault();

            ViewBag.Problem = intervals
                              .Where(x => x.PeriodNumber == disbursedMonths)
                              .Select(x => x.ProblemLevel)
                              .FirstOrDefault();

            int firstDisbursement = pmiOperation.YearOfDisbursement;

            if (firstDisbursement >= 2012)
            {
                ViewBag.Schedule_Performance_Calcule = SchedulePerformanceValue == -1 ? " " :
                                                       Convert.ToString(SchedulePerformanceValue);
                ViewBag.Schedule_Performance = SchedulePerformanceValue == -1 ? " " :
                                               Convert.ToString(decimal.Round(SchedulePerformanceValue, 2));

                ViewBag.Cost_Performance_Calcule = CostPerformanceValue == -1 ? " " :
                                                   Convert.ToString(CostPerformanceValue);
                ViewBag.Cost_Performance = CostPerformanceValue == -1 ? " " :
                                           Convert.ToString(decimal.Round(CostPerformanceValue, 2));
            }
            else
            {
                ViewBag.Schedule_Performance = " ";

                ViewBag.Cost_Performance = " ";
            }

            ViewBag.Schedule_Performance_Annual_Calcule = SchedulePerformanceAnnualValue == -1 ? " " :
                                                          Convert.ToString(SchedulePerformanceAnnualValue);
            ViewBag.Schedule_Performance_Annual = SchedulePerformanceAnnualValue == -1 ? " " :
                                                  Convert.ToString(decimal.Round(SchedulePerformanceAnnualValue, 2));
            ViewBag.Cost_Performance_Annual_Calcule = CostPerformanceAnnualValue == -1 ? " " :
                                                      Convert.ToString(CostPerformanceAnnualValue);
            ViewBag.Cost_Performance_Annual = CostPerformanceAnnualValue == -1 ? " " :
                                              Convert.ToString(decimal.Round(CostPerformanceAnnualValue, 2));

            MIValues.Maxlevel = PmiEscalar.PmiEscalarBenchmark.ListPMIEscalar
                                .Where(x => x.PmiTypeId == PmiEscalar.MasterDISB95)
                                .Select(x => x.MaxLevel)
                                .FirstOrDefault();
            MIValues.Alert = PmiEscalar.PmiEscalarBenchmark.ListPMIEscalar
                             .Where(x => x.PmiTypeId == PmiEscalar.MasterDISB95)
                             .Select(x => x.AlertLevel)
                             .FirstOrDefault();
            MIValues.Problem = Convert.ToDecimal(PmiEscalar.PmiEscalarBenchmark.ListPMIEscalar
                                                 .Where(x => x.PmiTypeId == PmiEscalar.MasterDISB95)
                                                 .Select(x => x.ProblemLevel)
                                                 .FirstOrDefault());
            MIValues.Disbur95 = PmiEscalar.Disbur95;

            ViewBag.ExpectedDuration = pmiOperation.ExpectedExecutionDuration != null?
                                       Convert.ToDecimal(string.Format("{0:0.##}", pmiOperation.ExpectedExecutionDuration.Value)) :
                                           (decimal?)null;

            ViewBag.Disbursementshort = Convert.ToString(decimal.Round(MIValues.AfterEligibility.Accumulated_disbursements, 2));

            MIValues.Averageweighted = pmiOperation.WeightedAverage;

            MIValues.AverageweightedAnnual = pmiOperation.WeightedAverageAnnual;

            ViewBag.OperationType = OperationTypeHelper.GetOperationTypes(operationNumber);

            return(View(MIValues));
        }
Esempio n. 9
0
        public static bool IsSpecialOperationOrSUPWithoutRelation(int operationId)
        {
            IList <string> opTypes = OperationTypeHelper.GetOperationTypes(operationId);

            return(IsSpecialOperationOrSUPWithoutRelation(operationId, opTypes));
        }
        public virtual ActionResult Index(ClauseReport ModelClauseReport)
        {
            string URLClauseHistoryReport = string.Empty;

            string Header = ReportBuilder.GetReportHeader();

            URLClauseHistoryReport += ReportBuilder.GetReportPreffix("ParamForClauseExtensionReport");

            if (Lang != null)
            {
                URLClauseHistoryReport += "&LANG=" + Lang;
            }
            else
            {
                URLClauseHistoryReport += "&LANG=EN";
            }

            string ClauseHistoryUrl = string.Empty;

            if (ModelClauseReport.OperationID == 0)
            {
                return(Content(Localization.GetText("Invalid or nonexistent operation number")));
            }
            else
            {
                ClauseHistoryUrl += "&OPERATION=" + ModelClauseReport.OperationID;
            }

            if (ModelClauseReport.ClauseNumber != null)
            {
                if (ModelClauseReport.ClauseNumber.Trim().Length > 0)
                {
                    ClauseHistoryUrl += "&ClauseNumber=" + ModelClauseReport.ClauseNumber.Trim();
                }
            }

            if (ModelClauseReport.ContractNumber.Count > 0)
            {
                for (int x = 0; x < ModelClauseReport.ContractNumber.Count; x++)
                {
                    ClauseHistoryUrl += "&Contract=" + ModelClauseReport.ContractNumber[x];
                }
            }
            else
            {
                var ContractNumber = ClientGenericRepositoty.GetContractNumberForOperationId(ModelClauseReport.OperationID).ToList();

                foreach (var itemContracNumber in ContractNumber)
                {
                    ClauseHistoryUrl += "&Contract=" + itemContracNumber.ContractId;
                }
            }

            if (ModelClauseReport.ClauseCategory.Count > 0)
            {
                for (int x = 0; x < ModelClauseReport.ClauseCategory.Count; x++)
                {
                    ClauseHistoryUrl += "&ClauseCategory=" + ModelClauseReport.ClauseCategory[x];
                }
            }
            else
            {
                var ClauseCategory = ClientGenericRepositoty.GetClauseCategory(Lang).OrderBy(x => x.Name).ToList();
                foreach (var itemClauseCategory in ClauseCategory)
                {
                    ClauseHistoryUrl += "&ClauseCategory=" + itemClauseCategory.ConvergenceMasterDataId;
                }
            }

            if (ModelClauseReport.ClauseLocation.Count > 0)
            {
                for (int x = 0; x < ModelClauseReport.ClauseLocation.Count; x++)
                {
                    ClauseHistoryUrl += "&ClauseLocation=" + ModelClauseReport.ClauseLocation[x];
                }
            }
            else
            {
                var ClauseLocation = ClientGenericRepositoty.GetClauseLocation(Lang).OrderBy(x => x.Name).ToList();

                foreach (var itemClauseLocation in ClauseLocation)
                {
                    ClauseHistoryUrl += "&ClauseLocation=" + itemClauseLocation.ConvergenceMasterDataId;
                }
            }

            if (ModelClauseReport.ClauseType.Count > 0)
            {
                for (int x = 0; x < ModelClauseReport.ClauseType.Count; x++)
                {
                    ClauseHistoryUrl += "&ClauseType=" + ModelClauseReport.ClauseType[x];
                }
            }
            else
            {
                var ClauseType = ClientGenericRepositoty.GetClauseType(Lang).OrderBy(x => x.Name).ToList();
                foreach (var itemClauseType in ClauseType)
                {
                    ClauseHistoryUrl += "&ClauseType=" + itemClauseType.ConvergenceMasterDataId;
                }
            }

            if (ModelClauseReport.CurrentExpirationDate != null)
            {
                DateTime DateFrom = new DateTime();
                DateFrom          = Convert.ToDateTime(ModelClauseReport.CurrentExpirationDate);
                ClauseHistoryUrl += "&ExpDateFrom=" + DateFrom.ToString("MM/dd/yyyy");
            }

            if (ModelClauseReport.LastStatusChangeDate != null)
            {
                DateTime DateTo = new DateTime();
                DateTo            = Convert.ToDateTime(ModelClauseReport.LastStatusChangeDate);
                ClauseHistoryUrl += "&ExpDateto=" + DateTo.ToString("MM/dd/yyyy");
            }

            if (ModelClauseReport.OriginalExpirationDate != null)
            {
                DateTime DateTo = new DateTime();
                DateTo            = Convert.ToDateTime(ModelClauseReport.OriginalExpirationDate);
                ClauseHistoryUrl += "&AprDateFrom=" + DateTo.ToString("MM/dd/yyyy");
            }

            if (ModelClauseReport.SubmissionDate != null)
            {
                DateTime DateTo = new DateTime();
                DateTo            = Convert.ToDateTime(ModelClauseReport.SubmissionDate);
                ClauseHistoryUrl += "&AprDateto=" + DateTo.ToString("MM/dd/yyyy");
            }

            var opTypes = OperationTypeHelper.GetOperationTypes(ModelClauseReport.OperationID).First();

            ViewBag.isTCOperation = opTypes == OperationType.TCP;
            ViewBag.TypeBank      = false;

            if (opTypes == OperationType.TCP)
            {
                var operationNumber     = ClientGenericRepositoty.GetOperationNumberForOperationID(ModelClauseReport.OperationID);
                var attributesExecuteBy = _attributesEngineService.GetAttributeValueByCode(operationNumber, AttributeCode.EXECUTED_BY);
                if (attributesExecuteBy.IsValid && attributesExecuteBy.Value != null)
                {
                    var convergenceMasterCodeByIdResponse = _catalogService.GetConvergenceMasterCodeByIdResponse(int.Parse(attributesExecuteBy.FormAttribute.InitialValue));
                    ViewBag.TypeBank = convergenceMasterCodeByIdResponse.Code == AttributeValue.BANK;
                }
            }

            if (!string.IsNullOrEmpty(ModelClauseReport.ExportType))
            {
                ClauseHistoryUrl += ViewBag.TypeBank;
                ClauseHistoryUrl += "&rs:Format=" + ModelClauseReport.ExportType;
            }

            return(Content(URLClauseHistoryReport + ClauseHistoryUrl + Header));
        }