224 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			224 lines
		
	
	
		
			9.3 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.Num = detail.Num;
 | 
						|
                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.Num = values.Value<string>("Num");
 | 
						|
                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.Quantity = model.Quantity;
 | 
						|
                            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();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |