Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        /// <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);
            }
        }