コード例 #1
0
        public WorkingCalendarDTO GenerateWorkingCalendarDTO(DateTime dateTime)
        {
            // กำหนด calendar string ให้เป็นทำงานทุกวัน (1)
            StringBuilder calendarStringBuilder = new StringBuilder();

            for (int i = 0; i < DateTime.DaysInMonth(dateTime.Year, dateTime.Month); i++)
            {
                calendarStringBuilder.Append("1");
            }

            WorkingCalendarDTO wkDTO = new WorkingCalendarDTO
            {
                CRT_BY          = CommonLib.Common.CurrentUserInfomation.UserCD,
                CRT_DATE        = (NZDateTime)DateTime.UtcNow,
                CRT_MACHINE     = CommonLib.Common.CurrentUserInfomation.Machine,
                UPD_BY          = CommonLib.Common.CurrentUserInfomation.UserCD,
                UPD_DATE        = (NZDateTime)DateTime.UtcNow,
                UPD_MACHINE     = CommonLib.Common.CurrentUserInfomation.Machine,
                IS_ACTIVE       = (NZBoolean)(true),
                PERIOD          = (NZDateTime)dateTime,
                CALENDAR_STRING = (NZString)(calendarStringBuilder.ToString())
            };

            return(wkDTO);
        }
コード例 #2
0
        /// <summary>
        /// Update record by using the table's primary key.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data">Data which to update.</param>
        /// <param name="oldPERIOD">Old Key #1</param>
        /// <returns></returns>
        public int UpdateWithPK(Database database, WorkingCalendarDTO data, DateTime oldPERIOD)
        {
            Database db = UseDatabase(database);

            StringBuilder sb = new StringBuilder();

            #region SQL Statement
            sb.AppendLine(" UPDATE " + data.TableName);
            sb.AppendLine(" SET ");
            sb.AppendLine("  " + WorkingCalendarDTO.eColumns.UPD_BY + "=:UPD_BY");
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.UPD_DATE + "=GETDATE()");
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.UPD_MACHINE + "=:UPD_MACHINE");
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.IS_ACTIVE + "=:IS_ACTIVE");
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.PERIOD + "=:PERIOD");
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.CALENDAR_STRING + "=:CALENDAR_STRING");
            sb.AppendLine(" WHERE ");
            sb.AppendLine("  " + WorkingCalendarDTO.eColumns.PERIOD + "=:oldPERIOD");
            #endregion

            DataRequest req = new DataRequest(sb.ToString());
            #region Parameters
            req.Parameters.Add("UPD_BY", DataType.NVarChar, Convert.ToString(data.UPD_BY));
            req.Parameters.Add("UPD_MACHINE", DataType.NVarChar, Convert.ToString(data.UPD_MACHINE));
            req.Parameters.Add("IS_ACTIVE", DataType.Default, Convert.ToBoolean(data.IS_ACTIVE));
            req.Parameters.Add("PERIOD", DataType.Default, Convert.ToDateTime(data.PERIOD));
            req.Parameters.Add("CALENDAR_STRING", DataType.NVarChar, Convert.ToString(data.CALENDAR_STRING));
            req.Parameters.Add("oldPERIOD", DataType.Default, Convert.ToDateTime(oldPERIOD));
            #endregion

            return(db.ExecuteNonQuery(req));
        }
