ERP合同管理二(二十七)
阿新 • • 發佈:2017-07-26
客戶 contact null format read effective XML listitem 控件
未審核表單列表顯示:
1.用戶登錄後,根據登錄用戶加載審核流程表中屬於當前登錄用戶的未審核表單。
2.點擊選中未審核表單跳轉到指定審核流程頁面
if (Request.QueryString["taskid"] != null && Request.QueryString["listid"] != null) { contractid = Request.QueryString["taskid"].ToString(); tasklistid = Request.QueryString["listid"].ToString(); } else { Response.Write("<script>window.history(-1)</script>"); }
防止匿名登錄:
登錄後將基本信息保存至Session["Userid"],
如果每個頁面加載時候判斷Session["Userid"],如果為空則跳轉至指定登錄頁面。
public BasePage() { this.Load += new EventHandler(BasePage_Load); } void BasePage_Load(object sender, EventArgs e) { Session["Userid"] = "29"; if (Session["Userid"] == null) { Response.Redirect("~/Web/UserLogin.aspx"); } }
用法:
public partial class CRMContractEidt:BasePage { protected void Page_Load(object sender, EventArgs e) { this.txtCreatTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); if (!IsPostBack) { pageinfo(); } } }
合同基礎信息表:
/// <summary> /// 合同基礎信息表 /// </summary> /// <param name="id">編號</param> /// <returns>ViewContactInfo</returns> public ViewContactInfo getViewContactInfoByContactID2(string contactid,string listid) { SqlDataReader reader = SqlComm.GetDataReaderByCondition("BioCRMContract", "*", " ContractID=" + contactid); ViewContactInfo contactinfo= new ViewContactInfo(); if (reader.Read()==true) { contactinfo.UserID = Convert.ToInt32(reader["UserID"].ToString()); contactinfo. AssessorAuditing = Convert.ToBoolean(reader["AssessorAuditing"].ToString()); contactinfo.ContractDesc = reader["ContractDesc"].ToString(); contactinfo.ContractID = Convert.ToInt32(reader["ContractID"].ToString()); contactinfo.ContractName = reader["ContractName"].ToString(); contactinfo.ContractNumber = reader["ContractNumber"].ToString(); contactinfo.ContractSum = Decimal.Parse(reader["ContractSum"].ToString()); contactinfo.ContractType = reader["ContractType"].ToString(); contactinfo.CreateTime = Convert.ToDateTime(reader["CreateTime"].ToString()); contactinfo.CustomerID = Convert.ToInt32(reader["CustomerID"].ToString()); contactinfo.DeleteState = Convert.ToBoolean(reader["DeleteState"].ToString()); contactinfo.EndTime = Convert.ToDateTime(reader["EndTime"].ToString()); contactinfo. EffectiveTime = Convert.ToDateTime(reader["EffectiveTime"].ToString()); contactinfo. ExecutiveState = reader["ExecutiveState"].ToString(); contactinfo.SignTime = Convert.ToDateTime(reader["SignTime"].ToString()); } reader.Close(); return contactinfo; }
顯示的前端代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CRMContractShow.aspx.cs" Inherits="BioErpWeb.CRMSystem.CRMContract.CRMContractShow" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <link href="../../Styles/ERPBaseStyle.css" rel="stylesheet" type="text/css" /> <script src="../../JS/CheckUserName.js" type="text/javascript"></script> <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script src="../../Scripts/jquery.validate.js" type="text/javascript"></script> <script src="../../Scripts/validateExtender.js" type="text/javascript"></script> <script src="../../Scripts/ValidateMessage_ZW.js" type="text/javascript"></script> <script src="../../Scripts/jquery.metadata.js" type="text/javascript"></script> <script src="../../JS/CustomerName.js" type="text/javascript"></script> <link href="../../Styles/InputStyle1.css" rel="stylesheet" type="text/css" /> <script src="../../JS/CheckDepartMent.js" type="text/javascript"></script> <script src="../../Scripts/jquery-ui-1.7.custom.min.js" type="text/javascript"></script> <link href="../../Scripts/jquery-ui-1.7.custom.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $(document).ready(function () { $("#form1").validate(); $("#txtCreatTime").datepicker({ dateFormat: ‘yy-mm-dd‘ }); $("#txtSinTime").datepicker({ dateFormat: ‘yy-mm-dd‘ }); $("#txtEffectiveTime").datepicker({ dateFormat: ‘yy-mm-dd‘ }); $("#txtEndTime").datepicker({ dateFormat: ‘yy-mm-dd‘ }) }); </script> <style type="text/css"> .style1 { width: 73px; } </style> </head> <body> <form id="form1" runat="server"> <div> <table class="maintable Inupttable" style=" width:900px;"> <tr> <td colspan="8" class="titlebar">合同審核</td> </tr> <tr> <td class="style1">合同名稱</td><td class="style3"><asp:TextBox ID="txtName" CssClass="required" runat="server"></asp:TextBox></td> <td class="style4">下次審批人</td><td><asp:TextBox ID="txtUser1" CssClass="{required:true,digits:true, min:1}" runat="server"></asp:TextBox> </td> <td class="style7">合同負責人</td><td class="style6"><asp:TextBox ID="txtUser2" CssClass="{required:true,digits:true, min:1}" runat="server"></asp:TextBox> </td> <td>所屬部門</td><td> <asp:TextBox ID="txtDepartMentID" CssClass="{required:true,digits:true, min:1}" runat="server"></asp:TextBox> </td> </tr> <tr> <td class="style1">簽約客戶</td><td class="style3"><asp:TextBox ID="txtCustomer" CssClass="{required:true,digits:true, min:1}" runat="server"></asp:TextBox> </td> <td class="style4">簽約金額</td><td><asp:TextBox ID="txtSum" CssClass="{required:true,number:true}" runat="server"></asp:TextBox>元(RMB)</td> <td class="style7">合同創建時間</td><td class="style6"><asp:TextBox ID="txtCreatTime" CssClass="{required:true,dateISO:true}" runat="server"></asp:TextBox></td> <td>計劃簽約時間</td><td><asp:TextBox ID="txtSinTime" CssClass="{required:true,dateISO:true}" runat="server"></asp:TextBox></td> </tr> <tr> <td class="style1">生效時間</td><td class="style3" ><asp:TextBox ID="txtEffectiveTime" CssClass="{required:true,dateISO:true}" runat="server"></asp:TextBox></td> <td class="style4">截止</td><td colspan="5"><asp:TextBox ID="txtEndTime" CssClass="{required:true,dateISO:true}" runat="server"></asp:TextBox></td> </tr> <tr> <td class="style1">合同內容</td><td colspan="7"> <asp:TextBox ID="txtDesc" CssClass="required" runat="server" Height="300px" Width="100%" Rows="10" TextMode="MultiLine"></asp:TextBox></td> </tr> <tr> <td class="style1">合同附件</td><td colspan="5"> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Web/images/files.gif" Width="26px" Height="24px" onclick="ImageButton1_Click"/> (下載)</td> <td>合同類型</td><td> <asp:DropDownList ID="ddlType" runat="server"> <asp:ListItem>買賣合同</asp:ListItem> <asp:ListItem>運輸合同</asp:ListItem> <asp:ListItem>技術合同</asp:ListItem> <asp:ListItem>保管合同</asp:ListItem> <asp:ListItem>倉儲合同</asp:ListItem> <asp:ListItem>委托合同</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td class="style1">歷史意見</td><td colspan="7"> <asp:Label ID="lbHistory" Width="99%" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td class="style1">審批意見</td><td colspan="5"> <asp:TextBox ID="txtMind" Width="80%" runat="server"></asp:TextBox> </td> <td> <asp:Label ID="lbIsCheck" runat="server" Visible="false" Text="法律顧問意見"></asp:Label> </td><td> <asp:CheckBox ID="cbIsCheck" Text="符合法律效應" Visible="false" BorderStyle="None" runat="server" /></td> </tr> <tr> <td colspan="8" class="bottomtd"> <asp:Button ID="btnSubmit" runat="server" Text="返回列表" onclick="btnSubmit_Click" /> </td> </tr> </table> </div> </form> </body> </html>
後端的代碼:
public partial class CRMContractShow : BasePage { protected void Page_Load(object sender, EventArgs e) { this.txtCreatTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); if (!IsPostBack) { pageinfo(); //遍歷頁面所有TextBox控件,設置為只讀 TextBox txt = null; foreach (Control c in Page.Controls) { if (c.GetType().Name == "HtmlForm") { foreach (Control c1 in c.Controls) { if (c1.GetType().Name == "TextBox") { txt = ((TextBox)c1); txt.ReadOnly = true; } } } } } } static byte[] filecontent = null; static string contractid = ""; static string tasklistid = ""; static string documentsid = ""; /// <summary> /// 綁定頁面信息 /// </summary> protected void pageinfo() { contractid ="8"; tasklistid ="7"; #region 從合同信息表中綁定數據 CrmContractBLL cbll = new CrmContractBLL(); ViewContactInfo contactinfo = new ViewContactInfo(); contactinfo = cbll.getViewContactInfoByContactID2(contractid, tasklistid); this.txtName.Text = contactinfo.ContractName; this.txtUser2.Text = contactinfo.UserID.ToString(); this.txtSinTime.Text = Convert.ToDateTime(contactinfo.SignTime.ToString()).ToString("yyyy-MM-dd"); this.txtCreatTime.Text = Convert.ToDateTime(contactinfo.CreateTime.ToString()).ToString("yyyy-MM-dd"); this.txtCustomer.Text = contactinfo.CustomerID.ToString(); this.txtSum.Text = Convert.ToDecimal(contactinfo.ContractSum.ToString()).ToString("0.00"); this.txtEffectiveTime.Text = Convert.ToDateTime(contactinfo.EffectiveTime).ToString("yyyy-MM-dd"); this.txtDesc.Text = contactinfo.ContractDesc; this.txtEndTime.Text = Convert.ToDateTime(contactinfo.EndTime).ToString("yyyy-MM-dd"); this.ddlType.SelectedItem.Text = contactinfo.ContractType.ToString(); this.cbIsCheck.Checked =bool.Parse(contactinfo.AssessorAuditing.ToString()); #endregion #region 從流程表中綁定數據 //1代表 合同管理表單 System.Data.DataTable dt = SqlComm.getTaskListRecordsByCondition(contractid, "1"); System.Data.DataRow[] dr0 = dt.Select(" listID=" + tasklistid); string historys = ""; for (int i = 1; i < dt.Rows.Count; i++) { historys+= dt.Rows[i]["Mind"].ToString() + " " + Convert.ToDateTime(dt.Rows[i]["SumitTime"].ToString()).ToString("yyyy-MM-dd")+"</br>"; } if (historys.Length == 0) { historys = "暫無審核意見"; } this.lbHistory.Text = historys; this.txtDepartMentID.Text = dr0[0].ItemArray[12].ToString(); this.txtUser1.Text = dr0[0].ItemArray[5].ToString(); #endregion filecontent = Comm.GetDownDocumet("BioCrmCorrelationDocument", "Content", " DocumentID=" + contactinfo.DocumentID); documentsid = contactinfo.DocumentID.ToString(); if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains("45") || this.cbIsCheck.Checked==true) { this.lbIsCheck.Visible = true; this.cbIsCheck.Visible = true; } else { this.lbIsCheck.Visible = false; this.cbIsCheck.Visible = false; } } /// <summary> /// 下載 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { if (filecontent == null) { ClientScript.RegisterStartupScript(this.GetType(), "test", "alert(‘沒有要下載的文檔‘)", true); return; } //創建彈出式Windows下載窗體 Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(this.txtName.Text)); //把二進制數組寫入Http輸出流 Response.BinaryWrite(filecontent); //想當前客戶端緩沖區輸出 Response.Flush(); //停止執行 Response.End(); } }
合同審單執行:
業務邏輯代碼:
//判斷當前登錄用戶是否是被提交人 if (dr0[0].ItemArray[5].ToString() == Session["Userid"].ToString()) { //45法律資質審核權限 if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains("45")) { this.lbIsCheck.Visible = true; this.cbIsCheck.Visible = true; this.btnRun.Visible = true; } else { this.lbIsCheck.Visible = false; this.cbIsCheck.Visible = false; this.btnRun.Visible = false; } } //如果當前登錄用戶是合同負責人(第一次提交合同申請的用戶) if (dr0[0].ItemArray[10].ToString() == Session["Userid"].ToString()) { this.FileUpload1.Visible = true; }else { this.FileUpload1.Visible = false; }
/// <summary> /// 下載 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { if (filecontent == null) { ClientScript.RegisterStartupScript(this.GetType(), "test", "alert(‘沒有要下載的文檔‘)", true); return; } //創建彈出式Windows下載窗體 Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(this.txtName.Text)); //把二進制數組寫入Http輸出流 Response.BinaryWrite(filecontent); //想當前客戶端緩沖區輸出 Response.Flush(); //停止執行 Response.End(); } protected void btnRun_Click(object sender, EventArgs e) { CrmContractBLL conbll = new CrmContractBLL(); BioCRMContract contract = new BioCRMContract(); TaskListRecord tasklistRecord = null; BioCrmCorrelationDocument document = null; //獲取合同相關信息 contract.ContractID = int.Parse(contractid); contract.UserID = int.Parse(this.txtUser2.Text); contract.ContractName = this.txtName.Text; contract.CustomerID = int.Parse(this.txtCustomer.Text); contract.ContractSum = decimal.Parse(this.txtSum.Text); contract.ContractType = this.ddlType.SelectedValue; contract.EndTime = Convert.ToDateTime(this.txtEndTime.Text); contract.EffectiveTime = Convert.ToDateTime(this.txtEffectiveTime.Text); contract.SignTime = Convert.ToDateTime(this.txtSinTime.Text); contract.ContractDesc = this.txtDesc.Text; contract.ExecutiveState = "待審核"; if (this.cbIsCheck.Visible == true) { contract.AssessorAuditing = cbIsCheck.Checked; } contract.CreateTime = Convert.ToDateTime(this.txtCreatTime.Text); int count = conbll.BioCRMContractaUpdate(contract); //文檔基本信息 if (this.FileUpload1.HasFile) { document = new BioCrmCorrelationDocument() { DocumentID = int.Parse(documentsid.ToString()), Subject = this.txtName.Text, Content = this.FileUpload1.FileBytes, DocumentSize = this.FileUpload1.FileContent.Length, Type = this.FileUpload1.PostedFile.ContentType, ExetendName = System.IO.Path.GetExtension(this.FileUpload1.FileName), DocumentLevel = "絕密", Name = this.FileUpload1.FileName, Remark = "合同附件文檔", UserID = int.Parse(this.txtUser2.Text), UploadTime = DateTime.Now }; BioCrmCorrelationDocumentBLL documentbll = new BioCrmCorrelationDocumentBLL(); documentbll.BioCrmCorrelationDocumentUpdate(document); } tasklistRecord = new TaskListRecord() { Accepter = int.Parse(this.txtUser2.Text), Transmitter = int.Parse(Session["Userid"].ToString()), AuditingSate =2, DepartMentId = int.Parse(this.txtDepartMentID.Text), FirstAccepter = int.Parse(this.hf_FirstAccepter.Value), FirstSumitTime = Convert.ToDateTime(this.hf_FirstDateTime.Value), FirstTransmitter = int.Parse(this.hf_FirstTransmitter.Value), Mind = this.txtMind.Text, Pass = 1, Subject = this.txtName.Text, SumitTime = DateTime.Now, TaskID = int.Parse(contractid), TaskTableID = 1 }; //向流程表添加一條新的記錄 if (SqlComm.TaskListRecordAdd(tasklistRecord) != 0) { SqlComm.UpdateTableByCondition("dbo.TaskListRecord", " AuditingSate=1", " ListID=" + tasklistid); ClientScript.RegisterStartupScript(this.GetType(), "test", "alert(‘合同申請提交成功,下次審批人員編號:" + this.txtUser1.Text + "‘)", true); } }
ERP合同管理二(二十七)