ERP合同管理(二十六)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERP合同管理(二十六)相关的知识,希望对你有一定的参考价值。

需要实现的基本业务:

相关的用例图:

相关业务的封装:

相关的约定:

合同信息添加业务流程:

添加的存储过程

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO



------------------------------------
--用途:增加一条记录 
--项目名称:
--说明:
--时间:2011/11/11 22:07:38
------------------------------------
CREATE PROCEDURE [dbo].[BioCRMContract_ADD]
@ContractID int output,
@ContractName nvarchar(200),
@CustomerID int,
@CreateTime datetime,
@ContractSum money,
@SignTime datetime,
@EffectiveTime datetime,
@EndTime datetime,
@ContractType nvarchar(100),
@UserID int,
@ExecutiveState nvarchar(50),
@ContractDesc nvarchar(4000)


 AS 
	INSERT INTO [BioCRMContract](
	[ContractName],[CustomerID],[CreateTime],[ContractSum],[SignTime],[EffectiveTime],[EndTime],[ContractType],[UserID],[ExecutiveState],[ContractDesc]
	)VALUES(
	@ContractName,@CustomerID,@CreateTime,@ContractSum,@SignTime,@EffectiveTime,@EndTime,@ContractType,@UserID,@ExecutiveState,@ContractDesc
	)
	SET @ContractID = @@IDENTITY

 添加的业务:

  /// <summary>
      /// 添加一条合同信息对象并返回当前合同编号
      /// </summary>
        /// <param name="mode">BioCRMContract</param>
      /// <returns>int</returns>
      public int BioCRMContractadd(BioCRMContract model)
      {
         SqlParameter[] parameters = {
					new SqlParameter("@ContractID", SqlDbType.Int,4),
					new SqlParameter("@ContractName", SqlDbType.NVarChar,200),
					new SqlParameter("@ContractNumber", SqlDbType.NVarChar,100),
					new SqlParameter("@CustomerID", SqlDbType.Int,4),
					new SqlParameter("@CreateTime", SqlDbType.DateTime),
					new SqlParameter("@ContractSum", SqlDbType.Money,8),
					new SqlParameter("@SignTime", SqlDbType.DateTime),
					new SqlParameter("@EffectiveTime", SqlDbType.DateTime),
					new SqlParameter("@EndTime", SqlDbType.DateTime),
					new SqlParameter("@ContractType", SqlDbType.NVarChar,100),
					new SqlParameter("@UserID", SqlDbType.Int,4),
					new SqlParameter("@ExecutiveState", SqlDbType.NVarChar,50),
					new SqlParameter("@ContractDesc", SqlDbType.NVarChar,4000),
					new SqlParameter("@AssessorID", SqlDbType.Int,4)
					};
          parameters[0].Direction = ParameterDirection.Output;
          parameters[1].Value = model.ContractName;
          parameters[2].Value = model.ContractNumber;
          parameters[3].Value = model.CustomerID;
          parameters[4].Value = model.CreateTime;
          parameters[5].Value = model.ContractSum;
          parameters[6].Value = model.SignTime;
          parameters[7].Value = model.EffectiveTime;
          parameters[8].Value = model.EndTime;
          parameters[9].Value = model.ContractType;
          parameters[10].Value = model.UserID;
          parameters[11].Value = model.ExecutiveState;
          parameters[12].Value = model.ContractDesc;
          parameters[13].Value = model.AssessorID;
         

         int count= DataBaseHelper.ExcuteSqlReturnInt("BioCRMContract_ADD", CommandType.StoredProcedure, parameters);
         if (count != 0)
         {
             return int.Parse(parameters[0].Value.ToString());
         }
         else
         {
             return 0;
         }
      }

 修改的存储过程:

