Пример #1
0
 private void btnExport_Click(object sender, EventArgs e)
 {
     Cursor = Cursors.WaitCursor;
     Application.DoEvents();
     LocationFacade.Export();
     Cursor = Cursors.Default;
 }
Пример #2
0
 private void RefreshGrid(long seq = 0)
 {
     Cursor = Cursors.WaitCursor;
     //IsIgnore = true;
     if (dgvList.SelectedRows.Count > 0)
     {
         RowIndex = dgvList.SelectedRows[0].Index;
     }
     try
     {
         dgvList.DataSource = LocationFacade.GetDataTable(txtFind.Text, GetStatus());
     }
     catch (Exception ex)
     {
         Cursor = Cursors.Default;
         MessageFacade.Show(MessageFacade.error_retrieve_data + "\r\n" + ex.Message, LabelFacade.sy_location, MessageBoxButtons.OK, MessageBoxIcon.Error);
         ErrorLogFacade.Log(ex);
         return;
     }
     if (dgvList.RowCount > 0)
     {
         if (seq == 0)
         {
             if (RowIndex >= dgvList.RowCount)
             {
                 RowIndex = dgvList.RowCount - 1;
             }
             dgvList.CurrentCell = dgvList[1, RowIndex];
         }
         else
         {
             foreach (DataGridViewRow row in dgvList.Rows)
             {
                 if ((long)row.Cells[0].Value == seq)
                 {
                     Id = (int)seq;
                     dgvList.CurrentCell = dgvList[1, row.Index];
                     break;
                 }
             }
         }
     }
     else
     {
         btnCopy.Enabled   = false;
         btnUnlock.Enabled = false;
         btnActive.Enabled = false;
         btnDelete.Enabled = false;
         ClearAllBoxes();
     }
     IsIgnore = false;
     //LoadData();
     Cursor = Cursors.Default;
 }
Пример #3
0
 private void txtCode_Leave(object sender, EventArgs e)
 {
     // Check if entered code already exists
     if (txtCode.ReadOnly)
     {
         return;
     }
     if (LocationFacade.Exists(txtCode.Text.Trim()))
     {
         MessageFacade.Show(this, ref fMsg, LabelFacade.sy_msg_prefix + MessageFacade.code_already_exists, LabelFacade.sy_location);
     }
 }
