429 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			429 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Data;
 | |
| using System.Web.UI;
 | |
| using System.Web.UI.WebControls;
 | |
| using DeiNiu.wms.Logical;
 | |
| using DeiNiu.Utils;
 | |
| using DeiNiu.wms.Data.Model;
 | |
| 
 | |
| public partial class DeptMain : PageBase
 | |
| {
 | |
|     private LDepartment _logic;
 | |
|     protected void Page_Load(object sender, EventArgs e)
 | |
|     {
 | |
|   
 | |
|         if (!IsPostBack)
 | |
|         {
 | |
|             _logic = new LDepartment();
 | |
|             Databound();
 | |
|         }
 | |
|         SessionSeting();
 | |
|     }
 | |
|  
 | |
|     /*****************************************   private methods   ******************************************/
 | |
| 
 | |
|     /// <summary>
 | |
|     /// bound the query list.
 | |
|     /// </summary>
 | |
|     private void Databound()
 | |
|     { 
 | |
|         //绑定部门列表
 | |
|         drplstDept.DataSource = _logic.GetAllActiveData();
 | |
|         drplstDept.DataTextField = "dep_name";
 | |
|         drplstDept.DataValueField = "ID";
 | |
|         drplstDept.DataBind();
 | |
|     
 | |
| 
 | |
| 
 | |
| 
 | |
|         drplstDept.Items.Insert(0, (new ListItem("WMS", "0")));
 | |
|         drplstDept.SelectedItem.Selected = false;
 | |
|         drplstDept.Items.FindByText("WMS").Selected = true;
 | |
| 
 | |
| 
 | |
| 
 | |
|         //绑定部门人员列表
 | |
|          DropDownList1.DataSource = _logic.GetEmployees();
 | |
|         DropDownList1.DataTextField = "em_name";
 | |
|         DropDownList1.DataValueField = "ID";
 | |
|         DropDownList1.DataBind();
 | |
|         DropDownList1.Items.Insert(0,(new ListItem("请选择...","0")));
 | |
|         DropDownList1.SelectedItem.Selected = false;
 | |
|         DropDownList1.Items.FindByText("请选择...").Selected = true;
 | |
|         //装载选定部门节点的部门数据 
 | |
| 
 | |
|         dlstDeptType.Items.Clear();
 | |
|         dlstDeptType.Items.Add(new ListItem("普通", "0")); 
 | |
|         dlstDeptType.Items.Add(new ListItem("仓管", "1"));
 | |
|         dlstDeptType.Items.Add(new ListItem("仓库", "2")); 
 | |
|         dlstDeptType.Items.Add(new ListItem("三方", "3"));
 | |
|         DataView dv = _logic.GetAllActiveData().DefaultView;
 | |
|         string selectedValue = TreeDept.SelectedValue;
 | |
|         TreeDept.Nodes.Clear();
 | |
|         TreeDept.Nodes.Add(new TreeNode("WMS", "0"));
 | |
|         TreeDept.Nodes[0].Expanded = true;
 | |
|         BindTree("0", TreeDept.Nodes[0], dv);
 | |
|         //   TreeDept.SelectedNode.ChildNodes.Clear();
 | |
|         //     BindTree(TreeDept.SelectedValue, TreeDept.SelectedNode, dv);
 | |
|         //     TreeDept.Nodes.AddAt(0, new TreeNode("WMS", "0"));
 | |
|         if (selectedValue == "0") TreeDept.Nodes[0].Selected = true;
 | |
|         else
 | |
|         {
 | |
|             setTreeDeptSelected(selectedValue, TreeDept.Nodes[0]);
 | |
|         }
 | |
|        dv.RowFilter = "dep_mastdept = '" + selectedValue + "'";
 | |
|        bindGridview(dv);
 | |
|        
 | |
|         UpdateSession();
 | |
|     // btnSubmit.Enabled = false;
 | |
|       //  ClearDetail();
 | |
| 
 | |
| 
 | |
|         drplstDept.Items.Clear();
 | |
|         initializeDrlstDept(TreeDept.Nodes, drplstDept ,"");
 | |
|     }
 | |
| 
 | |
|     void bindGridview(DataView dv )
 | |
|     {
 | |
|        
 | |
|         //绑定树列表里选中的部门下的所有部门数据
 | |
|        
 | |
| 
 | |
|         foreach (DataRowView drv in dv)
 | |
|         {
 | |
|             foreach (ListItem li in dlstDeptType.Items)
 | |
|             {
 | |
|                 if (drv["dep_type"].ToString().Equals(li.Value))
 | |
|                 {
 | |
|                     drv.Row["typeName"] = li.Text;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         GridView1.DataSource = dv;
 | |
|         GridView1.DataBind();
 | |
|     }
 | |
| 
 | |
|     void initializeDrlstDept(TreeNodeCollection nds, DropDownList drplist, string emptyString)
 | |
|     {
 | |
|         
 | |
|        
 | |
|         foreach (TreeNode nd in nds)
 | |
|         {
 | |
|             
 | |
|             ListItem li = new ListItem(emptyString + nd.Text,nd.Value);
 | |
|             drplist.Items.Add(li); 
 | |
|             string NextemptyString = emptyString+ "----";
 | |
|             foreach (TreeNode nd1 in nd.ChildNodes)
 | |
|             {
 | |
|                li = new ListItem(NextemptyString + nd1.Text, nd1.Value);
 | |
|                     drplist.Items.Add(li);
 | |
|                    
 | |
|                 if (nd1.ChildNodes.Count > 0)
 | |
|                 {
 | |
|                     NextemptyString +="----";
 | |
|                    initializeDrlstDept(nd1.ChildNodes, drplist, NextemptyString);
 | |
|                 }
 | |
| 
 | |
| 
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
|     void setTreeDeptSelected(string toFind,TreeNode nd)
 | |
|     {
 | |
|         foreach (TreeNode cnd in nd.ChildNodes)
 | |
|         {
 | |
|             if (cnd.Value == toFind) 
 | |
|             {
 | |
|                 cnd.Selected = true;
 | |
|                 break;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 setTreeDeptSelected(toFind,cnd);
 | |
|             }
 | |
| 
 | |
|         }
 | |
|     }
 | |
|     private void SessionSeting()
 | |
|     {
 | |
|         if (IsPostBack)
 | |
|         {
 | |
|             _logic = (LDepartment)Session[appScope.PagelevelObj];
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private void UpdateSession()
 | |
|     {
 | |
|         Session[appScope.PagelevelObj] = _logic;
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// set data from shift object to page
 | |
|     /// </summary>
 | |
|     private void DetailDataBind()
 | |
|     {
 | |
|         DataDetail.Visible = true;
 | |
|         txtDepName.Text = _logic.GetDepartment.dep_name ;
 | |
|         txtDepcode.Text = _logic.GetDepartment.dep_code;
 | |
|         txtDepDesc.Text = _logic.GetDepartment.dep_desc;
 | |
|         txtSvrAddress.Text = _logic.GetDepartment.svrAdress;
 | |
|        // txtDepType.Text = _logic.GetDepartment.dep_type+"";
 | |
|         DropDownList1.SelectedItem.Selected = false;
 | |
|         if(DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString())!=null)
 | |
|         {
 | |
|           DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString()).Selected = true;  
 | |
|         }
 | |
|         drplstDept.SelectedItem.Selected = false;
 | |
|         if (drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()) != null)
 | |
|         {
 | |
|             drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()).Selected = true;
 | |
|         }
 | |
|         dlstDeptType.SelectedItem.Selected = false;
 | |
|         if (dlstDeptType.Items.FindByValue(_logic.GetDepartment.dep_type.ToString()) != null)
 | |
|         {
 | |
|             dlstDeptType.Items.FindByValue(_logic.GetDepartment.dep_type.ToString()).Selected = true;
 | |
|         }
 | |
|         
 | |
|          
 | |
| //    chkStatus.Checked = _logic.GetRole.dr;
 | |
|     }
 | |
| 
 | |
|     /************************************** protected methods (event listeners) ********************************/
 | |
| 
 | |
|     protected void btnAddnew_Click(object sender, EventArgs e)
 | |
|     {
 | |
|         chgOperTxt(true);
 | |
|         _logic.Initialize();
 | |
|         DetailDataBind();
 | |
|         GridView1.SelectedIndex = -1;
 | |
|         Databound();
 | |
|         drplstDept.SelectedItem.Selected = false;
 | |
|         if (drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value) != null)
 | |
|         {
 | |
|             drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value).Selected = true;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     protected void DetailsView1_PageIndexChanging(object sender, DetailsViewPageEventArgs e)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
 | |
|     {
 | |
|         chgOperTxt(false);
 | |
|         if (GridView1.DataKeys != null)
 | |
|         {
 | |
|             string id = GridView1.DataKeys[e.NewEditIndex].Value.ToString();
 | |
|             _logic.Initialize(int.Parse(id));
 | |
|         }
 | |
|         Databound();
 | |
|         DetailDataBind();
 | |
|     }
 | |
| 
 | |
|     protected void btnSubmit_Click(object sender, EventArgs e)
 | |
|     {
 | |
|         SetDataBack();
 | |
|         //shifts id eq 0 means this is new one,to add; else an old one, to update
 | |
| 
 | |
|         if (_logic.GetDepartment.ID > 0)
 | |
|         {
 | |
|             _logic.GetDepartment.Update();
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             _logic.GetDepartment.Add();
 | |
|             if (_logic.GetDepartment.warehouse == 0 && _logic.GetDepartment.dep_type==1)
 | |
|             {
 | |
|                 _logic.GetDepartment.warehouse = _logic.GetDepartment.ID;
 | |
|                 _logic.GetDepartment.Update();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         
 | |
|         ClearDetail();
 | |
|         Databound();
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 | |
|     {
 | |
|         
 | |
|         if (GridView1 != null)
 | |
|         {
 | |
|             if (GridView1.DataKeys != null)
 | |
|             {
 | |
|                 string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
 | |
|                 _logic.Initialize(int.Parse(id));
 | |
|             }
 | |
|         }
 | |
|         /*
 | |
|         _logic.GetRole.dr = false;
 | |
|         _logic.GetRole.Update();
 | |
|         
 | |
|        */
 | |
|         _logic.GetDepartment.Delete();
 | |
|         ClearDetail();
 | |
|         Databound();
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_PageIndexChanged(object sender, EventArgs e)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
 | |
|     {
 | |
|         GridView1.PageIndex = e.NewPageIndex;
 | |
|         Databound();
 | |
| 
 | |
|         //GridView1.DataSource = shiftLgc.getAllShifts().Tables[0];
 | |
|         //     GridView1.DataBind();    
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_DataBinding(object sender, EventArgs e)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 | |
|     {
 | |
|         /*
 | |
|         CheckBox chk;
 | |
|         if (e.Row.RowType == DataControlRowType.DataRow)
 | |
|         {
 | |
|             chk = new CheckBox();
 | |
|             chk.Text = "激活";
 | |
|             chk.Enabled = false;
 | |
|             chk.Checked = e.Row.Cells[3].Text.Trim().Equals("1");
 | |
|             e.Row.Cells[3].Controls.Add(chk);
 | |
|         }
 | |
|       */
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     //reset the page
 | |
|     protected void btnCancel_Click(object sender, EventArgs e)
 | |
|     {
 | |
|         _logic.Initialize();
 | |
|         Page_Load(this, e);
 | |
|     }
 | |
| 
 | |
|     /***************************************** internal methods ********************************************/
 | |
| 
 | |
|     /// <summary>
 | |
|     /// set data from page to shift object
 | |
|     /// </summary>
 | |
|     private void SetDataBack()
 | |
|     {
 | |
|         //    _logic.GetRole.operater = Session["CurrentUserID"].ToString();  todo: write a public method to handle operater,createtime,lastmodfied ... log info.
 | |
| 
 | |
|        if (!(_logic.GetDepartment.ID > 0 )) 
 | |
|        {
 | |
|          // _logic.GetDepartment.lastmodified = DateTime.Now.ToString(); 
 | |
|           _logic.GetDepartment.dep_mastdept = Convert.ToInt32(TreeDept.SelectedValue);
 | |
|        }
 | |
|         
 | |
|       // _logic.GetDepartment.dr = true;
 | |
|        _logic.GetDepartment.dep_name = txtDepName.Text;
 | |
|        _logic.GetDepartment.dep_desc = txtDepDesc.Text;
 | |
|        _logic.GetDepartment.dep_code = txtDepcode.Text; 
 | |
|         _logic.GetDepartment.svrAdress =  txtSvrAddress.Text;
 | |
|        if (dlstDeptType.SelectedItem != null) _logic.GetDepartment.dep_type = Convert.ToInt16(dlstDeptType.SelectedValue); 
 | |
|         if (DropDownList1.SelectedItem != null ) _logic.GetDepartment.dep_manager = Convert.ToInt32(DropDownList1.SelectedValue);
 | |
|         if (drplstDept.SelectedItem != null) _logic.GetDepartment.dep_mastdept = Convert.ToInt32(drplstDept.SelectedValue);
 | |
| 
 | |
|         if (_logic.GetDepartment.dep_type != (int)enumDepartmentType.仓库)//本部门不是仓库类型
 | |
|         {
 | |
|             if (_logic.GetDepartment.dep_mastdept > 0) //继承上级部门的仓库属性
 | |
|             {
 | |
|                 Department dept = new Department(_logic.GetDepartment.dep_mastdept);
 | |
|                 if (dept.dep_type != 1)
 | |
|                 {
 | |
|                     _logic.GetDepartment.warehouse = dept.warehouse;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     _logic.GetDepartment.warehouse = dept.ID;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             _logic.GetDepartment.warehouse = _logic.GetDepartment.ID;
 | |
|            
 | |
|         }
 | |
| 
 | |
| 
 | |
|     
 | |
|     }
 | |
| 
 | |
|     private void chgOperTxt(bool addNew)
 | |
|     {
 | |
|         DataDetail.Visible = true;
 | |
|         lbEdit.Text = addNew ? "增加新记录" : "修改现有记录";
 | |
|         btnSubmit.Enabled = true;
 | |
|     }
 | |
| 
 | |
|     private void ClearDetail()
 | |
|     {
 | |
|         txtDepName.Text = "";
 | |
|         txtDepcode.Text = "";
 | |
|         txtDepDesc.Text = "";
 | |
|         //txtDepType.Text ="";
 | |
|         DataDetail.Visible = false;
 | |
|     }
 | |
| 
 | |
|     protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
 | |
|     {
 | |
|         chgOperTxt(false);
 | |
|         if (GridView1.DataKeys != null)
 | |
|         {
 | |
|             string id = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString();
 | |
|             _logic.Initialize(int.Parse(id));
 | |
|         }
 | |
|         Databound();
 | |
|         DetailDataBind();
 | |
|     }
 | |
| 
 | |
| 
 | |
| 
 | |
|     public void BindTree(string id, TreeNode pNode, DataView dv)
 | |
|     {
 | |
|         
 | |
|         dv.RowFilter = "dep_mastdept = '" + id + "'";
 | |
|         foreach (DataRowView row in dv)
 | |
|         {
 | |
|             TreeNode node = new TreeNode();
 | |
|             node.Text = row["dep_name"].ToString();
 | |
|             node.Value = row["ID"].ToString();
 | |
|             if (pNode == null)
 | |
|                 //说明是根节点
 | |
|             {
 | |
|             
 | |
|                 TreeDept.Nodes.Add(node);
 | |
|                 node.Expanded = true;
 | |
|       
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 pNode.ChildNodes.Add(node);
 | |
|                 node.Expanded = true;
 | |
|                 
 | |
|             }
 | |
|             BindTree(node.Value, node, new DataView(dv.Table));
 | |
| 
 | |
|         }
 | |
|     }
 | |
|     protected void TreeDept_SelectedNodeChanged(object sender, EventArgs e)
 | |
|     {
 | |
|        GridView1.SelectedIndex = -1; 
 | |
|         DataView dv = new DataView(_logic.GetAllActiveData()); 
 | |
|         dv.RowFilter = "dep_mastdept = '" + TreeDept.SelectedValue + "'"; 
 | |
|         bindGridview(dv);
 | |
|         ClearDetail();
 | |
|     }
 | |
| } |