예제 #1
0
        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;
            }
        }
예제 #2
0
        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;
                    }
                }
            }
        }