protected void SaveBtn_Click(object sender, EventArgs e) { _salaryRepo = RepositoryFactory.CreateSalaryLimitRepo(); //取得頁面資料 model = WebUtils.ViewModelMapping <SalaryLimitViewModel>(this.Page); var validator = new Validator(); var validResult = validator.ValidateModel(model); if (!validResult.IsValid) { Response.Write(validResult.ErrorMessage.ToString().ToAlertFormat()); return; } //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); //存檔 string result = "存檔成功!"; try { _salaryRepo.SaveData(model); ViewUtils.ButtonOn(SaveBtn, CoverBtn); Response.ShowMessageAndRefresh(result.ToAlertFormat()); } catch (Exception ex) { result = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message); Response.Write(result.ToAlertFormat()); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } }
protected void SaveBtn_Click(object sender, EventArgs e) { _typeRepo = RepositoryFactory.CreateTypeRepo(); //取得頁面資料 model = WebUtils.ViewModelMapping <TypeViewModel>(this.Page); var validator = new Validator(); var validResult = validator.ValidateModel(model); if (!validResult.IsValid) { Response.Write(validResult.ErrorMessage.ToString().ToAlertFormat()); return; } //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); //存檔 var responseMessage = ""; var successRdUrl = String.Empty; try { if (String.IsNullOrWhiteSpace(Request["FormID"])) { _typeRepo.CreateData(model); successRdUrl = @"TypeDataList.aspx?orderField=CreateDate&descending=True"; responseMessage = "新增成功!"; } else { //編輯資料 _typeRepo.EditData(model); successRdUrl = @"TypeDataList.aspx?orderField=ModifyDate&descending=True"; responseMessage = "編輯成功!"; } //btn處理 ViewUtils.ButtonOn(SaveBtn, CoverBtn); responseMessage = responseMessage.ToAlertAndRedirect(successRdUrl); } catch (Exception ex) { responseMessage = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat(); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } finally { Response.Write(responseMessage); } }
protected void SaveBtn_Click(object sender, EventArgs e) { _forgotRepo = RepositoryFactory.CreateForgotPunchRepo(); //取得頁面資料 model = PageDataBind(); var validResult = PunchDateTimeValidate(); var duplicateResult = IsDuplicateSubmit(); var theSameDateResult = IsTheSameDate(); if (!validResult.IsValid || !duplicateResult.IsValid || !theSameDateResult.IsValid) { var errorMessage = String.Concat(validResult.ErrorMessage, ",", duplicateResult.ErrorMessage, ",", theSameDateResult.ErrorMessage); Response.Write(String.Join("\r\n", errorMessage.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)).ToAlertFormat()); return; } //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); var responseMessage = String.Empty; try { var modelList = new List <RinnaiForms>(); modelList.Add(model); //存檔 if (String.IsNullOrEmpty(Request["SignDocID_FK"])) { _forgotRepo.CreateData(modelList); responseMessage = "新增成功!"; } else { _forgotRepo.EditData(modelList); responseMessage = "編輯成功!"; } #region #0022忘刷送出新增email通知 //主管ADAccount string chiefID = _forgotRepo.FindChiefID(Request["SignDocID_FK"], User.Identity.Name); if (!string.IsNullOrEmpty(chiefID)) { MailerAPI.MailInfo mailInfo = new MailerAPI.MailInfo() { AddresseeTemp = System.Web.Configuration.WebConfigurationManager.AppSettings["MailTemplate"], Subject = String.Format("系統提醒!簽核單號 : {0} 已經送達!", model.SignDocID_FK), //Subject = "系統部測試,請勿理會此郵件,謝謝!", DomainPattern = ConfigUtils.ParsePageSetting("Pattern")["DomainPattern"], CC = new System.Collections.Generic.List <string>() { "*****@*****.**" }, //To = string.Format("{0}@rinnai.com.tw", chiefID) To = string.Format("{0}@rinnai.com.tw", chiefID) }; var portalDomain = ConfigUtils.ParsePageSetting("Domain")["Portal"]; string body = MailTools.BodyToTable( String.Format( @"系統提醒!簽核單號 : {0} 已經送達,請儘速檢視!<br /><a href='{1}/Area/Sign/ProcessWorkflowList.aspx?queryText={0}'>連結</a> <br />此件為系統發送,請勿回覆!", //@"系統部測試,請勿理會此郵件,謝謝!", model.SignDocID_FK, portalDomain)); mailInfo.Body.Append(body); if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE) { new Mailer(mailInfo).SendMail(); } } #endregion ViewUtils.ButtonOn(SaveBtn, CoverBtn); responseMessage = responseMessage.ToAlertAndRedirect(@"/Area/Sign/WorkflowQueryList.aspx?orderField=CreateDate&descending=True"); } catch (Exception ex) { responseMessage = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat(); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } finally { Response.Write(responseMessage); } }
protected void SaveBtn_Click(object sender, EventArgs e) { //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); //存檔 var responseMessage = ""; var successRdUrl = String.Empty; try { var signDocID = Request["SignDocID"]; _handler = RepositoryFactory.CreateAutoInsert(signDocID); var payRange = _handler.ParsePayRange(PayRange.SelectedValue); var columns = OvertimeSettingGridView.Columns.Cast <DataControlField>(); //var paggerParms = WebUtils.ParseQueryString<PaggerParms>(Page.Request); //var manageListParms = WebUtils.ParseQueryString<ManageListParms>(Page.Request); //var pagination = _repo.GetPagination(manageListParms, paggerParms); //ViewUtils.SetGridView(OvertimeSettingGridView, pagination.Data); var rows = OvertimeSettingGridView.Rows.Cast <GridViewRow>(); List <MultiConditions> dmlList = rows.Select(row => { var controls = row.Controls.Cast <Control>(); var data = controls.Zip(columns, (control, column) => { var value = ((Label)control.FindControl(column.HeaderText)).Text; return(new KeyValuePair <string, object>(column.HeaderText, value)); }).ToDictionary(k => k.Key, v => v.Value); // ViewModelMapping var model = WebUtils.ViewModelMapping <OvertimeViewModel>(data); // check employee is settle account or not if (_handler.IsSettledAccounts(model.EmployeeID_FK, payRange)) { throw new Exception(String.Format("員工{0}已經結過{1}月薪資", model.EmployeeID_FK, payRange.Date.ToString("yyyyMM"))); } // get dml return(_handler.GetOvertimeDML(model, payRange)); }).ToList(); var workFlowRepo = RepositoryFactory.CreateProcessWorkflowRepo(); //insert index:0 XACT_ABORT ON dmlList.Insert(0, _handler.GetXACTABORTON()); //update autoinsert true dmlList.Add(_repo.GetAutoInserDML(signDocID, User.Identity.Name)); //insert into db //workFlowRepo.ExecuteSQL(dmlList); responseMessage = "成功寫入SmartMan".ToAlertAndCloseAndRedirect(@"OvertimeReport.aspx?finalStatus=6&StartDateTime=" + Session["StartDateTime"] + "&EndDateTime=" + Session["EndDateTime"] + "&orderField=AutoInsert&descending=False"); } catch (Exception ex) { responseMessage = String.Concat("寫入SmartMan失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat(); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } finally { Response.Write(responseMessage); } }
protected void SaveBtn_Click(object sender, EventArgs e) { _bbsRepo = RepositoryFactory.CreateBbsRepo(); //取得頁面資料 model = WebUtils.ViewModelMapping <BbsViewModel>(this.Page); var validator = new Validator(); var validResult = validator.ValidateModel(model); if (!validResult.IsValid) { Response.Write(validResult.ErrorMessage.ToString().ToAlertFormat()); return; } //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); //存檔 var responseMessage = ""; var successRdUrl = String.Empty; //if (!Check_Null()) //{ // return; //} try { if (String.IsNullOrWhiteSpace(Request["BbsID"])) { BatchFileUpload1(File_Photo); BatchFileUpload2(File_Up1); _bbsRepo.CreateData(model); successRdUrl = @"bbs_contentList.aspx?orderField=CreateDate&descending=True"; responseMessage = "新增成功!"; } else { string filepath1 = string.Empty; if (File_Photo.Visible == false && Button_DelFILE1.Visible == true) { filepath1 = _bbsRepo.Find_Photo(model.bbs_id.ToString()); } else if (!string.IsNullOrEmpty(File_Photo.PostedFile.FileName)) { BatchFileUpload1(File_Photo); filepath1 = File_Photo.FileName; } model.PhotoName = filepath1; string filepath2 = string.Empty; if (File_Up1.Visible == false && Button_DelFILE2.Visible == true) { filepath2 = _bbsRepo.Find_Url(model.bbs_id.ToString()); } else if (!string.IsNullOrEmpty(File_Up1.PostedFile.FileName)) { BatchFileUpload2(File_Up1); filepath2 = File_Up1.FileName; } model.UpName = filepath2; _bbsRepo.EditData(model); successRdUrl = @"bbs_contentList.aspx?orderField=ModifyDate&descending=True"; responseMessage = "編輯成功!"; } //btn處理 ViewUtils.ButtonOn(SaveBtn, CoverBtn); responseMessage = responseMessage.ToAlertAndRedirect(successRdUrl); } catch (Exception ex) { responseMessage = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat(); ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn); } finally { Response.Write(responseMessage); } }
protected void SaveBtn_Click(object sender, EventArgs e) { _processwfRepo = RepositoryFactory.CreateProcessWorkflowRepo(); _rootRepo = RepositoryFactory.CreateRootRepo(); //取得頁面資料 //簽核擔當 ProcessWorkflowDetailViewModel model = PageDataBind(); ProcessWorkflowViewModel model_M = _processwfRepo.GetWorkflowDataAndCheck(Request["SignDocID"], User.Identity.Name); //btn處理 ViewUtils.ButtonOff(SaveBtn, CoverBtn); var sectionChief = new SectionChief(null); #region #0012 忘刷單的時間如果不符合邏輯,在確認簽核的時候主管要看到明顯提示 (目前針對桃園所做設定) //判斷是否為忘刷單 if (model_M.FormID_FK == 1) { //判斷登入者是否為桃園所的員工 EmployeeRepository employeeRepository = RepositoryFactory.CreateEmployeeRepo(); EmployeeViewModel empInfo = employeeRepository.GetEmployeeDataByADAccount(Context.User.Identity.Name); if (empInfo.DepartmentID_FK == "3910") { bool isInRule = _processwfRepo.CheckFogotPunchTimeHasInRule(Request["SignDocID"]); if (!isInRule) { ClientScriptManager cs = Page.ClientScript; cs.RegisterClientScriptBlock(this.GetType(), "PopupScript", "var fpTimeIsSuccess = false;", true); return; } } } #endregion #0012 忘刷單的時間如果不符合邏輯,在確認簽核的時候主管要看到明顯提示 (目前針對桃園所做設定) try { if (model_M.FormID_FK == 3 && model.Status == 3) { //txterror.Text = "123"; //Response.Write("未填寫單位主管意見".ToAlertFormat()); _trainDetaiRepo = RepositoryFactory.CreateTrainDetailRepo(); //取得頁面資料 model = PageDataBind(); var QuestionDataList = _trainDetaiRepo.QueryQuestionDataByChief("02"); String chkString = ""; String ansString = ""; QuestionDataList.All(row => { if (row["ANSTYPE"].ToString() == "C")//填文字 { TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox; ansString = tmpbox.Text; if (ansString == "") { chkString += row["CODENAME"].ToString() + " 不可空白!"; } } else if (row["ANSTYPE"].ToString() == "N") { //RadioButtonList tmprbl = PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()) as RadioButtonList; RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()); ansString = tmprbl.SelectedValue; if (ansString == "") { chkString += row["CODENAME"].ToString() + " 不可空白!"; } } return(true); }); if (chkString != "") { Response.Write(chkString.ToAlertFormat()); return; } else { //儲存主管意見 var successRdUrl = String.Empty; string strCLID = _trainDetaiRepo.Find_CLID(Request["SignDocID"]); string strSID = _trainDetaiRepo.Find_SID(Request["SignDocID"]); //刪除記錄調查表的主管意見 _trainDetaiRepo.DelChiefAnswer("CHARACTER_ANSWER", strCLID, strSID, "02"); _trainDetaiRepo.DelChiefAnswer("NUMERIC_ANSWER", strCLID, strSID, "02"); QuestionDataList.All(row => { if (row["ANSTYPE"].ToString() == "C")//填文字 { //新增 TextBox tmpbox = PlaceHolder1.FindControl("textbox" + row["serial_no"].ToString()) as TextBox; //ansString = tmpbox.Text; _trainDetaiRepo.AddAnswer_C(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmpbox.Text, "Portal"); } else if (row["ANSTYPE"].ToString() == "N") { //新增 RadioButtonList tmprbl = (RadioButtonList)PlaceHolder1.FindControl("rbl" + row["serial_no"].ToString()); //ansString = tmprbl.SelectedValue; _trainDetaiRepo.AddAnswer_N(strCLID, strSID, row["TABLE_ID"].ToString(), row["QNO"].ToString(), row["serial_no"].ToString(), tmprbl.SelectedValue, "Portal"); } return(true); }); } } //主管簽核 sectionChief.SignOff(model); MailInfo info = new MailInfo() { AddresseeTemp = System.Web.Configuration.WebConfigurationManager.AppSettings["MailTemplate"], DomainPattern = ConfigUtils.ParsePageSetting("Pattern")["DomainPattern"], }; var mainData = _processwfRepo.GetWorkflowData(model.SignDocID_FK, null); DataRow deptData = null; //送簽人AD帳號 var signSender = (string)_rootRepo.QueryForEmployeeByEmpID(mainData.EmployeeID_FK)["ADAccount"]; switch (mainData.FinalStatus) { //待簽核 default: case 2: //尋找目前待簽主管AD帳號 deptData = _rootRepo.QueryForDepartmentByDeptID(mainData.CurrentSignLevelDeptID_FK); info.To = (string)_rootRepo.QueryForEmployeeByEmpID((string)deptData["chiefID_FK"])["ADAccount"]; info.Subject = String.Format("系統提醒!簽核單號 : {0} 已經送達,請儘速處理!", model.SignDocID_FK); info.Body.AppendFormat("{0}{1}", info.Subject, "此件為系統發送,請勿回覆!"); break; //駁回 case 4: info.To = signSender; info.Subject = String.Format("系統提醒!簽核單號 : {0} 已被駁回,請儘速修改!", model.SignDocID_FK); info.Body.AppendFormat("{0}{1}", info.Subject, "此件為系統發送,請勿回覆!"); break; //結案 case 6: #region #0013 加班時間小於結薪日,通知email給總務手動要寫入志元 直接判斷Table=>OvertimeForm的AutoInsert //加班單的時候傳的參數為2,方能判斷是否送來簽核的是加班單 if (model_M.FormID_FK == 2) { string sid = Request["SignDocID"].ToString(); //取得結薪日 DateTime salaryLimit = Convert.ToDateTime(_rootRepo.GetSalaryLimit()["LimitDate"]); Overtime overSev = new Overtime(); List <OvertimeViewModel> overDataList = new List <OvertimeViewModel>(); List <OvertimeViewModel> resultDataList = new List <OvertimeViewModel>(); //取得加班資料明細 OvertimeRepository _overtimeRepo = RepositoryFactory.CreateOvertimeRepo(); DataTable tableData = _overtimeRepo.QueryOvertimeFormData(sid); var rows = tableData.Select(); overDataList = _overtimeRepo.dataMapping(tableData); foreach (var over in overDataList) { if (!over.AutoInsert) { resultDataList.Add(over); } //DateTime startDate = (DateTime)over.StartDateTime; //int mathDate = new TimeSpan(startDate.Ticks - salaryLimit.Ticks).Days; //if (mathDate <= 0) //resultDataList.Add(over); } //info.To = "wenhua.yu"; info.To = "juncheng.liu"; info.CC = new List <string>() { "juncheng.liu" }; foreach (var ov in resultDataList) { info.Subject = String.Format("系統提醒!加班單號 : {0} [{1}-{2}]手動轉志元通知!", sid, ov.EmployeeID_FK, ov.EmployeeName); DateTime ovStartTime = (DateTime)ov.StartDateTime; StringBuilder mailBody = new StringBuilder(); mailBody.AppendLine(@"<p>[通知] 加班單 手動轉志元通知。</p>"); mailBody.AppendLine(@"<p> </p>"); mailBody.AppendLine(@"<p>Dear 遇玟樺:</p>"); mailBody.AppendLine(@"<p>需手動轉入志元的加班單如下:</p>"); mailBody.AppendLine(@"<p>加班單號:<span style=""color:#0000ff;"">OT201707290010</span></p>"); mailBody.AppendLine(@"<p>加班日:" + ovStartTime.ToFullTaiwanDate() + "</p>"); //mailBody.AppendLine(@"<p>結薪日:<span style=""color:#ff0000;"">" + salaryLimit.ToFullTaiwanDate() + "</span></p>"); mailBody.AppendLine(@"<p>員工ID:" + ov.EmployeeID_FK + "</p>"); mailBody.AppendLine(@"<p>員工姓名:" + ov.EmployeeName + "</p>"); mailBody.AppendLine(@"<p><a href=""http://portal.rinnai.com.tw/Area/Manage/OvertimeReport.aspx"">Portal</a></p>"); info.Body = mailBody; _mailer = new Mailer(info); //if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE) _mailer.SendMail(); } } #endregion #0013 加班時間小於結薪日,通知email給總務手動要寫入志元 直接判斷Table=>OvertimeForm的AutoInsert //尋找歸檔人員 var fillingDept = (string)_rootRepo.QueryForDepartmentByFormID(mainData.FormID_FK)["DepartmentID"]; deptData = _rootRepo.QueryForDepartmentByDeptID(fillingDept); //20170327 修改不寄給歸檔人員 //info.To = (string)_rootRepo.QueryForEmployeeByEmpID((string)deptData["FilingEmployeeID_FK"])["ADAccount"]; info.To = signSender; //info.CC.Add(signSender); info.Subject = String.Format("系統提醒!簽核單號 : {0} 已通過審核並結案,請儘速確認!", model.SignDocID_FK); info.Body.AppendFormat("{0}{1}", info.Subject, "此件為系統發送,請勿回覆!"); break; } GlobalDiagnosticsContext.Set("User", User.Identity.Name); //mail _mailer = new Mailer(info); if (PublicRepository.CurrentWorkflowMode == Enums.WorkflowTypeEnum.RELEASE) { _mailer.SendMail(); } //log var cc = String.Join(",", info.CC); _log.Trace(String.Format("MailTo : {0}\r\ncc : {1}\r\nTitle : {2}\r\nContent : {3}\r\n", info.To, cc, info.Subject, info.Body)); Response.Write("已送出簽核".ToAlertAndRedirect("/Area/Sign/ProcessWorkflowList.aspx?orderField=ModifyDate&descending=True")); } catch (Exception ex) { Response.Write(ex.Message.ToAlertFormat()); } finally { //btn處理 SaveBtn.ButtonOn(CoverBtn); } }