CREATE PROCEDURE [dbo].[BioCRMContract_Update]
@ContractID int,
@ContractName nvarchar(200),
@CustomerID int,
@CreateTime datetime,
@ContractSum money,
@SignTime datetime,
@EffectiveTime datetime,
@EndTime datetime,
@ContractType nvarchar(100),
@UserID int,
@ExecutiveState nvarchar(50),
@ContractDesc nvarchar(4000),
@AssessorAuditing bit,
@DeleteState bit
 AS 
	UPDATE [BioCRMContract] SET 
	[ContractName] = @ContractName,[CustomerID] = @CustomerID,[CreateTime] = @CreateTime,[ContractSum] = @ContractSum,[SignTime] = @SignTime,[EffectiveTime] = @EffectiveTime,[EndTime] = @EndTime,[ContractType] = @ContractType,[UserID] = @UserID,[ExecutiveState] = @ExecutiveState,[ContractDesc] = @ContractDesc,AssessorAuditing = @AssessorAuditing,[DeleteState] = @DeleteState
	WHERE ContractID=@ContractID 

 业务逻辑的代码:

 /// <summary>
      /// 修改一条合同信息对象
      /// </summary>
      /// <param name="mode">BioCRMContract</param>
      /// <returns>int</returns>
      public int BioCRMContractaUpdate(BioCRMContract model)
      {
          SqlParameter[] parameters = {
					new SqlParameter("@ContractID", SqlDbType.Int,4),
					new SqlParameter("@ContractName", SqlDbType.NVarChar,200),
					new SqlParameter("@ContractNumber", SqlDbType.NVarChar,100),
					new SqlParameter("@CustomerID", SqlDbType.Int,4),
					new SqlParameter("@CreateTime", SqlDbType.DateTime),
					new SqlParameter("@ContractSum", SqlDbType.Money,8),
					new SqlParameter("@SignTime", SqlDbType.DateTime),
					new SqlParameter("@EffectiveTime", SqlDbType.DateTime),
					new SqlParameter("@EndTime", SqlDbType.DateTime),
					new SqlParameter("@ContractType", SqlDbType.NVarChar,100),
					new SqlParameter("@UserID", SqlDbType.Int,4),
					new SqlParameter("@ExecutiveState", SqlDbType.NVarChar,50),
					new SqlParameter("@ContractDesc", SqlDbType.NVarChar,4000),
					new SqlParameter("@AssessorID", SqlDbType.Int,4),
					new SqlParameter("@DeleteState", SqlDbType.Bit,1)};
          parameters[0].Value =model.ContractID;
          parameters[1].Value = model.ContractName;
          parameters[2].Value = model.ContractNumber;
          parameters[3].Value = model.CustomerID;
          parameters[4].Value = model.CreateTime;
          parameters[5].Value = model.ContractSum;
          parameters[6].Value = model.SignTime;
          parameters[7].Value = model.EffectiveTime;
          parameters[8].Value = model.EndTime;
          parameters[9].Value = model.ContractType;
          parameters[10].Value = model.UserID;
          parameters[11].Value = model.ExecutiveState;
          parameters[12].Value = model.ContractDesc;
          parameters[13].Value = model.AssessorID;
          parameters[14].Value = model.DeleteState;

          int count = DataBaseHelper.ExcuteSqlReturnInt("BioCRMContract_Update", CommandType.StoredProcedure, parameters);
          if (count != 0)
          {
              return int.Parse(parameters[0].Value.ToString());
          }
          else
          {
              return 0;
          }
      }

 合同对象添加的存储过程:

CREATE PROCEDURE [dbo].[BioErpCRMContractDocument_ADD]
@DocumentID int,
@ContractID int
 AS 
	INSERT INTO [BioErpCRMContractDocument](
	[DocumentID],[ContractID]
	)VALUES(
	@DocumentID,@ContractID
	)

 添加的代码:

       /// <summary>
      /// 合同文档对象添加
      /// </summary>
      /// <param name="document">CRMContractDocument</param>
      /// <returns>int</returns>
      public int CRMContractDocumentADD(CRMContractDocument document)
      {
          SqlParameter[] parameters = {					
					new SqlParameter("@DocumentID", SqlDbType.Int,4),
					new SqlParameter("@ContractID", SqlDbType.Int,4)
					};
       
          parameters[0].Value = document.DocumentID;
          parameters[1].Value = document.ContractID;
          return DataBaseHelper.ExcuteSqlReturnInt("BioErpCRMContractDocument_ADD", CommandType.StoredProcedure, parameters);
      }

文档修改的记录:

