442 lines
18 KiB
C#
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
|
|
}
|
|
} |