/// <summary>
       /// 添加付款单信息
       /// </summary>
       /// <param name="Model"></param>
       /// <param name="ID"></param>
       /// <returns></returns>
       public static bool InSertIntoPayBillInfo(PayBillModel model, out int IntID)
       {
           StringBuilder sql = new StringBuilder();
           sql.AppendLine("insert into Officedba.PayBill ( ");
           sql.AppendLine("  BillingID,CompanyCD,CreatDate,PayNo, ");
           sql.AppendLine("CustName,PayAmount,PayDate,AcceWay,Executor,  ");
           sql.AppendLine(" BankName,BankNo,ConfirmStatus,IsAccount,Remark,BlendingType,CurrencyType,CurrencyRate,CustID,FromTBName,FileName,ProjectID ) ");
           sql.AppendLine(" values (  @BillingID,@CompanyCD,@CreatDate,@PayNo,");
           sql.AppendLine("@CustName,@PayAmount,@PayDate,@AcceWay,@Executor,  ");
           sql.AppendLine(" @BankName,@BankNo,@ConfirmStatus,@IsAccout,@Remark,@BlendingType,@CurrencyType,@CurrencyRate,@CustID,@FromTBName,@FileName,@ProjectID ) ");
           sql.AppendLine("set @IntID= @@IDENTITY");


           SqlCommand comm = new SqlCommand();

           comm.CommandText = sql.ToString();

           comm.Parameters.AddWithValue("@BillingID", SqlDbType.Int).Value = model.BillingID;
           comm.Parameters.AddWithValue("@CompanyCD", SqlDbType.VarChar).Value = model.CompanyCD;
           comm.Parameters.AddWithValue("@CreatDate", SqlDbType.DateTime).Value = model.CreatDate;
           comm.Parameters.AddWithValue("@PayNo", SqlDbType.VarChar).Value = model.PayNo;
           comm.Parameters.AddWithValue("@CustName", SqlDbType.VarChar).Value = model.CustName;
           comm.Parameters.AddWithValue("@PayAmount", SqlDbType.Decimal).Value = model.PayAmount;
           comm.Parameters.AddWithValue("@PayDate", SqlDbType.DateTime).Value = model.PayDate;
           comm.Parameters.AddWithValue("@AcceWay", SqlDbType.Char).Value = model.AcceWay;
           comm.Parameters.AddWithValue("@Executor", SqlDbType.Int).Value = model.Executor;
           comm.Parameters.AddWithValue("@BankName", SqlDbType.VarChar).Value = model.BankName;
           comm.Parameters.AddWithValue("@BankNo", SqlDbType.VarChar).Value = model.BankNo;
           comm.Parameters.AddWithValue("@ConfirmStatus", SqlDbType.Char).Value = model.ConfirmStatus;
           comm.Parameters.AddWithValue("@IsAccout", SqlDbType.Char).Value = model.IsAccout;
           comm.Parameters.AddWithValue("@Remark", SqlDbType.VarChar).Value = model.Remark;
           comm.Parameters.AddWithValue("@BlendingType", SqlDbType.Char).Value = model.BlendingType;
           comm.Parameters.AddWithValue("@CurrencyType", SqlDbType.Int).Value = model.CurrencyType;
           comm.Parameters.AddWithValue("@CurrencyRate", SqlDbType.Decimal).Value = model.CurrencyRate;
           comm.Parameters.AddWithValue("@CustID", SqlDbType.Int).Value = model.CustID;
           comm.Parameters.AddWithValue("@FromTBName", SqlDbType.VarChar).Value = model.FromTBName;
           comm.Parameters.AddWithValue("@FileName", SqlDbType.VarChar).Value = model.FileName;
           comm.Parameters.AddWithValue("@ProjectID", SqlDbType.Int).Value = model.ProjectID;

           SqlParameter Ret = new SqlParameter("@IntID", SqlDbType.Int); //定义返回值参数 
           Ret.Direction = ParameterDirection.Output;
           comm.Parameters.Add(Ret);

           ArrayList listCmd = new ArrayList();
           listCmd.Add(comm);
           if (model.BillingID > 0)
           {
               UpdateInsertBillingPrice(listCmd, model.BillingID, model.PayAmount);
           }
           bool result = SqlHelper.ExecuteTransWithArrayList(listCmd);
           IntID = Convert.ToInt32(Ret.Value);
           //bool updateResult=false;
           //if (result)
           //{
           //    updateResult = UpdateStauts(model.BillingID);
           //}
           //return (result&&updateResult);

           return result;
       }
       /// <summary>
       /// 更新付款单信息
       /// </summary>
       /// <param name="model">实体</param>
       /// <param name="DiffAmount">本次输入的付款金额与修改前的付款金额之差</param>
       /// <returns></returns>
       public static bool UpdatePayBill(PayBillModel model, decimal DiffAmount)
       {
           StringBuilder sql = new StringBuilder();
           sql.AppendLine("update officedba.PayBill set  ");
           sql.AppendLine("PayNo=@PayNo,CustName=@CustName,PayAmount=@PayAmount,PayDate=@PayDate,AcceWay=@AcceWay, ");
           sql.AppendLine("Executor=@Executor,BankName=@BankName,BankNo=@BankNo,Remark=@Remark,ModifiedDate=@ModifiedDate,ModifiedUserID=@ModifiedUserID,BlendingType=@BlendingType,CurrencyType=@CurrencyType,CurrencyRate=@CurrencyRate,CustID=@CustID,FromTBName=@FromTBName,FileName=@FileName,ProjectID=@ProjectID ");
           sql.AppendLine(" where ID=@ID");


           SqlCommand comm = new SqlCommand();

           comm.CommandText = sql.ToString();

           comm.Parameters.AddWithValue("@PayNo", SqlDbType.VarChar).Value = model.PayNo;
           comm.Parameters.AddWithValue("@CustName", SqlDbType.VarChar).Value = model.CustName;
           comm.Parameters.AddWithValue("@PayAmount", SqlDbType.Decimal).Value = model.PayAmount;
           comm.Parameters.AddWithValue("@PayDate", SqlDbType.DateTime).Value = model.PayDate;
           comm.Parameters.AddWithValue("@AcceWay", SqlDbType.Char).Value = model.AcceWay;
           comm.Parameters.AddWithValue("@Executor", SqlDbType.Int).Value = model.Executor;
           comm.Parameters.AddWithValue("@BankName", SqlDbType.VarChar).Value = model.BankName;
           comm.Parameters.AddWithValue("@BankNo", SqlDbType.VarChar).Value = model.BankNo;
           comm.Parameters.AddWithValue("@Remark", SqlDbType.VarChar).Value = model.Remark;
           comm.Parameters.AddWithValue("@ModifiedDate", SqlDbType.DateTime).Value = model.ModifiedDate;
           comm.Parameters.AddWithValue("@ModifiedUserID", SqlDbType.Int).Value = model.ModifiedUserID;
           comm.Parameters.AddWithValue("@BlendingType", SqlDbType.Char).Value = model.BlendingType;

           comm.Parameters.AddWithValue("@CurrencyType", SqlDbType.Int).Value = model.CurrencyType;
           comm.Parameters.AddWithValue("@CurrencyRate", SqlDbType.Decimal).Value = model.CurrencyRate;

           comm.Parameters.AddWithValue("@CustID", SqlDbType.Int).Value = model.CustID;
           comm.Parameters.AddWithValue("@FromTBName", SqlDbType.VarChar).Value = model.FromTBName;
           comm.Parameters.AddWithValue("@FileName", SqlDbType.VarChar).Value = model.FileName;
           comm.Parameters.AddWithValue("@ProjectID", SqlDbType.Int).Value = model.ProjectID;

           comm.Parameters.AddWithValue("@ID", SqlDbType.Int).Value = model.ID;

           ArrayList listCmd = new ArrayList();
           listCmd.Add(comm);
           if (model.BillingID > 0)
           {
               updateUpBillingStatus(listCmd, model.BillingID.ToString(), DiffAmount);
           }
           bool result = SqlHelper.ExecuteTransWithArrayList(listCmd);
           return result;

       }
       /// <summary>
       /// 添加付款单信息
       /// </summary>
       /// <param name="Model"></param>
       /// <param name="ID"></param>
       /// <returns></returns>
       public static bool InSertIntoPayBillInfo(PayBillModel model, out int IntID)
       {
           UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];
           try
           {
               bool suuc = PayBillDBHelper.InSertIntoPayBillInfo(model, out IntID);

              
               string loginUserID = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).UserID;
               LogInfoModel logModel = InitLogInfo(IntID.ToString());
               logModel.Element = ConstUtil.LOG_PROCESS_INSERT;
               //设置操作日志类型 修改
               logModel.ObjectName = ConstUtil.CODING_RULE_TABLE_PAYBILL;
               if (suuc)
                   logModel.Remark = ConstUtil.LOG_PROCESS_SUCCESS;
               else
                   logModel.Remark = ConstUtil.LOG_PROCESS_FAILED;

               LogDBHelper.InsertLog(logModel);

               LogInfoModel logModell = InitLogInfo(model.BillingID.ToString());
               logModell.Element = ConstUtil.LOG_PROCESS_UPDATE;
               logModell.ObjectName = ConstUtil.CODING_RULE_TABLE_BILLING;

               if (suuc)
                   logModell.Remark = ConstUtil.LOG_PROCESS_SUCCESS;
               else
                   logModell.Remark = ConstUtil.LOG_PROCESS_FAILED;
               LogDBHelper.InsertLog(logModell);

               return suuc;
           }
           catch (Exception ex)
           {
               WriteSystemLog(userInfo, ex);
               throw ex;
           }
       }