private void Detail_GridView_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            Detail_GridView.ClearColumnErrors();

            VoucherCoverDetail row  = e.Row.CastTo <VoucherCoverDetail>();
            GridView           view = sender as GridView;
            GridColumn         column;

            if ((row.SEQ ?? 0) <= 0)
            {
                e.Valid = false;
                column  = view.Columns[nameof(row.SEQ)];
                view.SetColumnError(column, string.Format(BSMessage.BSM000034, "STT"));
                return;
            }

            // Kiểm tra tồn tại trong grid
            if (VoucherCoverDetailData.ToList().Count(o => o.VoucherCoverID == row.VoucherCoverID && o.SEQ == row.SEQ) > 1)
            {
                e.Valid = false;
                column  = view.Columns[nameof(row.SEQ)];
                view.SetColumnError(column, string.Format(BSMessage.BSM000033, "STT"));
            }
        }