Example #1
0
        public int CompareTo(object obj)
        {
            WorkdayInfo b = obj as WorkdayInfo;

            if (this.SysNo > b.SysNo)
            {
                return(1);
            }
            else
            {
                return(-1);
            }
        }
Example #2
0
        public int Update(WorkdayInfo oParam)
        {
            string sql = @"UPDATE Workday SET
                            Name=@Name, Date=@Date,
                            TimeSpan=@TimeSpan, Week=@Week,
                            Status=@Status
                            WHERE SysNo=@SysNo";
            SqlCommand cmd = new SqlCommand(sql);

            SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int, 4);
            SqlParameter paramName = new SqlParameter("@Name", SqlDbType.NVarChar, 50);
            SqlParameter paramDate = new SqlParameter("@Date", SqlDbType.DateTime);
            SqlParameter paramTimeSpan = new SqlParameter("@TimeSpan", SqlDbType.Int, 4);
            SqlParameter paramWeek = new SqlParameter("@Week", SqlDbType.Int, 4);
            SqlParameter paramStatus = new SqlParameter("@Status", SqlDbType.Int, 4);

            if (oParam.SysNo != AppConst.IntNull)
                paramSysNo.Value = oParam.SysNo;
            else
                paramSysNo.Value = System.DBNull.Value;
            if (oParam.Name != AppConst.StringNull)
                paramName.Value = oParam.Name;
            else
                paramName.Value = System.DBNull.Value;
            if (oParam.Date != AppConst.DateTimeNull)
                paramDate.Value = oParam.Date;
            else
                paramDate.Value = System.DBNull.Value;
            if (oParam.TimeSpan != AppConst.IntNull)
                paramTimeSpan.Value = oParam.TimeSpan;
            else
                paramTimeSpan.Value = System.DBNull.Value;
            if (oParam.Week != AppConst.IntNull)
                paramWeek.Value = oParam.Week;
            else
                paramWeek.Value = System.DBNull.Value;
            if (oParam.Status != AppConst.IntNull)
                paramStatus.Value = oParam.Status;
            else
                paramStatus.Value = System.DBNull.Value;

            cmd.Parameters.Add(paramSysNo);
            cmd.Parameters.Add(paramName);
            cmd.Parameters.Add(paramDate);
            cmd.Parameters.Add(paramTimeSpan);
            cmd.Parameters.Add(paramWeek);
            cmd.Parameters.Add(paramStatus);

            return SqlHelper.ExecuteNonQuery(cmd);
        }
Example #3
0
        public int Insert(WorkdayInfo oParam)
        {
            string sql = @"INSERT INTO Workday
                            (
                            Name, Date, TimeSpan, Week,
                            Status
                            )
                            VALUES (
                            @Name, @Date, @TimeSpan, @Week,
                            @Status
                            );set @SysNo = SCOPE_IDENTITY();";
            SqlCommand cmd = new SqlCommand(sql);

            SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int, 4);
            SqlParameter paramName = new SqlParameter("@Name", SqlDbType.NVarChar, 50);
            SqlParameter paramDate = new SqlParameter("@Date", SqlDbType.DateTime);
            SqlParameter paramTimeSpan = new SqlParameter("@TimeSpan", SqlDbType.Int, 4);
            SqlParameter paramWeek = new SqlParameter("@Week", SqlDbType.Int, 4);
            SqlParameter paramStatus = new SqlParameter("@Status", SqlDbType.Int, 4);
            paramSysNo.Direction = ParameterDirection.Output;
            if (oParam.Name != AppConst.StringNull)
                paramName.Value = oParam.Name;
            else
                paramName.Value = System.DBNull.Value;
            if (oParam.Date != AppConst.DateTimeNull)
                paramDate.Value = oParam.Date;
            else
                paramDate.Value = System.DBNull.Value;
            if (oParam.TimeSpan != AppConst.IntNull)
                paramTimeSpan.Value = oParam.TimeSpan;
            else
                paramTimeSpan.Value = System.DBNull.Value;
            if (oParam.Week != AppConst.IntNull)
                paramWeek.Value = oParam.Week;
            else
                paramWeek.Value = System.DBNull.Value;
            if (oParam.Status != AppConst.IntNull)
                paramStatus.Value = oParam.Status;
            else
                paramStatus.Value = System.DBNull.Value;

            cmd.Parameters.Add(paramSysNo);
            cmd.Parameters.Add(paramName);
            cmd.Parameters.Add(paramDate);
            cmd.Parameters.Add(paramTimeSpan);
            cmd.Parameters.Add(paramWeek);
            cmd.Parameters.Add(paramStatus);

            return SqlHelper.ExecuteNonQuery(cmd, out oParam.SysNo);
        }
