public void TestLinqTransaction() { var dao = DataAccessFactory.Create<GenericDao>(); var report = new Report(); report.Name = "Andre's Linq test"; var calcMethod = new ReportParameterCalculationMethod(); report.ReportParameterCalculationMethod = calcMethod; report.ReportTypeId = 2; dao.Insert(report); dao.SubmitChanges(); }
/// <summary> /// Loads the report parameters. /// </summary> /// <param name="report">The report.</param> public override void LoadReportParameters(Report report) { var propertyFunds = this.GetDao<ParametersDao>().GetPropertyFundsByReport(report.ReportId); this.View.Selected = propertyFunds.Select(e => new PickListItem( e.Name, e.PropertyFundId)).ToList(); }
/// <summary> /// Saves the report parameters. /// </summary> /// <param name="report">The report.</param> public override void SaveReportParameters(Report report) { if (!this.Validate(this.View.Selected.Count > 0, "Please select at least one reporting entity")) { return; } Func<int, int, ReportParameterPropertyFund> selector = (id, reportParameterId) => new ReportParameterPropertyFund { PropertyFundId = id, ReportParameterEntityTypeId = reportParameterId }; var selectedPropertyFundIds = new List<int>(this.View.Selected.Select(propertyFund => propertyFund.Id)); int[] selectedPropertyFundsArray = selectedPropertyFundIds.ToArray(); List<ReportParameterEntityType> savedEntityTypes = report.ReportParameterEntityTypes.ToList(); if (selectedPropertyFundIds.Contains(0)) { foreach (var entityType in savedEntityTypes) { entityType.ReportParameterPropertyFunds.Add(selector(0, entityType.ReportParameterEntityTypeId)); } } else { IQueryable<ParameterPropertyFund> selectedPropertyFunds = this.GetDao<ReportDao>() .FindAll<ParameterPropertyFund>(e => selectedPropertyFundsArray.Contains(e.PropertyFundId)); foreach (var entityType in savedEntityTypes) { var findPropertyFunds = ExpressionBuilder.Make<ParameterPropertyFund>(propertyFund => Convert.ToBoolean(propertyFund.IsActive)); if (entityType.EntityTypeId != 0) { findPropertyFunds = ExpressionBuilder.And(findPropertyFunds, propertyFund => propertyFund.EntityTypeId == entityType.EntityTypeId); } List<ReportParameterPropertyFund> propertyFundsToAdd = (from selectedPropertyFund in selectedPropertyFunds.Where(findPropertyFunds) select selector(selectedPropertyFund.PropertyFundId, entityType.ReportParameterEntityTypeId)) .ToList(); entityType.ReportParameterPropertyFunds.AddRange(propertyFundsToAdd); } } }
/// <summary> /// Saves the report parameters. /// </summary> /// <param name="report">The report.</param> public override void SaveReportParameters(Report report) { if (!this.Validate(this.View.Selected.Count > 0, "Please select at least one staff member")) { return; } IEnumerable<ReportParameterReportReceiver> reportReceiversToSave = this.View.Selected.Select(e => new ReportParameterReportReceiver() { StaffId = e.Id }); report.ReportParameterReportReceivers.AddRange(reportReceiversToSave); }
/// <summary> /// Loads the report parameters. /// </summary> /// <param name="report">The report.</param> public override void LoadReportParameters(Report report) { List<PickListItem> savedStaffList = (from parameterReceiver in this.GetDao<ParametersDao>().FindAll<ReportParameterReportReceiver>(e => e.ReportId == report.ReportId) join receiver in this.GetDao<ParametersDao>().FindAll<ParameterReportReceiver>() on parameterReceiver.StaffId equals receiver.StaffID select new PickListItem(receiver.StaffName, receiver.StaffID)).ToList(); View.Selected = savedStaffList; }
/// <summary> /// Creates a new Profitability Report Generator for a given report /// </summary> /// <param name="report">The report to generate</param> /// <param name="reportGenerationQueueId">The report generation queue instance id</param> /// <param name="configuration">The configuration.</param> /// <param name="reportQueueStatusService">The report queue status service.</param> /// <returns>The report generator</returns> private static ProfitabilityReportGenerator GetProfitabilityReportGenerator( Report report, int reportGenerationQueueId, IReportGenerationConfiguration configuration, IReportQueueStatusService reportQueueStatusService) { ProfitabilityReportParameter reportParameter = BuildProfitabilityReportParameter(report, reportGenerationQueueId); return new ProfitabilityReportGenerator( reportParameter, configuration, reportQueueStatusService); }
/// <summary> /// Creates a new Budget Owner Report Parameter object encapsulating all the report parameters /// </summary> /// <param name="report">The report for which to fetch the parameters</param> /// <param name="reportGenerationQueueId">The report generation queue instance id</param> /// <param name="configuration">The configuration.</param> /// <param name="reportQueueStatusService">The report queue status service.</param> /// <returns>The budget owner report parameter object</returns> private static BudgetOwnerReportParameter BuildBudgetOwnerReportParameter( Report report, int reportGenerationQueueId, IReportGenerationConfiguration configuration, IReportQueueStatusService reportQueueStatusService, int isEU) { ReportGenerationQueue reportGenerationQueue = DataAccessFactory.Create<GenerationDao>().GetReportGenerationQueueItem(reportGenerationQueueId); if (reportGenerationQueue != null && report != null) { // Validate all parameters first, because the database does not enforce constraints if (report.ReportParameterShowMRISourceForPayroll == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterShowMRISourceForPayroll"); } if (report.ReportParameterCalculationMethod == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterCalculationMethod"); } if (report.ReportParameterGLCategorization == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterGLCategorization"); } if (report.ReportParameterCurrency == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterCurrency"); } if (report.ReportParameterEntityTypes.Count == 0) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterEntityTypes"); } else { bool validPropertyFunds = false; foreach (ReportParameterEntityType reportParameterEntityType in report.ReportParameterEntityTypes) { if (reportParameterEntityType.ReportParameterPropertyFunds.Count > 0) { validPropertyFunds = true; } } if (!validPropertyFunds) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterPropertyFunds"); } } if (report.ReportParameterActivityTypes.Count == 0) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterActivityTypes"); } if (report.ReportParameterAllocationSubRegions.Count == 0) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterAllocationSubRegions"); } if (report.ReportParameterFunctionalDepartments.Count == 0) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterFunctionalDepartments"); } if (report.ReportParameterReportReceivers.Count == 0) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterReportReceivers"); } // Get all the parameters we need bool mustDeliverToTest = reportGenerationQueue.MustDeliverReportToTestLocation; bool showMRISourceForPayroll = report.ReportParameterShowMRISourceForPayroll.ShowMRISourceForPayroll; DateTime insertedDate = reportGenerationQueue.InsertedDate; int reportPeriod = reportGenerationQueue.Period; string reforecastQuarterName = reportGenerationQueue.ReforecastQuarterName; bool reportTypeIsActive = report.ReportType.IsActive; string reportName = report.Name; List<ParameterActivityType> activityTypes = new List<ParameterActivityType>(); foreach (ReportParameterActivityType reportParameterActivityType in report.ReportParameterActivityTypes) { activityTypes.Add(reportParameterActivityType.ParameterActivityType); } List<ParameterAllocationSubRegion> allocationSubRegions = new List<ParameterAllocationSubRegion>(); foreach (ReportParameterAllocationSubRegion reportParameterAllocationSubRegion in report.ReportParameterAllocationSubRegions) { allocationSubRegions.Add(reportParameterAllocationSubRegion.ParameterAllocationSubRegion); } ParameterCalculationMethod calculationMethod = report.ReportParameterCalculationMethod.ParameterCalculationMethod; ParameterGLCategorization glCategorization = report.ReportParameterGLCategorization.ParameterGLCategorization; Currency currency = report.ReportParameterCurrency.Currency; List<ParameterFunctionalDepartment> functionalDepartments = new List<ParameterFunctionalDepartment>(); foreach (ReportParameterFunctionalDepartment reportParameterFunctionalDepartment in report.ReportParameterFunctionalDepartments) { functionalDepartments.Add(reportParameterFunctionalDepartment.ParameterFunctionalDepartment); } List<ParameterGLFinancialCategory> financialCategories = new List<ParameterGLFinancialCategory>(); List<ParameterGLMajorCategory> majorCategories = new List<ParameterGLMajorCategory>(); List<ParameterGLMinorCategory> minorCategories = new List<ParameterGLMinorCategory>(); foreach (ReportParameterGLFinancialCategory reportParameterGLFinancialCategory in report.ReportParameterGLCategorization.ReportParameterGLFinancialCategories) { financialCategories.Add(reportParameterGLFinancialCategory.ParameterGLFinancialCategory); foreach (ReportParameterGLMajorCategory reportParameterGLMajorCategory in reportParameterGLFinancialCategory.ReportParameterGLMajorCategories) { majorCategories.Add(reportParameterGLMajorCategory.ParameterGLMajorCategory); foreach (ReportParameterGLMinorCategory reportParameterGLMinorCategory in reportParameterGLMajorCategory.ReportParameterGLMinorCategories) { minorCategories.Add(reportParameterGLMinorCategory.ParameterGLMinorCategory); } } } List<ParameterOriginatingSubRegion> originatingSubRegions = new List<ParameterOriginatingSubRegion>(); foreach (ReportParameterOriginatingSubRegion reportParameterOriginatingSubRegion in report.ReportParameterOriginatingSubRegions) { originatingSubRegions.Add(reportParameterOriginatingSubRegion.ParameterOriginatingSubRegion); } List<ParameterEntityType> entityTypes = new List<ParameterEntityType>(); foreach (ReportParameterEntityType reportParameterEntityType in report.ReportParameterEntityTypes) { entityTypes.Add(reportParameterEntityType.ParameterEntityType); } List<ParameterPropertyFund> propertyFunds = new List<ParameterPropertyFund>(); foreach (ReportParameterEntityType reportParameterEntityType in report.ReportParameterEntityTypes) { foreach (ReportParameterPropertyFund reportParameterPropertyFund in reportParameterEntityType.ReportParameterPropertyFunds) { propertyFunds.Add(reportParameterPropertyFund.ParameterPropertyFund); } } List<ParameterReportReceiver> reportReceivers = new List<ParameterReportReceiver>(); foreach (ReportParameterReportReceiver reportParameterReportReceiver in report.ReportParameterReportReceivers) { reportReceivers.Add(reportParameterReportReceiver.ParameterReportReceiver); } return new BudgetOwnerReportParameter( mustDeliverToTest, insertedDate, reportPeriod, reforecastQuarterName, reportTypeIsActive, reportGenerationQueueId, reportName, showMRISourceForPayroll, activityTypes, allocationSubRegions, calculationMethod, glCategorization, currency, functionalDepartments, financialCategories, majorCategories, minorCategories, originatingSubRegions, entityTypes, propertyFunds, reportReceivers, isEU == 0 ? BusinessLayer.Automation.Enums.ReportType.BudgetOwnerReport : BusinessLayer.Automation.Enums.ReportType.BudgetOwnerEUReport); } return null; }
/// <summary> /// Generates an Expense Czar report generator for a specific report /// </summary> /// <param name="report">The report instance</param> /// <param name="reportGenerationQueueId">The report generation queue instance id</param> /// <param name="configuration">The configuration.</param> /// <param name="reportQueueStatusService">The report queue status service.</param> /// <returns>The report generator</returns> private static ExpenseCzarReportGenerator GetExpenseCzarReportGenerator( Report report, int reportGenerationQueueId, IReportGenerationConfiguration configuration, IReportQueueStatusService reportQueueStatusService) { ExpenseCzarReportParameter reportParameter = BuildExpenseCzarReportParameter( report, reportGenerationQueueId, configuration, reportQueueStatusService); return new ExpenseCzarReportGenerator(reportParameter, configuration, reportQueueStatusService); }
/// <summary> /// Generates a budget owner FTE report generator for a specific report /// </summary> /// <param name="report">The report Instance</param> /// <param name="reportGenerationQueueId">The report generation queue instance id</param> /// <param name="configuration">The configuration.</param> /// <param name="reportQueueStatusService">The report queue status service.</param> /// <returns></returns> private static BudgetOwnerFTEReportGenerator GetFTEBudgetOwnerReportGenerator( Report report, int reportGenerationQueueId, IReportGenerationConfiguration configuration, IReportQueueStatusService reportQueueStatusService) { BudgetOwnerFTEReportParameter reportParameter = BuildBudgetOwnerFTEReportParameter( report, reportGenerationQueueId, configuration, reportQueueStatusService); return new BudgetOwnerFTEReportGenerator(reportParameter, configuration, reportQueueStatusService); }
private void detach_Reports(Report entity) { this.SendPropertyChanging(); entity.ReportType = null; }
/// <summary> /// Creates a new Profitability Report Parameter object encapsulating all the report parameters /// </summary> /// <param name="report">The report for which to fetch the parameters</param> /// <param name="reportGenerationQueueId">The report generation queue instance id</param> /// <returns>The profitability report parameter object</returns> private static ProfitabilityReportParameter BuildProfitabilityReportParameter(Report report, int reportGenerationQueueId) { using (GenerationDao generationDao = DataAccessFactory.Create<GenerationDao>()) { ReportGenerationQueue reportGenerationQueue = generationDao.GetReportGenerationQueueItem(reportGenerationQueueId); if (reportGenerationQueue != null && report != null) { // Validate all parameters first, because the database does not enforce constraints if (report.ReportParameterShowMRISourceForPayroll == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterShowMRISourceForPayroll"); } if (report.ReportParameterCurrency == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterCurrency"); } if (report.ReportParameterDisplayOverheadBy == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterDisplayOverheadBy"); } if (report.ReportParameterIncludeGrossNonPayrollExpense == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterIncludeGrossNonPayrollExpense"); } if (report.ReportParameterIncludeFeeAdjustment == null) { throw new InvalidReportParameterException(report.ReportId, "ReportParameterIncludeFeeAdjustment"); } // Get all the parameters we need bool mustDeliverToTest = reportGenerationQueue.MustDeliverReportToTestLocation; bool showMRISourceForPayroll = report.ReportParameterShowMRISourceForPayroll.ShowMRISourceForPayroll; DateTime insertedDate = reportGenerationQueue.InsertedDate; int reportPeriod = reportGenerationQueue.Period; string reforecastQuarterName = reportGenerationQueue.ReforecastQuarterName; bool reportTypeIsActive = report.ReportType.IsActive; string reportName = report.Name; List<ParameterActivityType> activityTypes = new List<ParameterActivityType>(); foreach (ReportParameterActivityType reportParameterActivityType in report.ReportParameterActivityTypes) { activityTypes.Add(reportParameterActivityType.ParameterActivityType); } List<ParameterConsolidationRegion> consolidationRegions = new List<ParameterConsolidationRegion>(); foreach (ReportParameterConsolidationRegion reportParameterConsolidationRegion in report.ReportParameterConsolidationRegions) { consolidationRegions.Add(reportParameterConsolidationRegion.ParameterConsolidationRegion); } Currency currency = report.ReportParameterCurrency.Currency; ParameterDisplayOverheadBy displayOverheadBy = report.ReportParameterDisplayOverheadBy.ParameterDisplayOverheadBy; bool includeGrossNonPayrollExpense = report.ReportParameterIncludeGrossNonPayrollExpense.IncludeGrossNonPayrollExpense; bool includeFeeAdjustments = report.ReportParameterIncludeFeeAdjustment.IncludeFeeAdjustment; List<ParameterEntityType> entityTypes = new List<ParameterEntityType>(); foreach (ReportParameterEntityType reportParameterEntityType in report.ReportParameterEntityTypes) { entityTypes.Add(reportParameterEntityType.ParameterEntityType); } List<ParameterPropertyFund> propertyFunds = new List<ParameterPropertyFund>(); foreach (ReportParameterEntityType reportParameterEntityType in report.ReportParameterEntityTypes) { foreach (ReportParameterPropertyFund reportParameterPropertyFund in reportParameterEntityType.ReportParameterPropertyFunds) { propertyFunds.Add(reportParameterPropertyFund.ParameterPropertyFund); } } List<ParameterReportReceiver> reportReceivers = new List<ParameterReportReceiver>(); foreach (ReportParameterReportReceiver reportParameterReportReceiver in report.ReportParameterReportReceivers) { reportReceivers.Add(reportParameterReportReceiver.ParameterReportReceiver); } List<ParameterOriginatingSubRegion> overheadOriginatingSubRegions = new List<ParameterOriginatingSubRegion>(); if (report.ReportParameterDisplayOverheadBy != null) { foreach (ReportParameterDisplayOverheadByOriginatingSubRegion reportParameterOriginatingSubRegion in report.ReportParameterDisplayOverheadBy.ReportParameterDisplayOverheadByOriginatingSubRegions) { overheadOriginatingSubRegions.Add(reportParameterOriginatingSubRegion.ParameterOriginatingSubRegion); } } ParameterGLCategorization parameterGLCategorization = report.ReportParameterGLCategorization.ParameterGLCategorization; return new ProfitabilityReportParameter( parameterGLCategorization.Name, mustDeliverToTest, insertedDate, reportPeriod, reforecastQuarterName, reportTypeIsActive, reportGenerationQueueId, reportName, showMRISourceForPayroll, activityTypes, consolidationRegions, currency, displayOverheadBy: displayOverheadBy, includeGrossNonPayrollExpense: includeGrossNonPayrollExpense, includeFeeAdjustments: includeFeeAdjustments, entityTypes: entityTypes, propertyFunds: propertyFunds, reportReceivers: reportReceivers, overheadOriginatingSubRegions: overheadOriginatingSubRegions); } return null; } }
private void attach_Reports(Report entity) { this.SendPropertyChanging(); entity.ReportType = this; }
/// <summary> /// Gets a Budget Job Code Report DTO /// </summary> /// <param name="report">The report for which to create the DTO</param> /// <returns>The report parameter DTO object</returns> public static ReportParametersDTO GetBudgetJobCodeReportDTO(Report report) { List<string> entityTypeList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { entityTypeList.Add(entityType.ParameterEntityType == null ? InvalidParameterString : entityType.ParameterEntityType.Name); } List<string> entityList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { foreach (ReportParameterPropertyFund entity in entityType.ReportParameterPropertyFunds) { if (!entityList.Contains(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name)) { entityList.Add(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name); } } } List<string> functionalDepartmentList = new List<string>(); foreach (ReportParameterFunctionalDepartment functionalDepartment in report.ReportParameterFunctionalDepartments) { functionalDepartmentList.Add(functionalDepartment.ParameterFunctionalDepartment == null ? InvalidParameterString : functionalDepartment.ParameterFunctionalDepartment.Name); } List<string> allocationSubRegionList = new List<string>(); foreach (ReportParameterAllocationSubRegion allocationSubRegion in report.ReportParameterAllocationSubRegions) { allocationSubRegionList.Add(allocationSubRegion.ParameterAllocationSubRegion == null ? InvalidParameterString : allocationSubRegion.ParameterAllocationSubRegion.Name); } List<string> originatingSubRegionList = new List<string>(); foreach (ReportParameterOriginatingSubRegion originatingSubRegion in report.ReportParameterOriginatingSubRegions) { originatingSubRegionList.Add(originatingSubRegion.ParameterOriginatingSubRegion == null ? InvalidParameterString : originatingSubRegion.ParameterOriginatingSubRegion.Name); } List<string> reportReceiversList = new List<string>(); foreach (ReportParameterReportReceiver reportReceiver in report.ReportParameterReportReceivers) { if (reportReceiver.ParameterReportReceiver != null) { reportReceiversList.Add(reportReceiver.ParameterReportReceiver.StaffName); } } string reportParameterCurrency = report.ReportParameterCurrency == null ? InvalidParameterString : report.ReportParameterCurrency.CurrencyCode; bool? reportParameterShowMRISourceForPayroll = report.ReportParameterShowMRISourceForPayroll == null ? (bool?)null : report.ReportParameterShowMRISourceForPayroll.ShowMRISourceForPayroll; string reportParameterCalculationMethod = report.ReportParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod.Name; string reportParameterGLCategorization = report.ReportParameterGLCategorization == null ? InvalidParameterString : report.ReportParameterGLCategorization.ParameterGLCategorization == null ? InvalidParameterString : report.ReportParameterGLCategorization.ParameterGLCategorization.Name; return new ReportParametersDTO( report.ReportId, report.Name, EnumHelper.GetEnum<GRP.BusinessLayer.Automation.Enums.ReportType>(report.ReportType.Name), reportParameterCurrency, entityTypeList, entityList, reportParameterShowMRISourceForPayroll, reportParameterCalculationMethod, reportParameterGLCategorization, functionalDepartmentList, allocationSubRegionList, originatingSubRegionList, null, null, null, null, null, null, null, null, null, reportReceiversList, null); }
/// <summary> /// Creates a new instance of the <see cref="ReportParametersDTO"/> class /// </summary> /// <param name="report">The report for which to create a DTO object</param> /// <returns>The DTO object</returns> public static ReportParametersDTO GetReportDTO(Report report) { switch (EnumHelper.GetEnum<GRP.BusinessLayer.Automation.Enums.ReportType>(report.ReportType.Name)) { case GRP.BusinessLayer.Automation.Enums.ReportType.BudgetOriginatorReport: return GetBudgetOriginatorReportDTO(report); case GRP.BusinessLayer.Automation.Enums.ReportType.BudgetOwnerReport: return GetBudgetOwnerReportDTO(report); case GRP.BusinessLayer.Automation.Enums.ReportType.ExpenseCzarReport: return GetExpenseCzarReportDTO(report); case GRP.BusinessLayer.Automation.Enums.ReportType.BudgetOriginatorJobCodeDetailsReport: return GetBudgetJobCodeReportDTO(report); case GRP.BusinessLayer.Automation.Enums.ReportType.ProfitabilityReport: return GetProfitabilityReportDTO(report); default: throw new ReportValidationException("Invalid report type for report with ID " + report.ReportId); } }
/// <summary> /// Gets a Profitability Report DTO /// </summary> /// <param name="report">The report for which to create the DTO</param> /// <returns>The report parameter DTO object</returns> public static ReportParametersDTO GetProfitabilityReportDTO(Report report) { List<string> entityTypeList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { entityTypeList.Add(entityType.ParameterEntityType == null ? InvalidParameterString : entityType.ParameterEntityType.Name); } List<string> entityList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { foreach (ReportParameterPropertyFund entity in entityType.ReportParameterPropertyFunds) { if (!entityList.Contains(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name)) { entityList.Add(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name); } } } List<string> overheadOriginatingSubRegionList = new List<string>(); if (report.ReportParameterDisplayOverheadBy != null) { foreach (ReportParameterDisplayOverheadByOriginatingSubRegion originatingSubRegion in report.ReportParameterDisplayOverheadBy.ReportParameterDisplayOverheadByOriginatingSubRegions) { overheadOriginatingSubRegionList.Add(originatingSubRegion.ParameterOriginatingSubRegion == null ? InvalidParameterString : originatingSubRegion.ParameterOriginatingSubRegion.Name); } } List<string> consolidationRegionList = new List<string>(); foreach (ReportParameterConsolidationRegion consolidationRegion in report.ReportParameterConsolidationRegions) { consolidationRegionList.Add(consolidationRegion.ParameterConsolidationRegion == null ? InvalidParameterString : consolidationRegion.ParameterConsolidationRegion.Name); } List<string> reportReceiversList = new List<string>(); foreach (ReportParameterReportReceiver reportReceiver in report.ReportParameterReportReceivers) { if (reportReceiver.ParameterReportReceiver != null) { reportReceiversList.Add(reportReceiver.ParameterReportReceiver.StaffName); } } List<string> activityTypeList = new List<string>(); foreach (ReportParameterActivityType activityType in report.ReportParameterActivityTypes) { // we want to distinct the list of activity types, otherwise we will add one for each minor category, leading to duplicates if (!activityTypeList.Contains(activityType.ParameterActivityType == null ? InvalidParameterString : activityType.ParameterActivityType.Name)) { activityTypeList.Add(activityType.ParameterActivityType == null ? InvalidParameterString : activityType.ParameterActivityType.Name); } } string reportParameterCurrency = report.ReportParameterCurrency == null ? InvalidParameterString : report.ReportParameterCurrency.CurrencyCode; bool? reportParameterShowMRISourceForPayroll = report.ReportParameterShowMRISourceForPayroll == null ? (bool?)null : report.ReportParameterShowMRISourceForPayroll.ShowMRISourceForPayroll; string reportParameterCalculationMethod = report.ReportParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod.Name; string reportParameterGLCategorization = report.ReportParameterGLCategorization == null ? InvalidParameterString : report.ReportParameterGLCategorization.ParameterGLCategorization == null ? InvalidParameterString : report.ReportParameterGLCategorization.ParameterGLCategorization.Name; return new ReportParametersDTO( report.ReportId, report.Name, EnumHelper.GetEnum<GRP.BusinessLayer.Automation.Enums.ReportType>(report.ReportType.Name), reportParameterCurrency, entityTypeList, entityList, reportParameterShowMRISourceForPayroll, reportParameterCalculationMethod, reportParameterGLCategorization, null, null, null, null, null, null, activityTypeList, report.ReportParameterIncludeGrossNonPayrollExpense == null ? (bool?)null : report.ReportParameterIncludeGrossNonPayrollExpense.IncludeGrossNonPayrollExpense, report.ReportParameterIncludeFeeAdjustment == null ? (bool?)null : report.ReportParameterIncludeFeeAdjustment.IncludeFeeAdjustment, report.ReportParameterDisplayOverheadBy == null ? null : report.ReportParameterDisplayOverheadBy.ParameterDisplayOverheadBy.Name, overheadOriginatingSubRegionList, consolidationRegionList, reportReceiversList, null); }
/// <summary> /// Gets a Expense Czar Report DTO /// </summary> /// <param name="report">The report for which to create the DTO</param> /// <returns>The report parameter DTO object</returns> public static ReportParametersDTO GetExpenseCzarReportDTO(Report report) { List<string> entityTypeList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { entityTypeList.Add(entityType.ParameterEntityType == null ? InvalidParameterString : entityType.ParameterEntityType.Name); } List<string> entityList = new List<string>(); foreach (ReportParameterEntityType entityType in report.ReportParameterEntityTypes) { foreach (ReportParameterPropertyFund entity in entityType.ReportParameterPropertyFunds) { if (!entityList.Contains(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name)) { entityList.Add(entity.ParameterPropertyFund == null ? InvalidParameterString : entity.ParameterPropertyFund.Name); } } } List<string> functionalDepartmentList = new List<string>(); foreach (ReportParameterFunctionalDepartment functionalDepartment in report.ReportParameterFunctionalDepartments) { functionalDepartmentList.Add(functionalDepartment.ParameterFunctionalDepartment == null ? InvalidParameterString : functionalDepartment.ParameterFunctionalDepartment.Name); } List<string> allocationSubRegionList = new List<string>(); foreach (ReportParameterAllocationSubRegion allocationSubRegion in report.ReportParameterAllocationSubRegions) { allocationSubRegionList.Add(allocationSubRegion.ParameterAllocationSubRegion == null ? InvalidParameterString : allocationSubRegion.ParameterAllocationSubRegion.Name); } List<string> financialCategoryList = new List<string>(); List<string> majorCategoryList = new List<string>(); List<string> minorCategoryList = new List<string>(); List<string> activityTypeList = new List<string>(); MinorCategoryActivityTypeCombination minorCategoryActivityTypes = new MinorCategoryActivityTypeCombination(); if (report.ReportParameterGLCategorization != null) { foreach (ReportParameterGLFinancialCategory financialCategory in report.ReportParameterGLCategorization.ReportParameterGLFinancialCategories) { if (!financialCategoryList.Contains(financialCategory.ParameterGLFinancialCategory == null ? InvalidParameterString : financialCategory.ParameterGLFinancialCategory.Name)) { financialCategoryList.Add(financialCategory.ParameterGLFinancialCategory == null ? InvalidParameterString : financialCategory.ParameterGLFinancialCategory.Name); } foreach (ReportParameterGLMajorCategory majorCategory in financialCategory.ReportParameterGLMajorCategories) { if (!majorCategoryList.Contains(majorCategory.ParameterGLMajorCategory == null ? InvalidParameterString : majorCategory.ParameterGLMajorCategory.Name)) { majorCategoryList.Add(majorCategory.ParameterGLMajorCategory == null ? InvalidParameterString : majorCategory.ParameterGLMajorCategory.Name); } foreach (ReportParameterGLMinorCategory minorCategory in majorCategory.ReportParameterGLMinorCategories) { if (!minorCategoryList.Contains(minorCategory.ParameterGLMinorCategory == null ? InvalidParameterString : minorCategory.ParameterGLMinorCategory.Name)) { minorCategoryList.Add(minorCategory.ParameterGLMinorCategory == null ? InvalidParameterString : minorCategory.ParameterGLMinorCategory.Name); } if (minorCategory.ParameterGLMinorCategory != null) { foreach (ReportParameterGLMinorCategoryActivityType minorCategoryActivityType in minorCategory.ReportParameterGLMinorCategoryActivityTypes) { // we want to distinct the list of activity types, otherwise we will add one for each minor category, leading to duplicates if (!activityTypeList.Contains(minorCategoryActivityType.ParameterActivityType == null ? InvalidParameterString : minorCategoryActivityType.ParameterActivityType.Name)) { activityTypeList.Add(minorCategoryActivityType.ParameterActivityType == null ? InvalidParameterString : minorCategoryActivityType.ParameterActivityType.Name); } minorCategoryActivityTypes.AddMinorCategoryActivityType(minorCategoryActivityType.GroupId, minorCategory.ParameterGLMinorCategory == null ? InvalidParameterString : minorCategory.ParameterGLMinorCategory.Name, minorCategoryActivityType.ParameterActivityType == null ? InvalidParameterString : minorCategoryActivityType.ParameterActivityType.Name); } } } } } } List<string> reportReceiversList = new List<string>(); foreach (ReportParameterReportReceiver reportReceiver in report.ReportParameterReportReceivers) { if (reportReceiver.ParameterReportReceiver != null) { reportReceiversList.Add(reportReceiver.ParameterReportReceiver.StaffName); } } string reportParameterCurrency = report.ReportParameterCurrency == null ? InvalidParameterString : report.ReportParameterCurrency.CurrencyCode; bool? reportParameterShowMRISourceForPayroll = report.ReportParameterShowMRISourceForPayroll == null ? (bool?)null : report.ReportParameterShowMRISourceForPayroll.ShowMRISourceForPayroll; string reportParameterCalculationMethod = report.ReportParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod == null ? InvalidParameterString : report.ReportParameterCalculationMethod.ParameterCalculationMethod.Name; return new ReportParametersDTO( report.ReportId, report.Name, EnumHelper.GetEnum<GRP.BusinessLayer.Automation.Enums.ReportType>(report.ReportType.Name), reportParameterCurrency, entityTypeList, entityList, reportParameterShowMRISourceForPayroll, reportParameterCalculationMethod, "Global", functionalDepartmentList, allocationSubRegionList, null, financialCategoryList, majorCategoryList, minorCategoryList, activityTypeList, null, null, null, null, null, reportReceiversList, minorCategoryActivityTypes); }