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"); }
//團隊取消報名寄信已達下限 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' > </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); } }
//團隊活動報名或取消報名 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; } } }
//個人活動報名或取消報名 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("取消報名失敗!。"); } }