Example #4
0
        public static void AddWorkdayPeriod(string datefrom, string dateto)
        {
            TransactionOptions options = new TransactionOptions();
            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                DateTime dtfrom = Convert.ToDateTime(datefrom);
                DateTime dtto = Convert.ToDateTime(dateto);

                string sql = "select top 1 * from workday where [date] = '" + dtfrom.AddDays(-1).ToString(AppConst.DateFormat) + "' order by [date] desc";
                DataSet ds = SqlHelper.ExecuteDataSet(sql);
                if (!Util.HasMoreRow(ds))
                {
                    throw new BizException("�밴˳����ӹ�����");
                }

                int dayCount = Util.DateDiff(dtfrom, dtto);
                for (int i = 0; i <= dayCount; i++)
                {
                    DateTime curDay = dtfrom.AddDays(i);
                    WorkdayInfo oInfo = new WorkdayInfo();
                    int weekid = Util.GetWeekID(curDay.DayOfWeek);
                    string weekname = Util.GetWeekName(weekid);
                    oInfo.Name = curDay.ToString(AppConst.DateFormat) + " " + weekname + " ����";
                    oInfo.Date = curDay;
                    oInfo.TimeSpan = 1;
                    oInfo.Week = weekid;
                    if (weekid != 7)
                        oInfo.Status = (int)AppEnum.BiStatus.Valid;
                    else
                        oInfo.Status = (int)AppEnum.BiStatus.InValid;

                    if (GetOneWorkday(oInfo) != null)
                        throw new BizException("�ظ��Ĺ�����");
                    InsertWorkday(oInfo);

                    oInfo.Name = curDay.ToString(AppConst.DateFormat) + " " + weekname + " ����";
                    oInfo.TimeSpan = 2;
                    if (GetOneWorkday(oInfo) != null)
                        throw new BizException("�ظ��Ĺ�����");
                    InsertWorkday(oInfo);
                }
                scope.Complete();
            }
        }
Example #5
0
 public static int UpdateWorkday(WorkdayInfo oParam)
 {
     return new WorkdayDac().Update(oParam);
 }
Example #6
0
 public static WorkdayInfo LoadWorkday(int sysno)
 {
     string sql = "select * from workday where sysno=" + sysno;
     DataSet ds = SqlHelper.ExecuteDataSet(sql);
     if (Util.HasMoreRow(ds))
     {
         WorkdayInfo oInfo = new WorkdayInfo();
         Map(oInfo, ds.Tables[0].Rows[0]);
         return oInfo;
     }
     else
         return null;
 }
Example #7
0
 public static int InsertWorkday(WorkdayInfo oParam)
 {
     return new WorkdayDac().Insert(oParam);
 }
Example #8
0
 public static DataSet GetOneWorkday(WorkdayInfo oParam)
 {
     string sql = "select * from workday where date=" + Util.ToSqlString(oParam.Date.ToString(AppConst.DateFormat)) + " and TimeSpan=" + oParam.TimeSpan;
     DataSet ds = SqlHelper.ExecuteDataSet(sql);
     if (Util.HasMoreRow(ds))
         return ds;
     else
         return null;
 }