CREATE PROCEDURE BioErpCRMContractDocument_Update
@AccessoryID int,
@DocumentID int,
@ContractID int,
@DeleteState bit
 AS 
	UPDATE [BioErpCRMContractDocument] SET 
	[DocumentID] = @DocumentID,[ContractID] = @ContractID,[DeleteState] = @DeleteState
	WHERE AccessoryID=@AccessoryID 

 业务逻辑:

   /// <summary>
      /// 合同文档对象修改
      /// </summary>
      /// <param name="document">CRMContractDocument</param>
      /// <returns>int</returns>
      public int CRMContractDocumentUpdate(CRMContractDocument model)
      {
          SqlParameter[] parameters = {
					new SqlParameter("@AccessoryID", SqlDbType.Int,4),
					new SqlParameter("@DocumentID", SqlDbType.Int,4),
					new SqlParameter("@ContractID", SqlDbType.Int,4),
					new SqlParameter("@DeleteState", SqlDbType.Bit,1)};
          parameters[0].Value = model.AccessoryID;
          parameters[1].Value = model.DocumentID;
          parameters[2].Value = model.ContractID;
          parameters[3].Value = model.DeleteState;
          return DataBaseHelper.ExcuteSqlReturnInt("BioErpCRMContractDocument_Update", CommandType.StoredProcedure, parameters);
      }

 任务流程表中添加的存储过程:

CREATE PROCEDURE TaskListRecord_ADD
@Subject nvarchar(100),
@TaskID int,
@TaskTableID int,
@Transmitter int,
@Accepter int,
@Pass int,
@AuditingSate int,
@Mind nvarchar(500),
@FirstSumitTime datetime,
@FirstTransmitter int,
@FirstAccepter int,
@DepartMentId int,
@SumitTime datetime

 AS 
	INSERT INTO [TaskListRecord](
	[Subject],[TaskID],[TaskTableID],[Transmitter],[Accepter],[Pass],[AuditingSate],[Mind],[FirstSumitTime],[FirstTransmitter],[FirstAccepter],[DepartMentId],[SumitTime]
	)VALUES(
	@Subject,@TaskID,@TaskTableID,@Transmitter,@Accepter,@Pass,@AuditingSate,@Mind,@FirstSumitTime,@FirstTransmitter,@FirstAccepter,@DepartMentId,@SumitTime
	)

 写在共用类中的业务:

 /// <summary>
        /// 向任务流程表添加一条记录
        /// </summary>
        /// <param name="record">TaskListRecord</param>
        /// <returns>int</returns>
        public int TaskListRecordAdd(TaskListRecord model)
        {
            SqlParameter[] parameters = {
					new SqlParameter("@Subject", SqlDbType.NVarChar,100),
					new SqlParameter("@TaskID", SqlDbType.Int,4),
					new SqlParameter("@TaskTableID", SqlDbType.Int,4),
					new SqlParameter("@Transmitter", SqlDbType.Int,4),
					new SqlParameter("@Accepter", SqlDbType.Int,4),
					new SqlParameter("@Pass", SqlDbType.Int,4),
					new SqlParameter("@AuditingSate", SqlDbType.Int,4),
					new SqlParameter("@Mind", SqlDbType.NVarChar,500),
					new SqlParameter("@FirstSumitTime", SqlDbType.DateTime),
					new SqlParameter("@FirstTransmitter", SqlDbType.Int,4),
					new SqlParameter("@FirstAccepter", SqlDbType.Int,4),
					new SqlParameter("@DepartMentId", SqlDbType.Int,4),
					new SqlParameter("@SumitTime", SqlDbType.DateTime)};
         
            parameters[0].Value = model.Subject;
            parameters[1].Value = model.TaskID;
            parameters[2].Value = model.TaskTableID;
            parameters[3].Value = model.Transmitter;
            parameters[4].Value = model.Accepter;
            parameters[5].Value = model.Pass;
            parameters[6].Value = model.AuditingSate;
            parameters[7].Value = model.Mind;
            parameters[8].Value = model.FirstSumitTime;
            parameters[9].Value = model.FirstTransmitter;
            parameters[10].Value = model.FirstAccepter;
            parameters[11].Value = model.DepartMentId;
            parameters[12].Value = model.SumitTime;

            return DataBaseHelper.ExcuteSqlReturnInt("TaskListRecord_ADD", CommandType.StoredProcedure, parameters);

        }

 前端页面用到的CSS样式:

