using BLL;
using Model;
using System;
using System.Linq;
using System.ServiceModel;
using System.Text.RegularExpressions;
using System.Data;
namespace FineUIPro.Web.ProjectData
{
public partial class ProjectSetSave : PageBase
{
///
/// 定义项
///
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
ProjectTypeService.InitProjectTypeDropDownList(this.drpProjectType, true);
ProjectTypeService.InitProvinceDropDownList(this.drpProvince, true);
this.ProjectId = Request.QueryString["ProjectId"];
UnitService.InitBranchUnitDropDownList(this.drpUnit, true, true);
this.drpUnit.SelectedValue = Const.UnitId_SEDIN;
if (!String.IsNullOrEmpty(this.ProjectId))
{
var project = BLL.ProjectService.GetProjectByProjectId(this.ProjectId);
if (project != null)
{
if (!string.IsNullOrEmpty(project.MasterSysId))
{
this.drpMasterBox1.Value = project.MasterSysId;
}
this.txtProjectCode.Text = project.ProjectCode;
this.txtProjectName.Text = project.ProjectName;
this.txtProjectAddress.Text = project.ProjectAddress;
this.txtWorkRange.Text = project.WorkRange;
this.txtContractNo.Text = project.ContractNo;
this.txtRemark.Text = project.Remark;
if (project.Duration != null)
{
this.txtDuration.Text = project.Duration.ToString();
}
if (project.StartDate.HasValue)
{
this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", project.StartDate);
}
if (project.EndDate.HasValue)
{
this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", project.EndDate);
}
this.txtShortName.Text = project.ShortName;
if (!string.IsNullOrEmpty(project.ProjectType))
{
this.drpProjectType.SelectedValue = project.ProjectType;
}
if (!string.IsNullOrEmpty(project.UnitId))
{
this.drpUnit.SelectedValue = project.UnitId;
}
this.initProjectRoles();
///项目经理
this.drpProjectManager.SelectedValue = SitePerson_PersonService.GetPersonIdByProjectIdRoleID(this.ProjectId, Const.ProjectManager);
///施工经理
this.drpConstructionManager.SelectedValue = SitePerson_PersonService.GetPersonIdByProjectIdRoleID(this.ProjectId, Const.ConstructionManager);
////安全经理
this.drpHSSEManager.SelectedValue = SitePerson_PersonService.GetPersonIdByProjectIdRoleID(this.ProjectId, Const.HSSEManager);
this.drpProjectState.SelectedValue = project.ProjectState;
this.ckIsUpTotalMonth.Checked = project.IsUpTotalMonth.Value;
if (project.IsForeign == true)
{
this.ckbIsForeign.Checked = true;
}
this.txtMapCoordinates.Text = project.MapCoordinates;
this.txtProjectMoney.Text = project.ProjectMoney.ToString();
this.txtConstructionMoney.Text = project.ConstructionMoney.ToString();
this.txtTelephone.Text = project.Telephone;
this.txtCountry.Text = project.Country;
if (!string.IsNullOrEmpty(project.Province))
{
this.drpProvince.SelectedValue = project.Province;
}
this.txtCity.Text = project.City;
this.txtEnglishRemark.Text = project.EnglishRemark;
this.txtProjectRealCode.Text = project.ProjectRealCode;
if (project.IsCNCECShow == true)
{
this.rbIsCNCECShow.SelectedValue = "True";
}
else
{
this.rbIsCNCECShow.SelectedValue = "False";
}
}
}
else
{
this.initProjectRoles();
}
}
}
///
/// 保存数据
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
if (!this.ckbIsForeign.Checked)
{
if (this.drpProvince.SelectedValue == BLL.Const._Null)
{
ShowNotify("请选择省份!", MessageBoxIcon.Warning);
return;
}
}
Base_Project project = new Base_Project
{
ProjectCode = this.txtProjectCode.Text.Trim(),
ProjectName = Regex.Replace(this.txtProjectName.Text, @"\s", ""),
ProjectAddress = this.txtProjectAddress.Text.Trim(),
WorkRange = this.txtWorkRange.Text.Trim(),
ContractNo = this.txtContractNo.Text.Trim(),
Duration = Funs.GetNewDecimal(this.txtDuration.Text.Trim()),
MapCoordinates = this.txtMapCoordinates.Text.Trim(),
ProjectState = this.drpProjectState.SelectedValue,
ProjectMoney = Funs.GetNewDecimal(this.txtProjectMoney.Text),
ConstructionMoney = Funs.GetNewDecimal(this.txtConstructionMoney.Text),
Remark = this.txtRemark.Text.Trim(),
Telephone = this.txtTelephone.Text.Trim(),
Country = this.txtCountry.Text.Trim(),
City = this.txtCity.Text.Trim(),
EnglishRemark = this.txtEnglishRemark.Text.Trim(),
ProjectRealCode = this.txtProjectRealCode.Text.Trim(),
IsCNCECShow = Convert.ToBoolean(this.rbIsCNCECShow.SelectedValue),
};
if (!string.IsNullOrWhiteSpace(this.drpMasterBox1.Text))
{
project.MasterSysId = this.drpMasterBox1.Value;
}
if (!string.IsNullOrEmpty(txtStartDate.Text.Trim()))
{
project.StartDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim());
}
if (!string.IsNullOrEmpty(txtEndDate.Text.Trim()))
{
project.EndDate = Funs.GetNewDateTime(this.txtEndDate.Text.Trim());
}
project.ShortName = this.txtShortName.Text.Trim();
if (this.drpProjectType.SelectedValue != BLL.Const._Null)
{
project.ProjectType = this.drpProjectType.SelectedValue;
}
if (this.drpProvince.SelectedValue != BLL.Const._Null)
{
project.Province = this.drpProvince.SelectedValue;
}
if (this.drpUnit.SelectedValue != BLL.Const._Null)
{
project.UnitId = this.drpUnit.SelectedValue;
}
//project.PostCode = this.txtPostCode.Text.Trim();
project.IsUpTotalMonth = Convert.ToBoolean(this.ckIsUpTotalMonth.Checked);
project.IsForeign = Convert.ToBoolean(this.ckbIsForeign.Checked);
if (String.IsNullOrEmpty(this.ProjectId))
{
project.ProjectId = SQLHelper.GetNewID();
project.ProjectState = BLL.Const.ProjectState_1;
this.ProjectId = project.ProjectId;
ProjectService.AddProject(project);
// 初始化焊接环境变量设置
BLL.Project_SysSetService.InsertHjglInit(project.ProjectId);
LogService.AddSys_Log(this.CurrUser, project.ProjectCode, project.ProjectId, BLL.Const.ProjectSetMenuId, BLL.Const.BtnAdd);
}
else
{
var getProject = BLL.ProjectService.GetProjectByProjectId(this.ProjectId);
if (getProject != null)
{
project.FromProjectId = getProject.FromProjectId;
}
project.ProjectId = this.ProjectId;
ProjectService.UpdateProject(project);
LogService.AddSys_Log(this.CurrUser, project.ProjectCode, project.ProjectId, BLL.Const.ProjectSetMenuId, BLL.Const.BtnModify);
}
this.SetProjectManager(project.ProjectId);/// 设置项目、施工、安全经理
ShowNotify("保存数据成功!", MessageBoxIcon.Success);
// 2. 关闭本窗体,然后刷新父窗体
// PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
// 2. 关闭本窗体,然后回发父窗体
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Request.Params["PageIndex"] + "," + Request.Params["PageSize"]) + ActiveWindow.GetHidePostBackReference());
//PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(wedId) + ActiveWindow.GetHideReference());
}
#region 验证项目名称、项目编号是否存在
///
/// 验证项目名称、项目编号是否存在
///
///
///
protected void TextBox_TextChanged(object sender, EventArgs e)
{
var q = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectCode == this.txtProjectCode.Text.Trim() && (x.ProjectId != this.ProjectId || (this.ProjectId == null && x.ProjectId != null)));
if (q != null)
{
ShowNotify("输入的项目编号已存在!", MessageBoxIcon.Warning);
}
var q2 = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectName == this.txtProjectName.Text.Trim() && (x.ProjectId != this.ProjectId || (this.ProjectId == null && x.ProjectId != null)));
if (q2 != null)
{
ShowNotify("输入的项目名称已存在!", MessageBoxIcon.Warning);
}
}
#endregion
#region 设置项目、施工、安全经理
///
/// 设置项目、施工、安全经理
///
///
private void SetProjectManager(string projectId)
{
////项目经理
SitePerson_PersonService.SaveSitePersonProjectRole(projectId, Const.ProjectManager, this.drpProjectManager.SelectedValue);
////施工经理
SitePerson_PersonService.SaveSitePersonProjectRole(projectId, Const.ConstructionManager, this.drpConstructionManager.SelectedValue);
////安全经理
SitePerson_PersonService.SaveSitePersonProjectRole(projectId, Const.HSSEManager, this.drpHSSEManager.SelectedValue);
}
#endregion
protected void txtStartDate_Blur(object sender, EventArgs e)
{
var sDate = Funs.GetNewDateTime(this.txtStartDate.Text);
var eDate = Funs.GetNewDateTime(this.txtEndDate.Text);
if (sDate.HasValue && eDate.HasValue && eDate.Value > sDate.Value)
{
int m1 = sDate.Value.Year * 12 + sDate.Value.Month;
int m2 = eDate.Value.Year * 12 + eDate.Value.Month;
int a = m2 - m1;
TimeSpan ts1 = new TimeSpan(sDate.Value.Ticks);
TimeSpan ts2 = new TimeSpan(eDate.Value.AddMonths(0 - a).Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
this.txtDuration.Text = (Math.Round((ts.Days * 1.0 / 30), 1) + a).ToString();
}
}
protected void ckbIsForeign_CheckedChanged(object sender, CheckedEventArgs e)
{
if (this.ckbIsForeign.Checked)
{
this.drpProvince.ShowRedStar = false;
this.drpProvince.Required = false;
}
else
{
this.drpProvince.ShowRedStar = true;
this.drpProvince.Required = true;
}
}
protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e)
{
this.initProjectRoles();
}
protected void initProjectRoles()
{
string unitId = this.drpUnit.SelectedValue == Const._Null ? Const.UnitId_SEDIN : this.drpUnit.SelectedValue;
///项目经理
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(this.drpProjectManager, null, unitId, null, true);
///施工经理
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(this.drpConstructionManager, null, unitId, null, true);
///安全经理
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(this.drpHSSEManager, null, unitId, null, true);
}
private void BindGrid()
{
var list = ProjectService.GetMasterProjectInfos();
string code = ttbCodeSearch.Text.Trim();
string name = ttbNameSearch.Text.Trim();
if (!string.IsNullOrWhiteSpace(code))
{
list = list.Where(x => x.PrjCode.Contains(code)).ToList();
}
if (!string.IsNullOrWhiteSpace(name))
{
list = list.Where(x => x.PrjName.Contains(name)).ToList();
}
// 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
Grid1.RecordCount = list.Count();
// 2.获取当前分页数据
DataTable table = Funs.LINQToDataTable(list);
// 3.绑定到Grid
Grid1.DataSource = table;
Grid1.DataBind();
}
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid();
}
protected void ttbCodeSearch_Trigger1Click(object sender, EventArgs e)
{
ttbCodeSearch.Text = string.Empty;
ttbCodeSearch.ShowTrigger1 = false;
BindGrid();
}
protected void ttbCodeSearch_Trigger2Click(object sender, EventArgs e)
{
ttbCodeSearch.ShowTrigger1 = true;
BindGrid();
}
protected void ttbNameSearch_Trigger1Click(object sender, EventArgs e)
{
ttbNameSearch.Text = string.Empty;
ttbNameSearch.ShowTrigger1 = false;
BindGrid();
}
protected void ttbNameSearch_Trigger2Click(object sender, EventArgs e)
{
ttbNameSearch.ShowTrigger1 = true;
BindGrid();
}
}
}