/// <summary>
        /// Lưu checker nếu truyền, k truyền thì tìm checker
        /// </summary>
        /// <param name="Checkers"></param>
        /// <param name="Next"></param>
        /// <returns></returns>
        public bool AddChecker(List <string> Checkers, string Next, Boolean IsComeBack)
        {
            string    sql       = @"SELECT IdRow, p.IdStep, Next,IsComeBackPro from DP_Process p
join Tbl_PhanAnhGopY pa on p.Id = pa.Id and p.IdStep = pa.IdStep
where pa.Id = @Id and p.Next=@Next and p.IsComeBackPro = @IsComeBackPro ";
            DataTable dtProcess = cnn.CreateDataTable(sql, new SqlConditions()
            {
                { "Id", Id }, { "Next", Next }, { "IsComeBackPro", IsComeBack }
            });

            if (dtProcess.Rows.Count == 0)
            {
                Error = "Không tìm thấy bước xử lý tiếp theo";
                return(false);
            }
            DataRow dr = dtProcess.Rows[0];

            if (Checkers == null || Checkers.Count == 0)
            {
                Checkers = GetCheckers(dr["IdStep"].ToString(), Next, Convert.ToBoolean(dr["IsComeBackPro"]));
                if (!string.IsNullOrEmpty(Error))
                {
                    return(false);
                }
            }
            foreach (string id in Checkers)
            {
                Hashtable val1 = new Hashtable();
                val1["IdProcess"] = dr["IdRow"];
                val1["Checker"]   = id;
                if (cnn.Insert(val1, "DP_Process_Detail") < 1)
                {
                    cnn.RollbackTransaction();
                    Error = "Có gì đó không đúng, vui lòng thử lại sau";
                    return(false);
                }
                try
                {
                    string udpate_DonVi = " EXEC sp_ThemDonViXuLy @Id , @Next, @IdUser,@IsComeBack ";
                    cnn.ExecuteNonQuery(udpate_DonVi, new SqlConditions {
                        { "Id", Id }, { "Next", Next }, { "IdUser", id }, { "IsComeBack", IsComeBack }
                    });
                }
                catch (Exception ex)
                {
                    cnn.RollbackTransaction();
                    cnn.ClearError();
                }
            }

            string lstUser = string.Join(",", Checkers);
            string msg     = "Bạn có một phản ánh góp ý mới cần xử lý.";

            return(notify(lstUser, msg));
        }