public bool SyncWeekPlan(TimeSheetsEntity model)
        {
            WeekPlanApplication planApp = new WeekPlanApplication();

            DateTime weekDay = model.SheetDate;

            //DateTime weekDay = DateTime.Now.AddDays(7);
            int weekOfDay = (int)weekDay.DayOfWeek;

            weekOfDay = weekOfDay == 0 ? 7 : weekOfDay;
            weekDay   = weekDay.AddDays(-weekOfDay).AddDays(7);
            List <TimeSheetTicket> listTimeSheetTicket = GetTimesheetTicket(0, model.SheetDate, model.SheetDate, false,
                                                                            UserID, 0);

            string  description = "";
            string  tickets     = "";
            decimal hours       = 0;

            foreach (var timeSheet in listTimeSheetTicket)
            {
                description += timeSheet.TicketID + ": " + timeSheet.TicketTitle + "\r\n";
                tickets     += timeSheet.TicketID + "_";
                hours       += timeSheet.Hours;
            }
            WeekPlanEntity entity = planApp.GetInfo(UserID, weekDay);

            if (entity == null)
            {
                entity = new WeekPlanEntity();

                entity.WeekDay           = weekDay.Date;
                entity.UserID            = UserInfo.UserID;
                entity.CreateDate        = DateTime.Now;
                entity.UpdateDate        = DateTime.Now;
                entity.UpdateUserID      = UserInfo.UserID;
                entity.IsDeleted         = false;
                entity.Monday            = "";
                entity.MondayTickets     = "";
                entity.MondayEstimate    = 0;
                entity.Tuesday           = "";
                entity.TuesdayTickets    = "";
                entity.TuesdayEstimate   = 0;
                entity.Wednesday         = "";
                entity.WednesdayTickets  = "";
                entity.WednesdayEstimate = 0;
                entity.Thursday          = "";
                entity.ThursdayTickets   = "";
                entity.ThursdayEstimate  = 0;
                entity.Friday            = "";
                entity.FridayTickets     = "";
                entity.FridayEstimate    = 0;
                entity.Saturday          = "";
                entity.SaturdayTickets   = "";
                entity.SaturdayEstimate  = 0;
                entity.Sunday            = "";
                entity.SundayTickets     = "";
                entity.SundayEstimate    = 0;
            }
            switch (weekOfDay)
            {
            case 1:
                entity.Monday         = description;
                entity.MondayTickets  = tickets;
                entity.MondayEstimate = (int)hours;
                break;

            case 2:
                entity.Tuesday         = description;
                entity.TuesdayTickets  = tickets;
                entity.TuesdayEstimate = (int)hours;
                break;

            case 3:
                entity.Wednesday         = description;
                entity.WednesdayTickets  = tickets;
                entity.WednesdayEstimate = (int)hours;
                break;

            case 4:
                entity.Thursday         = description;
                entity.ThursdayTickets  = tickets;
                entity.ThursdayEstimate = (int)hours;
                break;

            case 5:
                entity.Friday         = description;
                entity.FridayTickets  = tickets;
                entity.FridayEstimate = (int)hours;
                break;

            case 6:
                entity.Saturday         = description;
                entity.SaturdayTickets  = tickets;
                entity.SaturdayEstimate = (int)hours;
                break;

            case 7:
                entity.Sunday         = description;
                entity.SundayTickets  = tickets;
                entity.SundayEstimate = (int)hours;
                break;
            }

            if (entity.ID > 0)
            {
                return(planApp.Update(entity, true));
            }
            else
            {
                return(planApp.Add(entity) > 0);
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            WeekPlanEntity entity = new WeekPlanEntity();
            int            id;

            if (int.TryParse(hfID.Value, out id))
            {
                //编辑
                entity.ID           = id;
                entity.UpdateDate   = DateTime.Now;
                entity.UpdateUserID = UserInfo.UserID;
            }
            else  //新建
            {
                DateTime weekDay   = DateTime.Now.AddDays(7);
                int      weekOfDay = (int)weekDay.DayOfWeek;
                weekOfDay = weekOfDay == 0 ? 7 : weekOfDay;
                weekDay   = weekDay.AddDays(-weekOfDay).AddDays(7);

                if (QS("id", 0) == 0 && QS("oldplan", 0) == 1) // 追加本周计划
                {
                    weekDay = weekDay.AddDays(-7);
                }

                entity.WeekDay      = weekDay.Date;
                entity.UserID       = UserInfo.UserID;
                entity.CreateDate   = DateTime.Now;
                entity.UpdateDate   = DateTime.Now;
                entity.UpdateUserID = UserInfo.UserID;
                entity.IsDeleted    = false;
            }

            entity.Sunday         = (txtSunday.Text).Replace("\r\n", "<br>");
            entity.SundayEstimate = txtSunday.Text == "" ? 0 : int.Parse(ddlSundayEst.SelectedValue);


            entity.Monday         = (txtMonday.Text).Replace("\r\n", "<br>");
            entity.MondayEstimate = txtMonday.Text == "" ? 0 : int.Parse(ddlMondayEst.SelectedValue);


            entity.Tuesday         = (txtTuesday.Text).Replace("\r\n", "<br>");
            entity.TuesdayEstimate = txtTuesday.Text == "" ? 0 : int.Parse(ddlTuesdayEst.SelectedValue);

            entity.Wednesday         = (txtWednesday.Text).Replace("\r\n", "<br>");
            entity.WednesdayEstimate = txtWednesday.Text == "" ? 0 : int.Parse(ddlWednesdayEst.SelectedValue);

            entity.Thursday         = (txtThursday.Text).Replace("\r\n", "<br>");
            entity.ThursdayEstimate = txtThursday.Text == "" ? 0 : int.Parse(ddlThursdayEst.SelectedValue);

            entity.Friday         = (txtFriday.Text).Replace("\r\n", "<br>");
            entity.FridayEstimate = txtFriday.Text == "" ? 0 : int.Parse(ddlFridayEst.SelectedValue);

            entity.Saturday         = (txtSaturday.Text).Replace("\r\n", "<br>");
            entity.SaturdayEstimate = txtSaturday.Text == "" ? 0 : int.Parse(ddlSaturdayEst.SelectedValue);

            entity.MondayTickets    = mondayTicketIds.Value;
            entity.TuesdayTickets   = tuesdayTicketIds.Value;
            entity.WednesdayTickets = wednesdayTicketIds.Value;
            entity.ThursdayTickets  = thursdayTicketIds.Value;
            entity.FridayTickets    = fridayTicketIds.Value;
            entity.SaturdayTickets  = saturdayTicketIds.Value;
            entity.SundayTickets    = sundayTicketIds.Value;


            if (id > 0)
            {
                bool result;
                if (UserInfo.Role == RolesEnum.ADMIN || UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.Sales)
                {
                    result = planApp.Update(entity, false);
                }
                else
                {
                    result = planApp.Update(entity, true);
                }

                if (result)
                {
                    RedirectBack("Index.aspx");
                }
                else
                {
                    ShowFailMessageToClient(planApp.BrokenRuleMessages);
                }
            }
            else
            {
                if (planApp.Add(entity) > 0)
                {
                    Response.Redirect("Index.aspx?date=" + entity.WeekDay.ToString("MM/dd/yyyy"));
                }
                else
                {
                    ShowFailMessageToClient(planApp.BrokenRuleMessages);
                }
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            WeekPlanEntity entity = new WeekPlanEntity();
            int            id;

            if (int.TryParse(hfID.Value, out id))
            {
                //编辑
                entity.ID           = id;
                entity.UpdateDate   = DateTime.Now;
                entity.UpdateUserID = UserInfo.UserID;
            }
            else  //新建
            {
                DateTime weekDay = DateTime.Now;
                if (weekDay.DayOfWeek != DayOfWeek.Sunday)
                {
                    weekDay = weekDay.AddDays(-(int)DateTime.Now.DayOfWeek).AddDays(7);
                }

                if (QS("id", 0) == 0 && QS("oldplan", 0) == 1) // 追加本周计划
                {
                    weekDay = weekDay.AddDays(-7);
                }

                entity.WeekDay      = weekDay.Date;
                entity.UserID       = UserInfo.UserID;
                entity.CreateDate   = DateTime.Now;
                entity.UpdateDate   = DateTime.Now;
                entity.UpdateUserID = UserInfo.UserID;
                entity.IsDeleted    = false;
            }

            entity.Sunday            = (txtSunday.Text).Replace("\r\n", "<br>");
            entity.SundayEstimate    = int.Parse(ddlSundayEst.SelectedValue);
            entity.Monday            = (txtMonday.Text).Replace("\r\n", "<br>");
            entity.MondayEstimate    = int.Parse(ddlMondayEst.SelectedValue);
            entity.Tuesday           = (txtTuesday.Text).Replace("\r\n", "<br>");
            entity.TuesdayEstimate   = int.Parse(ddlTuesdayEst.SelectedValue);
            entity.Wednesday         = (txtWednesday.Text).Replace("\r\n", "<br>");
            entity.WednesdayEstimate = int.Parse(ddlWednesdayEst.SelectedValue);
            entity.Thursday          = (txtThursday.Text).Replace("\r\n", "<br>");
            entity.ThursdayEstimate  = int.Parse(ddlThursdayEst.SelectedValue);
            entity.Friday            = (txtFriday.Text).Replace("\r\n", "<br>");
            entity.FridayEstimate    = int.Parse(ddlFridayEst.SelectedValue);
            entity.Saturday          = (txtSaturday.Text).Replace("\r\n", "<br>");
            entity.SaturdayEstimate  = int.Parse(ddlSaturdayEst.SelectedValue);
            if (id > 0)
            {
                bool result;
                if (UserInfo.Role == RolesEnum.ADMIN || UserInfo.Role == RolesEnum.PM || UserInfo.Role == RolesEnum.Sales)
                {
                    result = planApp.Update(entity, false);
                }
                else
                {
                    result = planApp.Update(entity, true);
                }

                if (result)
                {
                    ShowSuccessMessageToClient(true, true);
                }
                else
                {
                    ShowFailMessageToClient(planApp.BrokenRuleMessages);
                }
            }
            else
            {
                if (planApp.Add(entity) > 0)
                {
                    ShowSuccessMessageToClient();
                }
                else
                {
                    ShowFailMessageToClient(planApp.BrokenRuleMessages);
                }
            }
        }