ChengDa_English/SGGL/FineUIPro.Web/HSSE/CostGoods/CostManageEdit.aspx.cs

442 lines
18 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
namespace FineUIPro.Web.HSSE.CostGoods
{
public partial class CostManageEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
private string CostManageId
{
get
{
return (string)ViewState["CostManageId"];
}
set
{
ViewState["CostManageId"] = value;
}
}
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
/// <summary>
/// 定义集合
/// </summary>
private static List<Model.CostGoods_CostManageItem> costManageItems = new List<Model.CostGoods_CostManageItem>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.DropDownPageSize(this.ddlPageSize);
this.ProjectId = this.CurrUser.LoginProjectId;
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.InitDropDownList();
this.CostManageId = Request.Params["CostManageId"];
this.drpInvestCostProject.DataTextField = "Text";
this.drpInvestCostProject.DataValueField = "Value";
this.drpInvestCostProject.DataSource = BLL.CostManageItemService.GetInvestCostProjectList();
this.drpInvestCostProject.DataBind();
if (!BLL.CommonService.IsMainUnitOrAdmin(this.CurrUser.UserId)) //分包单位用户,隐藏审核列
{
this.Grid1.Columns[7].Hidden = true;
this.Grid1.Columns[8].Hidden = true;
this.Grid1.Columns[9].Hidden = true;
}
this.txtCostManageDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
if (!string.IsNullOrEmpty(this.CostManageId))
{
Model.CostGoods_CostManage costManage = BLL.CostManageService.GetCostManageById(this.CostManageId);
if (costManage != null)
{
this.ProjectId = costManage.ProjectId;
if (this.ProjectId != this.CurrUser.LoginProjectId)
{
this.InitDropDownList();
}
this.txtCostManageCode.Text = CodeRecordsService.ReturnCodeByDataId(this.CostManageId);
this.txtCostManageName.Text = costManage.CostManageName;
if (!string.IsNullOrEmpty(costManage.UnitId))
{
this.drpUnitId.SelectedValue = costManage.UnitId;
}
this.txtContractNum.Text = costManage.ContractNum;
this.txtCostManageDate.Text = string.Format("{0:yyyy-MM-dd}", costManage.CostManageDate);
this.txtOpinion.Text = costManage.Opinion;
this.txtSubHSE.Text = costManage.SubHSE;
this.txtSubCN.Text = costManage.SubCN;
this.txtSubProject.Text = costManage.SubProject;
}
BindGrid();
}
else
{
this.txtCostManageCode.Text = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectCostManageMenuId, this.ProjectId, this.CurrUser.UserId);
this.txtCostManageName.Text = "分包商HSE措施费申请表";
}
///初始化审核菜单
this.ctlAuditFlow.MenuId = BLL.Const.ProjectCostManageMenuId;
this.ctlAuditFlow.DataId = this.CostManageId;
this.ctlAuditFlow.ProjectId = this.ProjectId;
this.ctlAuditFlow.UnitId = this.CurrUser.UnitId;
}
else
{
if (GetRequestEventArgument() == "UPDATE_SUMMARY")
{
jerqueSaveMonthPlanList();
this.Grid1.DataSource = costManageItems;
this.Grid1.DataBind();
// 页面要求重新计算合计行的值
OutputSummaryData();
}
}
}
#region
/// <summary>
/// 计算合计
/// </summary>
private void OutputSummaryData()
{
Grid1.CommitChanges();
decimal sumTotalMoney = 0, sumAuditTotalMoney = 0, totalMoney = 0, auditTotalMoney = 0, priceMoney = 0, auditPriceMoney = 0;
int counts = 0, auditCounts = 0;
for (int i = 0; i < Grid1.Rows.Count; i++)
{
counts = Funs.GetNewIntOrZero(this.Grid1.Rows[i].Values[4].ToString());
priceMoney = Funs.GetNewDecimalOrZero(this.Grid1.Rows[i].Values[5].ToString());
totalMoney = counts * priceMoney;
sumTotalMoney += totalMoney;
this.Grid1.Rows[i].Values[6] = totalMoney.ToString();
auditCounts = Funs.GetNewIntOrZero(this.Grid1.Rows[i].Values[7].ToString());
auditPriceMoney = Funs.GetNewDecimalOrZero(this.Grid1.Rows[i].Values[8].ToString());
auditTotalMoney = auditCounts * auditPriceMoney;
sumAuditTotalMoney += auditTotalMoney;
this.Grid1.Rows[i].Values[9] = auditTotalMoney.ToString();
}
if (this.Grid1.Rows.Count > 0)
{
JObject summary = new JObject
{
{ "PriceMoney", "总计" },
{ "TotalMoney", sumTotalMoney },
{ "AuditTotalMoney", sumAuditTotalMoney }
};
Grid1.SummaryData = summary;
}
else
{
Grid1.SummaryData = null;
}
}
#endregion
/// <summary>
/// 初始化下拉框
/// </summary>
private void InitDropDownList()
{
BLL.UnitService.InitUnitDropDownList(this.drpUnitId, this.ProjectId, true);
}
/// <summary>
/// 绑定Grid
/// </summary>
private void BindGrid()
{
costManageItems = BLL.CostManageItemService.GetCostManageItemByCostManageId(this.CostManageId);
this.Grid1.DataSource = costManageItems;
this.Grid1.PageIndex = 0;
this.Grid1.DataBind();
OutputSummaryData();
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (this.drpUnitId.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning);
return;
}
this.SaveData(BLL.Const.BtnSave);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.drpUnitId.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning);
return;
}
if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null)
{
ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning);
return;
}
this.SaveData(BLL.Const.BtnSubmit);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
if (!BLL.CommonService.IsMainUnitOrAdmin(this.CurrUser.UserId) && type == BLL.Const.BtnSubmit && this.ctlAuditFlow.NextStep == BLL.Const.State_2)
{
Alert.ShowInParent("分包商不能关闭审核流程", MessageBoxIcon.Warning);
return;
}
Model.CostGoods_CostManage costManage = new Model.CostGoods_CostManage
{
ProjectId = this.ProjectId,
CostManageCode = this.txtCostManageCode.Text.Trim(),
CostManageName = this.txtCostManageName.Text.Trim()
};
if (this.drpUnitId.SelectedValue != BLL.Const._Null)
{
costManage.UnitId = this.drpUnitId.SelectedValue;
}
costManage.ContractNum = this.txtContractNum.Text.Trim();
costManage.CostManageDate = Funs.GetNewDateTime(this.txtCostManageDate.Text.Trim());
costManage.Opinion = this.txtOpinion.Text.Trim();
costManage.SubHSE = this.txtSubHSE.Text.Trim();
costManage.SubCN = this.txtSubCN.Text.Trim();
costManage.SubProject = this.txtSubProject.Text.Trim();
costManage.CompileMan = this.CurrUser.UserId;
costManage.CompileDate = DateTime.Now;
costManage.States = BLL.Const.State_0;
if (type == BLL.Const.BtnSubmit)
{
costManage.States = this.ctlAuditFlow.NextStep;
}
if (!string.IsNullOrEmpty(this.CostManageId))
{
costManage.CostManageId = this.CostManageId;
BLL.CostManageService.UpdateCostManage(costManage);
BLL.LogService.AddSys_Log(this.CurrUser, costManage.CostManageCode, costManage.CostManageId, BLL.Const.ProjectCostManageMenuId, BLL.Const.BtnModify);
}
else
{
this.CostManageId = SQLHelper.GetNewID(typeof(Model.CostGoods_CostManage));
costManage.CostManageId = this.CostManageId;
BLL.CostManageService.AddCostManage(costManage);
BLL.LogService.AddSys_Log(this.CurrUser, costManage.CostManageCode, costManage.CostManageId, BLL.Const.ProjectCostManageMenuId, BLL.Const.BtnAdd);
}
jerqueSaveMonthPlanList();
BLL.CostManageItemService.DeleteCostManageItemByCostManageId(this.CostManageId);
foreach (var costManageItem in costManageItems)
{
costManageItem.CostManageId = this.CostManageId;
BLL.CostManageItemService.AddCostManageItem(costManageItem);
}
////保存流程审核数据
this.ctlAuditFlow.btnSaveData(this.ProjectId, BLL.Const.ProjectCostManageMenuId, this.CostManageId, (type == BLL.Const.BtnSubmit ? true : false), costManage.CostManageName, "../CostGoods/CostManageView.aspx?CostManageId={0}");
}
#endregion
#region
/// <summary>
/// 上传附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.CostManageId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CostManageAttachUrl&menuId={1}", this.CostManageId, BLL.Const.ProjectCostManageMenuId)));
}
#endregion
#region
/// <summary>
/// 新增费用申请情况
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
//if (this.drpUnitId.SelectedValue == BLL.Const._Null)
//{
// Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning);
// return;
//}
jerqueSaveMonthPlanList();
Model.CostGoods_CostManageItem costManageItem = new Model.CostGoods_CostManageItem
{
CostManageItemId = SQLHelper.GetNewID(typeof(Model.CostGoods_CostManageItem))
};
costManageItems.Add(costManageItem);
this.Grid1.DataSource = costManageItems;
this.Grid1.DataBind();
OutputSummaryData();
}
/// <summary>
/// 检查并保存其他HSE管理活动集合
/// </summary>
private void jerqueSaveMonthPlanList()
{
costManageItems.Clear();
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.CostGoods_CostManageItem costManageItem = new Model.CostGoods_CostManageItem
{
CostManageItemId = this.Grid1.Rows[i].DataKeys[0].ToString(),
InvestCostProject = values.Value<string>("InvestCostProject").ToString(),
UseReason = values.Value<string>("UseReason").ToString(),
Counts = Funs.GetNewIntOrZero(values.Value<string>("Counts").ToString()),
PriceMoney = Funs.GetNewDecimalOrZero(values.Value<string>("PriceMoney").ToString()),
AuditCounts = !string.IsNullOrEmpty(values.Value<string>("AuditCounts").ToString()) ? Funs.GetNewInt(values.Value<string>("AuditCounts").ToString()) : null,
AuditPriceMoney = !string.IsNullOrEmpty(values.Value<string>("AuditPriceMoney").ToString()) ? Funs.GetNewDecimal(values.Value<string>("AuditPriceMoney").ToString()) : null
};
costManageItems.Add(costManageItem);
}
}
protected void gvMonthPlan_RowCommand(object sender, GridCommandEventArgs e)
{
jerqueSaveMonthPlanList();
string rowID = this.Grid1.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "Delete")
{
foreach (var item in costManageItems)
{
if (item.CostManageItemId == rowID)
{
costManageItems.Remove(item);
break;
}
}
Grid1.DataSource = costManageItems;
Grid1.DataBind();
OutputSummaryData();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 获取总价
/// </summary>
/// <param name="costManageId"></param>
/// <returns></returns>
protected string GetTotalMoney(object costManageItemId)
{
string total = string.Empty;
if (costManageItemId != null)
{
var costManageItem = BLL.CostManageItemService.GetCostManageItemById(costManageItemId.ToString());
if (costManageItem != null)
{
decimal? price = costManageItem.PriceMoney;
int? count = costManageItem.Counts;
total = Convert.ToString(price * count);
}
}
return total;
}
/// <summary>
/// 获取审核总价
/// </summary>
/// <param name="costManageId"></param>
/// <returns></returns>
protected string GetAuditTotalMoney(object costManageItemId)
{
string total = string.Empty;
if (costManageItemId != null)
{
var costManageItem = BLL.CostManageItemService.GetCostManageItemById(costManageItemId.ToString());
if (costManageItem != null)
{
decimal? price = costManageItem.AuditPriceMoney;
int? count = costManageItem.AuditCounts;
total = Convert.ToString(price * count);
}
}
return total;
}
#endregion
}
}