/// <summary> /// 判断是否配置数据统计 /// </summary> /// <returns></returns> public bool ObjectIsConfig(ReportQueryModel model, out int objectid) { objectid = 0; IObjectConfig dal = DataSwitchConfig.CreateObjectConfig(); SqlParameter[] parameter = { new SqlParameter("@objectid", SqlDbType.NVarChar), new SqlParameter("@itemcodeid", SqlDbType.Int), new SqlParameter("@unit", SqlDbType.Int), new SqlParameter("@objecttype", SqlDbType.Int) }; parameter[0].Value = model.objectid; parameter[1].Value = model.itemcode; parameter[2].Value = CommDataTool.ConvertBaseCountType(model.unit); parameter[3].Value = model.objecttype; DataTable becmcountdt = dal.GetList(" objectid=@objectid and objecttype=@objecttype and itemcodeid=@itemcodeid and unit=@unit", "objectid", parameter); if (becmcountdt.Rows.Count.Equals(0)) { return(false); } objectid = int.Parse(becmcountdt.Rows[0][0].ToString()); return(true); }
public void TimeInReport_ReportDateIsNotValidDate_ReturnsReportDateIncorrectError() { ReportQueryModel input = new ReportQueryModel() { UserName = "******", ReportDate = "incorrect date" }; Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>()); timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>()); user.Setup(x => x.GetUser(input.UserName)).Returns(new User() { UserKey = 1, FirstName = "John", LastName = "Doe", IsActive = true, UserName = "******", UserPassword = "******", CreateUserId = "john.doe", CreateDttm = DateTime.Now, UpdateUserId = "john.doe", UpdateDttm = DateTime.Now }); ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object); var output = app.GenerateMonthlyReport(input); Assert.AreEqual("Invalid report date selected.", output.QueryStatus); }
public IHttpActionResult GenerateEmployeeMonthyReport([FromBody] ReportQueryModel employeeReport) { var container = ContainerConfig.Configure(); using (var scope = container.BeginLifetimeScope()) { var app = scope.Resolve <ITimeInEmployeeReport>(); ReportQueryModel getReport = new ReportQueryModel() { ReportDate = employeeReport.ReportDate, UserName = employeeReport.UserName }; GeneratedReportModel result = app.GenerateMonthlyReport(getReport); return(Json(result)); } }
public StringBuilder GetTrueCountID(string[] ItemcodeArr, string[] ObjectArr, ReportQueryModel model) { StringBuilder CountList = new StringBuilder(); for (int i = 0; i < ObjectArr.Length; i++) { for (int j = 0; j < ItemcodeArr.Length; j++) { int tempid = 0; ReportQueryModel newmodel = model; model.objectid = ObjectArr[i]; model.itemcode = int.Parse(ItemcodeArr[j]); if (ObjectIsConfig(newmodel, out tempid)) { CountList.AppendFormat(",{0}", tempid.ToString()); } } } return(CountList); }
public void TimeInReport_WhenEmployeeIsNotFound_ReturnsEmployeeNotFoundError() { ReportQueryModel input = new ReportQueryModel() { UserName = "******", ReportDate = DateTime.Now.ToString() }; Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>()); timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>()); user.Setup(x => x.GetUser(input.UserName)).Returns((User)null); ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object); var output = app.GenerateMonthlyReport(input); Assert.AreEqual("Employee not found.", output.QueryStatus); }
public void TimeInReport_WhenUserNameIsBlank_ReturnsUserIsNameBlankError() { ReportQueryModel input = new ReportQueryModel() { UserName = "", ReportDate = DateTime.Now.ToString() }; Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>()); timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>()); user.Setup(x => x.GetUser(input.UserName)).Returns(new User()); ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object); var output = app.GenerateMonthlyReport(input); Assert.AreEqual("Employee username is blank.", output.QueryStatus); }
public string Report([FromBody] ReportQueryModel queryModel) { if (queryModel == null) { throw new ArgumentNullException(nameof(queryModel)); } if (string.IsNullOrWhiteSpace(queryModel.ReportName)) { throw new ArgumentNullException(nameof(queryModel.ReportName)); } var report = new StiReport(); if (queryModel.ReportName == "CashBookReport") { if (!_sessionContext.HasPermission(Permissions.CashBookView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <CashBookQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/CashBookReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.CurrentDate.Date; report["endDate"] = model.CurrentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["accountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; report["chiefAccountantName"] = _branchContext.Configuration.LegalSettings.ChiefAccountantName; report["cashierName"] = _branchContext.Configuration.LegalSettings.CashierName; } else if (queryModel.ReportName == "CashBalanceReport") { if (!_sessionContext.HasPermission(Permissions.CashBalanceView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <CashBalanceQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/CashBalanceReport.mrt")); report["userId"] = _sessionContext.UserId; report["beginDate"] = model.CurrentDate.Date; report["endDate"] = model.CurrentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["accountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; } else if (queryModel.ReportName == "CashReport") { if (!_sessionContext.HasPermission(Permissions.CashReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <CashReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/CashReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = new DateTime(model.Year, model.Month, 1); report["endDate"] = new DateTime(model.Year, model.Month, 1, 23, 59, 59).AddMonths(1).AddDays(-1); report["cashAccountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; report["goldAccountId"] = _branchContext.Configuration.CashOrderSettings.GoldCollateralSettings.SellingSettings.CreditId; report["autoAccountId"] = _branchContext.Configuration.CashOrderSettings.CarCollateralSettings.SellingSettings.CreditId; report["goodsAccountId"] = _branchContext.Configuration.CashOrderSettings.GoodCollateralSettings.SellingSettings.CreditId; report["machineryAccountId"] = _branchContext.Configuration.CashOrderSettings.MachineryCollateralSettings.SellingSettings.CreditId; } else if (queryModel.ReportName == "SellingReport") { if (!_sessionContext.HasPermission(Permissions.SellingReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <SellingReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/SellingReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["status"] = model.Status ?? 0; } else if (queryModel.ReportName == "DelayReport") { if (!_sessionContext.HasPermission(Permissions.DelayReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <DelayReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/DelayReport.mrt")); report["beginDelayCount"] = model.BeginDelayCount; report["endDelayCount"] = model.EndDelayCount; report["collateralType"] = model.CollateralType; report["branchId"] = model.BranchId; } else if (queryModel.ReportName == "DailyReport") { if (!_sessionContext.HasPermission(Permissions.DailyReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <DailyReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/DailyReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.CurrentDate.Date; report["endDate"] = model.CurrentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["accountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; } else if (queryModel.ReportName == "ConsolidateReport") { if (!_sessionContext.HasPermission(Permissions.ConsolidateReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ConsolidateReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ConsolidateReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["cashAccountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; report["goldAccountId"] = _branchContext.Configuration.CashOrderSettings.GoldCollateralSettings.SellingSettings.CreditId ?? 0; report["autoAccountId"] = _branchContext.Configuration.CashOrderSettings.CarCollateralSettings.SellingSettings.CreditId ?? 0; report["goodsAccountId"] = _branchContext.Configuration.CashOrderSettings.GoodCollateralSettings.SellingSettings.CreditId ?? 0; report["machineryAccountId"] = _branchContext.Configuration.CashOrderSettings.MachineryCollateralSettings.SellingSettings.CreditId ?? 0; report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "SfkConsolidateReport") { if (!_sessionContext.HasPermission(Permissions.ConsolidateReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ConsolidateReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/SfkConsolidateReport.mrt")); report["branchId"] = model.BranchId; if (model.IsPeriod == true) { report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else { report["beginDate"] = model.BeginDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } report["userId"] = _sessionContext.UserId; report["isPeriod"] = model.IsPeriod; } else if (queryModel.ReportName == "DiscountReport") { if (!_sessionContext.HasPermission(Permissions.DiscountReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <DiscountReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/DiscountReport.mrt")); report["branchId"] = model.BranchId; if (model.Month == 0) { report["beginDate"] = new DateTime(model.Year, 1, 1); report["endDate"] = new DateTime(model.Year, 12, 31, 23, 59, 59); } else { report["beginDate"] = new DateTime(model.Year, model.Month, 1); report["endDate"] = new DateTime(model.Year, model.Month, 1, 23, 59, 59).AddMonths(1).AddDays(-1); } } else if (queryModel.ReportName == "AccountCardReport") { if (!_sessionContext.HasPermission(Permissions.AccountCardView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <AccountCardQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/AccountCardReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["accountId"] = model.AccountId; } else if (queryModel.ReportName == "AccountCycleReport") { if (!_sessionContext.HasPermission(Permissions.AccountCycleView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <AccountCycleQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/AccountCycleReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else if (queryModel.ReportName == "GoldPriceReport") { if (!_sessionContext.HasPermission(Permissions.GoldPriceView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <GoldPriceQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/GoldPriceReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["queryPrice"] = model.QueryPrice; } else if (queryModel.ReportName == "ExpenseMonthReport") { if (!_sessionContext.HasPermission(Permissions.ExpenseMonthReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ExpenseMonthReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ExpenseMonthReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = new DateTime(model.Year, model.Month, 1); report["endDate"] = new DateTime(model.Year, model.Month, 1, 23, 59, 59).AddMonths(1).AddDays(-1); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "ExpenseYearReport") { if (!_sessionContext.HasPermission(Permissions.ExpenseYearReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ExpenseYearReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ExpenseYearReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = new DateTime(model.Year, 1, 1); report["endDate"] = new DateTime(model.Year, 12, 31, 23, 59, 59); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "OperationalReport") { if (!_sessionContext.HasPermission(Permissions.OperationalReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <OperationalReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/OperationalReport.mrt")); report["beginDate"] = model.BeginDate; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; report["cashAccountId"] = _branchContext.Configuration.CashOrderSettings.CashAccountId; report["goldAccountId"] = _branchContext.Configuration.CashOrderSettings.GoldCollateralSettings.SellingSettings.CreditId; report["autoAccountId"] = _branchContext.Configuration.CashOrderSettings.CarCollateralSettings.SellingSettings.CreditId; report["goodsAccountId"] = _branchContext.Configuration.CashOrderSettings.GoodCollateralSettings.SellingSettings.CreditId; report["machineryAccountId"] = _branchContext.Configuration.CashOrderSettings.MachineryCollateralSettings.SellingSettings.CreditId; report["sfkTransferAccountId"] = _branchContext.Configuration.CashOrderSettings.CarTransferSettings.SupplyDebtSettings.DebitId; report["sfkBuyoutAccountId"] = _branchContext.Configuration.CashOrderSettings.CarTransferSettings.DebtSettings.CreditId; } else if (queryModel.ReportName == "SplitProfitReport") { if (!_sessionContext.HasPermission(Permissions.SplitProfitReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <SplitProfitReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/SplitProfitReport.mrt")); report["branchId"] = model.BranchId; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "InsuranceReport") { if (!_sessionContext.HasPermission(Permissions.InsuranceReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <InsuranceReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/InsuranceReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; report["status"] = model.Status; } else if (queryModel.ReportName == "OrderRegisterReport") { if (!_sessionContext.HasPermission(Permissions.OrderRegisterView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <OrderRegisterQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/OrderRegisterReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; report["accountType"] = model.AccountType; report["accountId"] = model.AccountId; } else if (queryModel.ReportName == "ProfitReport") { if (!_sessionContext.HasPermission(Permissions.ProfitReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ProfitReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ProfitReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; report["collateralType"] = model.CollateralType; } else if (queryModel.ReportName == "SfkProfitReport") { if (!_sessionContext.HasPermission(Permissions.ProfitReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ProfitReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/SfkProfitReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; report["collateralType"] = model.CollateralType; } else if (queryModel.ReportName == "ReconciliationReport") { if (!_sessionContext.HasPermission(Permissions.ReconciliationReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ReconciliationReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ReconciliationReport.mrt")); report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else if (queryModel.ReportName == "ConsolidateProfitReport") { if (!_sessionContext.HasPermission(Permissions.ProfitReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ConsolidateProfitReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ConsolidateProfitReport.mrt")); report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["collateralType"] = model.CollateralType; } else if (queryModel.ReportName == "SfkConsolidateProfitReport") { if (!_sessionContext.HasPermission(Permissions.ProfitReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ConsolidateProfitReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/SfkConsolidateProfitReport.mrt")); report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["collateralType"] = model.CollateralType; } else if (queryModel.ReportName == "PaymentReport") { if (!_sessionContext.HasPermission(Permissions.PaymentReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <PaymentReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/PaymentReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.CurrentDate.Date; report["endDate"] = model.CurrentDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else if (queryModel.ReportName == "IssuanceReport") { if (!_sessionContext.HasPermission(Permissions.IssuanceReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <IssuanceReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/IssuanceReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "ReinforceAndWithdrawReport") { if (!_sessionContext.HasPermission(Permissions.ReinforceAndWithdrawReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } var model = JsonConvert.DeserializeObject <ReinforceAndWithdrawReportQueryModel>(queryModel.ReportQuery); report.Load(StiNetCoreHelper.MapPath(this, "Reports/ReinforceAndWithdrawReport.mrt")); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else if (queryModel.ReportName == "SfkTransferedReport") { if (!_sessionContext.HasPermission(Permissions.ConsolidateReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } report.Load(StiNetCoreHelper.MapPath(this, "Reports/SfkTransferedReport.mrt")); } else if (queryModel.ReportName == "AccountableReport") { if (!_sessionContext.HasPermission(Permissions.AccountableReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } report.Load(StiNetCoreHelper.MapPath(this, "Reports/AccountableReport.mrt")); var model = JsonConvert.DeserializeObject <AccountableReportQueryModel>(queryModel.ReportQuery); report["accountIds"] = string.Join(",", model.AccountIds); report["branchIds"] = string.Join(",", model.BranchIds); report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "NotificationReport") { if (!_sessionContext.HasPermission(Permissions.NotificationReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } report.Load(StiNetCoreHelper.MapPath(this, "Reports/NotificationReport.mrt")); var model = JsonConvert.DeserializeObject <NotificationReportQueryModel>(queryModel.ReportQuery); report["branchId"] = model.BranchId; report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.BeginDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); report["userId"] = _sessionContext.UserId; } else if (queryModel.ReportName == "RegionMonitoringReport") { if (!_sessionContext.HasPermission(Permissions.RegionMonitoringReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } report.Load(StiNetCoreHelper.MapPath(this, "Reports/RegionMonitoringReport.mrt")); var model = JsonConvert.DeserializeObject <RegionMonitoringReportQueryModel>(queryModel.ReportQuery); report["branchIds"] = string.Join(",", model.BranchIds); report["beginDate"] = model.BeginDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } else if (queryModel.ReportName == "StatisticsReport") { if (!_sessionContext.HasPermission(Permissions.StatisticsReportView)) { throw new PawnshopApplicationException("У вас недостаточно прав для просмотра отчета, обратитесь к администратору"); } report.Load(StiNetCoreHelper.MapPath(this, "Reports/StatisticsReport.mrt")); var model = JsonConvert.DeserializeObject <StatisticsReportQueryModel>(queryModel.ReportQuery); report["branchIds"] = string.Join(",", model.BranchIds); report["beginDate"] = model.BeginDate.Date; report["endDate"] = model.EndDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); } var sqlDatabase = (report.Dictionary.Databases["ReportConnection"] as StiSqlDatabase) ?? ((StiSqlDatabase)report.Dictionary.Databases[0]); sqlDatabase.ConnectionString = _options.DatabaseConnectionString; report.Render(); return(report.SaveDocumentJsonToString()); }
public void TimeInReport_ReportQueryIscorrect_ReturnsReportGeneratedSuccessMessage() { ReportQueryModel input = new ReportQueryModel() { UserName = "******", ReportDate = DateTime.Now.ToString() }; Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); timeIn.Setup(x => x.GetEmployeeMonthTimeIn(1, DateTime.Parse(input.ReportDate))).Returns(new List <DailyTimeIn>() { new DailyTimeIn { TimeInId = 1, ActivityCd = 1, EmployeeId = 10001, IsActive = true, TimeInDttm = DateTime.Parse(input.ReportDate), CreateUserId = "john.doe", CreateDttm = DateTime.Parse(input.ReportDate), UpdateUserId = "john.doe", UpdateDttm = DateTime.Parse(input.ReportDate), Activity = new Activity { ActivityId = 1, ActivityNm = "Activity", IsActive = true, CreateUserId = "Admin", CreateDttm = DateTime.Now, UpdateUserId = "Admin", UpdateDttm = DateTime.Now } } }); timeOut.Setup(x => x.GetEmployeeMonthTimeOut(1, DateTime.Parse(input.ReportDate))).Returns(new List <DailyTimeOut>() { new DailyTimeOut { TimeInId = 1, ActivityCd = 1, EmployeeId = 10001, IsActive = true, TimeOutDttm = DateTime.Parse(input.ReportDate), CreateUserId = "john.doe", CreateDttm = DateTime.Parse(input.ReportDate), UpdateUserId = "john.doe", UpdateDttm = DateTime.Parse(input.ReportDate) } }); user.Setup(x => x.GetUser(input.UserName)).Returns(new User() { UserKey = 1, FirstName = "John", LastName = "Doe", IsActive = true, UserName = "******", UserPassword = "******", CreateUserId = "john.doe", CreateDttm = DateTime.Now, UpdateUserId = "john.doe", UpdateDttm = DateTime.Now }); ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object); var output = app.GenerateMonthlyReport(input); Assert.AreEqual("Report generated.", output.QueryStatus); }
/// <summary> /// /// </summary> /// <param name="report"></param> /// <returns></returns> public GeneratedReportModel GenerateMonthlyReport(ReportQueryModel report) { DateTime reportDate; GeneratedReportModel result = new GeneratedReportModel(); if (report == null) { result.QueryStatus = "No data being processed."; return(result); } if (report.UserName == "") { result.QueryStatus = "Employee username is blank."; return(result); } bool dateStringCheck = DateTime.TryParse(report.ReportDate, out reportDate); if (!dateStringCheck) { result.QueryStatus = "Invalid report date selected."; return(result); } if (reportDate < DateTime.Parse("1900-01-01") || reportDate > DateTime.Now) { result.QueryStatus = "Invalid report date selected."; return(result); } var userQuery = _userDataAccess.GetUser(report.UserName); if (userQuery == null) { result.QueryStatus = "Employee not found."; return(result); } var timeIn = _timeInDataAccess.GetEmployeeMonthTimeIn(userQuery.UserKey, reportDate); var timeOut = _timeOutDataAccess.GetEmployeeMonthTimeOut(userQuery.UserKey, reportDate); if (timeIn.Count == 0 && timeOut.Count == 0) { result.QueryStatus = "No data available."; return(result); } if (timeIn.Count == 0) { result.TimeList = timeOut.Select(x => new TimeInTimeOut { ActivityName = x.Activity.ActivityNm, TImeOutDateTime = x.TimeOutDttm.ToString(), TimeInDateTime = null }).ToList(); result.QueryStatus = "Report generated."; return(result); } else if (timeOut.Count == 0) { result.TimeList = timeIn.Select(x => new TimeInTimeOut { ActivityName = x.Activity.ActivityNm, TImeOutDateTime = null, TimeInDateTime = x.TimeInDttm.ToString() }).ToList(); result.QueryStatus = "Report generated."; return(result); } else { //result.TimeList = timeIn.Join(timeOut.DefaultIfEmpty(), // ti => ti.TimeInDttm.Date, // to => to.TimeOutDttm.Date, // (ti, to) => new TimeInTimeOut // { // ActivityName = ti.Activity.ActivityNm, // TimeInDateTime = ti.TimeInDttm, // TImeOutDateTime = to.TimeOutDttm // }).ToList(); result.TimeList = (from ti in timeIn join to in timeOut.DefaultIfEmpty() on ti.TimeInDttm.Date equals to.TimeOutDttm.Date into tito from to in tito.DefaultIfEmpty() select new TimeInTimeOut { ActivityName = ti.Activity.ActivityNm, TimeInDateTime = ti.TimeInDttm.ToString(), TImeOutDateTime = to?.TimeOutDttm.ToString() } ).ToList(); result.QueryStatus = "Report generated."; return(result); } }