using BLL;
using FineUIPro.Web.SmartSite;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace FineUIPro.Web.HSSE.CostGoods
{
public partial class CostManageAudit : PageBase
{
#region 定义项
///
/// 主键
///
private string CostManageId
{
get
{
return (string)ViewState["CostManageId"];
}
set
{
ViewState["CostManageId"] = value;
}
}
///
/// 项目主键
///
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
///
/// 当前办理步骤
///
private static Model.CostGoods_CostManageFlowOperate NowFlow = new Model.CostGoods_CostManageFlowOperate();
///
/// 下一步办理步骤
///
private static Model.CostGoods_CostManageFlowOperate NextFlow = new Model.CostGoods_CostManageFlowOperate();
#region 加载
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideRefreshReference();
this.ProjectId = this.CurrUser.LoginProjectId;
this.CostManageId = Request.Params["CostManageId"];
var costManage = BLL.CostManageService.GetCostManageById(this.CostManageId);
if (costManage != null)
{
this.ProjectId = costManage.ProjectId;
this.drpUnit.Text = UnitService.GetUnitNameByUnitId(costManage.UnitId);
this.txtContractNum.Text = costManage.ContractNum;
this.txtCostManageDate.Text = string.Format("{0:yyyy-MM-dd}", costManage.CostManageDate);
BindGrid();
this.txtProjectName.Text = ProjectService.GetProjectNameByProjectId(this.ProjectId);
this.txtHseCost.Text = ProjectUnitService.GetSumHSECost(this.ProjectId, costManage.UnitId).ToString();
this.txtGetCost.Text = CostManageService.GetSumHSECost(this.ProjectId, costManage.UnitId, this.CostManageId).ToString();
NowFlow = CostManageService.getNowCostManageFlowOperateList(costManage.CostManageId);
if (NowFlow != null)
{
this.txtOpinion.Text = NowFlow.Opinion;
}
NextFlow = CostManageService.getNextCostManageFlowOperateList(costManage.CostManageId, this.CurrUser.PersonId);
if (NextFlow != null)
{
Person_PersonsService.InitFlowOperateControlUserDropDownList(this.drpNextMan, this.ProjectId, NextFlow.UnitId, true);
this.drpNextMan.Label = NextFlow.AuditFlowName;
if (!string.IsNullOrEmpty(NextFlow.OperaterId))
{
this.drpNextMan.SelectedValue = NextFlow.OperaterId;
}
}
else
{
this.Label1.Text = "审核完成";
this.drpNextMan.Hidden = true;
}
BindGrid2();
}
}
}
#endregion
#region 绑定Grid
///
/// 绑定Grid
///
private void BindGrid()
{
var costManageItems = BLL.CostManageItemService.GetCostManageItemByCostManageId(this.CostManageId);
this.Grid1.DataSource = costManageItems;
this.Grid1.PageIndex = 0;
this.Grid1.DataBind();
OutputSummaryData(costManageItems);
}
private void OutputSummaryData(List getItem)
{
JObject summary = new JObject();
summary.Add("InvestCostProject", "本次申请合计金额(元)");
summary.Add("PriceMoney", getItem.Sum(x => x.PriceMoney ?? 0));
Grid1.SummaryData = summary;
}
///
/// 关闭弹出窗口
///
///
///
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region BindGrid2
///
/// 绑定Grid
///
private void BindGrid2()
{
var FlowOperates = from x in Funs.DB.CostGoods_CostManageFlowOperate
where x.CostManageId == this.CostManageId
select new
{
x.FlowOperateId,
x.CostManageId,
x.AuditFlowName,
x.SortIndex,
x.UnitId,
UnitName = Funs.DB.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
x.OperaterId,
OperaterName = Funs.DB.Person_Persons.First(u => u.PersonId == x.OperaterId).PersonName,
x.OperaterTime,
x.IsAgree,
x.Opinion,
x.IsClosed
};
this.Grid2.DataSource = FlowOperates.OrderByDescending(x => x.SortIndex);
this.Grid2.PageIndex = 0;
this.Grid2.DataBind();
}
#endregion
#region 提交
///
/// 提交按钮
///
///
///
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.drpNextMan.SelectedValue == BLL.Const._Null && this.rblIsAgree.SelectedValue == "1" && NextFlow != null)
{
Alert.ShowInTop("请选择" + this.drpNextMan.Label + "!", MessageBoxIcon.Warning);
return;
}
this.SaveData();
}
///
/// 保存数据
///
///
private void SaveData()
{
var getCost = CostManageService.GetCostManageById(this.CostManageId);
if (getCost != null)
{
bool isAgree = true;
if (this.rblIsAgree.SelectedValue == "0") ///不同意 直接打回编制人
{
isAgree = false;
NowFlow.Opinion = this.rblIsAgree.SelectedItem.Text + "," + this.txtOpinion.Text;
getCost.States = BLL.Const.State_0;
getCost.NextManId = getCost.CompileMan;
BLL.CostManageService.UpdateCostManage(getCost);
CostManageService.updateOpenCostManageFlowOperate(this.CostManageId);
}
else
{
NowFlow.Opinion = this.rblIsAgree.SelectedItem.Text + "。";
NowFlow.IsClosed = true;
if (NextFlow != null)
{
NextFlow.OperaterId = this.drpNextMan.SelectedValue;
BLL.CostManageService.updateCostManageFlowOperate(NextFlow);
getCost.NextManId = this.drpNextMan.SelectedValue;
BLL.CostManageService.UpdateCostManage(getCost);
}
else
{
getCost.NextManId = null;
getCost.States = BLL.Const.State_2;
BLL.CostManageService.UpdateCostManage(getCost);
string messaage = CostManageService.PushDataToHSE(this.CurrUser.LoginProjectId, getCost.ContractNum, getCost.CostManageId);
if (string.IsNullOrEmpty(messaage))
{
Alert.ShowInTop("推送成功!", MessageBoxIcon.Success);
}
else
{
Alert.ShowInTop(messaage, MessageBoxIcon.Warning);
}
}
}
NowFlow.IsAgree = isAgree;
NowFlow.OperaterTime = DateTime.Now;
BLL.CostManageService.updateCostManageFlowOperate(NowFlow);
}
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
#endregion
#region 附件上传
///
/// 上传附件
///
///
///
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.CostManageId))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CostManageAttachUrl&menuId={1}&type=-1", this.CostManageId, BLL.Const.ProjectCostManageMenuId)));
}
}
#endregion
///
/// 是否同意
///
///
///
protected void rblIsAgree_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.rblIsAgree.SelectedValue == "1")
{
this.trO.Hidden = true;
this.trN.Hidden = false;
}
else
{
this.trO.Hidden = false;
this.trN.Hidden = true;
}
if (NextFlow == null)
{
this.Label1.Text = "审核完成";
this.drpNextMan.Hidden = true;
}
}
}
}