/// <summary>
 /// Kiểm tra và thêm mới DangkyHoatdongchungnhan
 /// </summary>
 /// <param name="entity">Entity</param>
 /// <returns>Int32: ID của DangkyHoatdongchungnhan Mới Thêm Vào</returns>
 public static Int32 Add(DangkyHoatdongchungnhanEntity entity)
 {
     checkLogic(entity);
     checkDuplicate(entity, false);
     checkFK(entity);
     return DangkyHoatdongchungnhanDAL.Add(entity);
 }
 /// <summary>
 /// Kiểm tra và chỉnh sửa DangkyHoatdongchungnhan
 /// </summary>
 /// <param name="entity">DangkyHoatdongchungnhanEntity</param>
 /// <returns>bool:kết quả thực hiện</returns>
 public static bool Edit(DangkyHoatdongchungnhanEntity entity)
 {
     checkExist(entity.PK_iDangkyChungnhanVietGapID);
     checkLogic(entity);
     checkDuplicate(entity, true);
     checkFK(entity);
     return DangkyHoatdongchungnhanDAL.Edit(entity);
 }
 /// <summary>
 /// Kiểm tra logic Entity
 /// </summary>
 /// <param name="entity">DangkyHoatdongchungnhanEntity: entity</param>
 private static void checkLogic(DangkyHoatdongchungnhanEntity entity)
 {
     if (entity.FK_iTochucchungnhanID < 0)
         throw new Exception(EX_FK_ITOCHUCCHUNGNHANID_INVALID);
     if (entity.iTrangthaidangky < 0)
         throw new Exception(EX_ITRANGTHAIDANGKY_INVALID);
     if (DateTime.Parse("1753-01-01")>entity.dNgaydangky)
         throw new Exception(EX_DNGAYDANGKY_INVALID);
     if (entity.iLandangky < 0)
         throw new Exception(EX_ILANDANGKY_INVALID);
 }
 /// <summary>
 /// Kiểm tra tồn tại khóa ngoại
 /// </summary>
 /// <param name="entity">DangkyHoatdongchungnhanEntity:entity</param>
 private static void checkFK(DangkyHoatdongchungnhanEntity entity)
 {
     TochucchungnhanEntity oTochucchungnhan = TochucchungnhanDAL.GetOne(entity.FK_iTochucchungnhanID);
     if (oTochucchungnhan==null)
     {
         throw new Exception("Không tìm thấy :FK_iTochucchungnhanID");
     }
 }
 /// <summary>
 /// Kiểm tra trùng lặp bản ghi
 /// </summary>
 /// <param name="entity">DangkyHoatdongchungnhanEntity: DangkyHoatdongchungnhanEntity</param>
 private static void checkDuplicate(DangkyHoatdongchungnhanEntity entity,bool checkPK)
 {
     /*
     Example
     List<DangkyHoatdongchungnhanEntity> list = DangkyHoatdongchungnhanDAL.GetAll();
     if (list.Exists(
         delegate(DangkyHoatdongchungnhanEntity oldEntity)
         {
             bool result =oldEntity.FIELD.Equals(entity.FIELD, StringComparison.OrdinalIgnoreCase);
             if(checkPK)
                 result=result && oldEntity.PK_iDangkyChungnhanVietGapID != entity.PK_iDangkyChungnhanVietGapID;
             return result;
         }
     ))
     {
         list.Clear();
         throw new Exception(EX_FIELD_EXISTED);
     }
     */
 }
    public void AddTochucchungnhan(object sender, EventArgs e)
    {
        //TochucchungnhanEntity oTochucchungnhan = new TochucchungnhanEntity();
        //oTochucchungnhan.sTochucchungnhan = txtTentochuc.Value;
        //oTochucchungnhan.sKytuviettat = txtKytuviettat.Value;
        //oTochucchungnhan.sDiachi = txtDiachi.Value;
        //oTochucchungnhan.FK_iQuanHuyenID = int.Parse(ddlQuanhuyen.SelectedValue);
        //oTochucchungnhan.sSodienthoai = txtSodienthoai.Value;
        //oTochucchungnhan.FK_iUserID = PK_iUserID;
        //oTochucchungnhan.imgLogo = CreateImgByte();
        //oTochucchungnhan.sFax = txtFax.Value;
        //oTochucchungnhan.sEmail = txtEmail.Value;
        //oTochucchungnhan.sSodangkykinhdoanh = txtSodangkydinhdoanh.Value;
        //oTochucchungnhan.sCoquancap = txtCoquancapphep.Value;
        //oTochucchungnhan.dNgaycapdangkykinhdoanh = DateTime.Parse(txtNgaycap_datepicker.Value);
        //oTochucchungnhan.sNoicapdangkykinhdoanh = txtNoicap.Value;
        //oTochucchungnhan.bDuyet = false;
        //iTochucID = TochucchungnhanBRL.Add(oTochucchungnhan);

        // Ở đây chỉ lấy iTochucID để lấy thông tin về Hồ sơ kèm theo

        iTochucID = Convert.ToInt32(btnAdd.CommandArgument);

        // Truy vấn để xác định nếu vẫn đang bị phạt < 1 năm thì không cho phép đăng ký

        List<XulyTochucchungnhanEntity> lstXulytochucchungnhan = XulyTochucchungnhanBRL.GetByFK_iTochucchungnhanID(iTochucID);
        if (lstXulytochucchungnhan != null && lstXulytochucchungnhan.Count > 0)
        {
            XulyTochucchungnhanEntity.Sort(lstXulytochucchungnhan, "dNgaythuchien", "DESC");
            if (lstXulytochucchungnhan[0].iMucdo==3&&DateTime.Today.Year - lstXulytochucchungnhan[0].dNgaythuchien.Year < 1)
            {
                lblThongbao.Text = "Hiện tại tổ chức bị xử lý chưa quá 1 năm...";
                lblThongbao.Visible = true;
            }
        }
        DangkyHoatdongchungnhanEntity oDangky = new DangkyHoatdongchungnhanEntity();
        oDangky.FK_iTochucchungnhanID = iTochucID;
        oDangky.iTrangthaidangky = 0;
        oDangky.dNgaydangky = DateTime.Today;
        if (DanhsachDangkyHoatdongchungnhan.Count > 0)
            oDangky.iLandangky = (short)((int)DanhsachDangkyHoatdongchungnhan[0].iLandangky + 1);
        else
            oDangky.iLandangky = 1; // đăng ký lần đầu
        iDangkychungnhan = DangkyHoatdongchungnhanBRL.Add(oDangky);
        if (iDangkychungnhan > 0)
        {
            HosokemtheoTochucchungnhanEntity oHoso = new HosokemtheoTochucchungnhanEntity();
            //----------Lưu giấy tờ nộp kèm
            for (int i = 0; i < cblGiaytonopkem.Items.Count; ++i)
            {
                if (cblGiaytonopkem.Items[i].Selected)
                {
                    oHoso.FK_iDangkyChungnhanVietGapID = iDangkychungnhan;
                    oHoso.FK_iGiaytoID = int.Parse(cblGiaytonopkem.Items[i].Value);
                    HosokemtheoTochucchungnhanBRL.Add(oHoso);
                }
            }
        }
        //--------------------------------------
        lblThongbao.Text = "Ðăng ký thành công!";
        OnOffEdit(false);
        CheckByUserID(PK_iUserID);
    }