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); }
/// <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)); }
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); } }
/// <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)); }
/// <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; } }
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); }
/// <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)); }
/// <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); } }
public void UpdateWorkingCalendar(WorkingCalendarDTO wkDTO) { m_DAOWorkingCalendar.UpdateWithPK(CommonLib.Common.CurrentDatabase, wkDTO, wkDTO.PERIOD); }
/// <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(); } }