Пример #4
0
 private void btnDelete_Click(object sender, EventArgs e)
 {
     try
     {
         var Id = dgvList.Id;
         if (Id == 0)
         {
             return;
         }
         // If referenced
         //todo: check if exist in ic_item
         // If locked
         var    lInfo = LocationFacade.GetLock(Id);
         string msg   = "";
         if (lInfo.Locked)
         {
             msg = string.Format(MessageFacade.delete_locked, lInfo.Lock_By, lInfo.Lock_At);
             if (!Privilege.CanAccess(Type.Function_IC_Location, "O"))
             {
                 MessageFacade.Show(msg, LabelFacade.sy_delete, MessageBoxButtons.OK, MessageBoxIcon.Information);
                 SessionLogFacade.Log(Type.Priority_Caution, Type.Module_IC_Location, Type.Log_Delete, "Cannot delete. Currently locked by '" + lInfo.Lock_By + "' since '" + lInfo.Lock_At + "' . Id=" + dgvList.Id + ", Code=" + txtCode.Text);
                 return;
             }
         }
         // Delete
         msg = MessageFacade.delete_confirmation;
         if (lInfo.Locked)
         {
             msg = string.Format(MessageFacade.lock_currently, lInfo.Lock_By, lInfo.Lock_At) + "'\n" + msg;
         }
         if (MessageFacade.Show(msg, LabelFacade.sy_delete, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.No)
         {
             return;
         }
         try
         {
             LocationFacade.SetStatus(Id, Type.RecordStatus_Deleted);
         }
         catch (Exception ex)
         {
             MessageFacade.Show(MessageFacade.error_delete + "\r\n" + ex.Message, LabelFacade.sy_delete, MessageBoxButtons.OK, MessageBoxIcon.Error);
             ErrorLogFacade.Log(ex);
         }
         RefreshGrid();
         // log
         SessionLogFacade.Log(Type.Priority_Warning, Type.Module_IC_Location, Type.Log_Delete, "Deleted. Id=" + dgvList.Id + ", Code=" + txtCode.Text);
     }
     catch (Exception ex)
     {
         MessageFacade.Show(MessageFacade.error_delete + "\r\n" + ex.Message, LabelFacade.sy_delete, MessageBoxButtons.OK, MessageBoxIcon.Error);
         ErrorLogFacade.Log(ex);
     }
 }
Пример #5
0
        private bool Save()
        {
            if (!IsValidated())
            {
                return(false);
            }
            Cursor = Cursors.WaitCursor;
            var m   = new Location();
            var log = new SessionLog {
                Module = Type.Module_IC_Location
            };

            m.Id          = Id;
            m.Code        = txtCode.Text.Trim();
            m.Description = txtDesc.Text;
            m.Type        = cboType.Text.Substring(0, 1);
            m.Address     = txtAddress.Text;
            m.Name        = txtName.Text;
            m.Phone       = txtPhone.Text;
            m.Fax         = txtFax.Text;
            m.Email       = txtEmail.Text;
            m.Note        = txtNote.Text;
            if (m.Id == 0)
            {
                log.Priority = Type.Priority_Information;
                log.Type     = Type.Log_Insert;
            }
            else
            {
                log.Priority = Type.Priority_Caution;
                log.Type     = Type.Log_Update;
            }
            try
            {
                m.Id = LocationFacade.Save(m);
            }
            catch (Exception ex)
            {
                MessageFacade.Show(MessageFacade.error_save + "\r\n" + ex.Message, LabelFacade.sy_save, MessageBoxButtons.OK, MessageBoxIcon.Error);
                ErrorLogFacade.Log(ex);
            }
            if (dgvList.RowCount > 0)
            {
                RowIndex = dgvList.CurrentRow.Index;
            }
            RefreshGrid(m.Id);
            LockControls();
            Cursor      = Cursors.Default;
            log.Message = "Saved. Id=" + m.Id + ", Code=" + txtCode.Text;
            SessionLogFacade.Log(log);
            IsDirty = false;
            return(true);
        }
Пример #6
0
        private void btnActive_Click(object sender, EventArgs e)
        {
            var Id = dgvList.Id;

            if (Id == 0)
            {
                return;
            }

            string status = btnActive.Text == LabelFacade.sy_button_inactive ? Type.RecordStatus_InActive : Type.RecordStatus_Active;
            // If referenced
            //todo: check if already used in ic_item

            //If locked
            var lInfo = LocationFacade.GetLock(Id);

            if (lInfo.Locked)
            {
                string msg = string.Format(MessageFacade.lock_currently, lInfo.Lock_By, lInfo.Lock_At);
                if (!Privilege.CanAccess(Type.Function_IC_Location, "O"))
                {
                    MessageFacade.Show(msg, MessageFacade.active_inactive, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                else
                if (MessageFacade.Show(msg + "\r\n" + MessageFacade.proceed_confirmation, MessageFacade.active_inactive, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }
            try
            {
                LocationFacade.SetStatus(Id, status);
            }
            catch (Exception ex)
            {
                MessageFacade.Show(MessageFacade.error_active_inactive + ex.Message, MessageFacade.active_inactive, MessageBoxButtons.OK, MessageBoxIcon.Error);
                ErrorLogFacade.Log(ex);
            }
            RefreshGrid();
            SessionLogFacade.Log(Type.Priority_Caution, Type.Module_IC_Location, status == Type.RecordStatus_InActive ? Type.Log_Inactive : Type.Log_Active, "Id=" + dgvList.Id + ", Code=" + txtCode.Text);
        }
Пример #7
0
        private bool IsValidated()
        {
            var     sMsg   = new StringBuilder();
            Control cFocus = null;
            string  Code   = txtCode.Text.Trim();

            if (Code.Length == 0)
            {
                sMsg.AppendLine(LabelFacade.sy_msg_prefix + MessageFacade.code_not_empty);
                cFocus = txtCode;
            }
            else if (LocationFacade.Exists(Code, Id))
            {
                sMsg.AppendLine(LabelFacade.sy_msg_prefix + MessageFacade.code_already_exists);
                cFocus = txtCode;
            }
            if (cboType.SelectedIndex == -1)
            {
                sMsg.AppendLine(LabelFacade.sy_msg_prefix + MessageFacade.location_type_not_empty);
                if (cFocus == null)
                {
                    cFocus = cboType;
                }
            }
            if (txtEmail.Text.Length > 0 && !Util.IsEmailValid(txtEmail.Text))
            {
                sMsg.AppendLine(LabelFacade.sy_msg_prefix + MessageFacade.email_not_valid);
                if (cFocus == null)
                {
                    cFocus = txtEmail;
                }
            }
            if (sMsg.Length > 0)
            {
                MessageFacade.Show(this, ref fMsg, sMsg.ToString(), LabelFacade.sy_save);
                //fMsg.Show(sMsg.ToString(), LabelFacade.sy_save, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                cFocus.Focus();
                return(false);
            }
            return(true);
        }
Пример #8
0
        private void LoadData()
        {
            var Id = dgvList.Id;

            if (Id != 0)
            {
                try
                {
                    var m = LocationFacade.Select(Id);
                    txtCode.Text          = m.Code;
                    txtDesc.Text          = m.Description;
                    cboType.SelectedIndex = (m.Type != "L" ? 0 : 1);
                    txtAddress.Text       = m.Address;
                    txtName.Text          = m.Name;
                    txtPhone.Text         = m.Phone;
                    txtFax.Text           = m.Fax;
                    txtEmail.Text         = m.Email;
                    txtNote.Text          = m.Note;
                    SetStatus(m.Status);
                    LockControls();
                    IsDirty = false;
                    SessionLogFacade.Log(Type.Priority_Information, Type.Module_IC_Location, Type.Log_View, "View. Id=" + m.Id + ", Code=" + m.Code);
                }
                catch (Exception ex)
                {
                    MessageFacade.Show(MessageFacade.error_load_record + "\r\n" + ex.Message, LabelFacade.sy_location, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    SYS.ErrorLogFacade.Log(ex);
                }
            }
            else    // when delete all => disable buttons and clear all controls
            {
                if (dgvList.RowCount == 0)
                {
                    btnUnlock.Enabled = false;
                    ClearAllBoxes();
                }
            }
        }
Пример #9
0
        private void btnUnlock_Click(object sender, EventArgs e)
        {
            if (!Privilege.CanAccess(Type.Function_IC_Location, Type.Privilege_Update))
            {
                MessageFacade.Show(MessageFacade.privilege_no_access, LabelFacade.sy_button_unlock, MessageBoxButtons.OK, MessageBoxIcon.Information);
                SessionLogFacade.Log(Type.Priority_Information, Type.Module_IC_Location, Type.Log_NoAccess, "Copy: No access");
                return;
            }
            if (IsExpand)
            {
                picExpand_Click(sender, e);
            }
            Id = dgvList.Id;
            // Cancel
            if (btnUnlock.Text == LabelFacade.sy_button_cancel)
            {
                if (IsDirty)
                {
                    var result = MessageFacade.Show(MessageFacade.save_confirmation, LabelFacade.sy_button_cancel, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                    if (result == System.Windows.Forms.DialogResult.Yes) // Save then close
                    {
                        btnSave_Click(null, null);
                    }
                    else if (result == System.Windows.Forms.DialogResult.No)
                    {
                        LoadData(); // Load original back if changes (dirty)
                    }
                    else if (result == System.Windows.Forms.DialogResult.Cancel)
                    {
                        return;
                    }
                }
                LockControls(true);
                dgvList.Focus();
                try
                {
                    LocationFacade.ReleaseLock(dgvList.Id);
                }
                catch (Exception ex)
                {
                    MessageFacade.Show(MessageFacade.error_unlock + "\r\n" + ex.Message, LabelFacade.sy_unlock, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    ErrorLogFacade.Log(ex);
                    return;
                }
                if (dgvList.CurrentRow != null && !dgvList.CurrentRow.Selected)
                {
                    dgvList.CurrentRow.Selected = true;
                }
                SessionLogFacade.Log(Type.Priority_Information, Type.Module_IC_Location, Type.Log_Unlock, "Unlock cancel. Id=" + dgvList.Id + ", Code=" + txtCode.Text);
                btnUnlock.ToolTipText = "Unlock (Ctrl+L)";
                IsDirty = false;
                return;
            }
            // Unlock
            if (Id == 0)
            {
                return;
            }
            try
            {
                var lInfo = LocationFacade.GetLock(Id);

                if (lInfo.Locked) // Check if record is locked
                {
                    string msg = string.Format(MessageFacade.lock_currently, lInfo.Lock_By, lInfo.Lock_At);
                    if (!Privilege.CanAccess(Type.Function_IC_Location, "O"))
                    {
                        MessageFacade.Show(msg, LabelFacade.sy_unlock, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    else
                    if (MessageFacade.Show(msg + "\r\n" + MessageFacade.lock_override, LabelFacade.sy_unlock, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        SessionLogFacade.Log(Type.Priority_Caution, Type.Module_IC_Location, Type.Log_Lock, "Override lock. Id=" + dgvList.Id + ", Code=" + txtCode.Text);
                    }
                    else
                    {
                        return;
                    }
                }
                txtDesc.SelectionStart = txtDesc.Text.Length;
                txtDesc.Focus();
                LockControls(false);
            }
            catch (Exception ex)
            {
                MessageFacade.Show(MessageFacade.error_unlock + "\r\n" + ex.Message, LabelFacade.sy_unlock, MessageBoxButtons.OK, MessageBoxIcon.Error);
                ErrorLogFacade.Log(ex);
                return;
            }
            try
            {
                LocationFacade.Lock(dgvList.Id, txtCode.Text);
            }
            catch (Exception ex)
            {
                MessageFacade.Show(MessageFacade.error_lock + "\r\n" + ex.Message, LabelFacade.sy_lock, MessageBoxButtons.OK, MessageBoxIcon.Error);
                ErrorLogFacade.Log(ex);
                return;
            }
            SessionLogFacade.Log(Type.Priority_Information, Type.Module_IC_Location, Type.Log_Lock, "Locked. Id=" + dgvList.Id + ", Code=" + txtCode.Text);
            btnUnlock.ToolTipText = "Cancel (Esc or Ctrl+L)";
        }