public ActionResult HistoryEdit(ST_SurplusDay data)
        {
            if (ModelState.IsValid)
            {
                mST_SurplusDayDAO.Update(data);

                #region 修改庫存
                SetStock(data);
                #endregion
                #region 修改比data日期還大的庫存(限本月)

                DateTime lastDay = new DateTime(data.rec_date.AddMonths(1).Year, data.rec_date.AddMonths(1).Month, 1).AddDays(-1);

                List <ST_SurplusDay> edit_List = mST_SurplusDayDAO.GetDataByDateRange(data.rec_date, lastDay);

                foreach (ST_SurplusDay editData in edit_List)
                {
                    SetStock(editData);
                }
                #endregion

                return(RedirectToAction("Unsettlement"));
            }

            return(View(data));
        }
        // GET: ST_SurplusDay/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ST_SurplusDay data = mST_SurplusDayDAO.FetchBySerno(id);

            if (data == null)
            {
                return(HttpNotFound());
            }

            #region 計算當日支出
            List <ST_Purchase> purrchase_List = mST_PurcahseDAO.GetDataByDate(data.rec_date);

            data.expenditure = 0;

            foreach (ST_Purchase currPurchase in purrchase_List)
            {
                data.expenditure += currPurchase.purchase_price;
            }
            #endregion

            #region 計算當日盈餘
            data.surplus = data.turnover - data.expenditure;
            #endregion

            ViewData["user"] = Session["user"];

            data.emp_name = mST_EmpDAO.FetchByGuid(data.emp_guid).emp_name;

            return(View(data));
        }
        public ActionResult HistoryDeleteConfirmed(int id)
        {
            ST_SurplusDay data = mST_SurplusDayDAO.FetchBySerno(id);

            mST_SurplusDayDAO.SoftDelete(data);

            return(RedirectToAction("Unsettlement"));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            ST_SurplusDay data = mST_SurplusDayDAO.FetchBySerno(id);

            mST_SurplusDayDAO.SoftDelete(data);

            return(RedirectToAction("Index"));
        }
        public JsonResult CheckDate(ST_SurplusDay data)
        {
            if (data.rec_date != null)
            {
                if (data.rec_date > DateTime.Today)
                {
                    return(Json(false, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(true, JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Create(ST_SurplusDay data)
        {
            if (ModelState.IsValid)
            {
                data.guid = Guid.NewGuid();

                data.emp_guid = mST_EmpDAO.FetchByAccount(User.Identity.Name).guid;

                mST_SurplusDayDAO.Insert(data);

                SetStock(data);

                return(RedirectToAction("Index"));
            }

            return(View(data));
        }
        public ActionResult HistoryDelete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ST_SurplusDay data = mST_SurplusDayDAO.FetchBySerno(id);

            if (data == null)
            {
                return(HttpNotFound());
            }

            ViewData["user"] = Session["user"];

            return(View(data));
        }
        public ActionResult Edit(ST_SurplusDay data)
        {
            if (ModelState.IsValid)
            {
                mST_SurplusDayDAO.Update(data);

                #region 修改庫存
                SetStock(data);
                #endregion
                #region 修改比data日期還大的庫存

                List <ST_SurplusDay> edit_List = mST_SurplusDayDAO.GetDataWhichDateGreateThanSpecifyDate(data.rec_date);

                foreach (ST_SurplusDay editData in edit_List)
                {
                    SetStock(editData);
                }
                #endregion

                return(RedirectToAction("Index"));
            }

            return(View(data));
        }
        public void SetStock(ST_SurplusDay data)
        {
            ST_InStock currStock = mST_InStockDAO.FetchByDate(data.rec_date);

            ST_InStock recentStock = mST_InStockDAO.FetchRecentData(data.rec_date);

            if (currStock != null)
            {
                currStock.add_700  = data.count_700_add;
                currStock.add_850  = data.count_850_add;
                currStock.add_meal = data.count_meal_add;
                currStock.add_box  = data.count_box_add;

                currStock.use_700  = data.count_700_use_am + data.count_700_use_pm;
                currStock.use_850  = data.count_850_use_am + data.count_850_use_pm;
                currStock.use_meal = data.count_meal_use_am + data.count_meal_use_pm;
                currStock.use_box  = data.count_box_use_am + data.count_box_use_pm;

                if (recentStock != null)
                {
                    currStock.count_700  = recentStock.count_700 + currStock.add_700 - currStock.use_700;
                    currStock.count_850  = recentStock.count_850 + currStock.add_850 - currStock.use_850;
                    currStock.count_meal = recentStock.count_meal + currStock.add_meal - currStock.use_meal;
                    currStock.count_box  = recentStock.count_box + currStock.add_box - currStock.use_box;
                }
                else
                {
                    currStock.count_700  = currStock.add_700 - currStock.use_700;
                    currStock.count_850  = currStock.add_850 - currStock.use_850;
                    currStock.count_meal = currStock.add_meal - currStock.use_meal;
                    currStock.count_box  = currStock.add_box - currStock.use_box;
                }


                mST_InStockDAO.Update(currStock);
            }
            else if (currStock == null)
            {
                currStock = new ST_InStock();

                currStock.rec_date = data.rec_date;

                currStock.guid = Guid.NewGuid();

                currStock.add_700  = data.count_700_add;
                currStock.add_850  = data.count_850_add;
                currStock.add_meal = data.count_meal_add;
                currStock.add_box  = data.count_box_add;

                currStock.use_700  = data.count_700_use_am + data.count_700_use_pm;
                currStock.use_850  = data.count_850_use_am + data.count_850_use_pm;
                currStock.use_meal = data.count_meal_use_am + data.count_meal_use_pm;
                currStock.use_box  = data.count_box_use_am + data.count_box_use_pm;

                if (recentStock != null)
                {
                    currStock.count_700  = recentStock.count_700 + currStock.add_700 - currStock.use_700;
                    currStock.count_850  = recentStock.count_850 + currStock.add_850 - currStock.use_850;
                    currStock.count_meal = recentStock.count_meal + currStock.add_meal - currStock.use_meal;
                    currStock.count_box  = recentStock.count_box + currStock.add_box - currStock.use_box;
                }
                else
                {
                    currStock.count_700  = currStock.add_700 - currStock.use_700;
                    currStock.count_850  = currStock.add_850 - currStock.use_850;
                    currStock.count_meal = currStock.add_meal - currStock.use_meal;
                    currStock.count_box  = currStock.add_box - currStock.use_box;
                }

                mST_InStockDAO.Insert(currStock);
            }
        }