Basf_FCL/FCL/FineUIPro.Web/SES/CSafePunishEdit.aspx.cs

524 lines
23 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
/// <summary>
/// 主键
/// </summary>
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("执行了取消操作!");
}
}
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// 菜单按钮权限
/// </summary>
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
}
}