using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
namespace FineUIPro.Web.PHTGL.ContractCompile
{
public partial class ContractReviewEdit : PageBase
{
public string ContractReviewId
{
get
{
return (string)ViewState["ContractReviewId"];
}
set
{
ViewState["ContractReviewId"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ContractReviewId = Request.Params["ContractReviewId"];
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
BLL.DepartService.InitDepartDropDownList(DropDepart, true);
#region 会签下拉框
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropConstructionManager, null, Const.UnitId_SEDIN, null, true);//施工经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropPurchasingManager, null, Const.UnitId_SEDIN, null, true);//采购经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropHSSEManager, null, Const.UnitId_SEDIN, null, true);//HSE经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropControlManager, null, Const.UnitId_SEDIN, null, true); //控制经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropQAManager, null, Const.UnitId_SEDIN, null, true); //质量经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropFinancialManager, null, Const.UnitId_SEDIN, null, true);//财务经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropProjectManager, null, Const.UnitId_SEDIN, null, true); //项目经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropProjectManager2, null, Const.UnitId_SEDIN, null, true); //项目经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(this.dropCountersign_Construction, null, this.CurrUser.UnitId, Const.SGContractManageEngineer, false); ///施工管理部合同评审人员
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropCountersign_Law, null, this.CurrUser.UnitId, Const.Countersign_Law, false); ///法律合规部合同评审人员
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropCountersign_Law2, null, this.CurrUser.UnitId, Const.Countersign_Law, false); ///法律合规部合同评审人员
#endregion
#region 签订评审下拉框
///绑定施工管理部正副主任
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(dropApproval_Construction, null, CurrUser.UnitId, Const.ConstructionMinister + "," + Const.ConstructionViceMinister, false);
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(dropApproval_Law, null, this.CurrUser.UnitId, Const.dropApproval_Law, false); ///法律合规部主任
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropGeneralAccountant, null, this.CurrUser.UnitId, Const.GeneralAccountant, false); //总会计师
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropGeneral_Law, null, this.CurrUser.UnitId, Const.General_Law, false); //总法律顾问
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropGeneralManager, null, this.CurrUser.UnitId, Const.GeneralManager, false); //总经理
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropDeputyGeneralManager, null, this.CurrUser.UnitId, Const.DeputyGeneralManager, false); //项目主管领导
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(DropChairman, null, this.CurrUser.UnitId, Const.Chairman, false);//董事长
#endregion
if (PHTGL_ActionPlanReviewService.IsSpecialProject(this.CurrUser.LoginProjectId))
{
BLL.Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(dropApproval_Construction, null, CurrUser.UnitId, Const.ConstructionLabor, false);
dropApproval_Construction.Label = "劳务管理组";
DropProjectManager2.Label = "运营管理部";
}
BindGrid();
BindFrom();
getButtonPower();
}
}
#region 绑定
///
/// 数据绑定
///
private void BindGrid()
{
string strSql = @"SELECT Con.ContractId,
Con.ProjectId,
Con.ContractName,
Con.ContractNum,
Con.Parties,
Con.Currency,
Con.ContractAmount,
Con.DepartId,
Con.Agent,
(CASE Con.ContractType WHEN '1' THEN '施工总承包分包合同'
WHEN '2' THEN '施工专业分包合同'
WHEN '3' THEN '施工劳务分包合同'
WHEN '4' THEN '试车服务合同'
WHEN '5' THEN '租赁合同' END) AS ContractType,
Con.Remarks,
Con.EPCCode,
Act.ProjectShortName,
Pro.ProjectCode,
Pro.ProjectName,
Dep.DepartName,
U.PersonName AS AgentName"
+ @" FROM PHTGL_Contract AS Con"
+ @" left join PHTGL_ActionPlanFormation as Act on Act.EPCCode=Con.EPCCode"
+ @" LEFT JOIN Base_Project AS Pro ON Pro.ProjectId = Con.ProjectId"
+ @" LEFT JOIN Base_Depart AS Dep ON Dep.DepartId = Con.DepartId"
+ @" LEFT JOIN Person_Persons AS U ON U.PersonId = Con.Agent WHERE 1=1 AND Con.ApproveState = @ContractCreat_Complete ";
List listStr = new List();
listStr.Add(new SqlParameter("@ContractCreat_Complete", Const.ContractCreat_Complete));
if (!(this.CurrUser.PersonId == Const.sysglyId))
{
strSql += " and Con.ProjectId =@ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
///
/// 绑定表单
///
private void BindFrom()
{
var newmodel = PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId);
var _Contract = ContractService.GetContractById(newmodel.ContractId);
if (_Contract.ContractAmount >= 50000000)
{
DropGeneralAccountant.Hidden = false;
DropGeneral_Law.Hidden = false;
DropGeneralManager.Hidden = false;
DropChairman.Hidden = false;
}
if (_Contract.ContractAmount >= 20000000)
{
DropGeneralAccountant.Hidden = false;
DropGeneral_Law.Hidden = false;
DropGeneralManager.Hidden = false;
}
drpProjectId.Value = Convert.ToString(newmodel.ContractId);
dropCountersign_Construction.SelectedValue = Convert.ToString(newmodel.Countersign_Construction);
DropCountersign_Law.SelectedValue = Convert.ToString(newmodel.Countersign_Law);
DropCountersign_Law2.SelectedValue = Convert.ToString(newmodel.Countersign_Law2);
dropApproval_Construction.SelectedValue = Convert.ToString(newmodel.Approval_Construction);
dropApproval_Law.SelectedValue = Convert.ToString(newmodel.Approval_Law);
DropConstructionManager.SelectedValue = Convert.ToString(newmodel.Countersign_ConstructionManager);
DropHSSEManager.SelectedValue = Convert.ToString(newmodel.Countersign_HSSEManager);
DropQAManager.SelectedValue = Convert.ToString(newmodel.Countersign_QAManager);
DropPurchasingManager.SelectedValue = Convert.ToString(newmodel.Countersign_PurchasingManager);
DropControlManager.SelectedValue = Convert.ToString(newmodel.Countersign_ControlManager);
DropFinancialManager.SelectedValue = Convert.ToString(newmodel.Countersign_FinancialManager);
DropProjectManager.SelectedValue = Convert.ToString(newmodel.Approval_SubProjectManager);
DropProjectManager2.SelectedValue = Convert.ToString(newmodel.Approval_ProjectManager);
DropDeputyGeneralManager.SelectedValue = Convert.ToString(newmodel.Approval_DeputyGeneralManager);
DropGeneralAccountant.SelectedValue = Convert.ToString(newmodel.Approval_GeneralAccountant);
DropGeneralManager.SelectedValue = Convert.ToString(newmodel.Approval_GeneralManager);
DropGeneral_Law.SelectedValue = Convert.ToString(newmodel.Approval_GeneralLaw);
DropChairman.SelectedValue = Convert.ToString(newmodel.Approval_Chairman);
DropDepart.SelectedValue = Convert.ToString(newmodel.DepartId);
// DropProjectManager_SelectedIndexChanged(null, null);
Model.PHTGL_Contract table = BLL.ContractService.GetContractById(this.drpProjectId.Value);
txtContractNum.Text = BLL.ContractService.GetContractByProjectId(table.ProjectId).ContractNum;
txtIdea.Text = newmodel.Idea;
}
#endregion
#region 获取权限
///
/// 获取权限
///
private void getButtonPower()
{
int[] ListCon = { Const.ContractCreat_Complete, Const.Contract_countersign, Const.Contract_countersign_Refuse };
int[] ListConRev = { Const.Contract_countersign_Complete, Const.ContractReviewing, Const.ContractReview_Complete, Const.ContractReview_Refuse };
var newmodel = PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId);
if (Array.IndexOf(ListCon, newmodel.State) != -1)
{
ContentPanel2.Hidden = true;
if (newmodel.State == Const.Contract_countersign)
{
btnSave.Hidden = true;
btnSubmit.Hidden = true;
}
}
if (Array.IndexOf(ListConRev, newmodel.State) != -1)
{
ContentPanel1.Hidden = true;
if (newmodel.State == Const.ContractReviewing || newmodel.State == Const.ContractReview_Complete)
{
btnSave.Hidden = true;
btnSubmit.Hidden = true;
}
}
}
#endregion
#region 保存提交
private void save()
{
Model.PHTGL_ContractReview newmodel = new Model.PHTGL_ContractReview();
//newmodel.SetSubReviewId = DropBidCode.SelectedValue;
newmodel.DocumentNumber = txtContractNum.Text;
newmodel.Countersign_Construction = dropCountersign_Construction.SelectedValue;
newmodel.Countersign_Law = DropCountersign_Law.SelectedValue;
newmodel.Countersign_Law2 = DropCountersign_Law2.SelectedValue;
newmodel.Approval_Construction = dropApproval_Construction.SelectedValue;
newmodel.Approval_Law = dropApproval_Law.SelectedValue;
newmodel.Countersign_ConstructionManager = DropConstructionManager.SelectedValue;
newmodel.Countersign_HSSEManager = DropHSSEManager.SelectedValue;
newmodel.Countersign_QAManager = DropQAManager.SelectedValue;
newmodel.Countersign_PurchasingManager = DropPurchasingManager.SelectedValue;
newmodel.Countersign_ControlManager = DropControlManager.SelectedValue;
newmodel.Countersign_FinancialManager = DropFinancialManager.SelectedValue;
newmodel.Approval_SubProjectManager = DropProjectManager.SelectedValue;
newmodel.Approval_ProjectManager = DropProjectManager2.SelectedValue;
newmodel.Approval_DeputyGeneralManager = DropDeputyGeneralManager.SelectedValue;
newmodel.Approval_GeneralAccountant = DropGeneralAccountant.SelectedValue;
newmodel.Approval_GeneralManager = DropGeneralManager.SelectedValue;
newmodel.Approval_Chairman = DropChairman.SelectedValue;
newmodel.Approval_GeneralLaw = DropGeneral_Law.SelectedValue;
newmodel.CreateUser = this.CurrUser.PersonId;
newmodel.Idea = txtIdea.Text;
newmodel.DepartId = DropDepart.SelectedValue;
if (ContractReviewId == null)
{
newmodel.ContractReviewId = SQLHelper.GetNewID(typeof(Model.PHTGL_ContractReview));
newmodel.State = Const.ContractCreat_Complete;
ContractReviewId = newmodel.ContractReviewId;
newmodel.ContractId = drpProjectId.Value;
BLL.PHTGL_ContractReviewService.AddPHTGL_ContractReview(newmodel);
}
else
{
newmodel.ContractReviewId = ContractReviewId;
newmodel.State = PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId).State;
newmodel.ContractId = PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId).ContractId;
BLL.PHTGL_ContractReviewService.UpdatePHTGL_ContractReview(newmodel);
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (!DropIsNull(SimpleForm1))
{
return;
}
save();
ShowNotify("保存成功!", MessageBoxIcon.Success);
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (!DropIsNull(SimpleForm1))
{
return;
}
save();
CreateApproveView();
OAWebSevice.Pushoa();
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
///
/// 改变审批流状态
///
///
private void ChangeState(int state)
{
var table = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId);
if (table != null)
{
table.State = state;
PHTGL_ContractReviewService.UpdatePHTGL_ContractReview(table);
var _Att = BLL.ContractService.GetContractById(table.ContractId);
if (_Att != null)
{
_Att.ApproveState = state;
ContractService.UpdateContract(_Att);
}
}
}
private bool DropIsNull(Control c)
{
bool IsOk = true;
//遍历控件
//myDictionary.Clear();
foreach (Control childControl in c.Controls)
{
if (childControl is DropDownList)
{
DropDownList tb = (DropDownList)childControl;
if (tb.SelectedValue == Const._Null)
{
IsOk = false;
ShowNotify("请选择要审批的" + tb.Label, MessageBoxIcon.Warning);
return IsOk;
}
}
}
return IsOk;
}
///
/// 创建审批流
///
private void CreateApproveView()
{
var ConRev = PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId);
if (ConRev.State == Const.ContractCreat_Complete) //会签审批
{
var Countersignermodel = PHTGL_ContractReviewService.GetApproveManModels__Countersigner(ContractReviewId);
for (int i = 0; i < Countersignermodel.Count; i++)
{
if (string.IsNullOrEmpty(Countersignermodel[i].userid))
{
continue;
}
Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve();
_Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve));
_Approve.ContractId = ContractReviewId;
_Approve.ApproveMan = Countersignermodel[i].userid;
_Approve.ApproveDate = "";
_Approve.State = 0;
_Approve.IsAgree = 0;
_Approve.ApproveIdea = "";
_Approve.ApproveType = Countersignermodel[i].Rolename;
_Approve.IsPushOa = 0;
_Approve.ApproveForm = PHTGL_ApproveService.ContractReview_Countersign;
BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve);
}
ChangeState(Const.Contract_countersign);
}
else if (ConRev.State == Const.Contract_countersign_Complete)//签订审批
{
var ApproveManModels = PHTGL_ContractReviewService.GetApproveManModels(ContractReviewId);
Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve();
_Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve));
_Approve.ContractId = ContractReviewId;
_Approve.ApproveMan = ApproveManModels.Find(x => x.Number == 11).userid;
_Approve.ApproveDate = "";
_Approve.State = 0;
_Approve.IsAgree = 0;
_Approve.ApproveIdea = "";
_Approve.ApproveType = ApproveManModels.Find(x => x.Number == 11).Rolename;
_Approve.IsPushOa = 0;
_Approve.ApproveForm = PHTGL_ApproveService.ContractReview;
BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve);
ChangeState(Const.ContractReviewing);
}
else if (ConRev.State == Const.ContractReview_Refuse || ConRev.State == Const.Contract_countersign_Refuse) //会签\签订审批被拒
{
string ApproveForm = ConRev.State == Const.Contract_countersign_Refuse ? PHTGL_ApproveService.ContractReview_Countersign : PHTGL_ApproveService.ContractReview;
int state = ConRev.State == Const.Contract_countersign_Refuse ? Const.Contract_countersign : Const.ContractReviewing;
var tbRefuseMan = PHTGL_ApproveService.GetRefuseEndMan(ContractReviewId);//获取审批拒绝的人员
var Countersignermodel = PHTGL_ContractReviewService.GetApproveManModels__Countersigner(ContractReviewId);
var ApproveMan = Countersignermodel.Find(x => x.Rolename == tbRefuseMan.Rows[0]["ApproveType"].ToString());
if (ApproveMan != null) //判断拒绝的人员是否属于会签
{
for (int i = 0; i < Countersignermodel.Count; i++)
{
if (string.IsNullOrEmpty(Countersignermodel[i].userid))
{
continue;
}
Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve();
_Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve));
_Approve.ContractId = ContractReviewId;
_Approve.ApproveMan = Countersignermodel[i].userid;
_Approve.ApproveDate = "";
_Approve.State = 0;
_Approve.IsAgree = 0;
_Approve.ApproveIdea = "";
_Approve.ApproveType = Countersignermodel[i].Rolename;
_Approve.IsPushOa = 0;
_Approve.ApproveForm = ApproveForm;
BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve);
}
}
else
{
Model.PHTGL_Approve _Approve = new Model.PHTGL_Approve();
_Approve.ApproveId = SQLHelper.GetNewID(typeof(Model.PHTGL_Approve));
_Approve.ContractId = ContractReviewId;
_Approve.ApproveMan = tbRefuseMan.Rows[0]["ApproveMan"].ToString();
_Approve.ApproveDate = "";
_Approve.State = 0;
_Approve.IsAgree = 0;
_Approve.ApproveIdea = "";
_Approve.ApproveType = tbRefuseMan.Rows[0]["ApproveType"].ToString();
_Approve.IsPushOa = 0;
_Approve.ApproveForm = ApproveForm;
BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve);
}
ChangeState(state);
}
}
#endregion
#region 下拉选择事件
///
/// 选择项目Id获取会签评审人员信息
///
///
///
protected void DropDownBox1_TextChanged(object sender, EventArgs e)
{
if (this.drpProjectId.Value != null)
{
Model.PHTGL_Contract table = BLL.ContractService.GetContractById(this.drpProjectId.Value);
txtContractNum.Text = BLL.ContractService.GetContractByProjectId(table.ProjectId).ContractNum;
string UnitId = ProjectService.GetProjectByProjectId(table.ProjectId).UnitId;
#region 项目角色
//施工经理
this.DropConstructionManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.ConstructionManager);
//安全经理(HSE)
this.DropHSSEManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.HSSEManager);
//质量经理
this.DropQAManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.QAManager);
//采购经理
this.DropPurchasingManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.PurchasingManager);
//控制经理
this.DropControlManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.ControlManager);
//财务经理
this.DropFinancialManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.FinancialManager);
//项目经理
this.DropProjectManager.SelectedValue = BLL.SitePerson_PersonService.GetPersonIdByProjectIdRoleID(table.ProjectId, BLL.Const.ProjectManager);
#endregion
#region 本部角色
//总会计师
this.DropGeneralAccountant.SelectedValue = BLL.ProjectService.GetOfficeRoleID(UnitId, BLL.Const.GeneralAccountant);
//总法律顾问
this.DropGeneral_Law.SelectedValue = BLL.ProjectService.GetOfficeRoleID(UnitId, BLL.Const.General_Law);
//董事长
this.DropChairman.SelectedValue = BLL.ProjectService.GetOfficeRoleID(UnitId, BLL.Const.Chairman);
//总经理
this.DropGeneralManager.SelectedValue = BLL.ProjectService.GetOfficeRoleID(UnitId, BLL.Const.GeneralManager);
//项目主管领导
this.DropDeputyGeneralManager.SelectedValue = BLL.ProjectService.GetOfficeRoleID(UnitId, BLL.Const.DeputyGeneralManager);
#endregion
}
}
protected void DropProjectManager_SelectedIndexChanged(object sender, EventArgs e)
{
DropProjectManager2.SelectedValue = DropProjectManager.SelectedValue;
}
#endregion
#region 附件
protected void btnAttach_Click(object sender, EventArgs e)
{
var model = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId);
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/ContractAttachUrl&menuId={1}", model.ContractId + "-Idea", BLL.Const.ContractFormation)));
}
#endregion
protected void btnEdit_Click(object sender, EventArgs e)
{
}
}
}