public static ReportTaskState RunGenareteReport(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var state = new ReportTaskState { Id = GetCacheKey(), Status = ReportTaskStatus.Queued, ReportType = reportType, Percentage = 0, IsCompleted = false, ErrorText = null, FileName = GetFileName(reportType), FileId = 0 }; SetCacheValue(state); var th = new Thread(StartGenareteReport); th.Start(new ReportTaskParameters { TaskState = state, TenantId = TenantProvider.CurrentTenantID, CurrentUser = SecurityContext.CurrentAccount.ID, ReportType = reportType, TimePeriod = timePeriod, Managers = managers, Url = HttpContext.Current != null ? HttpContext.Current.Request.GetUrlRewriter().ToString() : null }); return(state); }
public ReportState RunGenareteReport(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var reportData = GetReportData(reportType, timePeriod, managers); if (reportData == null) { throw new Exception(CRMReportResource.ErrorNullReportData); } var tmpFileName = DocbuilderReportsUtility.TmpFileName; var script = GetReportScript(reportData, reportType, tmpFileName); if (string.IsNullOrEmpty(script)) { throw new Exception(CRMReportResource.ErrorNullReportScript); } var reportStateData = new ReportStateData( GetFileName(reportType), tmpFileName, script, (int)reportType, ReportOrigin.CRM, SaveReportFile, null, _tenantManager.GetCurrentTenant().TenantId, _securityContext.CurrentAccount.ID); var state = new ReportState(_serviceProvider, reportStateData, _httpContext); _docbuilderReportsUtilityHelper.Enqueue(state); return(state); }
public bool CheckReportData(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var reportDao = _daoFactory.GetReportDao(); throw new NotImplementedException(); //switch (reportType) //{ // case ReportType.SalesByManagers: // return reportDao.CheckSalesByManagersReportData(timePeriod, managers); // case ReportType.SalesForecast: // return reportDao.CheckSalesForecastReportData(timePeriod, managers); // case ReportType.SalesFunnel: // return reportDao.CheckSalesFunnelReportData(timePeriod, managers); // case ReportType.WorkloadByContacts: // return reportDao.CheckWorkloadByContactsReportData(timePeriod, managers); // case ReportType.WorkloadByTasks: // return reportDao.CheckWorkloadByTasksReportData(timePeriod, managers); // case ReportType.WorkloadByDeals: // return reportDao.CheckWorkloadByDealsReportData(timePeriod, managers); // case ReportType.WorkloadByInvoices: // return reportDao.CheckWorkloadByInvoicesReportData(timePeriod, managers); // case ReportType.WorkloadByVoip: // return reportDao.CheckWorkloadByViopReportData(timePeriod, managers); // case ReportType.SummaryForThePeriod: // return reportDao.CheckSummaryForThePeriodReportData(timePeriod, managers); // case ReportType.SummaryAtThisMoment: // return reportDao.CheckSummaryAtThisMomentReportData(timePeriod, managers); // default: // return false; //} }
public void OutputReportTimePeriod(ReportTimePeriod valueSet) { OutputStatusMessage(string.Format("Values in {0}", valueSet.GetType())); foreach (var value in Enum.GetValues(typeof(ReportTimePeriod))) { OutputStatusMessage(value.ToString()); } }
public ReportState GenerateReport(ReportType type, ReportTimePeriod timePeriod, Guid[] managers) { if (!Global.CanCreateReports) { throw CRMSecurity.CreateSecurityException(); } return(ReportHelper.RunGenareteReport(type, timePeriod, managers)); }
public ReportTaskState GenerateReport(ReportType type, ReportTimePeriod timePeriod, Guid[] managers) { if (!Global.CanCreateReports) { throw CRMSecurity.CreateSecurityException(); } var state = ReportHelper.GetCurrentState(); return(state ?? ReportHelper.RunGenareteReport(type, timePeriod, managers)); }
public object CheckReportData(ReportType type, ReportTimePeriod timePeriod, Guid[] managers) { if (!Global.CanCreateReports) { throw CRMSecurity.CreateSecurityException(); } return(new { hasData = ReportHelper.CheckReportData(type, timePeriod, managers), missingRates = ReportHelper.GetMissingRates(type) }); }
private static object GetReportData(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { using (var scope = DIHelper.Resolve()) { var reportDao = scope.Resolve <DaoFactory>().ReportDao; var defaultCurrency = Global.TenantSettings.DefaultCurrency.Abbreviation; switch (reportType) { case ReportType.SalesByManagers: return(reportDao.GetSalesByManagersReportData(timePeriod, managers, defaultCurrency)); case ReportType.SalesForecast: return(reportDao.GetSalesForecastReportData(timePeriod, managers, defaultCurrency)); case ReportType.SalesFunnel: return(reportDao.GetSalesFunnelReportData(timePeriod, managers, defaultCurrency)); case ReportType.WorkloadByContacts: return(reportDao.GetWorkloadByContactsReportData(timePeriod, managers)); case ReportType.WorkloadByTasks: return(reportDao.GetWorkloadByTasksReportData(timePeriod, managers)); case ReportType.WorkloadByDeals: return(reportDao.GetWorkloadByDealsReportData(timePeriod, managers, defaultCurrency)); case ReportType.WorkloadByInvoices: return(reportDao.GetWorkloadByInvoicesReportData(timePeriod, managers)); case ReportType.WorkloadByVoip: return(reportDao.GetWorkloadByViopReportData(timePeriod, managers)); case ReportType.SummaryForThePeriod: return(reportDao.GetSummaryForThePeriodReportData(timePeriod, managers, defaultCurrency)); case ReportType.SummaryAtThisMoment: return(reportDao.GetSummaryAtThisMomentReportData(timePeriod, managers, defaultCurrency)); default: return(null); } } }
public static bool CheckReportData(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { using (var scope = DIHelper.Resolve()) { var reportDao = scope.Resolve <DaoFactory>().ReportDao; switch (reportType) { case ReportType.SalesByManagers: return(reportDao.CheckSalesByManagersReportData(timePeriod, managers)); case ReportType.SalesForecast: return(reportDao.CheckSalesForecastReportData(timePeriod, managers)); case ReportType.SalesFunnel: return(reportDao.CheckSalesFunnelReportData(timePeriod, managers)); case ReportType.WorkloadByContacts: return(reportDao.CheckWorkloadByContactsReportData(timePeriod, managers)); case ReportType.WorkloadByTasks: return(reportDao.CheckWorkloadByTasksReportData(timePeriod, managers)); case ReportType.WorkloadByDeals: return(reportDao.CheckWorkloadByDealsReportData(timePeriod, managers)); case ReportType.WorkloadByInvoices: return(reportDao.CheckWorkloadByInvoicesReportData(timePeriod, managers)); case ReportType.WorkloadByVoip: return(reportDao.CheckWorkloadByViopReportData(timePeriod, managers)); case ReportType.SummaryForThePeriod: return(reportDao.CheckSummaryForThePeriodReportData(timePeriod, managers)); case ReportType.SummaryAtThisMoment: return(reportDao.CheckSummaryAtThisMomentReportData(timePeriod, managers)); default: return(false); } } }
private object GetReportData(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var crmSettings = _settingsManager.Load <CrmSettings>(); var reportDao = _daoFactory.GetReportDao(); var defaultCurrency = _currencyProvider.Get(crmSettings.DefaultCurrency).Abbreviation; switch (reportType) { case ReportType.SalesByManagers: return(reportDao.GetSalesByManagersReportData(timePeriod, managers, defaultCurrency)); case ReportType.SalesForecast: return(reportDao.GetSalesForecastReportData(timePeriod, managers, defaultCurrency)); case ReportType.SalesFunnel: return(reportDao.GetSalesFunnelReportData(timePeriod, managers, defaultCurrency)); case ReportType.WorkloadByContacts: return(reportDao.GetWorkloadByContactsReportData(timePeriod, managers)); case ReportType.WorkloadByTasks: return(reportDao.GetWorkloadByTasksReportData(timePeriod, managers)); case ReportType.WorkloadByDeals: return(reportDao.GetWorkloadByDealsReportData(timePeriod, managers, defaultCurrency)); case ReportType.WorkloadByInvoices: return(reportDao.GetWorkloadByInvoicesReportData(timePeriod, managers)); case ReportType.WorkloadByVoip: return(reportDao.GetWorkloadByViopReportData(timePeriod, managers)); case ReportType.SummaryForThePeriod: return(reportDao.GetSummaryForThePeriodReportData(timePeriod, managers, defaultCurrency)); case ReportType.SummaryAtThisMoment: return(reportDao.GetSummaryAtThisMomentReportData(timePeriod, managers, defaultCurrency)); default: return(null); } }
public static bool CheckReportData(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var reportDao = Global.DaoFactory.GetReportDao(); switch (reportType) { case ReportType.SalesByManagers: return(reportDao.CheckSalesByManagersReportData(timePeriod, managers)); case ReportType.SalesForecast: return(reportDao.CheckSalesForecastReportData(timePeriod, managers)); case ReportType.SalesFunnel: return(reportDao.CheckSalesFunnelReportData(timePeriod, managers)); case ReportType.WorkloadByContacts: return(reportDao.CheckWorkloadByContactsReportData(timePeriod, managers)); case ReportType.WorkloadByTasks: return(reportDao.CheckWorkloadByTasksReportData(timePeriod, managers)); case ReportType.WorkloadByDeals: return(reportDao.CheckWorkloadByDealsReportData(timePeriod, managers)); case ReportType.WorkloadByInvoices: return(reportDao.CheckWorkloadByInvoicesReportData(timePeriod, managers)); case ReportType.WorkloadByVoip: return(reportDao.CheckWorkloadByViopReportData(timePeriod, managers)); case ReportType.SummaryForThePeriod: return(reportDao.CheckSummaryForThePeriodReportData(timePeriod, managers)); case ReportType.SummaryAtThisMoment: return(reportDao.CheckSummaryAtThisMomentReportData(timePeriod, managers)); default: return(false); } }
public static ReportState RunGenareteReport(ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { var reportData = GetReportData(reportType, timePeriod, managers); if (reportData == null) { throw new Exception(CRMReportResource.ErrorNullReportData); } var tmpFileName = DocbuilderReportsUtility.TmpFileName; var script = GetReportScript(reportData, reportType, tmpFileName); if (string.IsNullOrEmpty(script)) { throw new Exception(CRMReportResource.ErrorNullReportScript); } var state = new ReportState(GetFileName(reportType), tmpFileName, script, (int)reportType, ReportOrigin.CRM, SaveReportFile, null); DocbuilderReportsUtility.Enqueue(state); return(state); }
private static void GenareteReport(ReportTaskState state, ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { state.Status = ReportTaskStatus.Started; state.Percentage = 10; SetCacheValue(state); var reportData = GetReportData(reportType, timePeriod, managers); if (reportData != null) { state.Percentage = 50; } else { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = CRMReportResource.ErrorNullReportData; state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } var script = GetReportScript(reportData, reportType); if (!string.IsNullOrEmpty(script)) { state.Percentage = 60; } else { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = CRMReportResource.ErrorNullReportScript; state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } try { Dictionary <string, string> urls; state.BuilderKey = DocumentServiceConnector.DocbuilderRequest(null, script, true, out urls); state.Percentage = 80; } catch (Exception ex) { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = ex.Message; state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } InsertItem(state); }
private static void GenareteReport(ReportTaskState state, ReportType reportType, ReportTimePeriod timePeriod, Guid[] managers) { state.Status = ReportTaskStatus.Started; state.Percentage = 10; SetCacheValue(state); var reportData = GetReportData(reportType, timePeriod, managers); if (reportData != null) { state.Percentage = 50; } else { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = CRMReportResource.ErrorNullReportData; state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } var script = GetReportScript(reportData, reportType); if (!string.IsNullOrEmpty(script)) { state.Percentage = 60; } else { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = CRMReportResource.ErrorNullReportScript; state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } state.Response = DocumentService.DocbuilderRequest(FilesLinkUtility.DocServiceDocbuilderUrl, null, script, true, FileUtility.SignatureSecret); if (state.Response != null && state.Response.Error == 0) { state.Percentage = 80; } else { state.Percentage = 100; state.IsCompleted = true; state.ErrorText = state.Response == null ? CRMReportResource.ErrorNullDocbuilderResponse : state.Response.GetErrorText(); state.Status = ReportTaskStatus.Failed; } SetCacheValue(state); if (state.Status == ReportTaskStatus.Failed) { return; } InsertItem(state); }