protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        string activityid;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {

            ((Label)e.Row.FindControl("Label1")).Text = ((Label)e.Row.FindControl("Label1")).Text.Replace("\r\n", "<br/>");

            ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();
            if (ActivityType == "1")
            {

                activityid = ((HiddenField)e.Row.FindControl("hiID")).Value;
                if (myActivityRegistDAO.IsPersonRegisted(new Guid(activityid), clsAuth.ID, "", "1") > 0)
                {
                    e.Row.FindControl("lbtnRegist").Visible = false;

                }
            }
        }
    }
    //檢查欲報名者是否已經報過名
    protected void btnNext_Click(object sender, EventArgs e)
    {
        if (Wizard1.ActiveStepIndex == 1 && MyFormMode == FormViewMode.Insert)
        {
            ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();

            if (myActivityRegistDAO.IsPersonRegisted(ActivityID, EmpID, "", "1") > 0)
            {
                clsMyObj.ShowMessage(@"已存在此員工的報名成功紀錄!請選擇其他員工執行代理報名。");
                Wizard1.MoveTo(Wizard1.WizardSteps[0]);
            }
        }
        else if (Wizard1.ActiveStepIndex == 1 && MyFormMode != FormViewMode.Insert)
        {

            if (GridView_RegisterPeoplinfo.SelectedIndex == -1)
            {
                clsMyObj.ShowMessage(@"請選擇要編輯的人員。");
                Wizard1.MoveTo(Wizard1.WizardSteps[0]);
            }
        }

        if (Wizard1.ActiveStepIndex == 2)
        {
            RadioButtonList rblidno_type = (RadioButtonList)FormView_fixA.FindControl("tr_person_fix1").FindControl("rblidno_type");
            TextBox txtperson_fix1 = (TextBox)FormView_fixA.FindControl("tr_person_fix1").FindControl("txtperson_fix1");

            if (rblidno_type.SelectedIndex == 0 && rblidno_type.Visible )
            {
                if (clsMyObj.IDChk(txtperson_fix1.Text) != "0")
                {
                    clsMyObj.ShowMessage("身分證字號格式不正確!");
                    Wizard1.MoveTo(Wizard1.WizardSteps[1]);
                }
            }
        }
    }
    //匯出名單
    protected void lbtnExport_Click(object sender, EventArgs e)
    {
        ACMS.DAO.ActivityRegistDAO regDao = new ACMS.DAO.ActivityRegistDAO();

        DataTable dtUnReg;
        try
        {
            string activity_id = GridView1.DataKeys[((sender as LinkButton).NamingContainer as GridViewRow).RowIndex].Values[0].ToString();
            string activity_type = GridView1.DataKeys[((sender as LinkButton).NamingContainer as GridViewRow).RowIndex].Values[1].ToString();
            //找出未報名清單
            dtUnReg = regDao.GetUnRegist(new Guid (activity_id));
            //「匯出名單」的功能需帶出「報名編號(團隊編號)、部門、工號、姓名、分機、e-mail與額外填寫欄位」等欄位資訊

            DataTable table = new DataTable();

            ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();
            table = myActivityRegistDAO.SelectEmployeesByID(new Guid(activity_id), activity_type);
            if (table.Rows.Count == 0 && dtUnReg.Rows.Count ==0)
            {
                clsMyObj.ShowMessage("沒有資料");
                return;
            }

            DataTable dt = new DataTable();

            dt.Columns.Add("報名編號", System.Type.GetType("System.String"));
            dt.Columns.Add("部門代號", System.Type.GetType("System.String"));
            dt.Columns.Add("部門", System.Type.GetType("System.String"));
            dt.Columns.Add("工號", System.Type.GetType("System.String"));
            dt.Columns.Add("姓名", System.Type.GetType("System.String"));
            dt.Columns.Add("分機", System.Type.GetType("System.String"));
            dt.Columns.Add("EMAIL", System.Type.GetType("System.String"));
            dt.Columns.Add("進度狀態", System.Type.GetType("System.String"));
            //=================================================================
            ACMS.DAO.CustomFieldValueDAO myCustFieldValueDAO = new ACMS.DAO.CustomFieldValueDAO();

            List<ACMS.VO.CustomFieldValueVO> myCustomFieldValueVOList;
            try
            {
                if (table.Rows[0]["activity_type"].ToString() == "2")
                {
                    myCustomFieldValueVOList = myCustFieldValueDAO.SelectCustomFieldValue(new Guid(table.Rows[0]["id"].ToString()), table.Rows[0]["boss_id"].ToString());
                    dt.Columns.Add("隊名", System.Type.GetType("System.String"));
                    dt.Columns.Add("隊長", System.Type.GetType("System.String"));
                }
                else
                {
                    myCustomFieldValueVOList = myCustFieldValueDAO.SelectCustomFieldValue(new Guid(table.Rows[0]["id"].ToString()), table.Rows[0]["emp_id"].ToString());
                }

                dt.Columns.Add("身份證_護照", System.Type.GetType("System.String"));
                ACMS.BO.CustomFieldItemBO myCustFieldItemBO = new ACMS.BO.CustomFieldItemBO();
                List<ACMS.VO.CustomFieldItemVO> myFieldVOS;
                foreach (ACMS.VO.CustomFieldValueVO custFieldVO in myCustomFieldValueVOList)
                {

                    if (custFieldVO.field_control.ToLower() == "textbox")
                    {
                        dt.Columns.Add(custFieldVO.field_name, System.Type.GetType("System.String"));
                    }

                    if (custFieldVO.field_control.ToLower() == "textboxlist")
                    {

                        myFieldVOS = myCustFieldItemBO.SelectByField_id(custFieldVO.field_id);
                        foreach (ACMS.VO.CustomFieldItemVO myFieldvo in myFieldVOS)
                        {
                            dt.Columns.Add(custFieldVO.field_name + '_' + myFieldvo.field_item_name, System.Type.GetType("System.Decimal"));
                        }
                        dt.Columns.Add(custFieldVO.field_name + "合計", System.Type.GetType("System.Decimal"));
                    }
                    if (custFieldVO.field_control.ToLower() == "radiobuttonlist")
                    {
                        // dt.Columns.Add(custFieldVO.field_name, System.Type.GetType("System.String"));
                        myFieldVOS = myCustFieldItemBO.SelectByField_id(custFieldVO.field_id);
                        foreach (ACMS.VO.CustomFieldItemVO myFieldvo in myFieldVOS)
                        {
                            dt.Columns.Add(custFieldVO.field_name + '_' + myFieldvo.field_item_name, System.Type.GetType("System.String"));
                        }
                    }
                    if (custFieldVO.field_control.ToLower() == "checkboxlist")
                    {
                        //dt.Columns.Add(custFieldVO.field_name, System.Type.GetType("System.String"));
                        myFieldVOS = myCustFieldItemBO.SelectByField_id(custFieldVO.field_id);
                        foreach (ACMS.VO.CustomFieldItemVO myFieldvo in myFieldVOS)
                        {
                            dt.Columns.Add(custFieldVO.field_name + '_' + myFieldvo.field_item_name, System.Type.GetType("System.String"));
                        }

                    }
                }
            }
            catch
            {
            }

            // dt.Columns.Add("自訂欄位", System.Type.GetType("System.String"));

            string teamName = "";
            int seqno = 0;
            int seqno1 = 0;
            DataRow dtDr;
            foreach (DataRow dr in table.Rows)
            {
                dtDr = dt.NewRow();
                if (dr["activity_type"].ToString() == "2")
                {
                    if (teamName != dr["boss_id"].ToString().Trim())
                    {
                        seqno++;
                    }
                    if (seqno > int.Parse(dr["team_max"].ToString()))
                    {
                        if (teamName != dr["boss_id"].ToString().Trim())
                        {
                            seqno1++;
                        }
                    }

                }
                else
                {
                    seqno++;
                    if (seqno > int.Parse(dr["team_max"].ToString()))
                    {
                        seqno1++;
                    }
                }
                if (seqno1 > 0)
                {
                    dtDr["報名編號"] = "備取:" + seqno1.ToString();
                }
                else
                {
                    dtDr["報名編號"] = "正取:" + seqno.ToString();
                }
                dtDr["部門代號"] = dr["DEPT_ID"].ToString();
                dtDr["部門"] = dr["C_DEPT_NAME"].ToString();
                dtDr["工號"] = dr["WORK_ID"].ToString();
                dtDr["姓名"] = dr["NATIVE_NAME"].ToString();
                dtDr["分機"] = dr["OFFICE_PHONE"].ToString();
                dtDr["EMAIL"] = dr["OFFICE_MAIL"].ToString();
                dtDr["進度狀態"] = dr["check_status"].ToString();
                dtDr["身份證_護照"] = dr["idno"].ToString();
                if (dr["activity_type"].ToString() == "2")
                {
                    if (dr["boss_id"].ToString() != teamName)
                    {
                        // dtDr["自訂欄位"] = GetCustomField(dr["id"].ToString(), dr["boss_id"].ToString());
                        GetCustomFieldNew(dr["id"].ToString(), dr["boss_id"].ToString(), ref dtDr);
                        dtDr["隊名"] = dr["team_name"].ToString().Trim();
                        dtDr["隊長"] = dr["boss_id"].ToString().Trim();
                    }

                    teamName = dr["boss_id"].ToString().Trim();
                }
                else
                {
                    // dtDr["自訂欄位"] = GetCustomField(dr["id"].ToString(), dr["emp_id"].ToString());
                    GetCustomFieldNew(dr["id"].ToString(), dr["emp_id"].ToString(), ref dtDr);
                }
                dt.Rows.Add(dtDr);
            }
            //加入未報名

            if (dtUnReg.Rows.Count > 0)
            {
                foreach (DataRow dr2 in dtUnReg.Rows)
                {
                    dtDr = dt.NewRow();
                    dtDr["部門代號"] = dr2["DEPT_ID"].ToString();
                    dtDr["部門"] = dr2["C_DEPT_NAME"].ToString();
                    dtDr["工號"] = dr2["WORK_ID"].ToString();
                    dtDr["姓名"] = dr2["NATIVE_NAME"].ToString();
                    dtDr["分機"] = dr2["OFFICE_PHONE"].ToString();
                    dtDr["EMAIL"] = dr2["OFFICE_MAIL"].ToString();
                    dtDr["進度狀態"] = "未報名";

                    dt.Rows.Add(dtDr);
                }
            }

            if ( table.Rows.Count > 0 || dtUnReg.Rows .Count >0)
            {
                table.Columns[0].ColumnName = "員工編號";
                table.Columns[1].ColumnName = "員工姓名";
                table.Columns[2].ColumnName = "員工部門";

                // 產生 Excel 資料流。
                //MemoryStream ms = DataTableRenderToExcel.RenderDataTableToExcel(table) as MemoryStream;
                MemoryStream ms = DataTableRenderToExcel.RenderDataTableToExcel(dt) as MemoryStream;
                // 設定強制下載標頭。
                Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", Server.UrlEncode("RegistedList")));
                // 輸出檔案。
                Response.BinaryWrite(ms.ToArray());

                ms.Close();
                ms.Dispose();
            }
            else
            {
                clsMyObj.ShowMessage("沒有資料!");
            }

        }
        catch (Exception ex)

        {
            WriteErrorLog("ExportExcel", ex.Message, "0");
        }
    }
    //隊員RowDataBound
    protected void GridView_TemMember_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header && (MyFormMode == FormViewMode.Edit || MyFormMode == FormViewMode.ReadOnly ))
        {
          //  e.Row.FindControl("chkDelHead").Visible = false;
          //  e.Row.FindControl("lbtnVOdeleteHeader").Visible = false;

        }
        ACMS.DAO.ActivityRegistDAO regDao = new ACMS.DAO.ActivityRegistDAO();
        if (e.Row.RowType == DataControlRowType.DataRow)
        {

            //團長不可被刪除
            ACMS.VO.ActivityTeamMemberVO myActivityTeamMemberVO = (ACMS.VO.ActivityTeamMemberVO)(e.Row.DataItem);

            if (myActivityTeamMemberVO.emp_id == myActivityTeamMemberVO.boss_id)
            {
                (e.Row.FindControl("lbtnVOdelete") as LinkButton).Visible = false;
                (e.Row.FindControl("chkDel")).Visible = false;
            }

            if (regDao.IsPersonRegisted(ActivityID,myActivityTeamMemberVO.emp_id ,"","2")>0)
            {

             (e.Row.FindControl("lbtnVOdelete") as LinkButton).Visible = false;
             (e.Row.FindControl("chkDel")).Visible = false;

            }

            //團長能改大家的資料,但是團員只能改自己的資料
            if (EmpID != RegistBy)
            {
                if (GridView_TemMember.DataKeys[e.Row.RowIndex].Value.ToString() != EmpID)
                {
                    (e.Row.FindControl("lbtnVOedit") as LinkButton).Visible = false;
                }
                (e.Row.FindControl("lbtnVOdelete") as LinkButton).Visible = false;
               // (e.Row.FindControl("chkDel")).Visible = false;
            }

            //==如果是Edit則不可刪除人員
            if (MyFormMode == FormViewMode.Edit)
            {
                (e.Row.FindControl("lbtnVOdelete") as LinkButton).Visible = false;
               // (e.Row.FindControl("chkDel")).Visible = false;
            }

        }
    }
    //編輯
    protected void GoThirdStep_Click(object sender, RegistGoSecondEventArgs e)
    {
        try
        {
            RegistActivity_Query1.Visible = false;
            Wizard1.Visible = true;

            //必要屬性
            MyFormMode = FormViewMode.Edit;
            ActivityID = new Guid(Session["activity_id"].ToString());

            //載入報名資訊
            ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();
            ACMS.VO.ActivityRegistVO myActivityRegistVO = new ACMS.VO.ActivityRegistVO();

            myActivityRegistVO = myActivityRegistDAO.SelectActivityRegistByMemberID(ActivityID, clsAuth.ID);

            EmpID = clsAuth.ID;
            RegistBy = myActivityRegistVO.regist_by;

            MyHiddenField.Value = ActivityID.ToString();

            txtteam_name.Text = myActivityRegistVO.team_name;
            txtext_people.Text = myActivityRegistVO.ext_people.ToString();

            //不是團長不可編輯
            if (EmpID != RegistBy)
            {
                txtteam_name.Enabled = false;
                txtext_people.Enabled = false;

                btnAddTeamMember.Visible = false;
                //自訂欄位
                PanelCustomFieldA1.Enabled = false;
            }

            //載入活動資訊
            GetActivityDefault();

            //編輯時,帶入資料庫資料

            ACMS.DAO.ActivityTeamMemberDAO myActivityTeamMemberDAO = new ACMS.DAO.ActivityTeamMemberDAO();

            Page_ActivityTeamMemberVOList = myActivityTeamMemberDAO.SelectActivityTeamMember(ActivityID, RegistBy);

            GridView_TemMember.DataSource = Page_ActivityTeamMemberVOList;
            GridView_TemMember.DataBind();

            Wizard1.MoveTo(Wizard1.WizardSteps[0]);
            try
            {
                ((Label)FormView_ActivatyDetails.FindControl("activity_startdateLabel")).Text = ((Label)FormView_ActivatyDetails.FindControl("activity_startdateLabel")).Text.Replace("-", "/").Replace("T", " ");
                ((Label)FormView_ActivatyDetails.FindControl("activity_enddateLabel")).Text = ((Label)FormView_ActivatyDetails.FindControl("activity_enddateLabel")).Text.Replace("-", "/").Replace("T", " ");
            }
            catch
            { }
            //if (((Label)FormView_ActivatyDetails.FindControl("limit_countLabel")).Text == "999999")
            //{
            //    ((Label)FormView_ActivatyDetails.FindControl("limit_countLabel")).Text = "無上限";
            //}
            //if (((Label)FormView_ActivatyDetails.FindControl("limit2_countLabel")).Text == "0")
            //{
            //    ((Label)FormView_ActivatyDetails.FindControl("limit2_countLabel")).Text = "無";
            //}

            // InitQueryBlock(ActivityID.ToString());

            //編輯時載入動態欄位資料
            GetDynamicValue();
        }
        catch (Exception ex)
        {
            WriteErrorLog("ThirdStep", ex.Message, "0");

        }
    }
    //下一步
    protected void btnNext_Click(object sender, EventArgs e)
    {
        if (Wizard1.ActiveStepIndex == 1)
        {
            OpenTeamMemberSelector1.Visible = false;
            OpenTeamPersonInfo1.Visible = false;
            if (IsPersonInfoRequired)
            {
                //個人資料都有填,才能按下一步
                foreach (ACMS.VO.ActivityTeamMemberVO myActivityTeamMemberVO in Page_ActivityTeamMemberVOList)
                {
                    if (myActivityTeamMemberVO.WritePersonInfo != "是")
                    {
                        ShowMessageForAjax(this, string.Format(@"{0}尚未填寫個人相關欄位!無法繼續報名程序!", myActivityTeamMemberVO.NATIVE_NAME));
                        Wizard1.MoveTo(Wizard1.WizardSteps[0]);
                        return;
                    }
                }
            }

            //當團長在操作此畫面時
            if (EmpID == RegistBy)
            {
                //因為有可能更改團員,團隊成員人數符合限制,才能按下一步
                if (!(GridView_TemMember.Rows.Count >= Page_team_member_min && GridView_TemMember.Rows.Count <= Page_team_member_max))
                {
                    ShowMessageForAjax(this, string.Format(@"團隊成員人數必須介於{0}~{1}人!", Page_team_member_min, Page_team_member_max));
                    Wizard1.MoveTo(Wizard1.WizardSteps[0]);
                    return;
                }

                //因為有可能更改團員,所以要檢查欲報名者是否已經報過名

                ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();

                string strEmp_id = "";
                foreach (ACMS.VO.ActivityTeamMemberVO myActivityTeamMemberVO in Page_ActivityTeamMemberVOList)
                {
                    strEmp_id += string.Format("{0},", myActivityTeamMemberVO.emp_id);
                }

                if (strEmp_id.EndsWith(","))
                {
                    strEmp_id = strEmp_id.Substring(0, strEmp_id.Length - 1);
                }

                string strDouble = myActivityRegistDAO.IsTeamRegisted(ActivityID, strEmp_id, RegistBy);

                if (!string.IsNullOrEmpty(strDouble))
                {
                    ShowMessageForAjax(this, string.Format(@"{0}已經是別的團隊的成員,請選擇其他成員!", strDouble));
                    Wizard1.MoveTo(Wizard1.WizardSteps[0]);
                    return;
                }

            }

        }

        //else if (Wizard1.ActiveStepIndex == 1 && MyFormMode != FormViewMode.Insert)
        //{

        //    if (GridView_TemMember.SelectedIndex == -1)
        //    {
        //        clsMyObj.ShowMessage(@"請選擇要編輯的人員。");
        //        Wizard1.MoveTo(Wizard1.WizardSteps[0]);
        //    }
        //}
    }
    //完成
    protected void FinishButton_Click(object sender, EventArgs e)
    {
        //預覽時
        if (Session["form_mode1"] != null)
        {
            if (Session["form_mode1"].ToString() == "preview")
            {
                Session.Remove("form_mode1");
                Response.Redirect("~/WebForm/ManageActivity/ActivityEditQuery.aspx");
            }
        }

        if (hiMode1.Value == "preview")
        {
            Response.Redirect("~/WebForm/ManageActivity/ActivityEditQuery.aspx");
        }

        if (MyFormMode == FormViewMode.ReadOnly)
        {
            Response.Redirect("RegistedActivityQuery.aspx?type=2");
        }
         ACMS.DAO.ActivityGroupLimitDAO  limDAO=new ACMS.DAO.ActivityGroupLimitDAO ();
        try
        {

            ACMS.VO.ActivityRegistVO myActivityRegistVO = GetActivityRegistVO(); //取得報名資訊
            List<ACMS.VO.CustomFieldValueVO> myCustomFieldValueVOList = GetCustomFieldValueVOList();//取得自訂欄位值
            //ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();
            ACMS.DAO.ActivityRegistDAO dao = new ACMS.DAO.ActivityRegistDAO();
            //報名
            MySingleton.AlterRegistResult MyResult;
            string path = Server.MapPath("~/UpFiles");
            string errMsg = "";
            foreach (ACMS.VO.ActivityTeamMemberVO vo in Page_ActivityTeamMemberVOList)
            {
                if (limDAO.GroupLimitIsExist(ActivityID.ToString(), vo.emp_id) == false)
                {
                    errMsg += vo.emp_id + ",";
                }
            }
            if (errMsg != "")
            {

                clsMyObj.ShowMessage("以下人員不在可報名名單中,所以無法報名:"+errMsg.TrimEnd (','));
                return;
            }
            if (MyFormMode == FormViewMode.Insert)
            {

                if (dao.RegistableCount(ActivityID) < 0)
                {

                    clsMyObj.ShowMessage("已額滿,無法報名");
                    return;

                }

                //MyResult = MySingleton.GetMySingleton().AlterRegist_Team(myActivityRegistVO, myCustomFieldValueVOList, Page_ActivityTeamMemberVOList, MySingleton.AlterRegistType.RegistInsert, new Guid(), "", "", "", ((Button)sender).Page.Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.IndexOf('/', 7)) + "/ACMS/WebForm/RegistActivity/RegistedActivityQuery.aspx",path);
                string aa = string.Format("{0}://{1}{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority, HttpContext.Current.Request.ApplicationPath).TrimEnd('/');

                MyResult = MySingleton.GetMySingleton().AlterRegist_Team(myActivityRegistVO, myCustomFieldValueVOList, Page_ActivityTeamMemberVOList, MySingleton.AlterRegistType.RegistInsert, new Guid(), "", "", "", aa + "/Default.aspx", path, "", aa + "/Default.aspx");

            }
            else
            {
                string aa = string.Format("{0}://{1}{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority, HttpContext.Current.Request.ApplicationPath).TrimEnd('/');

                //   MyResult = MySingleton.GetMySingleton().AlterRegist_Team(myActivityRegistVO, myCustomFieldValueVOList, Page_ActivityTeamMemberVOList, MySingleton.AlterRegistType.RegistUpdate, new Guid(), "", "", "", ((Button)sender).Page.Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.IndexOf('/', 7)) + "/ACMS/WebForm/RegistActivity/RegistedActivityQuery.aspx",path);
                MyResult = MySingleton.GetMySingleton().AlterRegist_Team(myActivityRegistVO, myCustomFieldValueVOList, Page_ActivityTeamMemberVOList, MySingleton.AlterRegistType.RegistUpdate, new Guid(), "", "", "", aa + "/Default.aspx", path, "", aa + "/Default.aspx");

            }

            if (MyResult == MySingleton.AlterRegistResult.RegistFail_Already)
            {
                ShowMessageForAjax(this, "已存在報名成功紀錄,無法重複報名!");
                return;
            }
            else if (MyResult == MySingleton.AlterRegistResult.RegistFail_Full)
            {
                ShowMessageForAjax(this, @"抱歉,報名已額滿!若錄取名額有增加則可再次報名。");
                return;
            }
            else if (MyResult == MySingleton.AlterRegistResult.RegistFail)
            {
                ShowMessageForAjax(this, @"資料存檔發生錯誤,無法完成報名。");
                return;
            }
            else
            {

            }

        }
        catch (Exception ex)
        {
            WriteErrorLog("SaveData", ex.Message, "0");
        }
        Response.Redirect("RegistedActivityQuery.aspx?type=2");
    }
Esempio n. 8
0
    //團隊取消報名寄信已達下限
    public static void CancelRegist_TeamUnderLimit(string activity_id, string emp_id, string cancel_by, string webPath)
    {
        //andy
        ACMS.VO.ActivatyVO vo = new ACMS.VO.ActivatyVO();
        ACMS.BO.ActivatyBO bo = new ACMS.BO.ActivatyBO();
        ACMS.DAO.ActivityRegistDAO regDAO = new ACMS.DAO.ActivityRegistDAO();

        string[] smtpto = System.Configuration.ConfigurationManager.AppSettings["SMTPTo"].Split(',');
        Guid id = new Guid(activity_id);
        vo = bo.SelectActivatyByActivatyID(id);
        MailMessage mail = new MailMessage();

        string[] emps = emp_id.Split(',');
        EmployeeVO empVO = new EmployeeVO();
        EmployeeVO empCancelVO = new EmployeeVO();
        EmployeeVO empBossVO = new EmployeeVO();
        EMPloyeeDAO empDAO = new EMPloyeeDAO();

        string mailtype = "";

        //收件者
        //mail.To.Clear();
        mailtype = System.Configuration.ConfigurationManager.AppSettings["MailType"].ToLower();
        if ((string.Compare(mailtype, "online") != 0))
        {
            foreach (string st1 in smtpto)
            {
                mail.To.Add(st1);
            }
        }
        else
        {

            if (string.Compare(cancel_by, "") != 0)
            {
                empVO = empDAO.getEmployee(cancel_by);
                mail.To.Add(empVO.OFFICE_MAIL);
            }

            foreach (string emp in emps)
            {
                if (emp != cancel_by)
                {
                    empVO = empDAO.getEmployee(emp);
                    mail.To.Add(empVO.OFFICE_MAIL);
                }
            }

        }

        string empList = "";
        empList += "";
        foreach (string emp in emps)
        {

            empVO = empDAO.getEmployee(emp);
            empList += empVO.NATIVE_NAME + "、";

            //empVO = empDAO.getEmployee(emp);
            //empList = "<font color='blue'><b>.姓名:</b></font>";
            //empList += empVO.NATIVE_NAME + "<br/>";
            //empList += " <font color='blue'><b>.工號:</b></font>";
            //empList += empVO.WORK_ID + "<br/>";

            empCancelVO = empDAO.getEmployee(cancel_by);

            //if ((string.Compare(mailtype, "online") == 0))
            //{
            //    empBossVO = empDAO.getEmployee(bossid);
            //    if (empBossVO.ID != cancel_by)
            //    {

            //        empVO = empDAO.getEmployee(empBossVO.ID);
            //        mail.To.Add(empVO.OFFICE_MAIL);
            //    }
            //}
        }
        empList = empList.TrimEnd('、');
        mail.Subject = vo.activity_name + ":團隊取消報名通知";
        //寄件者
        mail.From = new System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings["SMTPFrom"], "報名系統通知");
        mail.IsBodyHtml = true;
        mail.Body = "<table  border='1'><tr><td style='background:#548DD4;Color:White' align='center'  ><b>團隊取消報名通知</b></td> </tr>"

            + "<tr><td style ='padding-right :50px;padding-left :50px'><br/><br/><font color='Blue'><b>.活動名稱:</b></font>" + vo.activity_name + "<br/>"
            + "<font color='Blue'><b>.取消日期:</b></font>" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "<br/>"
           + "<font color='Blue'><b>.團隊的隊友:</b></font><font color='black'>" + empList + "</font><br/>";
        //if (cancel_by != emp)
        //{
        //    mail.Body += "<font color='Blue'><b>.此活動由</b></font>" + empCancelVO.NATIVE_NAME + "<font color='Blue'><b>代理您完成取消</b></font>";
        //}

        mail.Body += "<br/><br/><br/></td></tr>" + "<tr><td align='center'><font color='red'>※團隊報名人數已低於下限,系統已取消此隊伍參加資格</font><br/><a href='" + webPath + "?Type=2&ActID="
        + HttpUtility.UrlEncode(activity_id) + "&RegID=" + HttpUtility.UrlEncode(cancel_by)
        + "'>" + "報名系統連結</a><br/>" + "<tr><td style='background:#548DD4' align='center'  >  &nbsp;  </td> </tr></table>";

        SmtpClient smtp = new SmtpClient(System.Configuration.ConfigurationManager.AppSettings["SMTPServer"]);
        string emailAddr = "";
        foreach (MailAddress ma in mail.To)
        {
            emailAddr += ma.Address + ",";
        }
        string ccAddr = "";
        foreach (MailAddress ma1 in mail.CC)
        {
            ccAddr += ma1.Address + ",";
        }

        StringBuilder sb = new StringBuilder();

        sb.AppendLine("Insert  into MailItems( MailFrom, MailTo, MailServer, MailCC, MailSubject, MailBody, Status, Description) values( @MailFrom, @MailTo, @MailServer, @MailCC, @MailSubject, @MailBody, 0,'')");

        SqlParameter[] sqlParams = new SqlParameter[6];
        sqlParams[0] = new SqlParameter("@MailServer", SqlDbType.NVarChar);
        sqlParams[0].Value = System.Configuration.ConfigurationManager.AppSettings["SMTPServer"];
        sqlParams[1] = new SqlParameter("@MailTo", SqlDbType.NVarChar);
        sqlParams[1].Value = emailAddr.TrimEnd(',');
        sqlParams[2] = new SqlParameter("@MailCC", SqlDbType.NVarChar);
        sqlParams[2].Value = ccAddr.TrimEnd(',');
        sqlParams[3] = new SqlParameter("@MailSubject", SqlDbType.NVarChar);
        sqlParams[3].Value = mail.Subject;
        sqlParams[4] = new SqlParameter("@MailBody", SqlDbType.NVarChar);
        sqlParams[4].Value = mail.Body;
        sqlParams[5] = new SqlParameter("@MailFrom", SqlDbType.NVarChar);
        sqlParams[5].Value = System.Configuration.ConfigurationManager.AppSettings["SMTPFrom"];

        SqlConnection myConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
        SqlHelper.ExecuteNonQuery(myConn, CommandType.Text, sb.ToString(), sqlParams);

        try
        {
          //  smtp.Send(mail);

        }
        catch (Exception ex)
        {
            LogMsg.Log(ex.Message, 5, false);
        }
    }
Esempio n. 9
0
    //團隊活動報名或取消報名
    public AlterRegistResult AlterRegist_Team(ActivityRegistVO myActivityRegistVO, List<CustomFieldValueVO> myCustomFieldValueVOList, List<ActivityTeamMemberVO> myActivityTeamMemberVOList, AlterRegistType myAlterRegistType, Guid activity_id, string emp_id, string regist_deadline, string cancelregist_deadline ,string webPath,string path,  string  allTeam ,string  RegWebPath )
    {
        lock (this)
        {
            if (myAlterRegistType == AlterRegistType.RegistInsert || myAlterRegistType == AlterRegistType.RegistUpdate)
            {
                string strEmp_id = "";
                foreach (ACMS.VO.ActivityTeamMemberVO myActivityTeamMemberVO in myActivityTeamMemberVOList)
                {
                    strEmp_id += string.Format("{0},", myActivityTeamMemberVO.emp_id);
                }

                if (strEmp_id.EndsWith(","))
                {
                    strEmp_id = strEmp_id.Substring(0, strEmp_id.Length - 1);
                }

                ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();

                if (myAlterRegistType == AlterRegistType.RegistInsert)
                {
                    //先Insert報名資訊看是否成功
                    int intSaveResult = myActivityRegistDAO.UpdateActivityRegist(myActivityRegistVO, myCustomFieldValueVOList, myActivityTeamMemberVOList, "insert", "2",webPath,path);

                    if (intSaveResult == 1)
                    {
                        //andy-報名成功寄信
                        clsMyObj.RegistSuccess_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by,webPath,path);

                        return AlterRegistResult.RegistSucess;
                    }
                    else
                    {
                        //若失敗可能是重複報名或額滿

                        //是否重複報名

                        int RegistCount = myActivityRegistDAO.IsPersonRegisted(myActivityRegistVO.activity_id, strEmp_id, myActivityRegistVO.regist_by, "2");

                        if (RegistCount > 0)
                        {
                            //andy-報名失敗寄信
                           // clsMyObj.RegistFail_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by,webPath);

                            return AlterRegistResult.RegistFail_Already;
                        }

                        //是否已額滿
                        int RegistableCount = myActivityRegistDAO.RegistableCount(myActivityRegistVO.activity_id);

                        if (RegistableCount <= 0)
                        {
                            //andy-報名失敗寄信
                            //clsMyObj.RegistFail_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by,webPath);

                            return AlterRegistResult.RegistFail_Full;
                        }

                        //andy-報名失敗寄信
                        //clsMyObj.RegistFail_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by,webPath);

                        return AlterRegistResult.RegistFail;
                    }

                }
                else
                {
                    int intSaveResult = myActivityRegistDAO.UpdateActivityRegist(myActivityRegistVO, myCustomFieldValueVOList, myActivityTeamMemberVOList, "update","2",webPath,path);

                    if (intSaveResult == 1)
                    {
                        //團隊修改寄信
                        if (allTeam == "All")//全隊取消
                        {
                            clsMyObj.CancelRegist_TeamUnderLimit(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by, RegWebPath);
                        }

                        else
                        {
                            clsMyObj.RegistSuccess_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by, webPath, path);
                        }

                        return AlterRegistResult.UpdateRegistSucess;
                    }
                    else
                    {
                        //因為團長會異動報名的人,所以要檢查是否選到重複的人
                        if (myActivityRegistVO.emp_id == myActivityRegistVO.regist_by)
                        {
                            //是否重複報名

                            int RegistCount = myActivityRegistDAO.IsPersonRegisted(myActivityRegistVO.activity_id, strEmp_id, myActivityRegistVO.regist_by, "2");

                            if (RegistCount > 0)
                            {
                                //andy-報名失敗寄信
                               // clsMyObj.RegistFail_Team(myActivityRegistVO.activity_id.ToString(), strEmp_id, myActivityRegistVO.regist_by, webPath);

                                return AlterRegistResult.RegistFail_Already;
                            }
                        }

                        return AlterRegistResult.UpdateRegistFail;
                    }
                }

            }
            else
            {
                //報名截止日之前-刪除
                //報名截止日之後-狀態改取消
                //取消報名截止日之後-不可以取消

                ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();
               // myActivityRegistDAO.InsertActivityRegistCancel(activity_id, emp_id, "2", clsAuth.ID);

                if (Convert.ToDateTime(regist_deadline) >= DateTime.Today)
                {
                    //取消報名截止日之前-刪除
                    if (myActivityRegistDAO.DeleteRegist(activity_id, emp_id,"2",webPath,allTeam ,RegWebPath  ) > 0)
                    {
                        //寄信
                        //clsMyObj.RegistSuccess_Team(activity_id.ToString (), emp_id, "", webPath);

                        return AlterRegistResult.CancelRegistSucess;
                    }
                    else
                    {
                        return AlterRegistResult.CancelRegistFail;
                    }
                }
                else if (Convert.ToDateTime(regist_deadline) < DateTime.Today)
                {
                    //取消報名截止日之後-狀態改取消
                    if (myActivityRegistDAO.CancelRegist(activity_id, emp_id,"2",webPath) > 0)
                    {
                        //寄信
                       // clsMyObj.RegistSuccess_Team(activity_id.ToString(), emp_id,"", webPath,path);

                        return AlterRegistResult.CancelRegistSucess;
                    }
                    else
                    {
                        return AlterRegistResult.CancelRegistFail;
                    }
                }
                else if (Convert.ToDateTime(cancelregist_deadline) < DateTime.Today)
                {
                    //取消報名截止日之後-不可以取消
                    return AlterRegistResult.CancelRegistFail_DayOver;
                }

                return AlterRegistResult.CancelRegistFail;

            }

        }
    }
