Beispiel #1
0
        /// <summary>
        /// 获取按时计费策略表
        /// </summary>
        /// <param name="tempID"></param>
        /// <returns></returns>
        public JsonResult FindHourDetail(int tempID)
        {
            CWTariff         cwtariff = new CWTariff();
            HourChargeDetail policy   = cwtariff.FindHourChgDetail(hr => hr.TempChgID == tempID);

            if (policy == null)
            {
                List <HourChargeDetail> hourList = cwtariff.FindHourChgDetailList();
                if (hourList.Count > 0)
                {
                    policy = hourList[0];
                    if (policy != null)
                    {
                        policy.TempChgID = tempID;
                        cwtariff.UpdateHourChgDetail(policy);
                    }
                }
                else
                {
                    policy             = new HourChargeDetail();
                    policy.TempChgID   = tempID;
                    policy.StrideDay   = EnmStrideDay.Continue;
                    policy.CycleTime   = EnmCycleTime.Hour_24;
                    policy.CycleTopFee = 0;
                    cwtariff.AddHourChgDetail(policy);
                }
            }
            return(Json(policy, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        public ActionResult ModifyTempRuleOfHour()
        {
            Response resp    = new Response();
            CWTariff cwtarff = new CWTariff();
            int      mainID  = 0;
            string   mID     = Request.Form["MID"];

            if (!string.IsNullOrEmpty(mID))
            {
                TempChargingRule rule = cwtarff.FindTempChgRule(Convert.ToInt32(mID));
                if (rule != null)
                {
                    string preID = Request.Form["PreID"];
                    string tType = Request.Form["TType"];

                    rule.TempChgType = (EnmTempChargeType)Convert.ToInt16(tType);
                    rule.PreChgID    = Convert.ToInt32(preID);

                    cwtarff.UpdateTempChgRule(rule);

                    mainID = rule.ID;
                }
            }
            string hourID = Request.Form["hourID"];

            if (!string.IsNullOrEmpty(hourID))
            {
                string strided = Request.Form["StrideDay"];
                string cyclet  = Request.Form["CycleTime"];
                string topfee  = Request.Form["StrideTopFee"];
                if (hourID == "0")
                {
                    //新增
                    HourChargeDetail hour = new HourChargeDetail
                    {
                        StrideDay   = (EnmStrideDay)Convert.ToInt16(strided),
                        CycleTime   = (EnmCycleTime)Convert.ToInt16(cyclet),
                        CycleTopFee = Convert.ToSingle(topfee),
                        TempChgID   = mainID
                    };
                    resp = cwtarff.AddHourChgDetail(hour);
                }
                else
                {
                    //修改
                    HourChargeDetail detail = cwtarff.FindHourChgDetail(Convert.ToInt32(hourID));
                    if (detail != null)
                    {
                        detail.StrideDay   = (EnmStrideDay)Convert.ToInt16(strided);
                        detail.CycleTime   = (EnmCycleTime)Convert.ToInt16(cyclet);
                        detail.CycleTopFee = Convert.ToSingle(topfee);

                        resp = cwtarff.UpdateHourChgDetail(detail);
                    }
                }
            }
            resp.Message = "修改数据成功";
            return(Json(resp));
        }
Beispiel #3
0
        public ActionResult AddHourSectionRule()
        {
            Response resp    = new Response();
            CWTariff cwtarff = new CWTariff();

            string hourchgID = Request.Form["HourChgID"];

            if (string.IsNullOrEmpty(hourchgID))
            {
                resp.Message = "周期性计费策略ID为空,传输错误!";
                return(Json(resp));
            }
            int hourID = Convert.ToInt32(hourchgID);
            HourChargeDetail temprule = cwtarff.FindHourChgDetail(hourID);

            if (temprule == null)
            {
                resp.Message = "传输错误,找不到相关的周期性计费,ID-" + hourchgID;
                return(Json(resp));
            }

            //重点是时间段的判断
            string start = Request.Form["StartTime"];
            string end   = Request.Form["EndTime"];

            DateTime st_dtime  = DateTime.Parse("2017-1-1 " + start + ":00");
            DateTime end_dtime = DateTime.Parse("2017-1-1 " + end + ":00").AddSeconds(-1);

            if (DateTime.Compare(st_dtime, end_dtime) > 0)
            {
                end_dtime = end_dtime.AddDays(1);
            }

            List <HourSectionInfo> timeSlotLst = cwtarff.FindHourSectionList(hr => true);

            foreach (HourSectionInfo section in timeSlotLst)
            {
                DateTime sttime  = section.StartTime;
                DateTime endtime = section.EndTime.AddSeconds(-1);
                #region
                if (DateTime.Compare(sttime, st_dtime) < 0 && DateTime.Compare(endtime, st_dtime) > 0)
                {
                    resp.Message = "当前时段设置错误,原来-" + sttime.ToString() + ",现-" + st_dtime.ToString();
                    return(Json(resp));
                }

                if (DateTime.Compare(sttime, end_dtime) < 0 && DateTime.Compare(endtime, end_dtime) > 0)
                {
                    resp.Message = "当前时段设置错误,原来-" + sttime.ToString() + ",现-" + end_dtime.ToString();
                    return(Json(resp));
                }
                if (DateTime.Compare(st_dtime, sttime) < 0 && DateTime.Compare(end_dtime, sttime) > 0)
                {
                    resp.Message = "当前时段设置错误,现-" + st_dtime.ToString() + ",原来 - " + sttime.ToString();
                    return(Json(resp));
                }
                if (DateTime.Compare(st_dtime, endtime) < 0 && DateTime.Compare(end_dtime, endtime) > 0)
                {
                    resp.Message = "当前时段设置错误,现-" + st_dtime.ToString() + ",原来 - " + endtime.ToString();
                    return(Json(resp));
                }
                #endregion

                if (DateTime.Compare(endtime, DateTime.Parse("2017-1-1 23:59:59")) > 0)
                {
                    DateTime newstart = DateTime.Parse("2017-1-1");
                    DateTime newend   = endtime.AddDays(-1);

                    if (DateTime.Compare(newstart, st_dtime) < 0 && DateTime.Compare(newend, st_dtime) > 0)
                    {
                        resp.Message = "当前时段设置错误,现-" + st_dtime.ToString() + ",原来 New- " + newstart.ToString();
                        return(Json(resp));
                    }

                    if (DateTime.Compare(newstart, end_dtime) < 0 && DateTime.Compare(newend, end_dtime) > 0)
                    {
                        resp.Message = "当前时段设置错误,现-" + end_dtime.ToString() + ",原来 New- " + newstart.ToString();
                        return(Json(resp));
                    }
                }
            }

            if (DateTime.Compare(end_dtime, DateTime.Parse("2017-1-1 23:59:59")) > 0)
            {
                DateTime newend = DateTime.Parse("2017-1-1 " + end + ":00").AddSeconds(-1);
                foreach (HourSectionInfo section in timeSlotLst)
                {
                    DateTime sttime  = section.StartTime;
                    DateTime endtime = section.EndTime.AddSeconds(-1);

                    if (DateTime.Compare(sttime, newend) < 0 && DateTime.Compare(endtime, newend) > 0)
                    {
                        resp.Message = "当前时段设置错误,原来-" + sttime.ToString() + ",现-" + newend.ToString();
                        return(Json(resp));
                    }
                }
            }

            string topfee       = Request.Form["SectionTopFee"];
            string freetime     = Request.Form["SectionFreeTime"];
            string firstvoid    = Request.Form["FirstVoidTime"];
            string firstfee     = Request.Form["FirstVoidFee"];
            string intervalvoid = Request.Form["IntervalVoidTime"];
            string intervalfee  = Request.Form["IntervalVoidFee"];

            HourSectionInfo hoursection = new HourSectionInfo()
            {
                HourChgID        = hourID,
                StartTime        = st_dtime,
                EndTime          = end_dtime.AddSeconds(1),
                SectionTopFee    = Convert.ToSingle(topfee),
                SectionFreeTime  = freetime,
                FirstVoidTime    = firstvoid,
                FirstVoidFee     = Convert.ToSingle(firstfee),
                IntervalVoidTime = intervalvoid,
                IntervalVoidFee  = Convert.ToSingle(intervalfee)
            };
            resp = cwtarff.AddHourSection(hoursection);

            return(Json(resp));
        }