コード例 #3
0
        public void CreateWorkingCalendar(int iNoOfMonth, DateTime dtmSelectedMonth, bool[] bStopingDay)
        {
            WorkingCalendarDTO[] dtoArrayWK = new WorkingCalendarDTO[iNoOfMonth];
            for (int i = 0; i < iNoOfMonth; i++, dtmSelectedMonth = dtmSelectedMonth.AddMonths(1))
            {
                // สร้าง calendar string เพื่อกำหนดให้ DTO
                StringBuilder calendarStringBuilder = new StringBuilder();
                DayOfWeek     dayOfWeekEnum         = dtmSelectedMonth.DayOfWeek;
                for (int iDay = 0; iDay < 31; iDay++, dayOfWeekEnum++)
                {
                    if (iDay < DateTime.DaysInMonth(dtmSelectedMonth.Year, dtmSelectedMonth.Month))
                    {
                        string s = (bStopingDay[(int)dayOfWeekEnum]) ? "0" : "1";
                        calendarStringBuilder.Append(s);
                    }
                    else
                    {
                        calendarStringBuilder.Append(" ");
                    }

                    if ((int)dayOfWeekEnum + 1 >= 7)
                    {
                        dayOfWeekEnum -= 7;
                    }
                }

                dtoArrayWK[i]                 = GenerateWorkingCalendarDTO(dtmSelectedMonth);
                dtoArrayWK[i].PERIOD          = (NZDateTime)dtmSelectedMonth;
                dtoArrayWK[i].CALENDAR_STRING = (NZString)(calendarStringBuilder.ToString());
            }
            foreach (WorkingCalendarDTO wkDTO in dtoArrayWK)
            {
                m_DAOWorkingCalendar.AddNew(CommonLib.Common.CurrentDatabase, wkDTO);
            }
        }
コード例 #4
0
        /// <summary>
        /// Check exist before manipulate data. If found record will update data. Otherwise insert new data.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public int AddNewOrUpdate(Database database, WorkingCalendarDTO data)
        {
            Database db = UseDatabase(database);

            if (Exist(database, data.PERIOD))
            {
                return(UpdateWithoutPK(db, data));
            }

            return(AddNew(db, data));
        }
コード例 #5
0
        /// <summary>
        /// แสดง Period ล่าสุดที่ได้ทำการ gen ไว้ (ถ้าไม่มีจะทำการแสดง period ปัจจุบัน)
        /// </summary>
        public void UpdateDateTextBox()
        {
            WorkingCalendarDTO wkDTOLastGen = m_BIZWorkingCalendar.GetLastGeneratedCalendar();

            if (wkDTOLastGen != null)
            {
                evoDateTextBoxLastGen.DateValue = (DateTime)wkDTOLastGen.PERIOD;
                evoDateTextBoxStartMY.DateValue = Convert.ToDateTime(evoDateTextBoxLastGen.DateValue).AddMonths(1);
            }
            else
            {
                evoDateTextBoxLastGen.Text      = string.Empty;
                evoDateTextBoxStartMY.DateValue = DateTime.UtcNow;
            }
        }
コード例 #6
0
        private bool IsCompleteSaveCalendar()
        {
            switch (ShowConfirmMessage(Messages.eConfirm.CFM9001))
            {
            case MessageDialogResult.Cancel:
                return(false);

            case MessageDialogResult.No:
                return(false);

            case MessageDialogResult.Yes:
                break;
            }

            // get data from current month
            DateTime dateTime = Convert.ToDateTime(evoDateTextBoxWithCalendar.Value);

            StringBuilder calendarStringBuilder = new StringBuilder();

            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    if (m_BtnDayInCalendarList[i, j].Text != string.Empty)
                    {
                        if (m_BtnDayInCalendarList[i, j].BackColor == Color.Red)
                        {
                            calendarStringBuilder.Append("0");
                        }
                        else
                        {
                            calendarStringBuilder.Append("1");
                        }
                    }
                }
            }
            WorkingCalendarDTO wkDTO = m_DTOWorkingCalendar;

            wkDTO.UPD_BY          = CommonLib.Common.CurrentUserInfomation.UserCD;
            wkDTO.UPD_DATE        = (NZDateTime)DateTime.UtcNow;
            wkDTO.UPD_MACHINE     = CommonLib.Common.CurrentUserInfomation.Machine;
            wkDTO.CALENDAR_STRING = (NZString)(calendarStringBuilder.ToString());

            m_BIZWorkingCalendar.UpdateWorkingCalendar(wkDTO);
            MessageDialog.ShowInformation(this, "Information", new EVOFramework.Message(Messages.eInformation.INF9003.ToString()).MessageDescription);
            return(true);
        }
