protected void btnContinue_click(object sender, DirectEventArgs e) { SPMBasic basic = new SPMBasic(); txtAPPLY_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); txtDOC_NO.Text = basic.GetSPMFormNO("PRNF"); sbProd_group.Text = ""; txtMODEL_NAME.Text = ""; txtCUSTOMER.Text = ""; txtSALES_OWNER.Text = ""; txtPRODUCT_DES.Text = ""; txtPRODUCT_DES_REMARK.Text = ""; txtSALES_AREA.Text = ""; txtSALES_AREA_REMARK.Text = ""; txtMP_DATE.Text = ""; txtMP_DATE_REMARK.Text = ""; txtPROJECT_CODE.Text = ""; txtPROJECT_CODE_REMARK.Text = ""; txtTIME_QUANTITY.Text = ""; txtTIME_QUANTITY_REMARK.Text = ""; txtOTHERS.Text = ""; txtOTHERS_REMARK.Text = ""; this.btnContinue.Disabled = true; this.btnSave.Disabled = false; txtTP_PM.Text = ""; txtME_ENGINEER.Text = ""; txtEE_ENGINEER.Text = ""; txtNPI_PM.Text = ""; }
private string CheckHandler(string handlers) { string[] handler = handlers.Split(';'); string handlerMsg = string.Empty; foreach (string i in handler) { SPMBasic spmBasic = new SPMBasic(); Model_SPMUserInfo userInfo = new Model_SPMUserInfo(); userInfo = spmBasic.GetUserInfoByEName(i); if (!userInfo.Exists) { handlerMsg += i + ","; } } if (handlerMsg.Length > 0) { return(handlerMsg); } else { return(""); } }
protected void Page_Load(object sender, EventArgs e) { if (Session["UserName"] == null) { Response.Redirect("~/Default.aspx"); } else { lblLogonId.Text = Session["UserName"].ToString(); } if (!X.IsAjaxRequest) { UserRole UserRole_class = new UserRole(); if (UserRole_class.checkRole(lblLogonId.Text, function_id) == false) { ExtAspNet.Alert.Show("对不起,你没有权限操作!"); return; } Model_BorgUserInfo oModel_BorgUserInfo = new Model_BorgUserInfo(); Borg_User oBorg_User = new Borg_User(); oModel_BorgUserInfo = oBorg_User.GetUserInfoByLogonId(lblLogonId.Text); if (oModel_BorgUserInfo._EXISTS) { lblSite.Text = Borg_Tools.GetSiteInfo(); lblBu.Text = oModel_BorgUserInfo._BU; lblBuilding.Text = oModel_BorgUserInfo._Building; } SPMBasic basic = new SPMBasic(); txtAPPLY_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); txtDOC_NO.Text = basic.GetSPMFormNO("PRNF"); BindDept(); BindTeamCategory(); DataTable dt = BindParamer("AttachmentPath"); } }
/// <summary> /// 簽核人抓取異常郵件通知 /// </summary> /// <param name="dtHead">表頭</param> /// <param name="handler">處理人</param> /// <param name="errReason">異常原因</param> protected void GetHandlerErrAlarm(DataTable dtHead, string errReason) { DataRow drHead = dtHead.Rows[0]; string sLongonId = drHead["ERNAM"].ToString().Trim().Replace(" ", ""); string sCaseno = drHead["MBLNR_A"].ToString().Trim(); string plantCode = drHead["WERKS"].ToString().Trim(); string sub = "[" + plantCode + "]GoodsMovement--獲取簽核人錯誤"; string body = "Dear's \r\n"; body += " 單號-" + sCaseno + ";申請人-" + sLongonId + "\r\n"; body += errReason + "\r\n"; SPMBasic SPMBasic_class = new SPMBasic(); string applicant = SPMBasic_class.GetEMailByEName(sLongonId); SendMail mail = new SendMail(); ArrayList to = new ArrayList(); if (applicant.Length > 0) { to.Add(applicant); } ArrayList cc = new ArrayList(); cc.Add(DBIO.GetITWindow(plantCode)); mail.SendMail_Normal(to, cc, sub, body, false); }
private void InitialControl_UserInfo() { #region 申請人基本資料加載 SPMBasic SPMBasic_class = new SPMBasic(); Model_SPMUserInfo SPMUserInfo = new Model_SPMUserInfo(); SPMBasic_class.GetUserInfoByEName(oPara.LoginId, SPMUserInfo); if (SPMUserInfo.Exists == true) { oUIControls.txtLogonID.Text = SPMUserInfo.logonID; oUIControls.txtName.Text = SPMUserInfo.userName; oUIControls.txtPlant.Text = SPMUserInfo.bu; oUIControls.txtDept.Text = SPMUserInfo.deptName; oUIControls.txtEMail.Text = SPMUserInfo.email; oUIControls.txtExtNO.Text = SPMUserInfo.tel_office; } #endregion }
protected void btnConfirm_Click(object sender, DirectEventArgs e) { StringBuilder errMsg = new StringBuilder(); StringBuilder errMsg1 = new StringBuilder(); StringBuilder errMsg2 = new StringBuilder(); string file = FileAttachment.FileName; string Result = string.Empty; int total_num = 0; int ok_num = 0; int ng_num = 0; bool isok = true; if (sbProd_group.Text.Length == 0) { Alert("請選擇產品類別!"); return; } if (!FileAttachment.HasFile) { Alert("請選擇数据文件!"); return; } else { string type = file.Substring(file.LastIndexOf(".") + 1).ToLower(); if (type == "xlsx") { //把文件轉成流 Stream stream = FileAttachment.PostedFile.InputStream; if (stream.Length == 8889) { Alert("導入的資料表為空,請檢查!"); return; } try { DataTable dt = ReadByExcelLibrary(stream); if (dt.Rows.Count > 0) { NPIMgmt oMgmt = new NPIMgmt(lblSite.Text, lblBu.Text); NPI_Standard oStandard = oMgmt.InitialLeaveMgmt(); Model_NPI_APP_MEMBER oModel_NPI_APP_Member = new Model_NPI_APP_MEMBER(); oModel_NPI_APP_Member._UPDATE_USERID = lblLogonId.Text.Trim(); oModel_NPI_APP_Member._UPDATE_TIME = DateTime.Today; oModel_NPI_APP_Member._DOC_NO = txtDOC_NO.Text; for (int i = 0; i < dt.Rows.Count; i++) { string dept = dt.Rows[i]["Dept"].ToString(); string Category = dt.Rows[i]["Category"].ToString(); string WriteName = dt.Rows[i]["WriteEname"].ToString(); string ReplyEName = dt.Rows[i]["ReplyEName"].ToString(); string CheckedEName = dt.Rows[i]["CheckedEName"].ToString(); DataTable dtW = CheckUserInfo(WriteName); DataTable dtR = CheckUserInfo(ReplyEName); DataTable dtC = CheckUserInfo(CheckedEName); #region 檢查 Write Reply Check人員必須都為空或者都不為空 if (Category == "DFX TeamMember" || Category == "CTQ TeamMember" || Category == "ISSUES TeamMember" || Category == "PFMEA TeamMember") { #region if (WriteName.Length == 0 && (ReplyEName.Length > 0 && CheckedEName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (WriteName.Length == 0 && (ReplyEName.Length == 0 && CheckedEName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (WriteName.Length == 0 && (ReplyEName.Length > 0 && CheckedEName.Length == 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (ReplyEName.Length == 0 && (WriteName.Length > 0 && CheckedEName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (ReplyEName.Length == 0 && (WriteName.Length == 0 && CheckedEName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (ReplyEName.Length == 0 && (WriteName.Length > 0 && CheckedEName.Length == 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (CheckedEName.Length == 0 && (ReplyEName.Length > 0 && WriteName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (CheckedEName.Length == 0 && (ReplyEName.Length == 0 && WriteName.Length > 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } if (CheckedEName.Length == 0 && (ReplyEName.Length > 0 && WriteName.Length == 0)) { errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("簽核人員必須都為空後者都不為空</br>"); } #endregion } #endregion #region 檢查關卡名的準確性 if (!IsStepName(Category)) { isok = false; errMsg.Append("第" + (i + 2) + "行"); errMsg.Append("關卡名填寫錯誤!</br>"); } #endregion #region 檢查成員名準確性 不為空時 拼寫是否正確 if (Category == "DFX TeamMember" || Category == "CTQ TeamMember" || Category == "ISSUES TeamMember" || Category == "PFMEA TeamMember") { if (dtW.Rows.Count == 0 && WriteName.Length > 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Write人員不存在</br>"); } if (dtR.Rows.Count == 0 && ReplyEName.Length > 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Reply人員不存在</br>"); } if (dtC.Rows.Count == 0 && CheckedEName.Length > 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Check人員不存在</br>"); } } else { if (WriteName.Length > 0) { if (dtW.Rows.Count == 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Write人員不存在</br>"); } } if (ReplyEName.Length > 0) { if (dtR.Rows.Count == 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Reply人員不存在</br>"); } } if (CheckedEName.Length > 0) { if (dtC.Rows.Count == 0) { isok = false; errMsg.Append("第" + (i + 2) + "行Check人員不存在</br>"); } } } #endregion } #region 數據處理 foreach (DataRow dr in dt.Rows) { total_num = dt.Rows.Count; try { oModel_NPI_APP_Member._Category = dr["Category"].ToString(); oModel_NPI_APP_Member._DEPT = dr["Dept"].ToString();; oModel_NPI_APP_Member._WriteEname = dr["WriteEname"].ToString(); oModel_NPI_APP_Member._ReplyEName = dr["ReplyEname"].ToString(); oModel_NPI_APP_Member._CheckedEname = dr["CheckedEname"].ToString(); SPMBasic oSpmBasic = new SPMBasic(); oModel_NPI_APP_Member._ReplyEmai = oSpmBasic.GetEMailByEName(dr["ReplyEname"].ToString()); oModel_NPI_APP_Member._WriteEmail = oSpmBasic.GetEMailByEName(dr["WriteEname"].ToString()); oModel_NPI_APP_Member._CheckedEmail = oSpmBasic.GetEMailByEName(dr["CheckedEname"].ToString()); if (isok) { Dictionary <string, object> result = oStandard.RecordOperation_APPMemeber(oModel_NPI_APP_Member, Status_Operation.ADD); if ((bool)result["Result"]) { ok_num += 1; } else { ng_num += 1; Alert((string)result["ErrMsg"].ToString()); } } else { ng_num += 1; } } catch (Exception ex) { Alert(ex.ToString()); } } #endregion if (errMsg.Length == 0) { string DocNo = txtDOC_NO.Text; string ProductType = sbProd_group.Text; string DFXCategory = "DFX TeamMember"; string CTQCategory = "CTQ TeamMember"; DataTable dtDFXCount = CompareDeptCountDFX(DocNo, ProductType, DFXCategory); DataTable dtCTQCount = CompareDeptCountCTQ(DocNo, ProductType, CTQCategory); string DFXDept = dtDFXCount.Rows[0]["Dept"].ToString(); string CTQDept = dtCTQCount.Rows[0]["Dept"].ToString(); #region 先判斷DFX CTQ的部門數量是否一致 if (DFXDept.Length > 0) { errMsg2.Append("DFX " + DFXDept + "部門未維護</br>"); } if (CTQDept.Length > 0) { errMsg2.Append("CTQ " + CTQDept + "部門未維護</br>"); } if (errMsg2.Length > 0) { DeleteExist(txtDOC_NO.Text);//有異常則刪除已上傳的資料 BindMember(txtDOC_NO.Text, string.Empty); Alert(string.Format("錯誤信息:<BR/>{0}", errMsg2.ToString())); return; } #endregion #region 根據已經Insert的數據進行第二次Check判斷 該部門某個階段都為空 其餘階段也必須為空 for (int i = 0; i < dt.Rows.Count; i++) { string WriteEname = dt.Rows[i]["WriteEname"].ToString(); string ReplyEName = dt.Rows[i]["ReplyEName"].ToString(); string CheckedEName = dt.Rows[i]["CheckedEName"].ToString(); string WriteDept = dt.Rows[i]["Dept"].ToString(); //DataTable dtCheckCount = CheckDFXDept(DocNo, ProductType, Category);//當前團隊 if (WriteEname.Length == 0 && ReplyEName.Length == 0 && CheckedEName.Length == 0) { string DFXType = dt.Rows[i]["Category"].ToString(); #region DFX 對應部門的簽核人 DataTable dtDFX = GetMember(txtDOC_NO.Text, "DFX TeamMember", WriteDept); string WriteDFX = dtDFX.Rows[0]["WriteEname"].ToString(); string ReplyDFX = dtDFX.Rows[0]["ReplyEName"].ToString(); string CheckedDFX = dtDFX.Rows[0]["CheckedEName"].ToString(); #endregion #region CTQ 對應部門簽核人 DataTable dtCTQ = GetMember(txtDOC_NO.Text, "CTQ TeamMember", WriteDept); string WriteCTQ = dtCTQ.Rows[0]["WriteEname"].ToString(); string ReplyCTQ = dtCTQ.Rows[0]["ReplyEName"].ToString(); string CheckedCTQ = dtCTQ.Rows[0]["CheckedEName"].ToString(); #endregion #region Issue 對應部門簽核人 DataTable dtIssue = GetMember(txtDOC_NO.Text, "ISSUES TeamMember", WriteDept); string WriteIssue = dtIssue.Rows[0]["WriteEname"].ToString(); string ReplyIssue = dtIssue.Rows[0]["ReplyEName"].ToString(); string CheckedIssue = dtIssue.Rows[0]["CheckedEName"].ToString(); #endregion #region FMEA 對應部門簽核人 DataTable dtFMEA = GetMember(txtDOC_NO.Text, "PFMEA TeamMember", WriteDept); string WriteFMEA = dtFMEA.Rows[0]["WriteEname"].ToString(); string ReplyFMEA = dtFMEA.Rows[0]["ReplyEName"].ToString(); string CheckedFMEA = dtFMEA.Rows[0]["CheckedEName"].ToString(); #endregion #region Check Part 1 if (DFXType == "DFX TeamMember") { if (WriteCTQ.Length > 0 || ReplyCTQ.Length > 0 || CheckedCTQ.Length > 0) { errMsg1.Append("DFX " + WriteDept + "部門人員為空時, CTQ也必須都為空</br>"); } if (WriteIssue.Length > 0 || ReplyIssue.Length > 0 || CheckedIssue.Length > 0) { errMsg1.Append("DFX " + WriteDept + "部門人員為空時, Issue也必須都為空</br>"); } if (WriteFMEA.Length > 0 || ReplyFMEA.Length > 0 || CheckedFMEA.Length > 0) { errMsg1.Append("DFX " + WriteDept + "部門人員為空時, FMEA也必須都為空</br>"); } } if (DFXType == "CTQ TeamMember") { if (WriteDFX.Length > 0 || ReplyDFX.Length > 0 || CheckedDFX.Length > 0) { errMsg1.Append("CTQ " + WriteDept + "部門人員為空時, DFX也必須都為空</br>"); } if (WriteIssue.Length > 0 || ReplyIssue.Length > 0 || CheckedIssue.Length > 0) { errMsg1.Append("CTQ " + WriteDept + "部門人員為空時, Issue也必須都為空</br>"); } if (WriteFMEA.Length > 0 || ReplyFMEA.Length > 0 || CheckedFMEA.Length > 0) { errMsg1.Append("CTQ " + WriteDept + "部門人員為空時, FMEA也必須都為空</br>"); } } if (DFXType == "ISSUES TeamMember") { if (WriteDFX.Length > 0 || ReplyDFX.Length > 0 || CheckedDFX.Length > 0) { errMsg1.Append("Issue " + WriteDept + "部門人員為空時, DFX也必須都為空</br>"); } if (WriteCTQ.Length > 0 || ReplyCTQ.Length > 0 || CheckedCTQ.Length > 0) { errMsg1.Append("Issue " + WriteDept + "部門人員為空時, CTQ也必須都為空</br>"); } if (WriteFMEA.Length > 0 || ReplyFMEA.Length > 0 || CheckedFMEA.Length > 0) { errMsg1.Append("Issue " + WriteDept + "部門人員為空時, FMEA也必須都為空</br>"); } } if (DFXType == "PFMEA TeamMember") { if (WriteDFX.Length > 0 || ReplyDFX.Length > 0 || CheckedDFX.Length > 0) { errMsg1.Append("FMEA " + WriteDept + "部門人員為空時, DFX也必須都為空</br>"); } if (WriteCTQ.Length > 0 || ReplyCTQ.Length > 0 || CheckedCTQ.Length > 0) { errMsg1.Append("FMEA " + WriteDept + "部門人員為空時, CTQ也必須都為空</br>"); } if (WriteIssue.Length > 0 || ReplyIssue.Length > 0 || CheckedIssue.Length > 0) { errMsg1.Append("FMEA " + WriteDept + "部門人員為空時, Issue也必須都為空</br>"); } } #endregion #region Check Part2 #endregion } if (errMsg1.Length > 0) { DeleteExist(txtDOC_NO.Text);//有異常則刪除已上傳的資料 BindMember(txtDOC_NO.Text, string.Empty); Alert(string.Format("錯誤信息:<BR/>{0}", errMsg1.ToString())); return; } } #endregion } } } catch (Exception ex) { Alert("Excel數據有問題,錯誤信息: " + ex.Message); return; } } else { Alert("文件類型只能為xlsx"); return; } } //存在錯誤信息 則刪除已新增的數據 if (errMsg.Length > 0) { DeleteExist(txtDOC_NO.Text); BindMember(txtDOC_NO.Text, string.Empty); Alert(string.Format("錯誤信息:<BR/>{0}", errMsg.ToString())); } else { BindMember(txtDOC_NO.Text, string.Empty); Alert(string.Format("上傳筆數:{0}<BR/>成功筆數:{1}<BR/>失敗筆數:{2}<BR/>錯誤信息:<BR/>{3}", total_num.ToString(), ok_num.ToString(), ng_num.ToString(), errMsg.ToString())); } }
protected void btnAdd_Click(object sender, DirectEventArgs e) { string Catgory = cmbType.SelectedItem.Text; string Dept = cobDept.SelectedItem.Text; string WriteEname = sbName.SelectedItem.Value; string ReplyEname = sbReply.SelectedItem.Value; string CheckedEname = sbChecked.SelectedItem.Value; #region [ Valid Fields] StringBuilder ErrMsg = new StringBuilder(); if (string.IsNullOrEmpty(Catgory)) { ErrMsg.Append("請選擇團隊類別</br>"); } if (string.IsNullOrEmpty(Dept)) { ErrMsg.Append("請選擇部門</br>"); } if (string.IsNullOrEmpty(WriteEname)) { ErrMsg.Append("請選擇填寫人員</br>"); } if (string.IsNullOrEmpty(ReplyEname)) { ErrMsg.Append("請選擇回覆人員</br>"); } if (ErrMsg.ToString().Length > 0) { Alert(ErrMsg.ToString()); } #endregion NPIMgmt oMgmt = new NPIMgmt(lblSite.Text, lblBu.Text); NPI_Standard oStandard = oMgmt.InitialLeaveMgmt(); Model_NPI_APP_MEMBER oModel_NPI_APP_Member = new Model_NPI_APP_MEMBER(); oModel_NPI_APP_Member._UPDATE_USERID = lblLogonId.Text.Trim(); oModel_NPI_APP_Member._UPDATE_TIME = DateTime.Today; oModel_NPI_APP_Member._Category = Catgory; oModel_NPI_APP_Member._DEPT = Dept; oModel_NPI_APP_Member._WriteEname = WriteEname; oModel_NPI_APP_Member._ReplyEName = ReplyEname; oModel_NPI_APP_Member._DOC_NO = txtDOC_NO.Text; oModel_NPI_APP_Member._CheckedEname = CheckedEname; SPMBasic oSpmBasic = new SPMBasic(); oModel_NPI_APP_Member._ReplyEmai = oSpmBasic.GetEMailByEName(ReplyEname); oModel_NPI_APP_Member._WriteEmail = oSpmBasic.GetEMailByEName(WriteEname); oModel_NPI_APP_Member._CheckedEmail = oSpmBasic.GetEMailByEName(CheckedEname); try { Dictionary <string, object> result = oStandard.RecordOperation_APPMemeber(oModel_NPI_APP_Member, Status_Operation.ADD); if ((bool)result["Result"]) { Alert("新增團隊成員成功!"); } else { Alert((string)result["ErrMsg"].ToString()); } } catch (Exception ex) { Alert(ex.ToString()); } BindMember(txtDOC_NO.Text, string.Empty); }