protected void btnImport_Click(object sender, ImageClickEventArgs e)
    {
        string companyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;
        PurchaseContractModel model = new PurchaseContractModel();
        string ContractNo = this.txtContractNo.Text;
        string Title = this.txtTitle.Text;
        string TypeID = this.DrpTypeID.Value;
        if (TypeID == "0")
        {
            TypeID = "";
        }
        string DeptID = this.txtHidOurDept.Value;
        string Seller = this.HidSeller.Value;
        //if (Seller == undefined)
        //{
        //    Seller = "";
        //}
        string FromType = this.ddlFromType.Value;
        if (FromType == "-1")
        {
            FromType = "";
        }
        string ProviderID = this.txtHidProviderID.Value;
        string BillStatus = this.ddlBillStatus.Value;
        if (BillStatus == "0")
        {
            BillStatus = "";
        }
        string UsedStatus = this.ddlUsedStatus.Value;
        if (UsedStatus == "0")
        {
            UsedStatus = "";
        }

        string tIndex=GetBillExAttrControl1.GetExtIndexValue ;
        string xtValue = GetBillExAttrControl1.GetExtTxtValue;

        model.CompanyCD = companyCD;
        int TotalCount = 0;
        DataTable dt = PurchaseContractBus.SelectPurchaseContract(1, 1000000, "ID", ref TotalCount, ContractNo, Title, TypeID, DeptID, Seller, FromType, ProviderID, BillStatus, UsedStatus,tIndex ,xtValue );

        

        //DataTable dt = WorkCenterBus.GetWorkCenterListBycondition(model, 1, 1000000, "ID desc", ref totalCount);

        //导出标题
        string headerTitle = "合同编号|合同主题|采购分类|采购员|供应商|金额合计|税额合计|含税金额合计|单据状态|审批状态";
        string[] header = headerTitle.Split('|');

        //导出标题所对应的列字段名称
        string columnFiled = "ContractNo|Title|TypeName|EmployeeName|CustName|TotalPrice|TotalTax|TotalFee|BillStatusName|UsedStatus";
        string[] field = columnFiled.Split('|');

        XBase.Common.OutputToExecl.ExportToTable(this.Page, dt, header, field, "采购合同列表");
    }
    protected void btnImport_Click(object sender, ImageClickEventArgs e)
    {


        string companyCD = UserInfo.CompanyCD;
        PurchaseContractModel model = new PurchaseContractModel();
        string RejectNo = this.txtArriveNo.Text;
        string Title = this.txtTitle.Text;
        string TypeID = this.drpTypeID.Value;
        if (TypeID == "0")
        {
            TypeID = "";
        }
        string Purchaser = this.HidPurchaser.Value;
        string FromType = this.ddlFromType.Value;
        if (FromType == "-1")
        {
            FromType = "";
        }
        string ProviderID = this.txtHidProviderID.Value;
        string BillStatus = this.ddlBillStatus.Value;
        if (BillStatus == "0")
        {
            BillStatus = "";
        }
        string UsedStatus = this.ddlUsedStatus.Value;
        if (UsedStatus == "0")
        {
            UsedStatus = "";
        }
        string DeptID = this.HidDeptID.Value;

        model.CompanyCD = companyCD;
        int TotalCount = 0;

        string EFIndex = GetBillExAttrControl1.GetExtIndexValue;
        string EFDesc = GetBillExAttrControl1.GetExtTxtValue;

        DataTable dt = PurchaseRejectBus.SelectPurchaseReject(1, 1000000, "ID", ref TotalCount, RejectNo, Title, TypeID, Purchaser, FromType, ProviderID, BillStatus, UsedStatus, DeptID, this.hidProjectID.Value, EFIndex, EFDesc);




        //导出标题
        string headerTitle = "单据编号|单据主题|采购分类|采购员|供应商|源单类型|应退货款合计|单据状态|审批状态";
        string[] header = headerTitle.Split('|');

        //导出标题所对应的列字段名称
        string columnFiled = "RejectNo|Title|TypeName|PurchaserName|ProviderName|FromTypeName|TotalYthkhj|BillStatusName|UsedStatus";
        string[] field = columnFiled.Split('|');

        XBase.Common.OutputToExecl.ExportToTable(this.Page, dt, header, field, "采购退货单列表");
    }
 public static bool CancelClosePurchaseContract(PurchaseContractModel Model)
 {
     return PurchaseContractDBHelper.CancelClosePurchaseContract(Model);
 }
        /// <summary>
        /// 新增合同
        /// </summary>
        /// <param name="CompanyCD"></param>
        /// <param name="CompanyNo"></param>
        /// <returns></returns>
        public static bool InsertPurchaseContract(PurchaseContractModel model, string DetailProductID, string DetailProductNo, string DetailProductName, string DetailUnitID, string DetailProductCount, string DetailUnitPrice, string DetailTaxPrice, string DetailDiscount, string DetailTaxRate, string DetailTotalPrice, string DetailTotalFee, string DetailTotalTax, string DetailRequireDate, string DetailApplyReason, string DetailRemark, string DetailFromBillID, string DetailFromLineNo,string DetailUsedUnitID ,string DetailUsedUnitCount ,string DetailUsedPrice ,string DetailExRate,  string length, out string ID,Hashtable  ht)
        {
            try
            {
                ////获取登陆用户ID
                //string loginUserID = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).UserID;
                //return PurchaseContractDBHelper.InsertPurchaseContract(model, DetailProductID, DetailProductNo, DetailProductName, DetailUnitID, DetailProductCount, DetailUnitPrice, DetailTaxPrice, DetailDiscount, DetailTaxRate, DetailTotalPrice, DetailTotalFee, DetailTotalTax, DetailRequireDate, DetailApplyReason, DetailRemark, DetailFromBillID, DetailFromLineNo, length, out ID);

                bool succ = false;
                LogInfoModel logModel = InitLogInfo(model.ContractNo);
                logModel.Element = ConstUtil.LOG_PROCESS_INSERT;
                //设置模块ID 模块ID请在ConstUtil中定义,以便维护
                logModel.ModuleID = ConstUtil.MODULE_ID_PurchaseContract_Add;
                succ = PurchaseContractDBHelper.InsertPurchaseContract(model, DetailProductID, DetailProductNo, DetailProductName, DetailUnitID, DetailProductCount, DetailUnitPrice, DetailTaxPrice, DetailDiscount, DetailTaxRate, DetailTotalPrice, DetailTotalFee, DetailTotalTax, DetailRequireDate, DetailApplyReason, DetailRemark, DetailFromBillID, DetailFromLineNo, DetailUsedUnitID, DetailUsedUnitCount, DetailUsedPrice, DetailExRate, length, out ID, ht);
                if (!succ)
                    logModel.Remark = ConstUtil.LOG_PROCESS_FAILED;
                else
                    logModel.Remark = ConstUtil.LOG_PROCESS_SUCCESS;
                LogDBHelper.InsertLog(logModel);
                return succ;
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            #region
            //string CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;
            ////model.CompanyCD = CompanyCD;
            ////string CompanyCD = "AAAAAA";
            //try
            //{
            //    ////int length = 3 + str.Length + str2.Length;//SQL语句长度
            //    ////string[] sql = new string[length];
            //    //return PurchaseContractDBHelper.InsertPurchaseContract(model);
                
            //    ////for (int i = 0; i < str.Length; ++i)
            //    ////{
            //    ////    PurchaseContractDBHelper.InsertDtlS(model,DetailID, DetailProductNo, DetailProductName, DetailProductCount, DetailUnitID, DetailRequireDate, DetailUnitPrice, DetailTotalPrice, DetailApplyReason, DetailRemark, DetailFromBillID, DetailFromLineNo, length);
            //    ////}
            //    ////SqlHelper.ExecuteTransForListWithSQL(sql);
            //    ////return SqlHelper.Result.OprateCount > 0 ? true : false;
            //    int Creator = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID;
            //    bool result = false;

             

            //    #region 合同添加SQL语句
            //    //SQL拼写
            //    StringBuilder sqlc = new StringBuilder();
            //    SqlDateTime signdate = model.SignDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.SignDate.ToString());
            //    SqlDateTime confirmdate = model.ConfirmDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.ConfirmDate.ToString());
            //    SqlDateTime closedate = model.CloseDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.CloseDate.ToString());
            //    SqlDateTime createdate = model.CreateDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.CreateDate.ToString());
            //    sqlc.AppendLine("Insert into officedba.PurchaseContract");
            //    sqlc.AppendLine("(CompanyCD,ContractNo,Title,ProviderID,FromType,FromBillID,");
            //    sqlc.AppendLine("TotalPrice,CurrencyType,Rate,PayType,SignDate,");
            //    sqlc.AppendLine("Seller,TheyDelegate,OurDelegate,Status,Note,");
            //    sqlc.AppendLine("TakeType,CarryType,Attachment,remark,BillStatus,Creator,");
            //    sqlc.AppendLine("CreateDate,ModifiedDate,ModifiedUserID,Confirmor,ConfirmDate,Closer,CloseDate,");
            //    sqlc.AppendLine("DeptID,TotalTax,TotalFee,Discount,DiscountTotal,RealTotal,isAddTax,CountTotal,TypeID,SignAddr,MoneyType)");
            //    sqlc.AppendLine("values('" + model.CompanyCD + "','" + model.ContractNo + "','" + model.Title + "'," + model.ProviderID + ",'" + model.FromType + "'");
            //    sqlc.AppendLine("," + model.FromBillID + "," + model.TotalPrice + "," + model.CurrencyType + "," + model.Rate + "," + model.PayType + "");
            //    if (signdate.IsNull)
            //    {
            //        sqlc.AppendLine("," + signdate + "");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine(",'"+signdate+"'");
            //    }
            //    sqlc.AppendLine("," + model.Seller + ",'" + model.TheyDelegate + "'," + model.OurDelegate + ",'" + model.Status + "'");
            //    sqlc.AppendLine(",'" + model.Note + "'," + model.TakeType + "," + model.CarryType + ",'" + model.Attachment + "','" + model.remark + "'");
            //    sqlc.AppendLine(", '" + model.BillStatus + "'," + Creator+ "");
            //    if (createdate.IsNull)
            //    {
            //        sqlc.AppendLine(","+createdate+"");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine(",'" + createdate + "'");
            //    }
            //    sqlc.AppendLine(",getdate(),'" + model.ModifiedUserID + "'," + model.Confirmor + "");
            //    if (confirmdate.IsNull)
            //    {
            //        sqlc.AppendLine("," + confirmdate + "");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine(",'"+confirmdate+"'");
            //    }
            //    sqlc.AppendLine("," + model.Closer + "");
            //    if (closedate.IsNull)
            //    {
            //        sqlc.AppendLine(","+closedate+"");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine(",'"+closedate+"'");
            //    }
            //    sqlc.AppendLine("," + model.DeptID + "," + model.TotalTax + "," + model.TotalFee + "," + model.Discount + "," + model.DiscountTotal + "," + model.RealTotal + ",'" + model.isAddTax + "'," + model.CountTotal + "," + model.TypeID + ",'" + model.SignAddr + "','" + model.MoneyType + "')");

            //   // sqlc.AppendLine(",'" + model.BillStatus + "'," + model.Creator + ", '"+createdate+"',getdate(),'" + model.ModifiedUserID + "'");
            //   // sqlc.AppendLine("," + model.Confirmor + "," +confirmdate+ "," + model.Closer + ","+closedate+" )");
            //    #endregion
            //    string[] sql = null;
            //    int lengs = Convert.ToInt32(length);
            //    if (lengs > 0)
            //    {
            //        sql = new string[lengs+1];
            //        sql[0] = sqlc.ToString();
            //        string[] ProductID = DetailProductID.Split(',');
            //        string[] ProductNo = DetailProductNo.Split(',');
            //        string[] ProductName = DetailProductName.Split(',');
            //        string[] Standard = DetailStandard.Split(',');//规格
            //        string[] UnitID = DetailUnitID.Split(',');
            //        string[] ProductCount = DetailProductCount.Split(',');
            //        string[] UnitPrice = DetailUnitPrice.Split(',');//单价
            //        string[] TaxPrice = DetailTaxPrice.Split(',');//含税价
            //        string[] Discount = DetailDiscount.Split(',');//折扣
            //        string[] TaxRate = DetailTaxRate.Split(',');//税率
            //        string[] TotalPrice = DetailTotalPrice.Split(',');//金额
            //        string[] TotalFee = DetailTotalFee.Split(',');//含税金额
            //        string[] TotalTax = DetailTotalTax.Split(',');//税额
            //        string[] RequireDate = DetailRequireDate.Split(',');
            //        string[] ApplyReason = DetailApplyReason.Split(',');
            //        string[] Remark = DetailRemark.Split(',');
            //        string[] FromBillID = DetailFromBillID.Split(',');
            //        string[] FromLineNo = DetailFromLineNo.Split(',');
            //        for (int i = 1; i <=lengs; i++)
            //        {
            //            SqlDateTime mRequireDate;
            //            decimal mTotalPrice, mUnitID;
            //            decimal mUnitPrice, mProductCount, mTaxPrice, mDiscount, mTaxRate, mTotalFee, mTotalTax;
            //            //if (RequireDate[i-1].ToString() == "")
            //            //{
            //            //    mRequireDate = SqlDateTime.Null;
            //            //}
            //            //else
            //            //{
            //            //    mRequireDate = SqlDateTime.Parse(RequireDate[i-1].ToString());
            //            //}
            //            if (UnitPrice[i - 1].ToString() == "")
            //            {
            //                mUnitPrice = 0;
            //            }
            //            else
            //            {
            //                mUnitPrice = Convert.ToDecimal(UnitPrice[i - 1].ToString());
            //            }
            //            if (ProductCount[i - 1].ToString() == "")
            //            {
            //                mProductCount = 0;
            //            }
            //            else
            //            {
            //                mProductCount = Convert.ToDecimal(ProductCount[i - 1].ToString());
            //            }
            //            if (TotalPrice[i - 1].ToString() == "")
            //            {
            //                mTotalPrice = 0;
            //            }
            //            else
            //            {
            //                mTotalPrice = Convert.ToDecimal(TotalPrice[i - 1].ToString());
            //            }
            //            if (TaxPrice[i - 1].ToString() == "")
            //            {
            //                mTaxPrice = 0;
            //            }
            //            else
            //            {
            //                mTaxPrice = Convert.ToDecimal(TaxPrice[i - 1].ToString());
            //            }
            //            if (Discount[i - 1].ToString() == "")
            //            {
            //                mDiscount = 0;
            //            }
            //            else
            //            {
            //                mDiscount = Convert.ToDecimal(Discount[i - 1].ToString());
            //            }
            //            if (TaxRate[i - 1].ToString() == "")
            //            {
            //                mTaxRate = 0;
            //            }
            //            else
            //            {
            //                mTaxRate = Convert.ToDecimal(TaxRate[i - 1].ToString());
            //            }
            //            if (TotalFee[i - 1].ToString() == "")
            //            {
            //                mTotalFee = 0;
            //            }
            //            else
            //            {
            //                mTotalFee = Convert.ToDecimal(TotalFee[i - 1].ToString());
            //            }
            //            if (TotalTax[i - 1].ToString() == "")
            //            {
            //                mTotalTax = 0;
            //            }
            //            else
            //            {
            //                mTotalTax = Convert.ToDecimal(TotalTax[i - 1].ToString());
            //            }
            //            if (UnitID[i - 1].ToString() == "")
            //            {
            //                mUnitID = 0;
            //            }
            //            else
            //            {
            //                mUnitID = Convert.ToDecimal(UnitID[i - 1].ToString());
            //            }
            //            System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
            //            cmdsql.AppendLine(" Insert into  officedba.PurchaseContractDetail(CompanyCD,ContractNo,ProductID,ProductNo,ProductName,standard,UnitID,ProductCount,");
            //            cmdsql.AppendLine("UnitPrice,TaxPrice,Discount,TaxRate,TotalPrice,TotalFee,TotalTax,RequireDate,ApplyReason,Remark,FromBillID,FromLineNo)");
            //            cmdsql.AppendLine(" Values('" + model.CompanyCD + "','" + model.ContractNo + "','" + ProductID[i - 1].ToString() + "','" + ProductNo[i - 1].ToString() + "','" + ProductName[i - 1].ToString() + "','" + Standard[i - 1].ToString() + "'");
            //            cmdsql.AppendLine(",'" + mUnitID + "','" + mProductCount + "','" + mUnitPrice + "','" + mTaxPrice + "','" + mDiscount + "','" + mTaxRate + "','" + mTotalPrice + "','" + mTotalFee + "','" + mTotalTax + "'");
            //            if (RequireDate[i - 1].ToString() == "")
            //            {
            //                mRequireDate = SqlDateTime.Null;
            //                cmdsql.AppendLine(","+mRequireDate+"");
            //            }
            //            else
            //            {
            //                mRequireDate = SqlDateTime.Parse(RequireDate[i - 1].ToString());
            //                cmdsql.AppendLine(",'"+mRequireDate+"'");
            //            }
            //            cmdsql.AppendLine(",'" + ApplyReason[i - 1].ToString() + "','" + Remark[i - 1].ToString() + "','" + FromBillID[i - 1].ToString() + "','" + FromLineNo[i - 1].ToString() + "')");
            //            sql[i] = cmdsql.ToString();
                       
            //        } 
            //        if (PurchaseContractDBHelper.InsertPurchaseContract(sql))
            //            {
            //                //model.ID = IDIdentityUtil.GetIDIdentity("officedba.PurchaseContract");
            //                result = true;
            //            }
            //    }
            //    else
            //    {
            //        sql = new string[1];
            //        sql[0] = sqlc.ToString();
            //        if (PurchaseContractDBHelper.InsertPurchaseContract(sql))
            //        {
            //            model.ID = IDIdentityUtil.GetIDIdentity("officedba.PurchaseContract");
            //            result = true;
            //        }
            //    }
            //    return result;
            //}
            //catch (Exception ex)
            //{
            //    throw ex;
            //}
            #endregion
        }
 public static bool CancelConfirmPurchaseContract(PurchaseContractModel Model, string DetailProductCount, string DetailFromBillNo, string DetailFromLineNo, string length, out string strMsg)
 {
     return PurchaseContractDBHelper.CancelConfirmPurchaseContract(Model, DetailProductCount, DetailFromBillNo, DetailFromLineNo, length, out strMsg);
 }
        //#region 合同明细插入操作
        ///// <summary>
        ///// 合同明细insert
        ///// </summary>
        ///// <param name="PurchaseApplyM">主表</param>
        ///// <param name="str">明细来源</param>
        ///// <param name="str2">明细信息</param>
        ///// <param name="ContractNo"></param>
        ///// <param name="dtlslen">原明细来源的长度</param>
        ///// <returns></returns>
        //public static void InsertDtlS(PurchaseContractModel model, string DetailID, string DetailProductNo, string DetailProductName, string DetailProductCount, string DetailUnitID, string DetailRequireDate, string DetailUnitPrice, string DetailTotalPrice, string DetailApplyReason, string DetailRemark, string DetailFromBillID, string DetailFromLineNo, string length)
        //{
        //    //string[] inseritems = null;
        //    //inseritems = str.Split(',');
        //    //StringBuilder dtlssql = new StringBuilder();
        //    //dtlssql.AppendLine("INSERT INTO officedba.PurchaseContractDetail");
        //    //dtlssql.AppendLine("           (CompanyCD                          ");
        //    //dtlssql.AppendLine("            ,ContractNo                        ");
        //    //dtlssql.AppendLine("            ,ProductNo                         ");
        //    //dtlssql.AppendLine("            ,ProductName                       ");
        //    //dtlssql.AppendLine("            ,ProductCount                      ");
        //    //dtlssql.AppendLine("            ,UnitID                            ");
        //    //dtlssql.AppendLine("            ,RequireDate                       ");
        //    //dtlssql.AppendLine("            ,UnitPrice                         ");
        //    //dtlssql.AppendLine("            ,TotalPrice                        ");
        //    //dtlssql.AppendLine("            ,ApplyReason                       ");
        //    //dtlssql.AppendLine("            ,Remark                            ");
        //    //dtlssql.AppendLine("            ,FromBillID                        ");
        //    //dtlssql.AppendLine("            ,FromLineNo)                       ");
        //    //dtlssql.AppendLine("values ");

        //    //dtlssql.AppendLine("           ( '" + ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD + "'");
        //    //dtlssql.AppendLine("            ,'" + ContractNo.ToString() + "' ");
        //    //dtlssql.AppendLine("            ," + inseritems[0].ToString() + " ");
        //    //dtlssql.AppendLine("            ," + inseritems[1].ToString() + " ");
        //    //dtlssql.AppendLine("            ,'" + Convert.ToDecimal(inseritems[2].ToString()) + "' ");
        //    //dtlssql.AppendLine("            ,'" + Convert.ToDecimal(inseritems[3].ToString()) + "' ");
        //    //dtlssql.AppendLine("            ," + Convert.ToDateTime(inseritems[4].ToString()) + " ");
        //    //dtlssql.AppendLine("            ," + Convert.ToDecimal(inseritems[5].ToString()) + " ");
        //    //dtlssql.AppendLine("            ," + Convert.ToDecimal(inseritems[6].ToString()) + "");
        //    //dtlssql.AppendLine("            ," + Convert.ToDecimal(inseritems[7].ToString()) + "");
        //    //dtlssql.AppendLine("            ," + inseritems[8].ToString() + " ");
        //    //dtlssql.AppendLine("            ,'" + Convert.ToDecimal(inseritems[9].ToString()) + " '");
        //    //dtlssql.AppendLine("            ,'" + Convert.ToDecimal(inseritems[10].ToString()) + "') ");
        //    //sql[i] = dtlssql.ToString();
        //}
        //#endregion

        #region 修改:合同记录
        ///<summary>
        /// 修改合同记录
        /// <param name="CompanyCD"></param>
        /// <param name="CompanyNo"></param>
        /// <returns></returns>
        //public static bool UpdatePurchaseContract(string[] sql)
        //{
        //    //StringBuilder sql = new StringBuilder();
        //    //sql.AppendLine("UPDATE officedba.PurchaseContract       ");
        //    //sql.AppendLine("   SET,Title            = @Title ");
        //    //sql.AppendLine("      ,ProviderID       = @ProviderID");
        //    //sql.AppendLine("      ,FromType         = @FromType");
        //    //sql.AppendLine("      ,FromBillID       = @FromBillID");
        //    //sql.AppendLine("      ,TotalPrice       = @TotalPrice");
        //    //sql.AppendLine("      ,CurrencyType     = @CurrencyType");
        //    //sql.AppendLine("      ,Rate             = @Rate");
        //    //sql.AppendLine("      ,PayType          = @PayType");
        //    //sql.AppendLine("      ,SignDate         = @SignDate ");
        //    //sql.AppendLine("      ,Seller           = @Seller");
        //    //sql.AppendLine("      ,OppositerUserID  = @OppositerUserID");
        //    //sql.AppendLine("      ,OurUserID        = @OurUserID");
        //    //sql.AppendLine("      ,Status           = @Status ");
        //    //sql.AppendLine("      ,Note             = @Note");
        //    //sql.AppendLine("      ,TakeType         = @TakeType");
        //    //sql.AppendLine("      ,CarryType        = @CarryType");
        //    //sql.AppendLine("      ,Attachment       = @Attachment");
        //    //sql.AppendLine("      ,remark           = @remark");
        //    //sql.AppendLine("      ,BillStatus       = @BillStatus");
        //    //sql.AppendLine("      ,Creator          = @Creator ");
        //    //sql.AppendLine("      ,CreateDate       = @CreateDate");
        //    //sql.AppendLine("      ,ModifiedDate     = getdate()");
        //    //sql.AppendLine("      ,ModifiedUserID   = @ModifiedUserID");
        //    //sql.AppendLine("      ,Confirmor        = @Confirmor");
        //    //sql.AppendLine("      ,ConfirmDate      = @ConfirmDate");
        //    //sql.AppendLine("      ,Closer           = @Closer");
        //    //sql.AppendLine("      ,CloseDate        = @CloseDate");
        //    //sql.AppendLine(" Where  CompanyCD=@CompanyCD and ContractNo=@ContractNo");
        //    //SqlParameter[] parms;
        //    //parms = new SqlParameter[27];
        //    //parms[0] = SqlHelper.GetParameter("@Title", model.Title);
        //    //parms[1] = SqlHelper.GetParameter("@ProviderID", model.ProviderID);
        //    //parms[2] = SqlHelper.GetParameter("@FromType", model.FromType);
        //    //parms[3] = SqlHelper.GetParameter("@FromBillID", model.FromBillID);
        //    //parms[4] = SqlHelper.GetParameter("@TotalPrice", model.TotalPrice);
        //    //parms[5] = SqlHelper.GetParameter("@CurrencyType", model.CurrencyType);
        //    //parms[6] = SqlHelper.GetParameter("@Rate", model.Rate);
        //    //parms[7] = SqlHelper.GetParameter("@PayType", model.PayType);
        //    //parms[8] = SqlHelper.GetParameter("@SignDate", model.SignDate);
        //    //parms[9] = SqlHelper.GetParameter("@Seller", model.Seller);
        //    //parms[10] = SqlHelper.GetParameter("@OppositerUserID", model.OppositerUserID);
        //    //parms[11] = SqlHelper.GetParameter("@OurUserID", model.OurUserID);
        //    //parms[12] = SqlHelper.GetParameter("@Status", model.Status);
        //    //parms[13] = SqlHelper.GetParameter("@Note", model.Note);
        //    //parms[14] = SqlHelper.GetParameter("@TakeType", model.TakeType);
        //    //parms[15] = SqlHelper.GetParameter("@CarryType", model.CarryType);
        //    //parms[16] = SqlHelper.GetParameter("@Attachment", model.Attachment);
        //    //parms[17] = SqlHelper.GetParameter("@remark", model.remark);
        //    //parms[18] = SqlHelper.GetParameter("@BillStatus", model.BillStatus);
        //    //parms[19] = SqlHelper.GetParameter("@Creator", model.Creator);
        //    //parms[20] = SqlHelper.GetParameter("@CreateDate", model.CreateDate);
        //    //parms[21] = SqlHelper.GetParameter("@ModifiedUserID", ((UserInfoUtil)SessionUtil.Session["UserInfo"]).UserID);
        //    //parms[22] = SqlHelper.GetParameter("@Confirmor", model.Confirmor);
        //    //parms[23] = SqlHelper.GetParameter("@ConfirmDate", model.ConfirmDate);
        //    //parms[24] = SqlHelper.GetParameter("@Closer", model.Closer);
        //    //parms[25] = SqlHelper.GetParameter("@CloseDate", model.CloseDate);
        //    //parms[26] = SqlHelper.GetParameter("@CompanyCD", ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD);
        //    //parms[27] = SqlHelper.GetParameter("@ContractNo", model.ContractNo);
        //    //SqlHelper.ExecuteSql(sql.ToString(), parms);
        //    //return SqlHelper.Result.OprateCount > 0 ? true : false;

        //    return SqlHelper.ExecuteTransForListWithSQL(sql);
        //}
        #endregion


        #region 修改采购合同
        public static bool UpdatePurchaseContract(PurchaseContractModel model, string DetailProductID, string DetailProductNo, string DetailProductName, string DetailUnitID, string DetailProductCount, string DetailUnitPrice, string DetailTaxPrice, string DetailDiscount, string DetailTaxRate, string DetailTotalPrice, string DetailTotalFee, string DetailTotalTax, string DetailRequireDate, string DetailApplyReason, string DetailRemark, string DetailFromBillID, string DetailFromBillNo, string DetailFromLineNo, string DetailUsedUnitID, string DetailUsedUnitCount, string DetailUsedPrice, string DetailExRate, string length, string fflag2, string no, Hashtable htExtAttr)
        {
            if (model.ID <= 0)
            {
                return false;
            }
            ArrayList listADD = new ArrayList();
            bool result = false;

            #region  修改采购合同
            StringBuilder sqlArrive = new StringBuilder();

            sqlArrive.AppendLine("Update  Officedba.PurchaseContract set CompanyCD=@CompanyCD,");
            sqlArrive.AppendLine("ContractNo=@ContractNo,Title=@Title,ProviderID=@ProviderID,FromType=@FromType,FromBillID=@FromBillID,");
            sqlArrive.AppendLine("CurrencyType=@CurrencyType,Rate=@Rate,PayType=@PayType,MoneyType=@MoneyType,SignDate=@SignDate,Seller=@Seller,");
            sqlArrive.AppendLine("DeptID=@DeptID,TheyDelegate=@TheyDelegate,OurDelegate=@OurDelegate,SignAddr=@SignAddr,");
            sqlArrive.AppendLine("Note=@Note,TakeType=@TakeType,CarryType=@CarryType,TotalPrice=@TotalPrice,TotalTax=@TotalTax,TotalFee=@TotalFee,");
            sqlArrive.AppendLine("Discount=@Discount,DiscountTotal=@DiscountTotal,RealTotal=@RealTotal,isAddTax=@isAddTax,CountTotal=@CountTotal,");
            sqlArrive.AppendLine("Attachment=@Attachment,remark=@remark,BillStatus=@BillStatus,CreateDate=@CreateDate,");
            sqlArrive.AppendLine("ModifiedDate=getdate(),ModifiedUserID=@ModifiedUserID,Confirmor=@Confirmor,ConfirmDate=@ConfirmDate,");
            sqlArrive.AppendLine("Closer=@Closer,CloseDate=@CloseDate,TypeID=@TypeID where CompanyCD=@CompanyCD and ContractNo=@ContractNo and ID=@ID");


            SqlCommand comm = new SqlCommand();
            comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
            comm.Parameters.Add(SqlHelper.GetParameter("@ContractNo", no));
            comm.Parameters.Add(SqlHelper.GetParameter("@Title", model.Title));
            comm.Parameters.Add(SqlHelper.GetParameter("@ProviderID", model.ProviderID));
            comm.Parameters.Add(SqlHelper.GetParameter("@FromType", model.FromType));
            comm.Parameters.Add(SqlHelper.GetParameter("@FromBillID", model.FromBillID));
            comm.Parameters.Add(SqlHelper.GetParameter("@CurrencyType", model.CurrencyType));
            comm.Parameters.Add(SqlHelper.GetParameter("@Rate", model.Rate));
            comm.Parameters.Add(SqlHelper.GetParameter("@PayType", model.PayType));
            comm.Parameters.Add(SqlHelper.GetParameter("@MoneyType", model.MoneyType));
            comm.Parameters.Add(SqlHelper.GetParameter("@SignDate", model.SignDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.SignDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@Seller", model.Seller));
            comm.Parameters.Add(SqlHelper.GetParameter("@DeptID", model.DeptID));
            comm.Parameters.Add(SqlHelper.GetParameter("@TheyDelegate", model.TheyDelegate));
            comm.Parameters.Add(SqlHelper.GetParameter("@OurDelegate", model.OurDelegate));
            comm.Parameters.Add(SqlHelper.GetParameter("@SignAddr", model.SignAddr));
            comm.Parameters.Add(SqlHelper.GetParameter("@Note", model.Note));
            comm.Parameters.Add(SqlHelper.GetParameter("@TakeType", model.TakeType));
            comm.Parameters.Add(SqlHelper.GetParameter("@CarryType", model.CarryType));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalPrice", model.TotalPrice));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalTax", model.TotalTax));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalFee", model.TotalFee));
            comm.Parameters.Add(SqlHelper.GetParameter("@Discount", model.Discount));
            comm.Parameters.Add(SqlHelper.GetParameter("@DiscountTotal", model.DiscountTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@RealTotal", model.RealTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@isAddTax", model.isAddTax));
            comm.Parameters.Add(SqlHelper.GetParameter("@CountTotal", model.CountTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@Attachment", model.Attachment));
            comm.Parameters.Add(SqlHelper.GetParameter("@remark", model.remark));
            comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus));
            comm.Parameters.Add(SqlHelper.GetParameter("@CreateDate", model.CreateDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.CreateDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@ModifiedUserID", model.ModifiedUserID));
            comm.Parameters.Add(SqlHelper.GetParameter("@Confirmor", model.Confirmor));
            comm.Parameters.Add(SqlHelper.GetParameter("@ConfirmDate", model.ConfirmDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.ConfirmDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@Closer", model.Closer));
            comm.Parameters.Add(SqlHelper.GetParameter("@CloseDate", model.CloseDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.CloseDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@TypeID", model.TypeID));
            comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID));
            comm.CommandText = sqlArrive.ToString();


            listADD.Add(comm);
            model.ContractNo = no;
            #endregion
              #region 拓展属性
            SqlCommand cmd = new SqlCommand();
            GetExtAttrCmd(model, htExtAttr, cmd);
            if (htExtAttr.Count > 0)
                listADD.Add(cmd);
            #endregion

            #region 保存修改时,判断源单类型是否为采购计划,如果是的话,再判断是否由变更到执行,即确认后再修改的,则对采购计划明细字段回写减操作
            //#region 原先没有取消确认,撤消被回写的字段在确认后再次修改时撤消的。增加了取消确认,撤消回写的写在取消确认的方法里。
            //#endregion
            //if (model.FromType.Trim() == "2")
            //{
            //    if (fflag2 == "1")
            //    {
            //        int lengs = Convert.ToInt32(length);
            //        if (lengs > 0)
            //        {
            //            string[] ProductCount = DetailProductCount.Split(',');
            //            string[] FromBillNo = DetailFromBillNo.Split(',');
            //            string[] FromLineNo = DetailFromLineNo.Split(',');

            //            for (int i = 0; i < lengs; i++)
            //            {
            //                System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
            //                SqlCommand commp = new SqlCommand();
            //                cmdsql.AppendLine("Update  Officedba.PurchasePlanDetail set OrderCount=isnull(OrderCount,0)-@ProductCount");
            //                cmdsql.AppendLine(" where CompanyCD=@CompanyCD and PlanNo=@FromBillNo and SortNo=@FromLineNo");

            //                commp.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
            //                commp.Parameters.Add(SqlHelper.GetParameter("@ProductCount", ProductCount[i].ToString()));
            //                commp.Parameters.Add(SqlHelper.GetParameter("@FromBillNo", FromBillNo[i].ToString()));
            //                commp.Parameters.Add(SqlHelper.GetParameter("@FromLineNo", FromLineNo[i].ToString()));
            //                commp.CommandText = cmdsql.ToString();
            //                listADD.Add(commp);
            //            }
            //        }
            //    }
            //}
            #endregion

            #region 删除采购合同明细
            System.Text.StringBuilder cmdddetail = new System.Text.StringBuilder();
            cmdddetail.AppendLine("DELETE  FROM officedba.PurchaseContractDetail WHERE  CompanyCD=@CompanyCD and ContractNo=@ContractNo");
            SqlCommand comn = new SqlCommand();
            comn.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
            comn.Parameters.Add(SqlHelper.GetParameter("@ContractNo", no));
            comn.CommandText = cmdddetail.ToString();
            listADD.Add(comn);
            #endregion



            try
            {
                #region 重新插入采购合同明细
                int lengs = Convert.ToInt32(length);
                if (lengs > 0)
                {
                    string[] ProductID = DetailProductID.Split(',');
                    string[] ProductNo = DetailProductNo.Split(',');
                    string[] ProductName = DetailProductName.Split(',');
                    string[] UnitID = DetailUnitID.Split(',');
                    string[] ProductCount = DetailProductCount.Split(',');
                    string[] UnitPrice = DetailUnitPrice.Split(',');//单价
                    string[] TaxPrice = DetailTaxPrice.Split(',');//含税价
                    string[] Discount = DetailDiscount.Split(',');//折扣
                    string[] TaxRate = DetailTaxRate.Split(',');//税率
                    string[] TotalPrice = DetailTotalPrice.Split(',');//金额
                    string[] TotalFee = DetailTotalFee.Split(',');//含税金额
                    string[] TotalTax = DetailTotalTax.Split(',');//税额
                    string[] RequireDate = DetailRequireDate.Split(',');
                    string[] ApplyReason = DetailApplyReason.Split(',');
                    string[] Remark = DetailRemark.Split(',');
                    string[] FromBillID = DetailFromBillID.Split(',');
                    string[] FromLineNo = DetailFromLineNo.Split(',');
                    string[] UsedUnitID = DetailUsedUnitID.Split(',');
                    string[] UsedUnitCount = DetailUsedUnitCount.Split(',');
                    string[] UsedPrice = DetailUsedPrice.Split(',');
                    string[] ExRate = DetailExRate.Split(',');




                    //SqlCommand comms = null;
                    //System.Text.StringBuilder cmdsql=null;
                    for (int i = 0; i < lengs; i++)
                    {
                        System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
                        SqlCommand comms = new SqlCommand();
                        cmdsql.AppendLine("INSERT INTO officedba.PurchaseContractDetail");
                        cmdsql.AppendLine("(CompanyCD,");
                        cmdsql.AppendLine("ContractNo,");
                        cmdsql.AppendLine("SortNo,");
                        cmdsql.AppendLine("FromType,");
                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("FromBillID,");
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("RequireDate,");
                            }
                        }
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("FromLineNo,");
                            }
                        }

                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedUnitID,                        ");
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedUnitCount ,                        ");
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedPrice,                        ");
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ExRate,                        ");
                                }
                            }
                        }


                        cmdsql.AppendLine("ProductID,");
                        cmdsql.AppendLine("ProductNo,");
                        cmdsql.AppendLine("ProductName,");
                        cmdsql.AppendLine("ProductCount,");
                        cmdsql.AppendLine("UnitID,");
                        cmdsql.AppendLine("UnitPrice,");
                        cmdsql.AppendLine("TaxPrice,");
                        //cmdsql.AppendLine("Discount,");
                        cmdsql.AppendLine("TaxRate,");
                        cmdsql.AppendLine("TotalFee,");
                        cmdsql.AppendLine("TotalPrice,");
                        cmdsql.AppendLine("TotalTax,");
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("Remark,");
                            }
                        }
                        cmdsql.AppendLine("ApplyReason)");
                        cmdsql.AppendLine(" Values(@CompanyCD");
                        cmdsql.AppendLine("            ,@ContractNo");
                        cmdsql.AppendLine("            ,@SortNo");
                        cmdsql.AppendLine("            ,@FromType"); 
                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@FromBillID");
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@RequireDate");
                            }
                        }
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@FromLineNo");
                            }
                        }
                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedUnitID                        ");
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedUnitCount                         ");
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedPrice                        ");
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@ExRate                        ");
                                }
                            }
                        }
                        cmdsql.AppendLine("            ,@ProductID");
                        cmdsql.AppendLine("            ,@ProductNo");
                        cmdsql.AppendLine("            ,@ProductName");
                        if (ProductCount[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(ProductCount[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@ProductCount");
                            }
                        }
                        cmdsql.AppendLine("            ,@UnitID");
                        cmdsql.AppendLine("            ,@UnitPrice");
                        cmdsql.AppendLine("            ,@TaxPrice");
                        //cmdsql.AppendLine("            ,@Discount");
                        cmdsql.AppendLine("            ,@TaxRate");
                        cmdsql.AppendLine("            ,@TotalFee");
                        cmdsql.AppendLine("            ,@TotalPrice");
                        cmdsql.AppendLine("            ,@TotalTax");
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@Remark2");
                            }
                        }
                        cmdsql.AppendLine("            ,@ApplyReason)");


                        comms.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ContractNo", no));
                        comms.Parameters.Add(SqlHelper.GetParameter("@SortNo", i + 1));
                        comms.Parameters.Add(SqlHelper.GetParameter("@FromType", model.FromType));
                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@FromBillID", FromBillID[i].ToString()));
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@RequireDate", RequireDate[i].ToString()));
                            }
                        }

                        
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@FromLineNo", FromLineNo[i].ToString()));
                            }
                        }
                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                {
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedUnitID", UsedUnitID[i].ToString()));
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                {
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedUnitCount", UsedUnitCount[i].ToString()));
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                {
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedPrice", UsedPrice[i].ToString()));
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    comms.Parameters.Add(SqlHelper.GetParameter("@ExRate", ExRate[i].ToString()));
                                }
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductID", ProductID[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductNo", ProductNo[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductName", ProductName[i].ToString()));
                        if (ProductCount[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(ProductCount[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@ProductCount", ProductCount[i].ToString()));
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@UnitID", UnitID[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@UnitPrice", UnitPrice[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TaxPrice", TaxPrice[i].ToString()));
                        //comms.Parameters.Add(SqlHelper.GetParameter("@Discount", Discount[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TaxRate", TaxRate[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalFee", TotalFee[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalPrice", TotalPrice[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalTax", TotalTax[i].ToString()));
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@Remark2", Remark[i].ToString()));
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@ApplyReason", ApplyReason[i].ToString()));
                        comms.CommandText = cmdsql.ToString();
                        listADD.Add(comms);
                    }
                }
                #endregion


                if (SqlHelper.ExecuteTransWithArrayList(listADD))
                {
                    //ID = comm.Parameters["@ID"].Value.ToString();
                    result = true;
                }
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 修改合同记录
        /// </summary>
        /// <param name="CompanyCD"></param>
        /// <param name="CompanyNo"></param>
        /// <returns></returns>
        public static bool UpdatePurchaseContract(PurchaseContractModel model, string DetailProductID, string DetailProductNo, string DetailProductName, string DetailUnitID, string DetailProductCount, string DetailUnitPrice, string DetailTaxPrice, string DetailDiscount, string DetailTaxRate, string DetailTotalPrice, string DetailTotalFee, string DetailTotalTax, string DetailRequireDate, string DetailApplyReason, string DetailRemark, string DetailFromBillID, string DetailFromBillNo, string DetailFromLineNo, string DetailUsedUnitID, string DetailUsedUnitCount, string DetailUsedPrice, string DetailExRate, string length, string fflag2, string no, Hashtable ht)
        {
            UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];
            if (model.ID <= 0)
            {
                return false;
            }
            try
            {
                bool succ = false;
                LogInfoModel logModel = InitLogInfo(no);
                logModel.Element = ConstUtil.LOG_PROCESS_UPDATE;
                //设置模块ID 模块ID请在ConstUtil中定义,以便维护
                logModel.ModuleID = ConstUtil.MODULE_ID_PurchaseContract_Add;
                succ = PurchaseContractDBHelper.UpdatePurchaseContract(model, DetailProductID, DetailProductNo, DetailProductName, DetailUnitID, DetailProductCount, DetailUnitPrice, DetailTaxPrice, DetailDiscount, DetailTaxRate, DetailTotalPrice, DetailTotalFee, DetailTotalTax, DetailRequireDate, DetailApplyReason, DetailRemark, DetailFromBillID, DetailFromBillNo, DetailFromLineNo, DetailUsedUnitID, DetailUsedUnitCount, DetailUsedPrice, DetailExRate, length, fflag2, no, ht);
                if (!succ)
                    logModel.Remark = ConstUtil.LOG_PROCESS_FAILED;
                else
                    logModel.Remark = ConstUtil.LOG_PROCESS_SUCCESS;
                LogDBHelper.InsertLog(logModel);
                return succ;
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            #region
            //if (model.CompanyCD == null) model.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;
            ////string CompanyCD = "AAAAAA";
            ////try
            ////{
            ////    return PurchaseContractDBHelper.UpdatePurchaseContract(sql);
            ////}
            ////catch (Exception ex)
            ////{
            ////    throw ex;
            ////}

            //try
            //{
            //    SqlDateTime signdate = model.SignDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.SignDate.ToString());
            //    SqlDateTime confirmdate = model.ConfirmDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.ConfirmDate.ToString());
            //    SqlDateTime closedate = model.CloseDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.CloseDate.ToString());
            //    SqlDateTime createdate = model.CreateDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.CreateDate.ToString());
            //    int Creator = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID;
            //    #region 采购合同更新SQL语句
            //    StringBuilder sqlc = new StringBuilder();
            //    sqlc.AppendLine(" UPDATE officedba.PurchaseContract SET ");
            //    sqlc.AppendLine(" CompanyCD          ='" + model.CompanyCD + "',");
            //    sqlc.AppendLine(" ContractNo         ='" + no + "',");
            //    sqlc.AppendLine(" Title              ='" + model.Title + "',");
            //    sqlc.AppendLine(" ProviderID         =" + model.ProviderID + ",");
            //    sqlc.AppendLine(" FromType           ='" + model.FromType + "',");
            //    sqlc.AppendLine(" FromBillID         =" + model.FromBillID + ",");
            //    sqlc.AppendLine(" TotalPrice         =" + model.TotalPrice + ",");
            //    sqlc.AppendLine(" CurrencyType       =" + model.CurrencyType + ",");
            //    sqlc.AppendLine(" Rate               =" + model.Rate + ",");
            //    sqlc.AppendLine(" PayType            =" + model.PayType + ",");
            //    if (signdate.IsNull)
            //    {
            //        sqlc.AppendLine("SignDate        = " + signdate + ",");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine("SignDate       = '" + signdate + "',");
            //    }
            //    sqlc.AppendLine(" Seller            =" + model.Seller + ",");
            //    sqlc.AppendLine(" TheyDelegate   ='" + model.TheyDelegate + "',");
            //    sqlc.AppendLine(" OurDelegate         =" + model.OurDelegate + ",");
            //    sqlc.AppendLine(" Status            ='" + model.Status + "',");
            //    sqlc.AppendLine(" Note              ='" + model.Note + "',");
            //    sqlc.AppendLine(" TakeType          =" + model.TakeType + ",");
            //    sqlc.AppendLine(" CarryType         =" + model.CarryType + ",");
            //    sqlc.AppendLine(" Attachment        ='" + model.Attachment + "',");
            //    sqlc.AppendLine(" remark            ='" + model.remark + "',");
            //    sqlc.AppendLine(" BillStatus        ='" + model.BillStatus + "',");
            //    sqlc.AppendLine(" Creator           =" + model.Creator + ",");
            //    if (createdate.IsNull)
            //    {
            //        sqlc.AppendLine("CreateDate     = " + createdate + ",");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine("CreateDate     = '" + createdate + "',");
            //    }
            //    sqlc.AppendLine(" ModifiedDate      =getdate(),");
            //    sqlc.AppendLine(" ModifiedUserID    ='" + model.ModifiedUserID + "',");
            //    sqlc.AppendLine(" Confirmor         =" + model.Confirmor + ",");
            //    if (confirmdate.IsNull)
            //    {
            //        sqlc.AppendLine("Confirmdate     = " + confirmdate + ",");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine("Confirmdate     = '" + confirmdate + "',");
            //    }
            //    sqlc.AppendLine(" Closer            =" + Creator + ",");
            //    if (closedate.IsNull)
            //    {
            //        sqlc.AppendLine("CloseDate      =" + closedate + ",");
            //    }
            //    else
            //    {
            //        sqlc.AppendLine("CloseDate      ='" + closedate + "',");
            //    }
            //    sqlc.AppendLine("DeptID             =" + model.DeptID + ",");
            //    sqlc.AppendLine("TotalTax             =" + model.TotalTax + ",");
            //    sqlc.AppendLine("TotalFee             =" + model.TotalFee + ",");
            //    sqlc.AppendLine("Discount             =" + model.Discount + ",");
            //    sqlc.AppendLine("DiscountTotal             =" + model.DiscountTotal + ",");
            //    sqlc.AppendLine("RealTotal             =" + model.RealTotal + ",");
            //    sqlc.AppendLine("isAddTax             ='" + model.isAddTax + "',");
            //    sqlc.AppendLine("CountTotal             =" + model.CountTotal + ",");
            //    sqlc.AppendLine("TypeID             =" + model.TypeID + ",");
            //    sqlc.AppendLine("SignAddr             ='" + model.SignAddr + "',");
            //    sqlc.AppendLine("MoneyType             =" + model.MoneyType + "");
            //    sqlc.AppendLine(" Where  CompanyCD='" + model.CompanyCD + "' and ContractNo='" + no+"' ");

            //    #endregion

            //    //如果未别引用,明细操作
            //    string[] sql = null;
            //    int lengs = Convert.ToInt32(length);
            //    if (lengs > 0)
            //    {
            //        sql = new string[lengs + 2];
            //        sql[0] = sqlc.ToString();
            //        sql[1] = "delete from officedba.PurchaseContractDetail where CompanyCD='" + model.CompanyCD + "' and ContractNo='" + no + "' ";
            //        string[] ProductID = DetailProductID.Split(',');
            //        string[] ProductNo = DetailProductNo.Split(',');
            //        string[] ProductName = DetailProductName.Split(',');
            //        string[] Standard = DetailStandard.Split(',');//规格
            //        string[] UnitID = DetailUnitID.Split(',');
            //        string[] ProductCount = DetailProductCount.Split(',');
            //        string[] UnitPrice = DetailUnitPrice.Split(',');//单价
            //        string[] TaxPrice = DetailTaxPrice.Split(',');//含税价
            //        string[] Discount = DetailDiscount.Split(',');//折扣
            //        string[] TaxRate = DetailTaxRate.Split(',');//税率
            //        string[] TotalPrice = DetailTotalPrice.Split(',');//金额
            //        string[] TotalFee = DetailTotalFee.Split(',');//含税金额
            //        string[] TotalTax = DetailTotalTax.Split(',');//税额
            //        string[] RequireDate = DetailRequireDate.Split(',');
            //        string[] ApplyReason = DetailApplyReason.Split(',');
            //        string[] Remark = DetailRemark.Split(',');
            //        string[] FromBillID = DetailFromBillID.Split(',');
            //        string[] FromLineNo = DetailFromLineNo.Split(',');
            //        for (int i = 2; i <= lengs + 1; i++)
            //        {
            //            SqlDateTime mRequireDate;
            //            decimal mTotalPrice, mUnitID;
            //            decimal mUnitPrice, mProductCount, mTaxPrice, mDiscount, mTaxRate, mTotalFee, mTotalTax;
            //            if (UnitPrice[i - 2].ToString() == "")
            //            {
            //                mUnitPrice = 0;
            //            }
            //            else
            //            {
            //                mUnitPrice = Convert.ToDecimal(UnitPrice[i - 2].ToString());
            //            }
            //            if (ProductCount[i - 2].ToString() == "")
            //            {
            //                mProductCount = 0;
            //            }
            //            else
            //            {
            //                mProductCount = Convert.ToDecimal(ProductCount[i - 2].ToString());
            //            }
            //            if (TotalPrice[i - 2].ToString() == "")
            //            {
            //                mTotalPrice = 0;
            //            }
            //            else
            //            {
            //                mTotalPrice = Convert.ToDecimal(TotalPrice[i - 2].ToString());
            //            }
            //            if (TaxPrice[i - 2].ToString() == "")
            //            {
            //                mTaxPrice = 0;
            //            }
            //            else
            //            {
            //                mTaxPrice = Convert.ToDecimal(TaxPrice[i - 2].ToString());
            //            }
            //            if (Discount[i - 2].ToString() == "")
            //            {
            //                mDiscount = 0;
            //            }
            //            else
            //            {
            //                mDiscount = Convert.ToDecimal(Discount[i - 2].ToString());
            //            }
            //            if (TaxRate[i - 2].ToString() == "")
            //            {
            //                mTaxRate = 0;
            //            }
            //            else
            //            {
            //                mTaxRate = Convert.ToDecimal(TaxRate[i - 2].ToString());
            //            }
            //            if (TotalFee[i - 2].ToString() == "")
            //            {
            //                mTotalFee = 0;
            //            }
            //            else
            //            {
            //                mTotalFee = Convert.ToDecimal(TotalFee[i - 2].ToString());
            //            }
            //            if (TotalTax[i - 2].ToString() == "")
            //            {
            //                mTotalTax = 0;
            //            }
            //            else
            //            {
            //                mTotalTax = Convert.ToDecimal(TotalTax[i - 2].ToString());
            //            }
            //            if (UnitID[i - 2].ToString() == "")
            //            {
            //                mUnitID = 0;
            //            }
            //            else
            //            {
            //                mUnitID = Convert.ToDecimal(UnitID[i - 2].ToString());
            //            }
            //            System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
            //            //cmdsql.AppendLine(" Insert into  officedba.PurchaseContractDetail(CompanyCD,ContractNo,ProductID,ProductNo,ProductName,ProductCount,");
            //            //cmdsql.AppendLine("UnitID,RequireDate,UnitPrice,TotalPrice,ApplyReason,Remark,FromBillID,FromLineNo)");
            //            cmdsql.AppendLine(" Insert into  officedba.PurchaseContractDetail(CompanyCD,ContractNo,ProductID,ProductNo,ProductName,standard,UnitID,ProductCount,");
            //            cmdsql.AppendLine("UnitPrice,TaxPrice,Discount,TaxRate,TotalPrice,TotalFee,TotalTax,RequireDate,ApplyReason,Remark,FromBillID,FromLineNo)");
            //            cmdsql.AppendLine(" Values('" + model.CompanyCD + "','" + no + "','" + ProductID[i - 2].ToString() + "','" + ProductNo[i - 2].ToString() + "','" + ProductName[i - 2].ToString() + "','" + Standard[i - 2].ToString() + "','" + mUnitID + "','" + mProductCount + "'");
            //            cmdsql.AppendLine(",'" + mUnitPrice + "','" + mTaxPrice + "','" + mDiscount + "','" + mTaxRate + "','" + mTotalPrice + "','" + mTotalFee + "','" + mTotalTax + "'");
            //            if (RequireDate[i - 2].ToString() == "")
            //            {
            //                mRequireDate = SqlDateTime.Null;
            //                cmdsql.AppendLine("," + mRequireDate + "");
            //            }
            //            else
            //            {
            //                mRequireDate = SqlDateTime.Parse(RequireDate[i - 2].ToString());
            //                cmdsql.AppendLine(",'" + mRequireDate + "'");
            //            }
            //            cmdsql.AppendLine(",'" + ApplyReason[i - 2].ToString() + "','" + Remark[i - 2].ToString() + "','" + FromBillID[i - 2].ToString() + "','" + FromLineNo[i - 2].ToString() + "')");
            //            sql[i] = cmdsql.ToString();
            //        }
            //        return PurchaseContractDBHelper.UpdatePurchaseContract(sql);
            //    }
            //    else
            //    {
            //        sql = new string[2];
            //        sql[0] = sqlc.ToString();
            //        sql[1] = "delete from officedba.PurchaseContractDetail where CompanyCD='" + model.CompanyCD + "' and ContractNo='" + no + "' ";
            //        return PurchaseContractDBHelper.UpdatePurchaseContract(sql);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    throw ex;
            //}
            #endregion

        }
        public static bool CancelClosePurchaseContract(PurchaseContractModel Model)
        {
            try
            {
                ArrayList listADD = new ArrayList();
                bool result = false;
                StringBuilder sql = new StringBuilder();
                sql.AppendLine("update officedba.PurchaseContract set ");
                sql.AppendLine("  Closer = null");
                sql.AppendLine(" ,CloseDate = null");
                sql.AppendLine(" ,BillStatus = @BillStatus");
                sql.AppendLine(" where CompanyCD= @CompanyCD");
                sql.AppendLine(" and ID= @ID");

                SqlCommand comm = new SqlCommand();
                comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", "2"));
                comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", Model.CompanyCD));
                comm.Parameters.Add(SqlHelper.GetParameter("@ID", Model.ID));

                comm.CommandText = sql.ToString();
                listADD.Add(comm);

                if (SqlHelper.ExecuteTransWithArrayList(listADD))
                {
                    //ID = comm.Parameters["@ID"].Value.ToString();
                    result = true;
                }
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
        public static bool CancelConfirmPurchaseContract(PurchaseContractModel Model, string DetailProductCount, string DetailFromBillNo, string DetailFromLineNo, string length, out string strMsg)
        {
           
            bool isSuc = false;
            strMsg = "";
            //判断单据是否为执行状态,非执行状态不能取消确认
            if (isCanDo(Model.ID, "2"))
            {

                if (!IsCitePurchaseContract(Model.ID))
                {
                    string strSq = string.Empty;
                    //bool isSuc = false;
                    int iEmployeeID = 0;//员工id
                    string strUserID = string.Empty;//用户id
                    string strCompanyCD = string.Empty;//单位编码
                    SqlParameter[] paras = new SqlParameter[5];
                    iEmployeeID = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID;
                    strUserID = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).UserID;
                    strCompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;

                    strSq = "update  officedba.PurchaseContract set BillStatus='1'  ";
                    strSq += " , Confirmor=@Confirmor, ConfirmDate=@ConfirmDate, ModifiedDate=getdate() ,ModifiedUserID=@UserID ";
                    strSq += " WHERE ID = @ID and CompanyCD=@CompanyCD";

                    paras[0] = new SqlParameter("@Confirmor", DBNull.Value);
                    paras[1] = new SqlParameter("@UserID", strUserID);
                    paras[2] = new SqlParameter("@CompanyCD", Model.CompanyCD);
                    paras[3] = new SqlParameter("@ID", Model.ID);
                    paras[4] = new SqlParameter("@ConfirmDate", DBNull.Value);
                    TransactionManager tran = new TransactionManager();
                    tran.BeginTransaction();
                    try
                    {


                        if (Model.FromType.Trim() == "2")
                        {
                            int lengs = Convert.ToInt32(length);
                            if (lengs > 0)
                            {
                                string[] ProductCount = DetailProductCount.Split(',');
                                string[] FromBillNo = DetailFromBillNo.Split(',');
                                string[] FromLineNo = DetailFromLineNo.Split(',');
                                string[] UsedUnitCount = { };
                                if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                                {
                                    UsedUnitCount = Model.Attachment.Split(',');
                                }
                                for (int i = 0; i < lengs; i++)
                                {

                                    StringBuilder cmdsql = new StringBuilder();
                                    cmdsql.Append("Update  Officedba.PurchasePlanDetail set OrderCount=isnull(OrderCount,0)-@ProductCount");
                                    cmdsql.Append(" where CompanyCD=@CompanyCD and PlanNo=@FromBillNo and SortNo=@FromLineNo");
                                    if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                                    {
                                        SqlParameter[] param = { 
                                               new SqlParameter("@CompanyCD", Model.CompanyCD),
                                                new SqlParameter("@ProductCount", UsedUnitCount[i].ToString()),
                                                 new SqlParameter("@FromBillNo", FromBillNo[i].ToString()),
                                                  new SqlParameter("@FromLineNo", FromLineNo[i].ToString())
                                               };
                                        SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, cmdsql.ToString(), param);
                                    }
                                    else
                                    {
                                        SqlParameter[] param = { 
                                               new SqlParameter("@CompanyCD", Model.CompanyCD),
                                                new SqlParameter("@ProductCount", ProductCount[i].ToString()),
                                                 new SqlParameter("@FromBillNo", FromBillNo[i].ToString()),
                                                  new SqlParameter("@FromLineNo", FromLineNo[i].ToString())
                                               };
                                        SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, cmdsql.ToString(), param);
                                    }
                                 

                                }
                            }
                        }


                        FlowDBHelper.OperateCancelConfirm(Model.CompanyCD, Convert.ToInt32(ConstUtil.CODING_RULE_PURCHASE), Convert.ToInt32(ConstUtil.BILL_TYPEFLAG_PURCHASE_CONTRACT), Model.ID, strUserID, tran);//撤销审批
                        SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, strSq, paras);

                        tran.Commit();
                        isSuc = true;
                        strMsg = "取消确认成功!";

                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();

                        strMsg = "取消确认失败!";
                        isSuc = false;

                        throw ex;
                    }
                }
                else
                {//单据被调用了,不可以取消确认
                    isSuc = false;
                    strMsg = "该单据已被其它单据调用了,不允许取消确认!";
                }
            }
            else
            {//单据被别人抢先取消确认了
                isSuc = false;
                strMsg = "该单据已被其他用户取消确认,不可再次取消确认!";
            }


            return isSuc;

        }
        public static bool ConfirmPurchaseContract(PurchaseContractModel Model, string DetailProductCount, string DetailFromBillNo, string DetailFromLineNo, string length, out string strMsg)
        {
            strMsg = "";
            bool result = true;
            if (isCanDo(Model.ID, "1"))
            {
                try
                {
                    ArrayList listADD = new ArrayList();
                    
                    StringBuilder strSql = new StringBuilder();
                    strSql.AppendLine("update officedba.PurchaseContract set ");
                    strSql.AppendLine(" Confirmor =  @Confirmor");
                    strSql.AppendLine(" ,BillStatus=@BillStatus");
                    strSql.AppendLine(" ,ConfirmDate=getdate()");
                    strSql.AppendLine(" where");
                    strSql.AppendLine(" CompanyCD= @CompanyCD");
                    strSql.AppendLine(" and ID= @ID");
                    SqlCommand comm = new SqlCommand();
                    comm.Parameters.Add(SqlHelper.GetParameter("@Confirmor", Model.Confirmor));
                    comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", "2"));
                    comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", Model.CompanyCD));
                    comm.Parameters.Add(SqlHelper.GetParameter("@ID", Model.ID));
                    comm.CommandText = strSql.ToString();
                    listADD.Add(comm);

                    if (Model.FromType.Trim() == "2")
                    {
                        int lengs = Convert.ToInt32(length);
                        if (lengs > 0)
                        {
                            string[] ProductCount = DetailProductCount.Split(',');
                            string[] FromBillNo = DetailFromBillNo.Split(',');
                            string[] FromLineNo = DetailFromLineNo.Split(',');
                            string[]  UsedUnitCount={};
                             if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit){
                             UsedUnitCount=Model.Attachment.Split(',');
                             }
                            string pp = "";

                            for (int i = 0; i < lengs; i++)
                            {
                                if (FromLineNo[i].ToString() != "")
                                {
                                    if (IsCanConfirm(FromBillNo[i].ToString(), FromLineNo[i].ToString(), Model.CompanyCD, ProductCount[i].ToString()))
                                    {
                                        System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
                                        SqlCommand comms = new SqlCommand();
                                        cmdsql.AppendLine("Update  Officedba.PurchasePlanDetail set OrderCount=isnull(OrderCount,0)+@ProductCount");
                                        cmdsql.AppendLine(" where CompanyCD=@CompanyCD and PlanNo=@FromBillNo and SortNo=@FromLineNo");

                                        comms.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", Model.CompanyCD));
                                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                                        {
                                            comms.Parameters.Add(SqlHelper.GetParameter("@ProductCount", UsedUnitCount[i].ToString()));
                                        }
                                        else
                                        {
                                            comms.Parameters.Add(SqlHelper.GetParameter("@ProductCount", ProductCount[i].ToString()));
                                        }

                                    
                                        comms.Parameters.Add(SqlHelper.GetParameter("@FromBillNo", FromBillNo[i].ToString()));
                                        comms.Parameters.Add(SqlHelper.GetParameter("@FromLineNo", FromLineNo[i].ToString()));
                                        comms.CommandText = cmdsql.ToString();
                                        listADD.Add(comms);
                                    }
                                    else
                                    {
                                        if (pp != "")
                                        {
                                            pp += "," + (i + 1);
                                        }
                                        else {
                                            pp = "" + (i + 1);
                                        }
                                        strMsg += "第" + pp + "行的采购数量不能大于当前可用的采购数量,确认失败!";
                                        result = false;
                                    }
                                }
                            }
                        }
                    }
                    if (result)
                    {
                        if (SqlHelper.ExecuteTransWithArrayList(listADD))
                        {
                            //ID = comm.Parameters["@ID"].Value.ToString();
                            strMsg = "确认成功!";
                            result = true;
                        }
                        else
                        {
                            strMsg = "确认失败!";
                            result = false;
                        }
                    }
                    return result;
                }
                catch (Exception ex)
                {
                    strMsg = "确认失败!";
                    result = false;
                    return result;
                    throw ex;
                }
            }
            else
            {//已经被其他人确认
                strMsg = "已经确认的单据不可再次确认!";
                result = false;
                return result;
            }

        }
        public static bool InsertPurchaseContract(PurchaseContractModel model, string DetailProductID, string DetailProductNo, string DetailProductName, string DetailUnitID, string DetailProductCount, string DetailUnitPrice, string DetailTaxPrice, string DetailDiscount, string DetailTaxRate, string DetailTotalPrice, string DetailTotalFee, string DetailTotalTax, string DetailRequireDate, string DetailApplyReason, string DetailRemark, string DetailFromBillID, string DetailFromLineNo, string DetailUsedUnitID, string DetailUsedUnitCount, string DetailUsedPrice, string DetailExRate, string length, out string ID, Hashtable htExtAttr)
        {

            ArrayList listADD = new ArrayList();
            bool result = false;
            ID = "0";

            #region  采购合同添加SQL语句
            StringBuilder sqlArrive = new StringBuilder();


            sqlArrive.AppendLine("INSERT INTO officedba.PurchaseContract");
            sqlArrive.AppendLine("(CompanyCD,ContractNo,Title,ProviderID,FromType,FromBillID,CurrencyType,Rate,PayType,");
            sqlArrive.AppendLine("MoneyType,SignDate,Seller,DeptID,TheyDelegate,OurDelegate,SignAddr,");
            sqlArrive.AppendLine("Note,TakeType,CarryType,TotalPrice,TotalTax,TotalFee,Discount,DiscountTotal,");
            sqlArrive.AppendLine("RealTotal,isAddTax,CountTotal,Attachment,remark,BillStatus,Creator");
            sqlArrive.AppendLine(",CreateDate,ModifiedDate,ModifiedUserID,Confirmor,ConfirmDate,Closer,CloseDate,TypeID)");
            sqlArrive.AppendLine("VALUES (@CompanyCD,@ContractNo,@Title,@ProviderID,@FromType,@FromBillID,@CurrencyType,@Rate,@PayType,");
            sqlArrive.AppendLine("@MoneyType,@SignDate,@Seller,@DeptID,@TheyDelegate,@OurDelegate,@SignAddr,");
            sqlArrive.AppendLine("@Note,@TakeType,@CarryType,@TotalPrice,@TotalTax,@TotalFee,@Discount,@DiscountTotal,");
            sqlArrive.AppendLine("@RealTotal,@isAddTax,@CountTotal,@Attachment,@remark,@BillStatus,@Creator");
            sqlArrive.AppendLine(",@CreateDate,getdate(),@ModifiedUserID,@Confirmor,@ConfirmDate,@Closer,@CloseDate,@TypeID)");
            sqlArrive.AppendLine("set @ID=@@IDENTITY");

            SqlCommand comm = new SqlCommand();
            comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
            comm.Parameters.Add(SqlHelper.GetParameter("@ContractNo", model.ContractNo));
            comm.Parameters.Add(SqlHelper.GetParameter("@Title", model.Title));
            comm.Parameters.Add(SqlHelper.GetParameter("@ProviderID", model.ProviderID));
            comm.Parameters.Add(SqlHelper.GetParameter("@FromType", model.FromType));
            comm.Parameters.Add(SqlHelper.GetParameter("@FromBillID", model.FromBillID));
            comm.Parameters.Add(SqlHelper.GetParameter("@CurrencyType", model.CurrencyType));
            comm.Parameters.Add(SqlHelper.GetParameter("@Rate", model.Rate));
            comm.Parameters.Add(SqlHelper.GetParameter("@PayType", model.PayType));
            comm.Parameters.Add(SqlHelper.GetParameter("@MoneyType", model.MoneyType));
            comm.Parameters.Add(SqlHelper.GetParameter("@SignDate", model.SignDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.SignDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@Seller", model.Seller));
            comm.Parameters.Add(SqlHelper.GetParameter("@DeptID", model.DeptID));
            comm.Parameters.Add(SqlHelper.GetParameter("@TheyDelegate", model.TheyDelegate));
            comm.Parameters.Add(SqlHelper.GetParameter("@OurDelegate", model.OurDelegate));
            comm.Parameters.Add(SqlHelper.GetParameter("@SignAddr", model.SignAddr));
            comm.Parameters.Add(SqlHelper.GetParameter("@Note", model.Note));
            comm.Parameters.Add(SqlHelper.GetParameter("@TakeType", model.TakeType));
            comm.Parameters.Add(SqlHelper.GetParameter("@CarryType", model.CarryType));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalPrice", model.TotalPrice));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalTax", model.TotalTax));
            comm.Parameters.Add(SqlHelper.GetParameter("@TotalFee", model.TotalFee));
            comm.Parameters.Add(SqlHelper.GetParameter("@Discount", model.Discount));
            comm.Parameters.Add(SqlHelper.GetParameter("@DiscountTotal", model.DiscountTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@RealTotal", model.RealTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@isAddTax", model.isAddTax));
            comm.Parameters.Add(SqlHelper.GetParameter("@CountTotal", model.CountTotal));
            comm.Parameters.Add(SqlHelper.GetParameter("@Attachment", model.Attachment));
            comm.Parameters.Add(SqlHelper.GetParameter("@remark", model.remark));
            comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus));
            comm.Parameters.Add(SqlHelper.GetParameter("@Creator", model.Creator));
            comm.Parameters.Add(SqlHelper.GetParameter("@CreateDate", model.CreateDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.CreateDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@ModifiedUserID", model.ModifiedUserID));
            comm.Parameters.Add(SqlHelper.GetParameter("@Confirmor", model.Confirmor));
            comm.Parameters.Add(SqlHelper.GetParameter("@ConfirmDate", model.ConfirmDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.ConfirmDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@Closer", model.Closer));
            comm.Parameters.Add(SqlHelper.GetParameter("@CloseDate", model.CloseDate == null
                                                        ? SqlDateTime.Null
                                                        : SqlDateTime.Parse(model.CloseDate.ToString())));
            comm.Parameters.Add(SqlHelper.GetParameter("@TypeID", model.TypeID));
            comm.Parameters.Add(SqlHelper.GetOutputParameter("@ID", SqlDbType.Int));
            comm.CommandText = sqlArrive.ToString();


            listADD.Add(comm);
            #endregion
            #region 拓展属性
            SqlCommand cmd = new SqlCommand();
            GetExtAttrCmd(model, htExtAttr, cmd);
            if (htExtAttr.Count > 0)
                listADD.Add(cmd);
            #endregion

            try
            {
                #region 采购合同明细
                int lengs = Convert.ToInt32(length);
                if (lengs > 0)
                {
                    string[] ProductID = DetailProductID.Split(',');
                    string[] ProductNo = DetailProductNo.Split(',');
                    string[] ProductName = DetailProductName.Split(',');
                    string[] UnitID = DetailUnitID.Split(',');
                    string[] ProductCount = DetailProductCount.Split(',');
                    string[] UnitPrice = DetailUnitPrice.Split(',');//单价
                    string[] TaxPrice = DetailTaxPrice.Split(',');//含税价
                    //string[] Discount = DetailDiscount.Split(',');//折扣
                    string[] TaxRate = DetailTaxRate.Split(',');//税率
                    string[] TotalPrice = DetailTotalPrice.Split(',');//金额
                    string[] TotalFee = DetailTotalFee.Split(',');//含税金额
                    string[] TotalTax = DetailTotalTax.Split(',');//税额
                    string[] RequireDate = DetailRequireDate.Split(',');
                    string[] ApplyReason = DetailApplyReason.Split(',');
                    string[] Remark = DetailRemark.Split(',');
                    string[] FromBillID = DetailFromBillID.Split(',');
                    string[] FromLineNo = DetailFromLineNo.Split(',');

                    string[] UsedUnitID = DetailUsedUnitID.Split(',');
                    string[] UsedUnitCount = DetailUsedUnitCount.Split(',');
                    string[] UsedPrice = DetailUsedPrice.Split(',');
                    string[] ExRate = DetailExRate.Split(',');
                    //SqlCommand comms = null;
                    //System.Text.StringBuilder cmdsql=null;
                    for (int i = 0; i < lengs; i++)
                    {
                        System.Text.StringBuilder cmdsql = new System.Text.StringBuilder();
                        SqlCommand comms = new SqlCommand();
                        cmdsql.AppendLine("INSERT INTO officedba.PurchaseContractDetail");
                        cmdsql.AppendLine("(CompanyCD,");
                        cmdsql.AppendLine("ContractNo,");
                        cmdsql.AppendLine("SortNo,");
                        cmdsql.AppendLine("FromType,");
                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("FromBillID,");
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("RequireDate,");
                            }
                        }
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("FromLineNo,");
                            }
                        }
                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedUnitID,                        ");
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedUnitCount ,                        ");
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           UsedPrice,                        ");
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ExRate,                        ");
                                }
                            }
                        }








                        cmdsql.AppendLine("ProductID,");
                        cmdsql.AppendLine("ProductNo,");
                        cmdsql.AppendLine("ProductName,");
                        cmdsql.AppendLine("ProductCount,");
                        cmdsql.AppendLine("UnitID,");
                        cmdsql.AppendLine("UnitPrice,");
                        cmdsql.AppendLine("TaxPrice,");
                        //cmdsql.AppendLine("Discount,");
                        cmdsql.AppendLine("TaxRate,");
                        cmdsql.AppendLine("TotalFee,");
                        cmdsql.AppendLine("TotalPrice,");
                        cmdsql.AppendLine("TotalTax,");
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("Remark,");
                            }
                        }
                        cmdsql.AppendLine("ApplyReason)");
                        cmdsql.AppendLine(" Values(@CompanyCD");
                        cmdsql.AppendLine("            ,@ContractNo");
                        cmdsql.AppendLine("            ,@SortNo");
                        cmdsql.AppendLine("            ,@FromType");
                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@FromBillID");
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@RequireDate");
                            }
                        }
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@FromLineNo");
                            }
                        }
                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedUnitID                        ");
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedUnitCount                         ");
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@UsedPrice                        ");
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    cmdsql.AppendLine("           ,@ExRate                        ");
                                }
                            }
                        }
                        cmdsql.AppendLine("            ,@ProductID");
                        cmdsql.AppendLine("            ,@ProductNo");
                        cmdsql.AppendLine("            ,@ProductName");
                        if (ProductCount[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(ProductCount[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@ProductCount");
                            }
                        }
                        cmdsql.AppendLine("            ,@UnitID");
                        cmdsql.AppendLine("            ,@UnitPrice");
                        cmdsql.AppendLine("            ,@TaxPrice");
                        //cmdsql.AppendLine("            ,@Discount");
                        cmdsql.AppendLine("            ,@TaxRate");
                        cmdsql.AppendLine("            ,@TotalFee");
                        cmdsql.AppendLine("            ,@TotalPrice");
                        cmdsql.AppendLine("            ,@TotalTax");
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                cmdsql.AppendLine("            ,@Remark2");
                            }
                        }
                        cmdsql.AppendLine("            ,@ApplyReason)");


                        comms.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ContractNo", model.ContractNo));
                        comms.Parameters.Add(SqlHelper.GetParameter("@SortNo", i + 1));
                        comms.Parameters.Add(SqlHelper.GetParameter("@FromType", model.FromType));
                        if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit)
                        {
                            if (UsedUnitID[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitID[i].ToString().Trim()))
                                { 
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedUnitID", UsedUnitID[i].ToString()));
                                }
                            }
                            if (UsedUnitCount[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedUnitCount[i].ToString().Trim()))
                                { 
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedUnitCount", UsedUnitCount[i].ToString()));
                                }
                            }
                            if (UsedPrice[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(UsedPrice[i].ToString().Trim()))
                                { 
                                    comms.Parameters.Add(SqlHelper.GetParameter("@UsedPrice", UsedPrice[i].ToString()));
                                }
                            }
                            if (ExRate[i].ToString().Length > 0)
                            {
                                if (!string.IsNullOrEmpty(ExRate[i].ToString().Trim()))
                                {
                                    comms.Parameters.Add(SqlHelper.GetParameter("@ExRate", ExRate[i].ToString()));
                                }
                            }
                        }

                        if (FromBillID[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromBillID[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@FromBillID", FromBillID[i].ToString()));
                            }
                        }
                        if (RequireDate[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(RequireDate[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@RequireDate", RequireDate[i].ToString()));
                            }
                        }
                        if (FromLineNo[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(FromLineNo[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@FromLineNo", FromLineNo[i].ToString()));
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductID", ProductID[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductNo", ProductNo[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@ProductName", ProductName[i].ToString()));
                        if (ProductCount[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(ProductCount[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@ProductCount", ProductCount[i].ToString()));
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@UnitID", UnitID[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@UnitPrice", UnitPrice[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TaxPrice", TaxPrice[i].ToString()));
                        //comms.Parameters.Add(SqlHelper.GetParameter("@Discount", Discount[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TaxRate", TaxRate[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalFee", TotalFee[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalPrice", TotalPrice[i].ToString()));
                        comms.Parameters.Add(SqlHelper.GetParameter("@TotalTax", TotalTax[i].ToString()));
                        if (Remark[i].ToString().Length > 0)
                        {
                            if (!string.IsNullOrEmpty(Remark[i].ToString().Trim()))
                            {
                                comms.Parameters.Add(SqlHelper.GetParameter("@Remark2", Remark[i].ToString()));
                            }
                        }
                        comms.Parameters.Add(SqlHelper.GetParameter("@ApplyReason", ApplyReason[i].ToString()));
                        comms.CommandText = cmdsql.ToString();
                        listADD.Add(comms);
                    }
                }
                #endregion


                if (SqlHelper.ExecuteTransWithArrayList(listADD))
                {
                    ID = comm.Parameters["@ID"].Value.ToString();
                    result = true;
                }
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //#region 新增:合同记录
        ///// <summary>
        ///// 添加合同记录
        ///// </summary>
        ///// <returns></returns>
        //public static bool InsertPurchaseContract(string[] sql)
        //{
        //    //StringBuilder sqlc = new StringBuilder();
        //    //sqlc.AppendLine("Insert into officedba.PurchaseContract");
        //    //sqlc.AppendLine("(CompanyCD,ContractNo,Title,ProviderID,FromType,FromBillID,");
        //    //sqlc.AppendLine("TotalPrice,CurrencyType,Rate,PayType,SignDate,");
        //    //sqlc.AppendLine("Seller,OppositerUserID,OurUserID,Status,Note,");
        //    //sqlc.AppendLine("TakeType,CarryType,Attachment,remark,BillStatus,Creator,");
        //    //sqlc.AppendLine("CreateDate,ModifiedDate,ModifiedUserID,Confirmor,ConfirmDate,Closer,CloseDate)");
        //    //sqlc.AppendLine("values(@CompanyCD,@ContractNo,@Title,@ProviderID,@FromType,@FromBillID,@TotalPrice,@CurrencyType,@Rate,@PayType,@SignDate,@Seller,@OppositerUserID");
        //    //sqlc.AppendLine(",@OurUserID,@Status,@Note,@TakeType,@CarryType,@Attachment,@remark,@BillStatus,@Creator,getdate(),getdate(),");
        //    //sqlc.AppendLine("@ModifiedUserID,@Confirmor,@ConfirmDate,@Closer,@CloseDate)");

        //    //SqlParameter[] parms = new SqlParameter[27];
        //    //parms[0] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD);
        //    //parms[1] = SqlHelper.GetParameter("ContractNo", model.ContractNo);
        //    //parms[2] = SqlHelper.GetParameter("@Title", model.Title);
        //    //parms[3] = SqlHelper.GetParameter("@ProviderID", model.ProviderID);
        //    //parms[4] = SqlHelper.GetParameter("@FromType", model.FromType);
        //    //parms[5] = SqlHelper.GetParameter("@FromBillID", model.FromBillID);
        //    //parms[6] = SqlHelper.GetParameter("@TotalPrice", model.TotalPrice);
        //    //parms[7] = SqlHelper.GetParameter("@CurrencyType", model.CurrencyType);
        //    //parms[8] = SqlHelper.GetParameter("@Rate", model.Rate);
        //    //parms[9] = SqlHelper.GetParameter("@PayType", model.PayType);
        //    //parms[10] = SqlHelper.GetParameter("@SignDate", model.SignDate == null
        //    //                        ? SqlDateTime.Null
        //    //                        : SqlDateTime.Parse(model.SignDate.ToString()));
        //    //parms[11] = SqlHelper.GetParameter("@Seller", model.Seller);
        //    //parms[12] = SqlHelper.GetParameter("@OppositerUserID", model.OppositerUserID);
        //    //parms[13] = SqlHelper.GetParameter("@OurUserID", model.OurUserID);
        //    //parms[14] = SqlHelper.GetParameter("@Status", "1");//新建合同时默认状态为执行中
        //    //parms[15] = SqlHelper.GetParameter("@Note", model.Note);
        //    //parms[16] = SqlHelper.GetParameter("@TakeType", model.TakeType);
        //    //parms[17] = SqlHelper.GetParameter("@CarryType", model.CarryType);
        //    //parms[18] = SqlHelper.GetParameter("@Attachment", model.Attachment);
        //    //parms[19] = SqlHelper.GetParameter("@remark", model.remark);
        //    //parms[20] = SqlHelper.GetParameter("@BillStatus", model.BillStatus);
        //    //parms[21] = SqlHelper.GetParameter("@Creator", model.Creator);
        //    //parms[22] = SqlHelper.GetParameter("@ModifiedUserID", (11));
        //    //parms[23] = SqlHelper.GetParameter("@Confirmor", model.Confirmor);
        //    //parms[24] = SqlHelper.GetParameter("@ConfirmDate", model.ConfirmDate == null
        //    //                        ? SqlDateTime.Null
        //    //                        : SqlDateTime.Parse(model.ConfirmDate.ToString()));
        //    //parms[25] = SqlHelper.GetParameter("@Closer", model.Closer);
        //    //parms[26] = SqlHelper.GetParameter("@CloseDate", model.CloseDate == null
        //    //                        ? SqlDateTime.Null
        //    //                        : SqlDateTime.Parse(model.CloseDate.ToString()));
        //    //SqlHelper.ExecuteTransSql(sqlc.ToString(), parms);
        //    //return SqlHelper.Result.OprateCount > 0 ? true : false;

        //    return SqlHelper.ExecuteTransForListWithSQL(sql);


        //}
        //#endregion


        #region 扩展属性保存操作
        /// <summary>
        /// 扩展属性保存操作
        /// </summary>
        /// <returns></returns>
        private static void GetExtAttrCmd(PurchaseContractModel model, Hashtable htExtAttr, SqlCommand cmd)
        {
            try
            {
                string strSql = string.Empty;

                strSql = "UPDATE officedba.PurchaseContract set ";
                foreach (DictionaryEntry de in htExtAttr)// fileht为一个Hashtable实例
                {
                    strSql += de.Key.ToString().Trim() + "=@" + de.Key.ToString().Trim() + ",";
                    cmd.Parameters.AddWithValue("@" + de.Key.ToString().Trim(), de.Value.ToString().Trim());
                }
                int iLength = strSql.Length - 1;
                strSql = strSql.Substring(0, iLength);
                strSql += " where CompanyCD = @CompanyCD  AND ContractNo = @ContractNo";
                cmd.Parameters.AddWithValue("@CompanyCD", model.CompanyCD);
                cmd.Parameters.AddWithValue("@ContractNo", model.ContractNo);
                cmd.CommandText = strSql;
            }
            catch (Exception)
            { }


        }