using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using FineUIPro.Web.common; using BLL.Common; using BLL; namespace FineUIPro.Web.SES { public partial class CSafePunishEdit : PageBase { #region 定义项 /// /// 主键 /// public string PunishmentId { get { return (string)ViewState["PunishmentId"]; } set { ViewState["PunishmentId"] = value; } } #endregion #region 加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); string view = Request.Params["view"]; var role = BLL.Sys_RoleService.GetRole(CurrUser.RoleId); if (role != null && role.RoleName == "Contract Administrator") { txtSESNo.Required = true; txtCompletionDate.Required = true; txtSESNo.Enabled = true; txtCompletionDate.Enabled = true; } else { txtSESNo.Required = false; txtCompletionDate.Required = false; txtSESNo.Enabled = false; txtCompletionDate.Enabled = false; } // BLL.SESRelatedDataService.InitFONoDropDownList(this.drpFO_No, true);//合同号 //BLL.ContractorService.InitDropDownList(drpContractor, true); //承包商; var contractorLists = from x in Funs.DB.FC_SESRelatedData join y in Funs.DB.Base_Contractor on x.Contractor equals y.ContractorId where x.Expire_Date.Value.AddYears(1) >= DateTime.Now select new { y.ContractorId, Contractor = y.Contractor + y.ContractorCN }; this.drpContractor.DataTextField = "Contractor"; this.drpContractor.DataValueField = "ContractorId"; this.drpContractor.DataSource = contractorLists.Distinct(); this.drpContractor.DataBind(); Funs.FineUIPleaseSelect(this.drpContractor); BLL.DepartService.InitDepartToWhere(this.drpBYC_RU, true);//BYC负责部门 BLL.Sys_UserService.InitUserDropDownList(this.drpViolationInspector, true);//违章检查人 txtViolationRelatedSes.Enabled = false; PunishmentId = Request.Params["punishmentId"]; if (!string.IsNullOrEmpty(PunishmentId)) { Model.View_EMC_Punishment punishment = BLL.PunishmentService.GetPunishmentViewById(PunishmentId); Model.EMC_Punishment pun = BLL.PunishmentService.GetPunishmentById(PunishmentId); if (punishment != null) { this.txtPunishDate.Text = punishment.PunishDate != null ? string.Format("{0:yyyy-MM-dd}", punishment.PunishDate) : ""; this.txtPunishTime.Text = punishment.PunishDate != null ? string.Format("{0:HH:mm}", punishment.PunishDate) : ""; if (!string.IsNullOrEmpty(punishment.ContractorId)) { this.drpContractor.SelectedValue = punishment.ContractorId; BLL.SESRelatedDataService.InitFONoDropDownList(this.drpFO_No, drpContractor.SelectedValue, true);//合同号 this.drpFO_No.SelectedValue = punishment.FO_NO; } this.txtDiscispline.Text = punishment.Discipline; this.txtLocation.Text = punishment.Location; this.txtDescription.Text = punishment.Description; this.txtCompany.Text = punishment.Company.HasValue ? punishment.Company.ToString() : ""; this.txtIndividual.Text = punishment.Individual.HasValue ? punishment.Individual.ToString() : ""; this.txtBackcharge.Text = punishment.Backcharge.HasValue ? punishment.Backcharge.Value.ToString("0.00") : ""; if (pun != null && !string.IsNullOrEmpty(pun.ViolationDegree)) { drpViolationDegree.SelectedValue = pun.ViolationDegree; } txtContractAdmin.Text = punishment.Contract_Admin; txtMainCoordinator.Text = punishment.Main_Coordinator; txtMCDept.Text = punishment.MCDept; txtUserRepresentative.Text = punishment.User_Representative; if (punishment.SelectYesNo != null) { drpSelectYesNo.SelectedValue = punishment.SelectYesNo == true ? "True" : "False"; } else { drpSelectYesNo.SelectedValue = ""; } txtDef.Text= punishment.Def; if (!string.IsNullOrEmpty(punishment.BYC_RU)) { this.drpBYC_RU.SelectedValue = punishment.BYC_RU; } if (!string.IsNullOrEmpty(punishment.Violation_Inspector)) { this.drpViolationInspector.SelectedValue = punishment.Violation_Inspector; var user = BLL.Sys_UserService.GetUsersByUserId(punishment.Violation_Inspector); string depName = BLL.DepartService.GetDepartNameById(user.DepartId); txtInspectionDep.Text = depName; } if (this.CurrUser.DepartId == punishment.BYC_RU || this.CurrUser.Account==Const.Gly) { btnSave.Hidden = false; txtViolationRelatedSes.Enabled = true; drpSelectYesNo.Enabled = true; txtDef.Enabled = true; } else { btnSave.Hidden = true; txtViolationRelatedSes.Enabled = false; drpSelectYesNo.Enabled = false; txtDef.Enabled = false; } var puList = (from x in Funs.DB.EMC_Punishment where x.Flag == "1" && x.BYC_RU != null && x.BYC_RU != "NA" select x.BYC_RU).Distinct().ToArray(); if (this.CurrUser.DepartId != null && puList.Contains(this.CurrUser.DepartId)) { drpViolationInspector.Hidden = true; txtInspectionDep.Hidden = true; } this.txtCompletionDate.Text = punishment.CompletionDate != null ? string.Format("{0:yyyy-MM-dd}", punishment.CompletionDate) : ""; this.txtSESNo.Text = punishment.SES_No; txtViolationRelatedSes.Text = punishment.ViolationRelatedSes; } } else { } if (view == "1") { this.btnSave.Hidden = true; } else { GetButtonPower();//按钮权限 } } } #endregion #region 保存 protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) { if (e.EventArgument == "SaveConfirm_OK") { Save(); } else if (e.EventArgument == "SaveConfirm_Cancel") { ShowNotify("执行了取消操作!"); } } /// /// 保存 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (this.drpContractor.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Contractor!", MessageBoxIcon.Warning); return; } if (this.drpFO_No.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Contract No.!", MessageBoxIcon.Warning); return; } if (this.drpViolationInspector.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select Violation Inspector!", MessageBoxIcon.Warning); return; } if (this.drpBYC_RU.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("Please select BYC Resp. Dept.!", MessageBoxIcon.Warning); return; } if (!string.IsNullOrEmpty(PunishmentId)) { var punishment = BLL.PunishmentService.GetPunishmentById(PunishmentId); if ((this.CurrUser.DepartId == punishment.BYC_RU || this.CurrUser.Account == Const.Gly) && this.drpSelectYesNo.SelectedValue == "") { Alert.ShowInTop("请选择是否有关联SES请选择是否有关联SES!", MessageBoxIcon.Warning); return; } } if (PunishmentId == null) { PunishmentId = string.Empty; } //if (BLL.PunishmentService.IsExistSES_NO(PunishmentId, this.txtSESNo.Text.Trim(), "1")) //{ // Alert.ShowInTop("The Backcharge SES NO. already exists!"); // return; //} if (txtViolationRelatedSes.Text != string.Empty && drpFO_No.SelectedValue != Const._Null) { var sesList = from x in Funs.DB.FC_SESReport where x.FO == drpFO_No.SelectedValue select x.SES_No; if (txtViolationRelatedSes.Text.Length != 10) { //PageContext.RegisterStartupScript(Confirm.GetShowReference("SES NO:" + txtViolationRelatedSes.Text + "长度不等10位 " + ", 确认(继续) / 取消(退出)", // String.Empty, // MessageBoxIcon.Question, // PageManager1.GetCustomEventReference(false, "SaveConfirm_OK"), // PageManager1.GetCustomEventReference("SaveConfirm_Cancel"))); Alert.ShowInTop("SES NO:" + txtViolationRelatedSes.Text + "长度不等10位,请检查并填入正确的SES号!", MessageBoxIcon.Warning); return; } else { if (!sesList.Contains(txtViolationRelatedSes.Text)) { PageContext.RegisterStartupScript(Confirm.GetShowReference("SES NO:" + txtViolationRelatedSes.Text + " 不属于合同:" + drpFO_No.SelectedValue + ", 确认(继续) / 取消(退出)", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "SaveConfirm_OK"), PageManager1.GetCustomEventReference("SaveConfirm_Cancel"))); } else { Save(); } } } else { Save(); } } private void Save() { Model.EMC_Punishment punishment = new Model.EMC_Punishment(); punishment.PunishDate = Funs.GetNewDateTime(this.txtPunishDate.Text.Trim() + " " + txtPunishTime.Text.Trim()); punishment.FO_NO = drpFO_No.SelectedValue; if (txtSESNo.Text.Trim() != string.Empty) { punishment.SES_No = txtSESNo.Text.Trim(); } punishment.Location = txtLocation.Text.Trim(); punishment.Description = txtDescription.Text.Trim(); if (txtCompany.Text != string.Empty) { punishment.Company = Convert.ToDecimal(txtCompany.Text.Trim()); } if (txtIndividual.Text != string.Empty) { punishment.Individual = Convert.ToDecimal(txtIndividual.Text.Trim()); } punishment.ViolationDegree = drpViolationDegree.SelectedValue; if (drpBYC_RU.SelectedValue != Const._Null) { punishment.BYC_RU = drpBYC_RU.SelectedValue; } if (drpViolationInspector.SelectedValue != Const._Null) { punishment.Violation_Inspector = drpViolationInspector.SelectedValue; } if (drpSelectYesNo.SelectedValue != "") { punishment.SelectYesNo = Convert.ToBoolean(drpSelectYesNo.SelectedValue); } if (txtDef.Text != "") { punishment.Def = txtDef.Text.Trim(); } punishment.ViolationRelatedSes = txtViolationRelatedSes.Text.Trim(); punishment.CompletionDate = Funs.GetNewDateTime(this.txtCompletionDate.Text.Trim()); punishment.Flag = "1"; if (!string.IsNullOrEmpty(PunishmentId)) { punishment.PunishmentId = PunishmentId; BLL.PunishmentService.UpdatePunishment(punishment); BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Modify Contractor Safety Punishment!"); } else { PunishmentId = SQLHelper.GetNewID(typeof(Model.EMC_Punishment)); punishment.PunishmentId = PunishmentId; punishment.CreateDate = DateTime.Now; BLL.PunishmentService.AddPunishment(punishment); BLL.Sys_LogService.AddLog(this.CurrUser.UserId, "Add Contractor Safety Punishment!"); } #region 承包商EHSS违规关联SES号的填写通知 var vses = (from x in Funs.DB.EMC_Punishment where (x.RelatedSesMailIsSend == null || x.RelatedSesMailIsSend == false) && x.BYC_RU != null && x.BYC_RU.ToUpper() != "NA" && x.Flag == "1" && x.PunishmentId== punishment.PunishmentId select x).ToList(); if (vses.Count() > 0) { Model.EmailPop pops = Funs.DB.EmailPop.FirstOrDefault(x => x.EmailID == BLL.Const.EmailPopId); if (pops == null) { return; } foreach (var ses in vses) { string[] mailTo = null; string[] mailCC = null; string resultMessage = ""; var emailTemplate = Funs.DB.SendEmailTemplate.Where(x => x.EmailName.Contains("承包商EHSS违规关联SES号的填写通知")); if (emailTemplate.Count() > 0) { var dep = BLL.DepartService.GetDepartById(ses.BYC_RU); if (dep != null && !string.IsNullOrEmpty(dep.DepartLeader)) { var userTo = from x in Funs.DB.Sys_User where x.UserId == dep.DepartLeader && x.Email != null && x.Email != "" select x; if (userTo != null) { mailTo = userTo.Select(x => x.Email).ToArray(); } string contractor = string.Empty; var fo = BLL.SESRelatedDataService.GetSESRelatedDataByFoNo(ses.FO_NO); if (fo != null) { var userCC = from x in Funs.DB.Sys_User where (x.UserId == fo.Contract_Admin || x.UserId == fo.Main_Coordinator) && x.Email != null && x.Email != "" select x; mailCC = userCC.Select(x => x.Email).Distinct().ToArray(); var con = Funs.DB.View_Contractor_DropDownValue.FirstOrDefault(x => x.ContractorId == fo.Contractor); if (con != null) { contractor = con.Contractor; } } if (mailTo.Length > 0) { NameValueCollection myPram = new NameValueCollection(); myPram.Add("ContractNo", fo.FO_NO); myPram.Add("Contractor", contractor); myPram.Add("Date", ses.PunishDate != null ? ses.PunishDate.Value.ToString("yyyy-MM-dd") : ""); myPram.Add("Time", ses.PunishDate != null ? ses.PunishDate.Value.ToString("HH:mm") : ""); myPram.Add("Violation Description", ses.Description); bool result = MailHelper.SendPunishSesMail(pops, myPram, "承包商EHSS违规关联SES号的填写通知", mailTo, mailCC, out resultMessage); if (result) { ses.RelatedSesMailIsSend = true; Funs.DB.SubmitChanges(); } } } } } } #endregion ShowNotify("Save successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion protected void drpContractor_SelectedIndexChanged(object sender, EventArgs e) { if (this.drpContractor.SelectedValue != BLL.Const._Null) { this.drpFO_No.Items.Clear(); BLL.SESRelatedDataService.InitFONoDropDownList(this.drpFO_No, drpContractor.SelectedValue, true);//合同号 drpFO_No.SelectedValue = BLL.Const._Null; txtDiscispline.Text = string.Empty; } } protected void drpFO_No_SelectedIndexChanged(object sender, EventArgs e) { if (drpFO_No.SelectedValue != Const._Null) { string foNO = drpFO_No.SelectedValue; Model.View_FC_SESRelatedData fc = BLL.SESRelatedDataService.GetSESRelatedDataViewByFO(foNO); if (fc != null) { txtDiscispline.Text = fc.Discipline; txtContractAdmin.Text = fc.Contract_Admin; txtMainCoordinator.Text = fc.Main_Coordinator; txtUserRepresentative.Text = fc.User_Representative; txtMCDept.Text = fc.MCDept; } } } protected void drpViolationInspector_SelectedIndexChanged(object sender, EventArgs e) { if (drpViolationInspector.SelectedValue != Const._Null) { string manId = drpViolationInspector.SelectedValue; var user = BLL.Sys_UserService.GetUsersByUserId(manId); string depName = BLL.DepartService.GetDepartNameById(user.DepartId); txtInspectionDep.Text = depName; } } protected void drpSelectYesNo_SelectedIndexChanged(object sender, EventArgs e) { if (drpSelectYesNo.SelectedValue == "True") { txtViolationRelatedSes.Readonly = false; txtViolationRelatedSes.ShowRedStar = true; txtViolationRelatedSes.Required = true; } else { txtViolationRelatedSes.Readonly = true; txtViolationRelatedSes.ShowRedStar = false; txtViolationRelatedSes.Required = false; txtDef.ShowRedStar = true; txtDef.Required = true; } } protected void txtPunish_OnTextChanged(object sender, EventArgs e) { decimal? numCompany = 0; decimal? numIndividual = 0; if (txtCompany.Text != string.Empty) { numCompany = Funs.GetNewDecimal(txtCompany.Text); } if (txtIndividual.Text != string.Empty) { numIndividual = Funs.GetNewDecimal(txtIndividual.Text); } txtBackcharge.Text = (numCompany + numIndividual).Value.ToString("0.00"); } private void SetReadonly(bool read) { txtPunishDate.Enabled = read; txtPunishTime.Enabled = read; drpContractor.Enabled = read; drpFO_No.Enabled = read; txtDiscispline.Enabled = read; txtLocation.Enabled = read; txtDescription.Enabled = read; txtCompany.Enabled = read; txtIndividual.Enabled = read; txtBackcharge.Enabled = read; drpViolationDegree.Enabled = read; txtContractAdmin.Enabled = read; txtMainCoordinator.Enabled = read; txtMCDept.Enabled = read; txtUserRepresentative.Enabled = read; drpBYC_RU.Enabled = read; drpViolationInspector.Enabled = read; txtInspectionDep.Enabled = read; txtSESNo.Enabled = read; txtCompletionDate.Enabled = read; } #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.CSafePunishMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSave)) { this.btnSave.Hidden = false; } else { SetReadonly(false); } } } #endregion } }