예제 #1
0
        public ActionResult Report(string id, string frmDate, string tDate)
        {
            if (id == null)
            {
                return View();
            }

            int ID;
            DateTime fromDate = new DateTime();
            DateTime toDate = new DateTime();
            if (!int.TryParse(id, out ID))
            {
                ViewBag.error = "Không thể lấy thống kê";
                return View();
            }

            if (ID != 6)
            {
                if (String.IsNullOrWhiteSpace(frmDate))
                {
                    //fromDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue;
                    fromDate = DateTime.Now.Date;
                }
                else
                {
                    if (!DateTime.TryParseExact(frmDate, "dd/MM/yyyy", null
                    , System.Globalization.DateTimeStyles.None
                    , out fromDate))
                    {
                        ViewBag.error = "Ngày bắt đầu bị sai";
                        return View();
                    }
                }

                if (String.IsNullOrWhiteSpace(tDate))
                {
                    toDate = DateTime.Now;
                }
                else
                {
                    if (!DateTime.TryParseExact(tDate, "dd/MM/yyyy", null
                        , System.Globalization.DateTimeStyles.None
                        , out toDate))
                    {
                        ViewBag.error = "Ngày kết thúc bị sai";
                        return View();
                    }
                    else
                    {
                        toDate = toDate.AddDays(1).AddTicks(-1);
                    }
                }
            }

            if (fromDate > toDate)
            {
                ViewBag.error = "Không thể lấy thống kê";
                return View();
            }

            //Lịch sử giao dịch
            if (ID == 1)
            {
                DataTable transactionDT = new TransactionHistoryListTableAdapter().GetDataByDate(fromDate, toDate);

                transactionDT.PrimaryKey = null;

                transactionDT.Columns.Remove("TransactionHistoryID");
                transactionDT.Columns.Remove("TransactionTypeID");
                transactionDT.Columns.Remove("IsAuto");

                transactionDT.Columns["Username"].SetOrdinal(0);
                transactionDT.Columns["Value"].SetOrdinal(1);
                transactionDT.Columns["TransactionContent"].SetOrdinal(2);
                transactionDT.Columns["Name"].SetOrdinal(3);
                transactionDT.Columns["InsertedDate"].SetOrdinal(4);

                transactionDT.Columns["Username"].ColumnName = "Tên đăng nhập";
                transactionDT.Columns["Value"].ColumnName = "Giá trị giao dịch";
                transactionDT.Columns["TransactionContent"].ColumnName = "Nội dung giao dịch";
                transactionDT.Columns["Name"].ColumnName = "Loại giao dịch";
                transactionDT.Columns["InsertedDate"].ColumnName = "Thời điểm giao dịch";

                CTMF_Website.Util.ExcelReport.ExportToExcel(transactionDT, "Lich_Su_Giao_Dich");
            }
            //Lịch sử ăn
            else if (ID == 2)
            {
                DataTable transactionDT = new TransactionHistoryListTableAdapter().GetEatingDataByDate(fromDate, toDate);

                transactionDT.PrimaryKey = null;

                transactionDT.Columns.Remove("TransactionHistoryID");
                transactionDT.Columns.Remove("TransactionTypeID");
                transactionDT.Columns.Remove("IsAuto");
                transactionDT.Columns.Remove("Name");

                transactionDT.Columns["Username"].SetOrdinal(0);
                transactionDT.Columns["Value"].SetOrdinal(1);
                transactionDT.Columns["TransactionContent"].SetOrdinal(2);
                transactionDT.Columns["InsertedDate"].SetOrdinal(3);

                transactionDT.Columns["Username"].ColumnName = "Tên đăng nhập";
                transactionDT.Columns["Value"].ColumnName = "Giá trị giao dịch";
                transactionDT.Columns["TransactionContent"].ColumnName = "Nội dung giao dịch";
                transactionDT.Columns["InsertedDate"].ColumnName = "Thời điểm giao dịch";

                CTMF_Website.Util.ExcelReport.ExportToExcel(transactionDT, "Lich_Su_An");
            }
            //Thống kế lượt ăn theo bữa
            else if (ID == 3)
            {
                DataTable eatTimeDT = new EatTimeTableAdapter().GetDataByDate(fromDate.Date, toDate.Date);

                eatTimeDT.Columns["Date"].SetOrdinal(0);
                eatTimeDT.Columns["Name"].SetOrdinal(1);
                eatTimeDT.Columns["EatTime"].SetOrdinal(2);

                eatTimeDT.Columns["Date"].ColumnName = "Ngày";
                eatTimeDT.Columns["Name"].ColumnName = "Tên bữa ăn";
                eatTimeDT.Columns["EatTime"].ColumnName = "Số lượt ăn";

                CTMF_Website.Util.ExcelReport.ExportToExcel(eatTimeDT, "Luot_An_Theo_Bua");
            }
            //Thông kê suất ăn được sử dụng
            else if (ID == 4)
            {
                DataTable mealSetEatTime = new MealSetEatTimeTableAdapter().GetDataByDate(fromDate, toDate);

                mealSetEatTime.Columns["MealSetID"].SetOrdinal(0);
                mealSetEatTime.Columns["Name"].SetOrdinal(1);
                mealSetEatTime.Columns["EatTime"].SetOrdinal(2);

                mealSetEatTime.Columns["MealSetID"].ColumnName = "Mã suất ăn";
                mealSetEatTime.Columns["Name"].ColumnName = "Tên suất ăn";
                mealSetEatTime.Columns["EatTime"].ColumnName = "Số lượt ăn";

                CTMF_Website.Util.ExcelReport.ExportToExcel(mealSetEatTime, "Luot_An_Theo_Suat");
            }
            //Thống kê món ăn được sử dụng
            else if (ID == 5)
            {
                DataTable dishEatTime = new DishEatTimeTableAdapter().GetDataByDate(fromDate, toDate);

                dishEatTime.Columns["DishID"].SetOrdinal(0);
                dishEatTime.Columns["Name"].SetOrdinal(1);
                dishEatTime.Columns["EatTime"].SetOrdinal(2);

                dishEatTime.Columns["DishID"].ColumnName = "Mã món ăn";
                dishEatTime.Columns["Name"].ColumnName = "Tên suất ăn";
                dishEatTime.Columns["EatTime"].ColumnName = "Số lượt ăn";

                CTMF_Website.Util.ExcelReport.ExportToExcel(dishEatTime, "Luot_An_Theo_Mon_An");
            }
            //Thống kê người dùng đang nợ tiền
            else if (ID == 6)
            {
                DataTable debtCustomer = new DebtCustomerTableAdapter().GetData();

                debtCustomer.Columns["Username"].SetOrdinal(0);
                debtCustomer.Columns["Name"].SetOrdinal(1);
                debtCustomer.Columns["Email"].SetOrdinal(2);
                debtCustomer.Columns["TypeName"].SetOrdinal(3);
                debtCustomer.Columns["Money"].SetOrdinal(4);

                debtCustomer.Columns["Username"].ColumnName = "Tên đăng nhập";
                debtCustomer.Columns["Name"].ColumnName = "Tên";
                debtCustomer.Columns["TypeName"].ColumnName = "Loại người dùng";
                debtCustomer.Columns["Money"].ColumnName = "Số tiền đang nợ";

                CTMF_Website.Util.ExcelReport.ExportToExcel(debtCustomer, "Nguoi_Dung_Dang_No");
            }

            return View();
        }
