public virtual void SetContrMoveNext(string strContrName, bool blPrev, int iSeed) { int index = arrContrSeq.IndexOf(strContrName); if (index == -1) { return; } if (!blPrev && index == arrContrSeq.Count - 1 || blPrev && index == 0) { return; } if (FocusedControl.GetType().ToString() == "DevExpress.XtraEditors.CheckedComboBoxEdit") { DevExpress.XtraEditors.CheckedComboBoxEdit cklis = FocusedControl as DevExpress.XtraEditors.CheckedComboBoxEdit; string strText = string.Empty; string[] arrTexts = cklis.Text.Split(",,".ToCharArray()); foreach (CheckedListBoxItem item in cklis.Properties.Items) { foreach (string strT in arrTexts) { string strTxt = strT.Trim(); if (strTxt == string.Empty) { continue; } if (item.Value.ToString().ToLower() == strTxt.ToLower() || item.Description.ToLower() == strTxt.ToLower()) { strText += strText == string.Empty ? item.Value.ToString() : "," + item.Value.ToString(); } } } cklis.EditValue = strText; cklis.RefreshEditValue(); } int iFidx = 0; if (blPrev) { iFidx = index - iSeed < 0 ? 0 : index - iSeed; } else { iFidx = index + iSeed > arrContrSeq.Count - 1 ? arrContrSeq.Count - 1 : index + iSeed; } Control[] contrs = FocusedControl.Parent.Controls.Find(arrContrSeq[iFidx], false); if (contrs.Length <= 0) { return; } Control contr = contrs[0]; if (contr is BaseEdit) { BaseEdit bse = contr as BaseEdit; if (bse.Properties.ReadOnly || !bse.Visible) { SetContrMoveNext(arrContrSeq[iFidx], blPrev, 1); return; } } else if (contr is ProduceManager.UcTxtPopup) { ProduceManager.UcTxtPopup bc = contr as ProduceManager.UcTxtPopup; if (bc.ReadOnly || !bc.Visible) { SetContrMoveNext(arrContrSeq[iFidx], blPrev, 1); return; } } else if (contr is ProduceManager.UcTreeList) { ProduceManager.UcTreeList bc = contr as ProduceManager.UcTreeList; if (bc.ReadOnly || !bc.Visible) { SetContrMoveNext(arrContrSeq[iFidx], blPrev, 1); return; } } switch (contr.GetType().ToString()) { case "DevExpress.XtraEditors.TextEdit": DevExpress.XtraEditors.TextEdit txt = contr as DevExpress.XtraEditors.TextEdit; txt.Focus(); txt.SelectAll(); break; case "DevExpress.XtraEditors.MemoEdit": DevExpress.XtraEditors.MemoEdit mTxt = contr as DevExpress.XtraEditors.MemoEdit; mTxt.Focus(); mTxt.SelectAll(); break; case "DevExpress.XtraEditors.SimpleButton": DevExpress.XtraEditors.SimpleButton btn = contr as DevExpress.XtraEditors.SimpleButton; btn.Select(); break; case "DevExpress.XtraEditors.LookUpEdit": DevExpress.XtraEditors.LookUpEdit dpl = contr as DevExpress.XtraEditors.LookUpEdit; dpl.Focus(); dpl.ShowPopup(); break; case "DevExpress.XtraEditors.CheckedComboBoxEdit": DevExpress.XtraEditors.CheckedComboBoxEdit ckcob = contr as DevExpress.XtraEditors.CheckedComboBoxEdit; ckcob.Focus(); ckcob.SelectAll(); break; case "DevExpress.XtraEditors.DateEdit": DevExpress.XtraEditors.DateEdit dt = contr as DevExpress.XtraEditors.DateEdit; dt.Focus(); dt.Select(); break; case "ExtendControl.ExtPopupTree": ExtendControl.ExtPopupTree ext = contr as ExtendControl.ExtPopupTree; ext.Focus(); ext.ShowPopup(); break; case "ProduceManager.UcTxtPopup": ProduceManager.UcTxtPopup ucp = contr as ProduceManager.UcTxtPopup; ucp.Focus(); ucp.ShowPopup(); break; case "ProduceManager.UcTreeList": ProduceManager.UcTreeList uct = contr as ProduceManager.UcTreeList; uct.Focus(); uct.ShowPopup(); break; case "DevExpress.XtraEditors.ComboBoxEdit": DevExpress.XtraEditors.ComboBoxEdit cob = contr as DevExpress.XtraEditors.ComboBoxEdit; cob.Focus(); cob.ShowPopup(); break; default: break; } }
private void sbtnSave_Click(object sender, System.EventArgs e) { if (luedtLeaveType.EditValue == null || luedtLeaveType.EditValue.ToString().Length == 0) { UI.ShowErrorMessage("Please select a Leave Code."); luedtLeaveType.Focus(); DialogResult = DialogResult.None; return; } if (dateedtDate.EditValue == null) { UI.ShowErrorMessage("Please select a date."); dateedtDate.Focus(); DialogResult = DialogResult.None; return; } if (memoedtReason.EditValue.ToString().Length == 0) { UI.ShowErrorMessage("Please provide a reason."); memoedtReason.Focus(); DialogResult = DialogResult.None; return; } if (timeedtStart.Time > timeedtEnd.Time) { UI.ShowErrorMessage("Please select a correct time range."); timeedtStart.Focus(); DialogResult = DialogResult.None; return; } if (dateedtDate.DateTime < DateTime.Now.AddMonths(-3)) { UI.ShowErrorMessage("! You can apply maximum three months pass from today only."); dateedtDate.Focus(); DialogResult = DialogResult.None; return; } if (string.Compare(luedtLeaveType.EditValue.ToString(), "OFF", true) == 0) { DateTime startTime = dateedtDate.DateTime.AddHours(timeedtStart.Time.Hour).AddMinutes(timeedtStart.Time.Minute); DateTime endTime = dateedtDate.DateTime.AddHours(timeedtEnd.Time.Hour).AddMinutes(timeedtEnd.Time.Minute); TimeSpan span = endTime - startTime; if (span.TotalHours > 5.0) { UI.ShowErrorMessage(this, "You are allow to apply maximum 5 hours time off per day only."); timeedtStart.Focus(); DialogResult = DialogResult.None; return; } else if (span.TotalHours <= 0.0) { UI.ShowErrorMessage(this, "Please select a correct time off range."); timeedtStart.Focus(); DialogResult = DialogResult.None; return; } } else { if (chkedtIsHalfDay.Checked) { TimeSpan span = dateedtDate.DateTime.AddHours(timeedtEnd.Time.Hour).AddMinutes(timeedtEnd.Time.Minute) - dateedtDate.DateTime.AddHours(timeedtStart.Time.Hour).AddMinutes(timeedtStart.Time.Minute); if (span.TotalHours > 5.0) { UI.ShowErrorMessage(this, "You are allow to apply maximum 5 hours half day leave only."); timeedtStart.Focus(); DialogResult = DialogResult.None; return; } else if (span.TotalHours <= 0.0) { UI.ShowErrorMessage(this, "Please select a correct time off range."); timeedtStart.Focus(); DialogResult = DialogResult.None; return; } } } DateTime startDate, endDate; if (string.Compare(luedtLeaveType.EditValue.ToString(), "OFF", true) == 0) { startDate = dateedtDate.DateTime.AddHours(timeedtStart.Time.Hour).AddMinutes(timeedtStart.Time.Minute); endDate = dateedtDate.DateTime.AddHours(timeedtEnd.Time.Hour).AddMinutes(timeedtEnd.Time.Minute); } else { if (chkedtIsHalfDay.Checked) { startDate = dateedtDate.DateTime.AddHours(timeedtStart.Time.Hour).AddMinutes(timeedtStart.Time.Minute); endDate = dateedtDate.DateTime.AddHours(timeedtEnd.Time.Hour).AddMinutes(timeedtEnd.Time.Minute); } else { startDate = dateedtDate.DateTime; endDate = dateedtDate.DateTime; } } if (string.Compare(luedtLeaveType.EditValue.ToString(), "PH", true) == 0) { if (myLeave.ValidatePH(nEmployeeID, startDate) == false) { MessageBox.Show("Please Apply Public Holiday Claim, Balance is Zero"); return; } } if (string.Compare(luedtLeaveType.EditValue.ToString(), "AL", true) == 0) { if (nLeaveID < 0) { myLeave.ApplyAnnualLeave(nEmployeeID, "AL", memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate); } else { myLeave.UpdateAnnualLeave(nLeaveID, nEmployeeID, "AL", memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate); } } else if (string.Compare(luedtLeaveType.EditValue.ToString(), "OFF", true) == 0) { try { if (nLeaveID < 0) { myLeave.ApplyTimeOff(nEmployeeID, memoedtReason.EditValue.ToString(), myEmployeeInfo, startDate, endDate); } else { myLeave.UpdateTimeOff(nLeaveID, nEmployeeID, memoedtReason.EditValue.ToString(), myEmployeeInfo, startDate, endDate); } } catch (Exception ex) { if (ex.Message == "Not enough time off balance.") { UI.ShowErrorMessage(this, ex.Message); } else { throw; } } } else { try { if (nLeaveID < 0) { myLeave.ApplyMiscLeave(nEmployeeID, myEmployeeInfo, luedtLeaveType.EditValue.ToString(), memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate, true); } else { myLeave.UpdateMiscLeave(nLeaveID, nEmployeeID, myEmployeeInfo, luedtLeaveType.EditValue.ToString(), memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate, true); } } catch (Exception ex) { if (ex.Message == "Not enough Misc Balance" && luedtLeaveType.EditValue.ToString() == "ML") { if (UI.ShowYesNoMessage(this, ex.Message + " Take Unpaid Medical Leave?")) { if (nLeaveID < 0) { myLeave.ApplyMiscLeave(nEmployeeID, myEmployeeInfo, luedtLeaveType.EditValue.ToString(), memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate, false); } else { myLeave.UpdateMiscLeave(nLeaveID, nEmployeeID, myEmployeeInfo, luedtLeaveType.EditValue.ToString(), memoedtReason.EditValue.ToString(), !chkedtIsHalfDay.Checked, startDate, endDate, false); } } } else if (ex.Message == "Not enough Misc Balance") { UI.ShowMessage("No more balance for this Leave Type."); return; } else { return; } } } }