.Inupttable{ width:100%; border:solid 1px; border-collapse:collapse; }
.Inupttable td{ border:solid 1px ;  height:30px;}
.Inupttable input{ width:80px; border:none; border-bottom:solid #000 1px;  background-color:transparent;}
.Inupttable textarea{border:none; border-bottom:solid #000 1px;  background-color:transparent;}
.Inupttable select{border:none; border-bottom:solid #000 1px;  background-color:#eee;}
.Inupttable option{ background-color:#eee;}
.Inupttable .btnchoose{background-color:#FFAA00; width:50px;}

 部门下拉的列表:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DepartMentListSelect.aspx.cs" Inherits="BioErpWeb.PersonList.DepartMentListSelect" %>

<!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>
    
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <select multiple="multiple" id="sltUserList" style=" width:80px; height:270px; margin:0px;">
     <%=this.GetUserList%>
    </select>
    </div>
    </form>
</body>
</html>

显示的后台:

   public string GetUserList
        {
            get {
                string strHtml = "";
                if (Request.QueryString["DepartmentName"] == null)
                {
                    DataSet ds = SqlComm.GetDataByCondition("Department", "top 10 DepartmentId,DepartmentName", " 1=1 order by DisplayOrder");
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        strHtml += "<option value=\'" + dr["DepartmentId"] + "\'>" + dr["DepartmentName"] + "</option>";
                    }

                }
                else
                {
                    DataSet ds = SqlComm.GetDataByCondition("Department", "top 10  DepartmentId,DepartmentName", " DepartmentName like \'" + Request.QueryString["DepartmentName"].ToString() + "%\' order by DisplayOrder");
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        strHtml += "<option value=\'" + dr["DepartmentId"] + "\'>" + dr["DepartmentName"] + "</option>";
                    }
                }

                return strHtml;
            }
        }

部门显示的前端:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DepartMentList.aspx.cs" Inherits="BioErpWeb.PersonList.DepartMentList" %>

<!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>
    <script type="text/javascript">
        function search() {
            if (document.getElementById("txtSearchName").value == "") {
                alert("请输入员工姓名");
                return;
            }
            document.getElementById("PersonIframeList").src = "DepartMentListSelect.aspx?DepartmentName=" + encodeURIComponent(document.getElementById("txtSearchName").value);

        }
        
        function choose() {
            window.returnValue = PersonIframeList.document.getElementById("sltUserList").value;
            window.close();
        }
    </script>
    <style type="text/css">
        .style1
        {
            width: 157px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <table style=" width:310px; ">
         <tr>
             <td class="style1">部门名称
             </td>
             <td>
                <input id="txtSearchName" name="txtSearchName" type="text" size="10"  maxlength="10"/> <input type="button" value="查询" onclick="search()" />
             </td>
         </tr>
         <tr>
             <td class="style1">
             <iframe width="120px" id="PersonIframeList" frameborder=0 src="DepartMentListSelect.aspx" height="310px" >
             
             </iframe>
             </td>
             <td style=" vertical-align:bottom; padding-bottom:20px;">
             <input type="button"  value="选择" onclick="choose()"/>
             </td>
         </tr>
     </table>
    </div>
    </form>
</body>
</html>

 客户选择的js:

//客户选择对话框 
function showCustomerDialog3() {
    var re = showModalDialog("../../PersonList/CustomerList.aspx", "", "dialogWidth=320px;dialogHeight=350px");
    var obj = window.event.srcElement;
    var td = obj.parentNode;
    var txts = td.getElementsByTagName(\'input\');
    if (re == null || re == "") {

        if (txts[0].value == "" || txts[0].value == null) {
            txts[0].value = "请选择";
        }
    }
    else {
        txts[0].value = re;
    }
}

 

以上是关于ERP合同管理(二十六)的主要内容,如果未能解决你的问题,请参考以下文章

ERP完善合同起草(二十七)

ERP合同列表页面自动导航(二十八)

ERP合同管理流程查询

ERP渠道文档管理(二十三)

ERP渠道活动管理(二十五)

机械设备行业ERP能解决企业哪些难题?