/// <summary>
 /// Kiểm tra và thêm mới HosokemtheoTochucchungnhan
 /// </summary>
 /// <param name="entity">Entity</param>
 /// <returns>Int32: ID của HosokemtheoTochucchungnhan Mới Thêm Vào</returns>
 public static Int32 Add(HosokemtheoTochucchungnhanEntity entity)
 {
     checkLogic(entity);
     checkDuplicate(entity, false);
     checkFK(entity);
     return HosokemtheoTochucchungnhanDAL.Add(entity);
 }
 /// <summary>
 /// Kiểm tra và chỉnh sửa HosokemtheoTochucchungnhan
 /// </summary>
 /// <param name="entity">HosokemtheoTochucchungnhanEntity</param>
 /// <returns>bool:kết quả thực hiện</returns>
 public static bool Edit(HosokemtheoTochucchungnhanEntity entity)
 {
     checkExist(entity.PK_iHosokemtheoID);
     checkLogic(entity);
     checkDuplicate(entity, true);
     checkFK(entity);
     return HosokemtheoTochucchungnhanDAL.Edit(entity);
 }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            try
            {

                int FK_iGiayto = int.Parse(ddlGiayto.SelectedValue.ToString());
                HosokemtheoTochucchungnhanEntity oHoso = new HosokemtheoTochucchungnhanEntity();
                if (Session["UserID"] != null)
                    PK_iUserID = int.Parse(Session["UserID"].ToString());
                List<TochucchungnhanTaikhoanEntity> lstTochucTaikhoan = TochucchungnhanTaikhoanBRL.GetByFK_iTaikhoanID(PK_iUserID);
                if (lstTochucTaikhoan.Count <= 0)
                {
                    Response.Write("<script language=\"javascript\">alert('Bạn không phải Tổ chức chứng nhận, nên bạn không có quyền sử dụng chức năng này.');location='Default.aspx';</script>");
                    return;
                }
                TochucchungnhanEntity oTochuc = TochucchungnhanBRL.GetOne(lstTochucTaikhoan[0].FK_iTochucchungnhanID);
                oHoso.FK_iGiaytoID = FK_iGiayto;
                List<DangkyHoatdongchungnhanEntity> oDangky = DangkyHoatdongchungnhanBRL.GetByFK_iTochucchungnhanID(oTochuc.PK_iTochucchungnhanID);
                oHoso.FK_iDangkyChungnhanVietGapID = oDangky[0].PK_iDangkyChungnhanVietGapID;
                if (btnOK.CommandName == "Edit")
                {
                    int oHosoID = Convert.ToInt32(btnOK.CommandArgument);
                    oHoso.PK_iHosokemtheoID = oHosoID;
                    HosokemtheoTochucchungnhanBRL.Edit(oHoso);
                    btnOK.CausesValidation = true;
                    lblThongbao.Text = "Cập nhật thành công";
                }
                else
                {
                    List<HosokemtheoTochucchungnhanEntity> lstHoso = HosokemtheoTochucchungnhanBRL.GetByFK_iGiaytoID(FK_iGiayto);
                    if (lstHoso.Count > 0)
                    {
                        lblThongbao.Text = "Giấy tờ này đã có trong danh sách!";
                        pnAdd.Visible = false;
                        return;
                    }
                    int oHosoID = HosokemtheoTochucchungnhanBRL.Add(oHoso);
                    lblThongbao.Text = "Thêm thành công";
                }

                //Nạp lại dữ liệu
                pnAdd.Visible = false;
                napgrvHosokemtheo();
            }
            catch (Exception ex)
            {
                Response.Write("<script language=\"javascript\">alert('" + ex.Message + "');location='Default.aspx?page=HosokemtheoManager';</script>");
            }
        }
    }
 /// <summary>
 /// Kiểm tra logic Entity
 /// </summary>
 /// <param name="entity">HosokemtheoTochucchungnhanEntity: entity</param>
 private static void checkLogic(HosokemtheoTochucchungnhanEntity entity)
 {
     if (entity.FK_iGiaytoID < 0)
         throw new Exception(EX_FK_IGIAYTOID_INVALID);
     if (entity.FK_iDangkyChungnhanVietGapID < 0)
         throw new Exception(EX_FK_IDANGKYCHUNGNHANVIETGAPID_INVALID);
 }
 /// <summary>
 /// Kiểm tra tồn tại khóa ngoại
 /// </summary>
 /// <param name="entity">HosokemtheoTochucchungnhanEntity:entity</param>
 private static void checkFK(HosokemtheoTochucchungnhanEntity entity)
 {
     GiaytoEntity oGiayto = GiaytoDAL.GetOne(entity.FK_iGiaytoID);
     if (oGiayto==null)
     {
         throw new Exception("Không tìm thấy :FK_iGiaytoID");
     }
     DangkyHoatdongchungnhanEntity oDangkyHoatdongchungnhan = DangkyHoatdongchungnhanDAL.GetOne(entity.FK_iDangkyChungnhanVietGapID);
     if (oDangkyHoatdongchungnhan==null)
     {
         throw new Exception("Không tìm thấy :FK_iDangkyChungnhanVietGapID");
     }
 }
 /// <summary>
 /// Kiểm tra trùng lặp bản ghi
 /// </summary>
 /// <param name="entity">HosokemtheoTochucchungnhanEntity: HosokemtheoTochucchungnhanEntity</param>
 private static void checkDuplicate(HosokemtheoTochucchungnhanEntity entity,bool checkPK)
 {
     /*
     Example
     List<HosokemtheoTochucchungnhanEntity> list = HosokemtheoTochucchungnhanDAL.GetAll();
     if (list.Exists(
         delegate(HosokemtheoTochucchungnhanEntity oldEntity)
         {
             bool result =oldEntity.FIELD.Equals(entity.FIELD, StringComparison.OrdinalIgnoreCase);
             if(checkPK)
                 result=result && oldEntity.PK_iHosokemtheoID != entity.PK_iHosokemtheoID;
             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);
    }
    protected void SaveChange(object sender, EventArgs e)
    {
        try
        {
            TochucchungnhanEntity oTochucchungnhan = TochucchungnhanBRL.GetOne(iTochucID);
            oTochucchungnhan.sTochucchungnhan = txtTentochuc.Value;
            oTochucchungnhan.sKytuviettat = txtKytuviettat.Value;
            oTochucchungnhan.sDiachi = txtDiachi.Value;
            oTochucchungnhan.FK_iQuanHuyenID = int.Parse(ddlQuanhuyen.SelectedValue);
            oTochucchungnhan.sSodienthoai = txtSodienthoai.Value;
            FileUpload img = (FileUpload)imgUpload;
            if (img.HasFile)
            {
                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.sKytuviettat = " ";
            TochucchungnhanBRL.Edit(oTochucchungnhan);
            //---Cập nhật lại tài liệu
            List<DangkyHoatdongchungnhanEntity> lstDangky = DangkyHoatdongchungnhanBRL.GetByFK_iTochucchungnhanID(oTochucchungnhan.PK_iTochucchungnhanID);
            if (lstDangky.Count > 0)
            {
                List<HosokemtheoTochucchungnhanEntity> lstHoso = HosokemtheoTochucchungnhanBRL.GetByFK_iDangkyChungnhanVietGapID(lstDangky[0].PK_iDangkyChungnhanVietGapID);
                for (int i = 0; i < lstHoso.Count; ++i)
                {
                    HosokemtheoTochucchungnhanBRL.Remove(lstHoso[i].PK_iHosokemtheoID);
                }
                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 = lstDangky[0].PK_iDangkyChungnhanVietGapID;
                        oHoso.FK_iGiaytoID = int.Parse(cblGiaytonopkem.Items[i].Value);
                        HosokemtheoTochucchungnhanBRL.Add(oHoso);
                    }
                }
            }

            lblThongbao.Text = "Cập nhật thông tin thành công!";
            OnOffEdit(false);
            CheckByUserID(PK_iUserID);
        }
        catch (Exception ex)
        {
            lblThongbao.Text = ex.Message;
        }
    }