⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 materielrtmod.aspx.cs

📁 可供共享学习.net环境下生产管理的实现
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Botheighten.Yanghui.BusinessFacade;
using Botheighten.Yanghui.Framework;
using Botheighten.Yanghui.BusinessRules;

namespace Botheighten.Yanghui.Web
{
	/// <summary>
	/// MaterielRTMod 的摘要说明。
	/// </summary>
	public class MaterielRTMod : BasePage
	{
		protected System.Web.UI.WebControls.Label lblTitle;
		protected System.Web.UI.WebControls.TextBox txtId;
		protected System.Web.UI.WebControls.Label lblCode;
		protected System.Web.UI.WebControls.TextBox txtCode;
		protected System.Web.UI.WebControls.RequiredFieldValidator reqId;
		protected System.Web.UI.WebControls.ValidationSummary ErrorSummary;
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.DropDownList ddlCustom;
		protected System.Web.UI.WebControls.RequiredFieldValidator ReqPWD;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.DropDownList ddlOrderHead;
		protected System.Web.UI.WebControls.Label Label9;
		protected System.Web.UI.WebControls.TextBox txtRemark;
		protected System.Web.UI.WebControls.Label Label4;
		protected System.Web.UI.WebControls.Label lblInsertOperater;
		protected System.Web.UI.WebControls.Label Label5;
		protected System.Web.UI.WebControls.Label lblInsertDate;
		protected System.Web.UI.WebControls.Button btnAdd;
		protected System.Web.UI.WebControls.Button btnGoBack;
		protected System.Web.UI.WebControls.Label lblMessage;
		protected System.Web.UI.WebControls.Label Label7;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.DropDownList ddlMaterielCatalog;
		protected System.Web.UI.WebControls.Label Label6;
		protected System.Web.UI.WebControls.DropDownList ddlMateriel;
		protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator3;
		protected System.Web.UI.WebControls.Label Label8;
		protected System.Web.UI.WebControls.Label txtCurQuantity;
		protected System.Web.UI.WebControls.Label Label10;
		protected System.Web.UI.WebControls.Label txtCurCost;
		protected System.Web.UI.WebControls.Label Label12;
		protected System.Web.UI.WebControls.TextBox txtCost;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
		protected System.Web.UI.WebControls.RangeValidator RangeValidator2;
		protected System.Web.UI.WebControls.Label Label11;
		protected System.Web.UI.WebControls.TextBox txtQuantity;
		protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
		protected System.Web.UI.WebControls.RangeValidator RangeValidator1;
		protected System.Web.UI.WebControls.Button btnMaterielAdd;
		protected System.Web.UI.WebControls.Button btnMaterielMod;
		protected System.Web.UI.WebControls.Button btnContinue;
		protected System.Web.UI.WebControls.Button Button3;
		protected System.Web.UI.WebControls.DataGrid grid;
		protected System.Web.UI.HtmlControls.HtmlTable tableMod;
		protected System.Web.UI.WebControls.TextBox txtCodeHide;
		protected System.Web.UI.HtmlControls.HtmlTable tableMateriel;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			Principal p=this.CurrentUser();
			this.CheckPermissionPage(p.Id,"","203");
			this.ReponseWriteDeleteScript ();
			this.lblMessage.Visible=false;
			
			// 在此处放置用户代码以初始化页面
			if(!Page.IsPostBack)
			{
				this.tableMateriel.Visible=false;
				string rtid="";
				if(Request.QueryString["rtid"]!=null)
                    rtid=Request.QueryString["rtid"].ToString();
				this.ViewState["rtid"]=rtid;

				this.InitPage();
			}
		}

		private void InitPage()
		{
			DataTable dtCustom = CustomSystem.AllCustom("Y");
			Common.BindDrop(this.ddlCustom,dtCustom,Custom.CODE,Custom.ID);

			DataTable dtOrderHead = OrderTicketSystem.AllOrderTicket("","","","","N");
			Common.BindDrop(this.ddlOrderHead,dtOrderHead,OrderHead.CODE,OrderHead.ID,"请选择...","");

			this.lblInsertDate.Text = System.DateTime.Now.ToString();
			this.lblInsertOperater.Text = this.CurrentUser().Id;

			DataTable dtMC=MaterielSystem.AllMaterielCatalog("Y");
			Common.BindDrop(this.ddlMaterielCatalog,dtMC,MaterielCatalog.NAME,MaterielCatalog.ID);

			this.BindMateriel();

			this.InitButton(true);

			string rtid=this.ViewState["rtid"].ToString();
			if(rtid!="")
			{
				ReceiveTicket rt=new ReceiveTicket();
				rt.Id=rtid;
				rt.Retrieve();
				if(rt.IsPersistent)
				{
					this.txtId.Text = rt.Id;
					this.txtCode.Text = rt.Code;
					this.txtCodeHide.Text = rt.Code;
					Common.SelectFlg(this.ddlCustom,rt.CustomId);
					Common.SelectFlg(this.ddlOrderHead,rt.OrderHeadId);
					this.txtRemark.Text = rt.Remark;
					this.lblInsertDate.Text = rt.InsertDate.ToString();
					this.lblInsertOperater.Text = rt.InsertOperater;

				}

				DataTable dtRTLine=InventorySystem.AllMaterielRTLine(rtid);
				this.ViewState["RTLine"]=dtRTLine;
				this.BindGrid();
			}

		}