コード例 #7
0
        /// <summary>
        /// Insert new record into database.
        /// </summary>
        /// <param name="database"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public int AddNew(Database database, WorkingCalendarDTO data)
        {
            Database db = UseDatabase(database);

            StringBuilder sb = new StringBuilder();

            #region SQL Statement
            sb.AppendLine(" INSERT INTO " + data.TableName + "(");
            sb.AppendLine("  " + WorkingCalendarDTO.eColumns.CRT_BY);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.CRT_DATE);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.CRT_MACHINE);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.UPD_BY);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.UPD_DATE);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.UPD_MACHINE);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.IS_ACTIVE);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.PERIOD);
            sb.AppendLine("  ," + WorkingCalendarDTO.eColumns.CALENDAR_STRING);
            sb.AppendLine(") VALUES(");
            sb.AppendLine("   :CRT_BY");
            sb.AppendLine("   ,GETDATE()");
            sb.AppendLine("   ,:CRT_MACHINE");
            sb.AppendLine("   ,:UPD_BY");
            sb.AppendLine("   ,GETDATE()");
            sb.AppendLine("   ,:UPD_MACHINE");
            sb.AppendLine("   ,:IS_ACTIVE");
            sb.AppendLine("   ,:PERIOD");
            sb.AppendLine("   ,:CALENDAR_STRING");
            sb.AppendLine(" )");
            #endregion

            DataRequest req = new DataRequest(sb.ToString());
            #region Parameters
            req.Parameters.Add("CRT_BY", DataType.NVarChar, Convert.ToString(data.CRT_BY));
            req.Parameters.Add("CRT_MACHINE", DataType.NVarChar, Convert.ToString(data.CRT_MACHINE));
            req.Parameters.Add("UPD_BY", DataType.NVarChar, Convert.ToString(data.UPD_BY));
            req.Parameters.Add("UPD_MACHINE", DataType.NVarChar, Convert.ToString(data.UPD_MACHINE));
            req.Parameters.Add("IS_ACTIVE", DataType.Default, Convert.ToBoolean(data.IS_ACTIVE));
            req.Parameters.Add("PERIOD", DataType.Default, Convert.ToDateTime(data.PERIOD));
            req.Parameters.Add("CALENDAR_STRING", DataType.NVarChar, Convert.ToString(data.CALENDAR_STRING));
            #endregion

            return(db.ExecuteNonQuery(req));
        }
コード例 #8
0
        /// <summary>
        /// โหลดข้อมูลจาก DB ของเดือนปัจจุบัน(ที่แสดงตรง calendar)มาเก็บใน DTO, ถ้าไม่มีจะ gen DTO ใหม่ให้
        /// </summary>
        /// <returns>DTO ของเดือนปัจจุบัน</returns>
        private WorkingCalendarDTO GetDTOfromCurrentCalendar()
        {
            DateTime           dateTime  = Convert.ToDateTime(evoDateTextBoxWithCalendar.Value);
            WorkingCalendarDTO loadedDTO = m_BIZWorkingCalendar.GetTargetMonthCalendar(dateTime);

            if (loadedDTO == null)
            {
                SetScreenState(eScreenState.View);
                m_DTOWorkingCalendar = null;
                return(m_BIZWorkingCalendar.GenerateWorkingCalendarDTO(dateTime));
            }
            else
            {
                if (this.m_ScreenStateEnum != eScreenState.Edit)
                {
                    SetScreenState(eScreenState.Idle);
                }
                m_DTOWorkingCalendar = loadedDTO;
                return(loadedDTO);
            }
        }
コード例 #9
0
 public void UpdateWorkingCalendar(WorkingCalendarDTO wkDTO)
 {
     m_DAOWorkingCalendar.UpdateWithPK(CommonLib.Common.CurrentDatabase, wkDTO, wkDTO.PERIOD);
 }