Esempio n. 10
0
    //個人活動報名或取消報名
    public AlterRegistResult AlterRegist(ActivityRegistVO myActivityRegistVO, List<CustomFieldValueVO> myCustomFieldValueVOList, AlterRegistType myAlterRegistType, Guid activity_id, string emp_id,string regist_deadline, string cancelregist_deadline, string webPath ,string path,string allTeam,string RegWebPath)
    {
        lock (this)
        {
            if (myAlterRegistType == AlterRegistType.RegistInsert || myAlterRegistType == AlterRegistType.RegistUpdate)
            {
                ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();

                if (myAlterRegistType == AlterRegistType.RegistInsert)
                {
                    //先Insert報名資訊看是否成功
                    int intSaveResult = myActivityRegistDAO.UpdateActivityRegist(myActivityRegistVO, myCustomFieldValueVOList, null, "insert", "1",webPath ,path);
                    if (intSaveResult == 1)
                    {
                        //andy-報名成功寄信
                        clsMyObj.RegistSuccess(myActivityRegistVO.activity_id.ToString(), myActivityRegistVO.emp_id, myActivityRegistVO.regist_by,webPath ,path  );

                        return AlterRegistResult.RegistSucess;
                    }
                    else
                    {
                        //若失敗可能是重複報名或額滿

                        //是否重複報名
                        int RegistCount = myActivityRegistDAO.IsPersonRegisted(myActivityRegistVO.activity_id, myActivityRegistVO.emp_id,"", "1");

                        if (RegistCount > 0)
                        {
                            //andy-報名失敗寄信
                           // clsMyObj.RegistFail(myActivityRegistVO.activity_id.ToString(), myActivityRegistVO.emp_id, myActivityRegistVO.regist_by,webPath );

                            return AlterRegistResult.RegistFail_Already;
                        }

                        //是否已額滿
                        int RegistableCount = myActivityRegistDAO.RegistableCount(myActivityRegistVO.activity_id);

                        if (RegistableCount <= 0)
                        {
                            //andy-報名失敗寄信
                            //clsMyObj.RegistFail(myActivityRegistVO.activity_id.ToString(), myActivityRegistVO.emp_id, myActivityRegistVO.regist_by,webPath );
                            return AlterRegistResult.RegistFail_Full;
                        }

                        //andy-報名失敗寄信
                       // clsMyObj.RegistFail(myActivityRegistVO.activity_id.ToString(), myActivityRegistVO.emp_id, myActivityRegistVO.regist_by,webPath );

                        return AlterRegistResult.RegistFail;
                    }

                }
                else
                {
                    int intSaveResult = myActivityRegistDAO.UpdateActivityRegist(myActivityRegistVO, myCustomFieldValueVOList, null, "update", "1",webPath,path);
                    if (intSaveResult == 1)
                    {
                        //andy-個人修改成功寄信
                        clsMyObj.RegistSuccessUpdate(myActivityRegistVO.activity_id.ToString(), myActivityRegistVO.emp_id, myActivityRegistVO.regist_by, webPath, path);

                        return AlterRegistResult.UpdateRegistSucess;

                    }
                    else
                    {
                        return AlterRegistResult.UpdateRegistFail;
                    }
                }

            }
            else
            {
                //報名截止日之前-刪除
                //報名截止日之後-狀態改取消
                //取消報名截止日之後-不可以取消

                ACMS.DAO.ActivityRegistDAO myActivityRegistDAO = new ACMS.DAO.ActivityRegistDAO();

                // andy add  2011/3/28 取消前需將資料加到 ActivityRegistCancel中
                myActivityRegistDAO.InsertActivityRegistCancel(activity_id, emp_id, "1", clsAuth.ID);

                if (Convert.ToDateTime(regist_deadline) >=DateTime.Today)
                {
                    //報名截止日之前-刪除
                    if (myActivityRegistDAO.DeleteRegist(activity_id, emp_id, "1",webPath, allTeam,RegWebPath  ) > 0)
                    {
                        //andy-取消報名寄信
                        clsMyObj.CancelRegist( activity_id.ToString(),  emp_id, clsAuth.ID,RegWebPath );

                        return AlterRegistResult.CancelRegistSucess;
                    }
                    else
                    {
                        return AlterRegistResult.CancelRegistFail;
                    }
                }
                else if (Convert.ToDateTime(regist_deadline) < DateTime.Today)
                {
                    //報名截止日之後-狀態改取消
                    if (myActivityRegistDAO.CancelRegist(activity_id, emp_id, "1",webPath) > 0)
                    {
                        //andy-取消報名寄信
                        clsMyObj.CancelRegist(activity_id.ToString(), emp_id, clsAuth.ID,webPath);

                        return AlterRegistResult.CancelRegistSucess;
                    }
                    else
                    {
                        return AlterRegistResult.CancelRegistFail;
                    }
                }
                else if (Convert.ToDateTime(cancelregist_deadline) < DateTime.Today)
                {
                    //取消報名截止日之後-不可以取消
                    return AlterRegistResult.CancelRegistFail_DayOver;
                }

                return AlterRegistResult.CancelRegistFail;

            }

        }
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        string emp_id1 = "";
        string emp_id2 = "";
        string path = Server.MapPath("~/UpFiles");

        //  先檢查是否低於下限

        int membersInt = 0;

        foreach (GridViewRow gvr in GridView1.Rows)
        {
            if ((gvr.FindControl("CheckBox1") as CheckBox).Checked == false)
            {
                membersInt += 1;
            }

        }

        ACMS.BO.ActivatyBO aBO = new ACMS.BO.ActivatyBO();
        ACMS.VO.ActivatyVO aVO = aBO.SelectActivatyByActivatyID(new Guid(activity_id));

        if (membersInt < aVO.team_member_min)
        {

           // string sdoPostScript = "  __doPostBack('" + btnCancelAll1.ClientID + "','1');   ";
           // string ScriptAll = " if (confirm('取消報名則團隊人數將低於下限,是否要全隊取消報名?')==true) { alert ('1232456'); window.open('http://www.google.com.tw');" + sdoPostScript + "} ";
          //  string ScriptAll = " if (confirm('取消報名則團隊人數將低於下限,是否要全隊取消報名?')==true) { alert ('1232456')} ";

            //BasePage.RunClientScript (this.Page , ScriptAll);

            //clsMyObj.ShowMessage("若您取消報名則團隊人數將低於下限,因此系統將取消整個團隊的報名資格,若確定要取消報名,請點選「確定」按鈕後於下個視窗點選「確定取消報名」按鈕!");
            btnOK.Visible = false;
            btnCancelAll.Visible = false;
            btnOK0.Visible = true;
            lblMessage.Visible = true;
            GridView1.Visible = false;
            mpSearch.Show();
            return;

        }

        //已換隊長

        if (newBoss != "")
        {
            foreach (GridViewRow gvr in GridView1.Rows)
            {
                if ((gvr.FindControl("CheckBox1") as CheckBox).Checked == true)
                {
                    if (GridView1.DataKeys[gvr.RowIndex].Value.ToString() == newBoss)
                    {
                        clsMyObj.ShowMessage("您為此隊隊長,請更換隊長,再進行取消!");
                        this.mpSearch.Show();
                        return;
                    }

                }
            }
            ACMS.DAO.ActivityTeamMemberDAO myActivityTeamMemberDAO = new ACMS.DAO.ActivityTeamMemberDAO();
            myActivityTeamMemberDAO.ChangeBoss(new Guid(activity_id), newBoss, emp_id);

        }

        foreach (GridViewRow gvr in GridView1.Rows)
        {
            if ((gvr.FindControl("CheckBox1") as CheckBox).Checked == true && (gvr.FindControl("RadioButton1") as RadioButton).Checked == true)
            {
                clsMyObj.ShowMessage("您為此隊隊長,請更換隊長,再進行取消!");
                    this.mpSearch.Show();
                    return;

            }
        }

        foreach (GridViewRow gvr in GridView1.Rows)
        {
            if ((gvr.FindControl("CheckBox1") as CheckBox).Checked == true)
            {
                emp_id1 += string.Format("{0},", GridView1.DataKeys[gvr.RowIndex].Value.ToString());
            }
            emp_id2 += string.Format("{0},", GridView1.DataKeys[gvr.RowIndex].Value.ToString());
        }

        if (emp_id1.EndsWith(","))
        {
            emp_id1 = emp_id1.Substring(0, emp_id1.Length - 1);
        }

        if (emp_id1 == "" && newBoss == "")
        {
            clsMyObj.ShowMessage("您未取消報名也未更換隊長,程式沒有修改任資料!");

            return;
        }

        MySingleton.AlterRegistResult MyResult = MySingleton.AlterRegistResult.CancelRegistSucess;
        if (!string.IsNullOrEmpty(emp_id1))
        {
            string aa = string.Format("{0}://{1}{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Authority, HttpContext.Current.Request.ApplicationPath).TrimEnd('/');

            //MySingleton.AlterRegistResult MyResult = MySingleton.GetMySingleton().AlterRegist_Team(null, null, null, MySingleton.AlterRegistType.CancelRegist, new Guid(activity_id), emp_id1, regist_deadline, cancelregist_deadline, ((Button)sender).Page.Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.IndexOf('/', 7)) + "/ACMS/WebForm/RegistActivity/RegistedActivityQuery.aspx", path);
            MyResult = MySingleton.GetMySingleton().AlterRegist_Team(null, null, null, MySingleton.AlterRegistType.CancelRegist, new Guid(activity_id), emp_id1, regist_deadline, cancelregist_deadline, aa + "/Default.aspx", path, "", aa + "/Default.aspx");
            //.ResolveUrl("~/WebForm/RegistActivity/RegistedActivityQuery.aspx"));

            GridView1.DataBind();

        }

        if (CancelTeamRegistClick != null)
        {
            this.Visible = false;
            CancelTeamRegistClick(this, e);
        }

        ACMS.DAO.ActivityRegistDAO regDao = new ACMS.DAO.ActivityRegistDAO ();
        emp_id2 = emp_id2.TrimEnd(',');
        string members = regDao.AllTeamMemberByMembers(new Guid(activity_id), emp_id2);

        if (members == "")
        {
            clsMyObj.ShowMessage("已達人數下限,目前已取消該隊的報名資格");
            return;
        }
        if (MyResult == MySingleton.AlterRegistResult.CancelRegistSucess)
        {
            if (newBoss == "" && emp_id1 != "")
            {
                clsMyObj.ShowMessage("取消報名完成。");

            }
            if (newBoss != "" && emp_id1 != "")
            {
                clsMyObj.ShowMessage("更換隊長及取消報名完成。");

            }
            if (newBoss != "" && emp_id1== "")
            {
                clsMyObj.ShowMessage("更換隊長完成。");

            }
        }
        else if (MyResult == MySingleton.AlterRegistResult.CancelRegistFail_DayOver)
        {
            clsMyObj.ShowMessage("取消報名截止日之後無法取消報名!。");
        }
        else if (MyResult == MySingleton.AlterRegistResult.CancelRegistFail)
        {
            clsMyObj.ShowMessage("取消報名失敗!。");
        }
    }