		private void BindGrid()
		{
			DataTable dtRTLine=(DataTable)this.ViewState["RTLine"];
			Common.ReSet(this.grid,dtRTLine.DefaultView);
			this.grid.DataSource=dtRTLine;
			this.grid.DataBind();
		}



		private void BindMateriel()
		{
			if(this.ddlMaterielCatalog.Items.Count>0)
			{
				string mcid=this.ddlMaterielCatalog.SelectedItem.Value;
				DataTable dtMateriel=MaterielSystem.AllMateriel(mcid,"","Y");
				Common.BindDrop(this.ddlMateriel,dtMateriel,Materiel.CODE,Materiel.ID,"请选择...","");

			}
		}

		private void InitButton(bool isAdd)
		{
			this.btnMaterielAdd.Visible=isAdd;
			this.btnMaterielMod.Visible=!isAdd;
			this.btnContinue.Visible=false;
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
			this.btnGoBack.Click += new System.EventHandler(this.btnGoBack_Click);
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.ddlMaterielCatalog.SelectedIndexChanged += new System.EventHandler(this.ddlMaterielCatalog_SelectedIndexChanged);
			this.ddlMateriel.SelectedIndexChanged += new System.EventHandler(this.ddlMateriel_SelectedIndexChanged);
			this.btnMaterielAdd.Click += new System.EventHandler(this.btnMaterielAdd_Click);
			this.btnMaterielMod.Click += new System.EventHandler(this.btnMaterielMod_Click);
			this.btnContinue.Click += new System.EventHandler(this.btnContinue_Click);
			this.Button3.Click += new System.EventHandler(this.Button3_Click);
			this.grid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grid_EditCommand);
			this.grid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grid_DeleteCommand);
			this.grid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grid_ItemDataBound);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void ddlMaterielCatalog_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			this.BindMateriel();
		}

		private void Button3_Click(object sender, System.EventArgs e)
		{
			this.tableMateriel.Visible=false;
		}

		private void Button1_Click(object sender, System.EventArgs e)
		{
			this.tableMateriel.Visible=true;
			this.InitButton(true);
			this.BindMateriel();
			this.txtQuantity.Text ="";
			this.txtCost.Text ="";
		}

		private void ddlMateriel_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			this.BindMaterielInfo();
		}

		private void BindMaterielInfo()
		{
			string mid=this.ddlMateriel.SelectedItem.Value;
			if(mid=="")
			{
				this.txtCost.Text ="";
				this.txtQuantity.Text="";
				this.txtCurCost.Text="0";
				this.txtCurQuantity.Text ="0";
			}
			else
			{
				Materiel m=new Materiel();
				m.Id=mid;
				m.Retrieve();
				if(m.IsPersistent)
				{
					this.txtCost.Text =m.Cost.ToString();
					this.txtCurCost.Text ="";
					double unitCost;
					double Quantity;
					InventorySystem.GetInventoryByM(m.Id,out unitCost,out Quantity);
					this.txtCurQuantity.Text =Quantity.ToString();
					this.txtCurCost.Text = unitCost.ToString();
				}
				else
				{
					this.txtCost.Text="";
					this.txtCurCost.Text="0";
					this.txtCurQuantity.Text ="0";
				}
					
			}
		}

		private void btnMaterielAdd_Click(object sender, System.EventArgs e)
		{
			string rtid=this.txtCode.Text.Trim();
			if(InventorySystem.CheckRTIsExist(rtid) && this.txtCode.Text.Trim()!=this.txtCodeHide.Text.Trim())
			{
				this.lblMessage.Text="失败:此入库单号已经存在,请确保唯一";
				this.lblMessage.Visible=true;
				return;
			}

			string mId=this.ddlMateriel.SelectedItem.Value;
			
			
			DataTable dt=(DataTable)this.ViewState["RTLine"];
			
			for(int i=0;i<dt.Rows.Count;i++)
			{
				if(dt.Rows[i][ReceiveTicketLine.MATERIELID].ToString()==mId)
				{
					this.lblMessage.Text="失败:此物料已经在物料列表中,请进行修改";
					this.lblMessage.Visible=true;
					return;
				}
			}
			DataRow dr=dt.NewRow();
			dr[ReceiveTicketLine.ID]=LoginSystem.GetTableId("ReceiveTicketLine").ToString();
			dr[ReceiveTicketLine.MATERIELID]=mId;
			dr[ReceiveTicketLine.REFERENCEQUANTITY]=double.Parse(this.txtQuantity.Text.Trim());
			dr[ReceiveTicketLine.UNITCOST]=double.Parse(this.txtCost.Text.Trim());
			dt.Rows.InsertAt(dr,0);
			this.ViewState["RTLine"]=dt;
			this.BindGrid();
			//this.txtQuantity.Text="";
			this.btnContinue.Visible=true;
			this.btnMaterielAdd.Visible=false;

		}

		private void grid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
		{
			if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
			{
				e.Item.Cells[2].Text = MaterielSystem.GetMaterielCode(e.Item.Cells[2].Text.Trim());
			}
		}

		private void btnContinue_Click(object sender, System.EventArgs e)
		{
			this.ddlMateriel.SelectedIndex=0;
			this.txtCurCost.Text ="0";
			this.txtCurQuantity.Text ="0";
			this.txtQuantity.Text ="";
			this.txtCost.Text ="";

			this.btnContinue.Visible=false;
			this.btnMaterielAdd.Visible=true;
		}

		private void grid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			//this.grid.EditItemIndex=e.Item.ItemIndex;
			this.tableMateriel.Visible=true;
			string mId=this.grid.DataKeys[e.Item.ItemIndex].ToString();
			Materiel m=new Materiel();
			m.Id =mId;
			m.Retrieve();
			if(m.IsPersistent)
			{
				Common.SelectFlg(this.ddlMaterielCatalog,m.CatalogId);
				this.BindMateriel();
				Common.SelectFlg(this.ddlMateriel,mId);
				this.BindMaterielInfo();
				DataTable dt=((DataTable)this.ViewState["RTLine"]);
				this.txtQuantity.Text = dt.Rows[e.Item.ItemIndex]["ReferenceQuantity"].ToString();
				this.txtCost.Text = dt.Rows[e.Item.ItemIndex][ReceiveTicketLine.UNITCOST].ToString();
			}

			this.InitButton(false);
			this.btnContinue.Visible=false;

		}

		private void grid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			DataTable dt=(DataTable)this.ViewState["RTLine"];
			DataRow dr=dt.Rows[e.Item.ItemIndex];
			string aQ=dr[ReceiveTicketLine.ACTUALQUANTITY].ToString();
			if(aQ!="" && int.Parse(aQ)>0)
			{
				this.lblMessage.Text ="失败:部分物料已经入库,你无法删除此物料";
				this.lblMessage.Visible=true;
				return;
			}
			dt.Rows[e.Item.ItemIndex].Delete();
			dt.AcceptChanges();
			this.ViewState["RTLine"]=dt;
			this.BindGrid();
		}

		private void btnMaterielMod_Click(object sender, System.EventArgs e)
		{
			DataTable dt=(DataTable)this.ViewState["RTLine"];
			for(int i=0;i<dt.Rows.Count;i++)
			{
				if(dt.Rows[i][ReceiveTicketLine.MATERIELID].ToString()==this.ddlMateriel.SelectedItem.Value)
				{
					dt.Rows[i][ReceiveTicketLine.REFERENCEQUANTITY]=double.Parse(this.txtQuantity.Text.Trim());
					dt.Rows[i][ReceiveTicketLine.UNITCOST]=double.Parse(this.txtCost.Text.Trim());
				}
			}

			this.ViewState["RTLine"]=dt;
			this.BindGrid();

			this.tableMateriel.Visible=false;
			
		}

		private void btnAdd_Click(object sender, System.EventArgs e)
		{
			DataTable dt=(DataTable)this.ViewState["RTLine"];
			if(dt.Rows.Count<=0)
			{
				this.lblMessage.Text ="失败:请选择要入库的物料";
				this.lblMessage.Visible=true;
				return;
			}

			string rtid=this.txtCode.Text.Trim();
			if(InventorySystem.CheckRTIsExist(rtid) && this.txtCode.Text.Trim()!=this.txtCodeHide.Text .Trim())
			{
				this.lblMessage.Text="失败:此入库单号已经存在,请确保唯一";
				this.lblMessage.Visible=true;
				return;
			}

			ReceiveTicket RT=new ReceiveTicket();
			RT.Id=this.txtId.Text.Trim();
			RT.Retrieve();
			RT.Code=rtid;
			RT.CustomId=this.ddlCustom.SelectedItem.Value;
			//RT.InsertDate=System.DateTime.Now;
			//RT.Flag="N";
			//RT.InsertOperater=this.CurrentUser().Id;
			RT.OrderHeadId=this.ddlOrderHead.SelectedItem.Value;
			RT.Remark=this.txtRemark.Text;
			
			try
			{
				InventorySystem.SaveRTWithLine(RT,dt);
			}
			catch
			{
				this.lblMessage.Text="失败:修改入库单过程中遇到错误";
				this.lblMessage.Visible=true;
				return;
			}

			this.lblMessage.Text ="成功:修改入库单成功";
			this.lblMessage.Visible=true;
			this.btnAdd.Visible=false;





		}

		private void btnGoBack_Click(object sender, System.EventArgs e)
		{
			Response.Redirect("MaterielRTWeb.aspx");
			Response.End();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -