ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/HJGL/Match/InStorageEdit.aspx.cs

276 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.HJGL.Match
{
public partial class InStorageEdit : PageBase
{
/// <summary>
/// 主键
/// </summary>
public string InStorageId
{
get
{
return (string)ViewState["InStorageId"];
}
set
{
ViewState["InStorageId"] = value;
}
}
private bool AppendToEnd = true;
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.InStorageId = Request.Params["InStorageId"];
///单位
this.drpUnitId.DataTextField = "UnitName";
this.drpUnitId.DataValueField = "UnitId";
this.drpUnitId.DataSource = BLL.Base_UnitService.GetUnitCodeByProjectIdList(this.CurrUser.LoginProjectId);
this.drpUnitId.DataBind();
var inStorage = BLL.HJGL_Match_InStorageService.GetHJGL_Match_InStorageByInStorageId(this.InStorageId);
if (inStorage != null)
{
this.txtInStorageCode.Text = inStorage.InStorageCode;
this.drpUnitId.SelectedValue = inStorage.UnitId;
this.txtInTime.Text = string.Format("{0:yyyy-MM-dd}", inStorage.InTime);
}
else
{
this.drpUnitId.SelectedValue = this.CurrUser.UnitId;
this.txtInTime.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
}
// 删除选中单元格的客户端脚本
string deleteScript = GetDeleteScript();
// 新增数据初始值
JObject defaultObj = new JObject();
defaultObj.Add("Code", "");
defaultObj.Add("Name", "");
defaultObj.Add("Standard", "");
defaultObj.Add("UNIT", "");
defaultObj.Add("SteelName", "");
defaultObj.Add("InCount", "1");
defaultObj.Add("Delete", String.Format("<a href=\"javascript:;\" onclick=\"{0}\"><img src=\"{1}\"/></a>", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete)));
// 在第一行新增一条数据
btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd);
// 删除选中行按钮
btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("请至少选择一项!") + deleteScript;
// 绑定表格
BindGrid();
}
}
/// <summary>
/// 绑定GV
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT InStorageItemId,InStorageId,Item.MaterialId,InCount,Material.Code,Material.Name,Material.Standard,Material.SteelName,Material.UNIT "
+ @" FROM HJGL_Match_InStorageItem AS Item"
+ @" LEFT JOIN HJGL_Match_Material AS Material ON Item.MaterialId=Material.MaterialId "
+ @" WHERE InStorageId='" + this.InStorageId + "'";
List<SqlParameter> listStr = new List<SqlParameter>();
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
string strSql2 = @"SELECT MaterialId,ProjectId,Code,Name,Standard,UNIT,SteelName "
+ @" FROM dbo.HJGL_Match_Material ";
List<SqlParameter> listStr2 = new List<SqlParameter>();
SqlParameter[] parameter2 = listStr2.ToArray();
DataTable tb2 = SQLHelper.GetDataTableRunText(strSql2, parameter2);
// 2.获取当前分页数据
Grid2.RecordCount = tb2.Rows.Count;
tb2 = GetFilteredTable(Grid2.FilteredData, tb2);
var table2 = this.GetPagedDataTable(Grid2, tb2);
Grid2.DataSource = table2;
Grid2.DataBind();
}
protected void Grid1_PreDataBound(object sender, EventArgs e)
{
// 设置LinkButtonField的点击客户端事件
LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField;
deleteField.OnClientClick = GetDeleteScript();
}
// 删除选中行的脚本
private string GetDeleteScript()
{
return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty);
}
private DataRow CreateNewData(DataTable table, Dictionary<string, object> newAddedData)
{
DataRow rowData = table.NewRow();
// 设置行ID模拟数据库的自增长列
rowData["InStorageItemId"] = BLL.SQLHelper.GetNewID(typeof(Model.HJGL_Match_InStorageItem));
UpdateDataRow(newAddedData, rowData);
return rowData;
}
/// <summary>
///
/// </summary>
/// <param name="rowDict"></param>
/// <param name="rowData"></param>
private void UpdateDataRow(Dictionary<string, object> rowDict, DataRow rowData)
{
UpdateDataRow("Code", rowDict, rowData);
UpdateDataRow("Name", rowDict, rowData);
UpdateDataRow("Standard", rowDict, rowData);
UpdateDataRow("UNIT", rowDict, rowData);
UpdateDataRow("SteelName", rowDict, rowData);
}
/// <summary>
///
/// </summary>
/// <param name="columnName"></param>
/// <param name="rowDict"></param>
/// <param name="rowData"></param>
private void UpdateDataRow(string columnName, Dictionary<string, object> rowDict, DataRow rowData)
{
if (rowDict.ContainsKey(columnName))
{
rowData[columnName] = rowDict[columnName];
}
}
#region
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
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)
{
this.SaveData(BLL.Const.BtnSubmit);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
/// <summary>
/// 提交数据方法
/// </summary>
private void SaveData(string type)
{
Model.HJGL_Match_InStorage newInStorage = new Model.HJGL_Match_InStorage();
newInStorage.InStorageCode = this.txtInStorageCode.Text.Trim();
newInStorage.ProjectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(this.drpUnitId.SelectedValue))
{
newInStorage.UnitId = this.drpUnitId.SelectedValue;
}
newInStorage.InTime = Funs.GetNewDateTime(this.txtInTime.Text.Trim());
newInStorage.CompileMan = this.CurrUser.UserId;
newInStorage.State = "0";
if (type == BLL.Const.BtnSubmit)
{
newInStorage.State = "1";
}
if (string.IsNullOrEmpty(this.InStorageId))
{
this.InStorageId = newInStorage.InStorageId = SQLHelper.GetNewID(typeof(Model.HJGL_Match_InStorage));
BLL.HJGL_Match_InStorageService.AddHJGL_Match_InStorage(newInStorage);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "添加管道组成件信息");
}
else
{
newInStorage.InStorageId = this.InStorageId;
BLL.HJGL_Match_InStorageService.UpdateHJGL_Match_InStorage(newInStorage);
BLL.HJGL_Match_InStorageItemService.DelInStorageItemByInStorageId(this.InStorageId);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "添加管道组成件信息");
}
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
if (values["Code"].ToString() != "")
{
string code = values.Value<string>("Code");
var material = BLL.HJGL_Match_MaterialService.GetMaterialByMaterialCode(code);
if (material != null)
{
Model.HJGL_Match_InStorageItem newItem = new Model.HJGL_Match_InStorageItem();
newItem.InStorageItemId = BLL.SQLHelper.GetNewID(typeof(Model.HJGL_Match_InStorageItem));
newItem.InStorageId = this.InStorageId;
newItem.MaterialId = material.MaterialId;
if (values["InCount"].ToString() != "")
{
newItem.InCount = Funs.GetNewDecimalOrZero(values.Value<string>("InCount"));
}
var updateItem = BLL.HJGL_Match_InStorageItemService.GetInHJGL_Match_InStorageItemByInStorageIdMaterialId(this.InStorageId, newItem.MaterialId);
if (updateItem != null)
{
updateItem.InCount += (newItem.InCount.HasValue ? newItem.InCount : 0);
BLL.HJGL_Match_InStorageItemService.UpdateInStorageItem(updateItem);
}
else
{
BLL.HJGL_Match_InStorageItemService.AddInStorageItem(newItem);
}
if (type == BLL.Const.BtnSubmit)
{
Model.HJGL_Match_Storage storage = BLL.HJGL_Match_StorageService.GetHJGL_Match_StorageByMaterialId(material.MaterialId);
if (storage == null)
{
Model.HJGL_Match_Storage newStorage = new Model.HJGL_Match_Storage();
newStorage.StorageId = SQLHelper.GetNewID(typeof(Model.HJGL_Match_Storage));
newStorage.ProjectId = this.CurrUser.LoginProjectId;
newStorage.MaterialId = material.MaterialId;
newStorage.InCount = (newItem.InCount.HasValue ? newItem.InCount : 0);
BLL.HJGL_Match_StorageService.AddHJGL_Match_Storage(newStorage);
}
else
{
storage.InCount += (newItem.InCount.HasValue ? newItem.InCount : 0); ;
BLL.HJGL_Match_StorageService.UpdateHJGL_Match_Storage(storage);
}
}
}
}
}
}
#endregion
}
}