Example #9
0
 private static void Map(WorkdayInfo oParam, DataRow tempdr)
 {
     oParam.SysNo = Util.TrimIntNull(tempdr["SysNo"]);
     oParam.Name = Util.TrimNull(tempdr["Name"]);
     oParam.Date = Util.TrimDateNull(tempdr["Date"]);
     oParam.TimeSpan = Util.TrimIntNull(tempdr["TimeSpan"]);
     oParam.Week = Util.TrimIntNull(tempdr["Week"]);
     oParam.Status = Util.TrimIntNull(tempdr["Status"]);
 }
Example #10
0
        public static SortedList GetDeliveryTime(bool HasEnoughAvailableQty, DateTime OrderTime, int Top)
        {
            string sToday = DateTime.Now.ToString("yyyy-MM-dd");
            DateTime dt11 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 11:30");  //�����ֹ11:30

            if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
                dt11 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 11:30");  //���������ֹ11:30
            else if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                dt11 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 00:01");  //���������ֹ00:01

            DateTime dt17 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 23:59");  //�����ֹ23:59
            if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                dt17 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 18:00");  //���������ֹ18:00

            DateTime dt15 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 18:00");  //���������ֹ18:00

            int iTimeSpan = 0;
            if (OrderTime.CompareTo(dt11) <= 0)  //����11:30ǰ
            {
                iTimeSpan = 1;
            }
            else if (OrderTime.CompareTo(dt17) <= 0)  //����23:59ǰ
            {
                iTimeSpan = 2;
            }
            else  //�㵽�ڶ�������
            {
                sToday = Convert.ToDateTime(sToday).AddDays(1).ToString(AppConst.DateFormat);
                iTimeSpan = 1;
            }

            string sql = "select @top * from workday where sysno >= (select sysno from workday where [date]='" + sToday + "' and timespan='" + iTimeSpan + "') order by sysno";
            sql = sql.Replace("@top", " top " + Convert.ToString(Top + 10));

            DataSet ds = SqlHelper.ExecuteDataSet(sql);
            if (!Util.HasMoreRow(ds))
                return null;

            int iRowCount = 0;
            SortedList sl = new SortedList();
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                if (iRowCount == 0 || Util.TrimIntNull(dr["status"]) == (int)AppEnum.BiStatus.Valid)
                {
                    WorkdayInfo oInfo = new WorkdayInfo();
                    Map(oInfo, dr);
                    sl.Add(oInfo, null);

                    iRowCount++;
                    if (iRowCount == Top)
                        break;
                }
            }
            if (Util.TrimIntNull(ds.Tables[0].Rows[0]["status"]) != (int)AppEnum.BiStatus.Valid)  //����ʱ��Ϊ�ǹ���ʱ��
                sl.RemoveAt(0);
            if (!HasEnoughAvailableQty)  //�������������Ƴٰ���,
            {
                sl.RemoveAt(0);
            }
            sl.RemoveAt(0);

            if (!HasEnoughAvailableQty) //��������������µĶ�������Ҫ�����ܶ�����
            {
                if ((DateTime.Now.DayOfWeek == DayOfWeek.Saturday && DateTime.Now > dt15) || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                {
                    WorkdayInfo tempInfo = (WorkdayInfo)sl.GetKey(0);
                    if (tempInfo.Date.DayOfWeek == DayOfWeek.Sunday)
                        sl.RemoveAt(0);

                    tempInfo = (WorkdayInfo)sl.GetKey(0);
                    if (tempInfo.Date.DayOfWeek == DayOfWeek.Sunday)
                        sl.RemoveAt(0);

                    tempInfo = (WorkdayInfo)sl.GetKey(0);
                    if (tempInfo.Date.DayOfWeek == DayOfWeek.Monday)
                        sl.RemoveAt(0);

                    tempInfo = (WorkdayInfo)sl.GetKey(0);
                    if (tempInfo.Date.DayOfWeek == DayOfWeek.Monday)
                        sl.RemoveAt(0);
                }
            }

            return sl;
        }