CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/TestRun/DriverGoods/GoodsBuyEdit.aspx.cs

223 lines
9.2 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
namespace FineUIPro.Web.TestRun.DriverGoods
{
public partial class GoodsBuyEdit : PageBase
{
#region
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string id = Request.Params["GoodsBuyId"];
if (!string.IsNullOrEmpty(id))
{
Model.DriverGoods_GoodsBuy data = BLL.GoodsBuyService.GetGoodsBuyById(id);
if (data != null)
{
this.hdId.Text = id;
this.txtCode.Text = data.Code;
if (!string.IsNullOrEmpty(data.BuyCode))
{
this.hdBuyCode.Text = data.BuyCode;
this.txtBuyName.Text = GoodsBuyService.ConvertBugType(data.BuyCode);
}
this.txtUnitCode.Text = data.UnitCode;
var list = from x in Funs.DB.View_DriverGoods_GoodsBuyItem where x.GoodsBuyId == id orderby x.Code select x;
this.Grid1.DataSource = list;
this.Grid1.DataBind();
if (list.Count() > 0)
{
var ids = list.Select(x => x.GoodsModelId).ToArray();
this.hdItemsString.Text = Funs.GetStringByArray(ids);
}
}
}
else
{
this.hdBuyCode.Text = Request.Params["BuyCode"];
this.txtBuyName.Text = GoodsBuyService.ConvertBugType(this.hdBuyCode.Text);
}
}
}
#endregion
#region
/// <summary>
/// 附件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttach_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.DriverGoods_GoodsBuy));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/DriverGoods/GoodsBuy&menuId={1}", this.hdId.Text, BLL.Const.GoodsBuyMenuId)));
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string id = Request.Params["GoodsBuyId"];
Model.DriverGoods_GoodsBuy newData = new Model.DriverGoods_GoodsBuy();
newData.Code = this.txtCode.Text.Trim();
newData.BuyName = this.txtBuyName.Text.Trim();
newData.BuyCode = this.hdBuyCode.Text.Trim();
newData.UnitCode = this.txtUnitCode.Text.Trim();
newData.CompileMan = this.CurrUser.UserId;
newData.ApprovalDate = DateTime.Now;
newData.ProjectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(id))
{
newData.GoodsBuyId = id;
BLL.GoodsBuyService.UpdateGoodsBuy(newData);
}
else
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
newData.GoodsBuyId = this.hdId.Text.Trim();
}
else
{
newData.GoodsBuyId = SQLHelper.GetNewID(typeof(Model.DriverGoods_GoodsBuy));
this.hdId.Text = newData.GoodsBuyId;
}
BLL.GoodsBuyService.AddGoodsBuy(newData);
}
BLL.GoodsBuyItemService.DeleteGoodsBuyItemByGoodsBuyId(newData.GoodsBuyId);
var details = jerqueSaveList();
foreach (var detail in details)
{
Model.DriverGoods_GoodsBuyItem item = new Model.DriverGoods_GoodsBuyItem();
item.GoodsBuyItemId = SQLHelper.GetNewID();
item.GoodsBuyId = newData.GoodsBuyId;
item.GoodsModelId = detail.GoodsModelId;
item.Quantity = detail.Quantity;
item.RequiredTime = detail.RequiredTime;
BLL.GoodsBuyItemService.AddGoodsBuyItem(item);
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
#region
/// <summary>
/// 搜索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
string window = String.Format("ShowGoodsModel.aspx?Ids={0}", hdItemsString.Text, "查找 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window));
}
#endregion
#region Grid集合
/// <summary>
/// 检查并保存集合
/// </summary>
private List<Model.View_DriverGoods_GoodsBuyItem> jerqueSaveList()
{
var models = from x in Funs.DB.DriverGoods_GoodsModel where x.ProjectId == this.CurrUser.LoginProjectId select x;
List<Model.View_DriverGoods_GoodsBuyItem> details = new List<Model.View_DriverGoods_GoodsBuyItem>();
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.View_DriverGoods_GoodsBuyItem detail = new Model.View_DriverGoods_GoodsBuyItem();
detail.GoodsModelId = this.Grid1.Rows[i].RowID;
Model.DriverGoods_GoodsModel model = models.FirstOrDefault(x => x.GoodsModelId == detail.GoodsModelId);
detail.Purpose = model.Purpose;
detail.Description = model.Description;
detail.Attachment = model.Attachment;
detail.Remark = model.Remark;
detail.Quantity = values.Value<string>("Quantity");
string requiredTime = values.Value<string>("RequiredTime");
if (!string.IsNullOrEmpty(requiredTime))
{
detail.RequiredTime = Convert.ToDateTime(requiredTime);
}
details.Add(detail);
}
return details;
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
if (!string.IsNullOrEmpty(hdItemsString.Text))
{
string[] ids = hdItemsString.Text.Split(',');
var details = jerqueSaveList();
var models = from x in Funs.DB.DriverGoods_GoodsModel where x.ProjectId == this.CurrUser.LoginProjectId select x;
foreach (var id in ids)
{
var oldDetail = details.FirstOrDefault(x => x.GoodsModelId == id);
if (oldDetail == null) //添加集合没有的新纪录
{
Model.DriverGoods_GoodsModel model = models.FirstOrDefault(x => x.GoodsModelId == id);
if (model != null)
{
Model.View_DriverGoods_GoodsBuyItem detail = new Model.View_DriverGoods_GoodsBuyItem();
detail.GoodsModelId = model.GoodsModelId;
detail.Purpose = model.Purpose;
detail.Description = model.Description;
detail.Attachment = model.Attachment;
detail.Remark = model.Remark;
details.Add(detail);
}
}
}
this.Grid1.DataSource = details;
this.Grid1.DataBind();
}
}
#endregion
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
string itemId = Grid1.DataKeys[e.RowIndex][0].ToString();
List<Model.View_DriverGoods_GoodsBuyItem> details = jerqueSaveList();
if (e.CommandName == "delete")
{
foreach (Model.View_DriverGoods_GoodsBuyItem detail in details)
{
if (detail.GoodsModelId == itemId)
{
details.Remove(detail);
break;
}
}
Grid1.DataSource = details;
Grid1.DataBind();
}
}
}
}