コード例 #10
0
        /// <summary>
        /// สร้างปฏิทินของเดือนที่ปรากฏจาก EVODateTimeWithCalendar
        /// </summary>
        private void GenerateCalendar()
        {
            try
            {
                DateTime dateTime;
                if (evoDateTextBoxWithCalendar.Value == null)
                {
                    evoDateTextBoxWithCalendar.Value = Convert.ToDateTime(evoDateTextBoxLastGen.DateValue);
                }

                // เปรียบเทียบว่า DateTime ปัจจุบันมีอยู่ใน database หรือไม่ ถ้าไม่มีจะหา DateTime ที่ใกล้ที่สุด
                dateTime = Convert.ToDateTime(evoDateTextBoxWithCalendar.Value);
                DateTime dtmGenFirst = (m_BIZWorkingCalendar.GetFirstGeneratedCalendar()).PERIOD.StrongValue;;
                DateTime dtmGenLast  = Convert.ToDateTime(evoDateTextBoxLastGen.DateValue);

                ErrorItem errItem = WorkingCalendarValidation.CheckDateTimeIsGen((NZDateTime)dateTime, dtmGenFirst, dtmGenLast);
                if (errItem != null)
                {
                    if (dateTime < dtmGenFirst)
                    {
                        dateTime = dtmGenFirst;
                    }
                    else if (dateTime > dtmGenLast)
                    {
                        dateTime = dtmGenLast;
                    }
                    evoDateTextBoxWithCalendar.Value = dateTime;
                }

                dateTime = dateTime.AddDays(0 - dateTime.Day);
                dateTime = dateTime.AddDays(1);
                // นำ DateTime ที่ได้ไปสร้าง dto
                WorkingCalendarDTO wkDTO = GetDTOfromCurrentCalendar();

                // เตรียม TextBox ไว้สร้างปฏิทิน
                for (int j = 0; j < 7; j++)
                {
                    for (int i = 0; i < 6; i++)
                    {
                        m_BtnDayInCalendarList[i, j].BackColor = Color.White;
                        m_BtnDayInCalendarList[i, j].Text      = string.Empty;
                        m_BtnDayInCalendarList[i, j].Enabled   = false;
                    }
                }

                // หาว่าวันแรกของเดือนเป็นวันอะไร?
                DayOfWeek dayOfWeekEnum = dateTime.DayOfWeek;

                // ทำการใส่ค่าวันลงไปใน textbox + กำหนดสี
                int    week           = 0;
                string calendarString = wkDTO.CALENDAR_STRING.ToString();
                for (int i = 0; i < calendarString.Length; i++, dayOfWeekEnum++)
                {
                    // กำหนดค่าวันที่
                    m_BtnDayInCalendarList[week, (int)dayOfWeekEnum].Text    = (i + 1).ToString();
                    m_BtnDayInCalendarList[week, (int)dayOfWeekEnum].Enabled = true;
                    // กำหนดสี
                    if (calendarString[i] == '0')
                    {
                        m_BtnDayInCalendarList[week, (int)dayOfWeekEnum].BackColor = Color.Red;
                    }
                    else
                    {
                        m_BtnDayInCalendarList[week, (int)dayOfWeekEnum].BackColor = Color.White;
                    }

                    // เลื่อนไปวันต่อไป
                    if ((int)dayOfWeekEnum + 1 >= 7)
                    {
                        dayOfWeekEnum -= 7;
                        week++;
                    }
                }
                ValidateException.ThrowErrorItem(errItem);
            }
            catch (BusinessException err)
            {
                MessageDialog.ShowBusiness(this, err.Error.Message);
                err.Error.FocusOnControl();
            }
            catch (ValidateException err)
            {
                MessageDialog.ShowBusiness(this, err.ErrorResults[0].Message);
                err.ErrorResults[0].FocusOnControl();
            }
        }