예제 #2
0
        public ActionResult TransactionHistory(string transactionType, string date, string page, string amountPerPage)
        {
            ViewBag.error = "";
            string username = AccountInfo.GetUserName(Request);

            TransactionHistoryListTableAdapter transactionAdapter
                = new TransactionHistoryListTableAdapter();

            int transactionTypeID;
            if (!int.TryParse(transactionType, out transactionTypeID))
            {
                transactionType = null;
            }

            DateTime date_;
            if (string.IsNullOrWhiteSpace(date))
            {
                date = null;
            }
            else if (!DateTime.TryParseExact(date, "dd/MM/yyyy", null
                , System.Globalization.DateTimeStyles.None
                , out date_))
            {
                ViewBag.error = "Sai định dạng ngày, tháng";
                date = null;
            }
            else
            {
                date = date_.ToString("yyyy-MM-dd");
            }

            int page_;
            if (!int.TryParse(page, out page_))
            {
                page = null;
                page_ = 1;
            }

            int amountPerPage_;
            if (!int.TryParse(amountPerPage, out amountPerPage_))
            {
                amountPerPage = "10";
                amountPerPage_ = 10;
            }

            try
            {
                string query = "SELECT * FROM ( SELECT TH.TransactionHistoryID, TH.Username, TH.TransactionTypeID, "
                    + "TH.Value, TH.TransactionContent, TH.IsAuto, TH.InsertedDate, TT.Name, ROW_NUMBER() OVER "
                    + "(ORDER BY TH.InsertedDate DESC) AS RowNum FROM TransactionHistory AS TH INNER JOIN "
                    + "TransactionType AS TT ON TH.TransactionTypeID = TT.TransactionTypeID "
                    + "WHERE (TH.Username = '******') ";
                string conditionQuery = "";
                string countQuery = "select COUNT(th.TransactionHistoryID) from TransactionHistory TH WHERE  (TH.Username = '******') ";

                if (transactionType != null || date != null)
                {
                    if (transactionType != null)
                    {
                        conditionQuery += "AND TH.TransactionTypeID = " + transactionType + " ";
                    }

                    if (date != null)
                    {
                        conditionQuery += "AND TH.InsertedDate BETWEEN '" + date + " 00:00:000' AND '" + date + " 23:59:59:999' ";
                    }
                }

                transactionAdapter.Connection.Open();

                SqlCommand countCmd = new SqlCommand(countQuery + conditionQuery, transactionAdapter.Connection);
                int count = (int)countCmd.ExecuteScalar();

                int maxPage = (count / amountPerPage_);
                if (count % amountPerPage_ != 0)
                {
                    maxPage++;
                }

                ViewBag.maxPage = maxPage;
                if (page_ > maxPage)
                {
                    page_ = maxPage;
                }

                ViewBag.curPage = page_;
                ViewBag.amountPerPage = amountPerPage_;

                int minRowNum = ((page_ - 1) * amountPerPage_) + 1;
                int maxRowNum = page_ * amountPerPage_;

                query += conditionQuery;
                query += ") AS SOD WHERE SOD.RowNum BETWEEN (" + minRowNum + ") AND (" + maxRowNum + ") ";

                SqlCommand getDataCmd = new SqlCommand(query, transactionAdapter.Connection);
                SqlDataAdapter getDataAdapter = new SqlDataAdapter(getDataCmd);

                getDataAdapter.Fill(transactionDT);

                DataTable transactionTypeDT = new TransactionTypeTableAdapter().GetData();
                List<KeyValuePair<int, string>> transactionTypes = new List<KeyValuePair<int, string>>();

                foreach (DataRow row in transactionTypeDT.Rows)
                {
                    transactionTypes.Add(new KeyValuePair<int, string>(
                        row.Field<int>("TransactionTypeID"),
                        row.Field<string>("Name")));
                }

                ViewBag.transactionTypes = transactionTypes;
            }
            catch (Exception ex)
            {
                Log.ErrorLog(ex.Message);
                return View("Error");
            }

            return View(transactionDT);
        }