NF-ERP之采購管理子系統(tǒng)--詳細(xì)設(shè)計說明書.doc_第1頁
NF-ERP之采購管理子系統(tǒng)--詳細(xì)設(shè)計說明書.doc_第2頁
NF-ERP之采購管理子系統(tǒng)--詳細(xì)設(shè)計說明書.doc_第3頁
NF-ERP之采購管理子系統(tǒng)--詳細(xì)設(shè)計說明書.doc_第4頁
NF-ERP之采購管理子系統(tǒng)--詳細(xì)設(shè)計說明書.doc_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

NF-ERP之采購管理子系統(tǒng)詳細(xì)設(shè)計說明書V1.0(版本號)班 級:S3SN20班 組 名:第一小組 指 導(dǎo):張果老師 組 員:黃燕,游夢云,蘭軍,謝萬林二零一二年五月十七日詳細(xì)設(shè)計說明書1.引言1.1編寫目的 采購系統(tǒng)幫助采購人員控制并完成從采購計劃、采購執(zhí)行到到采購質(zhì)檢等全部過程管理??捎行У乇O(jiān)控采購計劃的實施、采購成本的變動及供應(yīng)商交貨情況,從而幫助采購人員選擇最優(yōu)秀的供應(yīng)商和采購計劃,確保采購工作高質(zhì)量、高效率及低成本地執(zhí)行,使企業(yè)具有最佳的供貨狀態(tài),重點(diǎn)實現(xiàn)的目標(biāo)如下:實現(xiàn)對供應(yīng)商信息的動態(tài)管理和維護(hù);科學(xué)、準(zhǔn)確、靈活的制定采購計劃,指導(dǎo)和規(guī)范企業(yè)日常的采購經(jīng)營活動;保證采購產(chǎn)品的及時與準(zhǔn)確,確保生產(chǎn)的持續(xù)進(jìn)行;對企業(yè)采購計劃的制定、審核、下達(dá)進(jìn)行監(jiān)督和控制,對物資采購的制定,企業(yè)日常到貨、到貨檢驗、付款結(jié)算進(jìn)行跟蹤和追溯。1.2背景a. 項目名稱:NF-ERP采購管理子系統(tǒng)b. 本項目的任務(wù)提出者:黃燕、游夢云、蘭軍、謝萬林 開發(fā)者:黃燕、游夢云、蘭軍、謝萬林 用戶:公司采購部的所有員工1.3定義到貨通知單:是采購物料到達(dá)時,通知質(zhì)檢部門檢驗、地磅過磅、倉庫收料入庫的依據(jù)。在途發(fā)票:凡是沒有進(jìn)行采購結(jié)算的采購發(fā)票,都是在途發(fā)票1.4參考資料 恩信云計算機(jī)ERP系統(tǒng)2. 系統(tǒng)的結(jié)構(gòu)NF-ERP采購管理系統(tǒng)客戶化設(shè)置貨品檔案供應(yīng)商推薦供應(yīng)商檔案登記貨品檔案計劃管理調(diào)度管理質(zhì)檢管理發(fā)票管理報表管理貨品I級設(shè)置貨品II級設(shè)置貨品III級設(shè)置貨品用途設(shè)置審核貨品檔案查詢貨品檔案變更貨品檔案登記供應(yīng)商檔案審核供應(yīng)商檔案查詢供應(yīng)商推薦變更供應(yīng)商檔案登記供應(yīng)商推薦審核供應(yīng)商推薦查詢供應(yīng)商推薦變更供應(yīng)商推薦制定采購計劃審核采購計劃查詢采購計劃制定采購執(zhí)行單審核采購執(zhí)行單查詢采購執(zhí)行單登記質(zhì)檢結(jié)果審核質(zhì)檢結(jié)果查詢質(zhì)檢結(jié)果登記發(fā)票信息審核發(fā)票信息查詢發(fā)票信息采購價預(yù)覽質(zhì)檢詳情發(fā)票詳情3客戶化設(shè)置設(shè)計說明 3.1模塊描述本模塊主要是對產(chǎn)品的添加,主要是貨品I級的添加,貨品II級的添加,貨品III的添加,I級的添加可以結(jié)合符合規(guī)定寫,但I(xiàn)I級貨品要根據(jù)I級 類型類型來添加,三級類型是根據(jù)II級中的類型來添加;還有對貨品用途的設(shè)置,主要是用途的添加;還有權(quán)限的管理,分為管理員和采購員,能夠?qū)Ω髯缘墓芾矸秶龀鲆?guī)定和調(diào)整。3.2功能本模塊主要是對貨品的分類進(jìn)行添加,主要是對貨品I級進(jìn)行添加,對貨品II級進(jìn)行添加,對貨品III進(jìn)行添加;還有對貨品的用途進(jìn)行添加;管理員和采購人員對該系統(tǒng)的管理權(quán)限進(jìn)行授權(quán)3.3流程邏輯客戶化設(shè)置權(quán)限設(shè)置貨品用途設(shè)置貨品II級設(shè)置貨品III級設(shè)置貨品I級設(shè)置3.4 UI展示界面圖3.1 查詢貨品I級圖 3.2 添加貨品I級圖 3.3 貨品II級查詢圖 3.4 貨品II添加圖 3.5 貨品III查詢圖 3.6 貨品III添加圖 3.7 貨品用途查詢圖 3.8 貨品用途添加圖 3.9 權(quán)限設(shè)置3.5核心代碼/獲取角色列表 public void GetList() List st = au.Find(p = true).ToList(); for (int i = 0; i p.parentNode = null).ToList(); this.Repeater1.DataBind(); /獲取父節(jié)點(diǎn)之下的資源 public void GetChild(object sender, EventArgs e) foreach (RepeaterItem item in Repeater1.Items) if (item.ItemType = ListItemType.Item | item.ItemType = ListItemType.AlternatingItem) CheckBox cbk = item.FindControl(ee) as CheckBox; /cbk.Checked = false; if (cbk.Checked) Repeater repea = item.FindControl(Repeater2) as Repeater; repea.DataSource = re.Find(p = p.parentNode = Convert.ToInt32(cbk.CssClass).ToList(); repea.DataBind(); else Repeater repea = item.FindControl(Repeater2) as Repeater; repea.DataSource = null; repea.DataBind(); /角色按鈕改變時改變 protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) ClearCh(); List listr = GetSRP(Convert.ToInt32(this.RadioButtonList1.SelectedValue); /父節(jié)點(diǎn)選中的 和 展開子節(jié)點(diǎn) for (int i = 0; i listr.Count; i+) foreach (RepeaterItem item in Repeater1.Items) if (item.ItemType = ListItemType.Item | item.ItemType = ListItemType.AlternatingItem) CheckBox cbk = item.FindControl(ee) as CheckBox; if (Convert.ToInt32(cbk.CssClass) = listri.nodeId) cbk.Checked = true; GetChild(null, null); /選擇子節(jié)點(diǎn)選中的 for (int i = 0; i listr.Count; i+) foreach (RepeaterItem item in Repeater1.Items) if (item.ItemType = ListItemType.Item | item.ItemType = ListItemType.AlternatingItem) CheckBox cbk = item.FindControl(ee) as CheckBox; if (Convert.ToInt32(cbk.CssClass) = listri.nodeId) Repeater repea = item.FindControl(Repeater2) as Repeater; for (int j = 0; j listr.Count; j+) foreach (RepeaterItem item2 in repea.Items) if (item2.ItemType = ListItemType.Item | item2.ItemType = ListItemType.AlternatingItem) CheckBox cb = item2.FindControl(cc) as CheckBox; if (Convert.ToInt32(cb.CssClass) = listrj.nodeId) cb.Checked = true; /清空CHeckBox public void ClearCh() foreach (RepeaterItem item in Repeater1.Items) if (item.ItemType = ListItemType.Item | item.ItemType = ListItemType.AlternatingItem) CheckBox cbk = item.FindControl(ee) as CheckBox; cbk.Checked = false; /獲取角色資源表的list public List GetSRP(int id) return str.Find(p = p.rolesId = Convert.ToInt32(id).ToList(); /修改角色資源 protected void Button1_Click(object sender, EventArgs e) int count = 0; List intli = new List();/CHeckBox全部選中資源id foreach (RepeaterItem item in Repeater1.Items) if (item.ItemType = ListItemType.Item | item.ItemType = ListItemType.AlternatingItem) CheckBox cbk = item.FindControl(ee) as CheckBox; if (cbk.Checked) intli.Add(Convert.ToInt32(cbk.CssClass); Repeater repea = item.FindControl(Repeater2) as Repeater; foreach (RepeaterItem item2 in repea.Items) if (item2.ItemType = ListItemType.Item | item2.ItemType = ListItemType.AlternatingItem) CheckBox cb = item2.FindControl(cc) as CheckBox; if (cb.Checked) intli.Add(Convert.ToInt32(cb.CssClass); else count+; if (count = Repeater1.Items.Count) ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid().ToString(), alert(你并沒選擇任何權(quán)限!); else int id = Convert.ToInt32(RadioButtonList1.SelectedValue); List listr = GetSRP(id); str.Delete(listr); for (int i = 0; i intli.Count; i+) RolesNodeInfo rolesnode = new RolesNodeInfo(); rolesnode.rolesId = id; rolesnode.nodeId = intlii; str.Add(rolesnode); ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid().ToString(), alert(修改成功!); 3.6尚未解決的問題 無4貨品檔案 模塊設(shè)計說明4.1模塊描述本模塊主要包括四個子模塊,主要是:登記貨品檔案,審核貨品檔案,查詢貨品檔案,變更貨品檔案;主要流程是:登記貨品檔案對登記的貨品檔案進(jìn)行審核-審核通過的貨品檔案進(jìn)行查詢對于貨品的檔案進(jìn)行更改4.2功能登記貨品檔案:登記貨品檔案審核貨品檔案:對登記的貨品檔案進(jìn)行審核查詢貨品檔案:對已經(jīng)通過審核的貨品進(jìn)行條件查詢變更貨品檔案:對已經(jīng)通過審核的貨品進(jìn)行變更4.3流程邏輯用圖表輔以必要的說明來表示本模塊的邏輯流程。貨品檔案審核貨品檔案查詢貨品檔案變更貨品檔案登記貨品檔案4.4 UI展示功能模塊所對應(yīng)的表示界面如:圖4.1 貨品登記圖 4.2 等待審核圖 4.3 貨品審核圖 4.4 查詢貨品圖 4.5 貨品變更圖 4.6 變更貨品4.5核心代碼針對該模塊的核心代碼/接收傳過來的ProId int proId = Convert.ToInt32(RequestproId.ToString(); ProductInfoDA proiDA = new ProductInfoDA(); var pro = proiDA.Find(p = ductId = proId).FirstOrDefault(); this.txtproductName.Text = ductName; /下拉列表框顯示所有的用途 var resert = proDA.Find(p = p.typeFather = 0).ToList(); dropproductTypeI.DataSource = resert; dropproductTypeI.DataValueField = typeId; dropproductTypeI.DataTextField = typeName; dropproductTypeI.DataBind();/保存變更的貨品信息 ProductInfoDA proDA = new ProductInfoDA(); int proId = Convert.ToInt32(RequestproId.ToString(); var pro = proDA.Find(p = ductId = proId).FirstOrDefault(); ductName = this.txtproductName.Text.Trim(); pro.Cess = string.IsNullOrEmpty(this.txtCess.Text.Trim() ? null : new Nullable(Convert.ToDecimal(this.txtCess.Text.Trim(); pro.useId = Convert.ToInt32(this.dropproductUse.SelectedItem.Value.Trim(); pro.typeId = Convert.ToInt32(this.dropproductTypeIII.SelectedItem.Value.Trim(); ductBreed = this.txtproductBreed.Text.Trim(); ductSpec = this.txtproductSpec.Text.Trim(); pro.barCode = this.txtbarCode.Text.Trim(); pro.Unit = this.txtUnit.Text.Trim(); pro.inPrice = Convert.ToDecimal(this.txtinPrice.Text.Trim(); pro.outPrice = Convert.ToDecimal(this.txtoutPrice.Text.Trim(); pro.upperLimit = this.txtupperLimit.Text.Trim(); pro.lowerLimit = this.txtlowerLimit.Text.Trim(); pro.employeeId = Convert.ToInt32(this.dropemployeeName.SelectedItem.Value.Trim(); pro.registerDate = Convert.ToDateTime(this.txtregisterDate.Text.Trim(); pro.Remark = this.txtRemark.Text.Trim(); proDA.Save(); Response.Redirect(ProductEdit.aspx); /當(dāng)選擇I級貨品II級貨品自動變?yōu)镮級貨品的子類 protected void dropproductTypeI_SelectedIndexChanged(object sender, EventArgs e) int id2 = Convert.ToInt32(dropproductTypeI.SelectedItem.Value); var ret = proDA.Find(p = p.typeFather = id2).ToList(); this.dropproductTypeII.DataSource = ret; this.dropproductTypeII.DataValueField = typeId; this.dropproductTypeII.DataTextField = typeName; this.dropproductTypeII.DataBind(); /當(dāng)選擇II級貨品時,III級貨品自動變味II級貨品的子類 protected void dropproductTypeII_SelectedIndexChanged(object sender, EventArgs e) int id3 = Convert.ToInt32(dropproductTypeII.SelectedItem.Value); var ret = proDA.Find(p = p.typeFather = id3).ToList(); this.dropproductTypeIII.DataSource = ret; this.dropproductTypeIII.DataTextField = typeName; this.dropproductTypeIII.DataValueField = typeId; this.dropproductTypeIII.DataBind(); 4.6尚未解決的問題 無5供應(yīng)商檔案 模塊設(shè)計說明5.1模塊描述本模塊主要是分為四個子模塊:登記供應(yīng)商檔案,審核供應(yīng)商檔案,查詢供應(yīng)商檔案,更新供應(yīng)商檔案;主要流程是:登記供應(yīng)商檔案-審核供應(yīng)商檔案-查詢供應(yīng)商檔案-更新供應(yīng)商檔案;每個子模塊對自身的功能都能順利的進(jìn)行,簡單易懂5.2功能說明該基本模塊應(yīng)具有的功能。登記供應(yīng)商檔案:主要是對供應(yīng)商的添加進(jìn)行登記審核供應(yīng)商檔案:對已經(jīng)登記的供應(yīng)商檔案信息但未審核的供應(yīng)商檔案信息進(jìn)行審核查詢供應(yīng)商檔案:對已經(jīng)審核通過的供應(yīng)商檔案進(jìn)行查詢,并且查看其詳細(xì)信息更新供應(yīng)商檔案:對已經(jīng)審核通過的供應(yīng)商檔案進(jìn)行更新5.3流程邏輯用圖表輔以必要的說明來表示本模塊的邏輯流程。供應(yīng)商檔案變更供應(yīng)商檔案查詢供應(yīng)商檔案審核供應(yīng)商檔案登記供應(yīng)商檔案5.4 UI展示功能模塊所對應(yīng)的表示界面如:圖5.1 登記供應(yīng)商檔案圖 5.2 供應(yīng)商信息審核圖 5.3 供應(yīng)商信息審核圖 5.4 查詢供應(yīng)商信息圖 5.5 供應(yīng)商詳細(xì)信息圖 5.6 更新供應(yīng)商信息圖 5.7 修改供應(yīng)商信息5.5核心代碼針對該模塊的核心代碼/根據(jù)ID查找數(shù)據(jù) int id = Convert.ToInt32(RequestsupID); var sup = supInfoda.Find(p = p.supplyId = id).FirstOrDefault(); txtSupplyName.Text = sup.supplyName; txtsupplyRelation.Text = sup.supplyRelation; txtrelationPhone.Text = sup.relationPhone; txtphotoNumber.Text = sup.photoNumber; txtEmail.Text = sup.Email; txtpostalCode.Text = sup.postalCode; txtfaxNumber.Text = sup.faxNumber; /登記人 ddlemployee.DataSource = empInfoda.Find(p = true).ToList(); ddlemployee.DataValueField = employeeId; ddlemployee.DataTextField = employeeName; ddlemployee.DataBind(); var rs = empInfoda.Find(p = p.employeeId = sup.employeeId).FirstOrDefault(); ddlemployee.Items.FindByText(rs.employeeName).Selected = true; txtbankName.Text = sup.bankName; txtbankNumber.Text = sup.bankNumber; txtlinkAddress.Text = sup.linkAddress; txtwebSite.Text = sup.webSite; /貨品類型 var type1 = protypeda.Find(p = p.typeFather = 0); ddltype1.DataSource = type1; ddltype1.DataTextField = typeName; ddltype1.DataValueField = typeId; ddltype1.DataBind(); int id1 = Convert.ToInt32(ddltype1.SelectedItem.Value); var type2 = protypeda.Find(p = p.typeFather = id1); ddltype2.DataSource = type2; ddltype2.DataTextField = typeName; ddltype2.DataValueField = typeId; ddltype2.DataBind(); int id2 = Convert.ToInt32(ddltype2.SelectedItem.Value); var type3 = protypeda.Find(p = p.typeFather = id2); ddltype3.DataSource = type3; ddltype3.DataTextField = typeName; ddltype3.DataValueField = typeId; ddltype3.DataBind(); txtregisterDate.Text = sup.registerDate + ; txtTax.Text = sup.Tax; txtRemark.Text = sup.Remark;/把修改好的信息保存,isCheck為0 int id = Convert.ToInt32(RequestsupID); var info = supInfoda.Find(p = p.supplyId = id).FirstOrDefault(); info.supplyName = txtSupplyName.Text.Trim(); info.supplyRelation = txtsupplyRelation.Text.Trim(); info.relationPhone = txtrelationPhone.Text.Trim(); info.photoNumber = txtphotoNumber.Text.Trim(); info.Email = txtEmail.Text.Trim(); info.postalCode = txtpostalCode.Text.Trim(); info.faxNumber = txtfaxNumber.Text.Trim(); int empId = Convert.ToInt32(this.ddlemployee.SelectedItem.Value); info.employeeId = empId; info.bankNumber = txtbankNumber.Text.Trim(); info.linkAddress = txtlinkAddress.Text.Trim(); info.webSite = txtwebSite.Text.Trim(); info.Bank = ddlBank.SelectedItem.Text.Trim(); ProductTypeInfo protypeinfo = new ProductTypeInfo(); int typeId = Convert.ToInt32(this.ddltype1.SelectedItem.Value); protypeinfo.typeId = typeId; info.Tax = txtTax.Text.Trim(); info.Remark = txtRemark.Text.Trim(); info.typeId = Convert.ToInt32(ddltype3.SelectedItem.Value); info.registerDate = Convert.ToDateTime(txtregisterDate.Text); info.ischeck = 0; supInfoda.Save();/根據(jù)貨品I級查找II級貨品,再根據(jù)II級貨品查找III貨品 protected void ddltype1_SelectedIndexChanged(object sender, EventArgs e) int id1 = Convert.ToInt32(ddltype1.SelectedItem.Value); var type2 = protypeda.Find(p = p.typeFather = id1).ToList(); ddltype2.DataSource = type2; ddltype2.DataTextField = typeName; ddltype2.DataValueField = typeId; ddltype2.DataBind(); int id2 = Convert.ToInt32(ddltype2.SelectedItem.Value); var type3 = protypeda.Find(p = p.typeFather = id2).ToList(); ddltype3.DataSource = type3; ddltype3.DataTextField = typeName; ddltype3.DataValueField = typeId; ddltype3.DataBind(); protected void ddltype2_SelectedIndexChanged(object sender, EventArgs e) int id2 = Convert.ToInt32(ddltype2.SelectedItem.Value); var type3 = protypeda.Find(p = p.typeFather = id2).ToList(); ddltype3.DataSource = type3; ddltype3.DataTextField = typeName; ddltype3.DataValueField = typeId; ddltype3.DataBind(); 5.6尚未解決的問題說明在本模塊的設(shè)計中尚未解決而設(shè)計者認(rèn)為在系統(tǒng)完成之前應(yīng)解決的問題。無6供應(yīng)商推薦設(shè)計說明6.1模塊描述本模塊主要包括四個子模塊:登記供應(yīng)商推薦,審核供應(yīng)商商推薦,查詢供應(yīng)商推薦,變更供應(yīng)商推薦;主要的流程是:登記供應(yīng)商推薦審核供應(yīng)商推薦-查詢供應(yīng)商推薦-變更供應(yīng)商推薦;本模塊的特點(diǎn)是簡單的操作方式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論