/// <summary>
 /// 后台用户库存入库
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="orderType"></param>
 /// <param name="product"></param>
 /// <param name="loginId"></param>
 /// <returns></returns>
 public static int CreateDeliverAdmin(DeliverEntity entity, string orderType, string product, string loginId)
 {
     SqlParameter[] paras = new SqlParameter[] {
          new SqlParameter("@loginId", loginId),
         new SqlParameter("@OrderNo", entity.DeliverNo),
         new SqlParameter("@Account", entity.Account),
          new SqlParameter("@UserID", entity.UserID),
         new SqlParameter("@Price", entity.LockPrice),
         new SqlParameter("@OrderType", orderType),
         new SqlParameter("@Product", product),
         new SqlParameter("@Quantity", entity.Total),
       new SqlParameter("@Direction", entity.Direction),
         new SqlParameter("@OperUserID", entity.OperationUserID)
     };
     int result;
     return DbHelper.RunProcedure("P_CreateDeliverAdmin", paras, out result);
 }
 /// <summary>
 /// 创建交割单
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="tran"></param>
 /// <returns></returns>
 public static int CreateDeliver(DeliverEntity entity, YicelTransaction tran)
 {
     entity.DeliverDate = DateTime.Now.ToString();
     entity.CreateDate = entity.DeliverDate;
     SqlParameter[] parms = new SqlParameter[] {
         new SqlParameter("@DeliverId",entity.DeliverId),
         new SqlParameter("@DeliverNo",entity.DeliverNo),
         new SqlParameter("@Goods",entity.Goods),
         new SqlParameter("@Direction",entity.Direction),
         new SqlParameter("@Total",entity.Total),
         new SqlParameter("@DeliverDate",entity.DeliverDate),
         new SqlParameter("@LockPrice",entity.LockPrice),
         new SqlParameter("@State",entity.State),
         new SqlParameter("@AvailableTotal",entity.AvailableTotal),
         new SqlParameter("@CreateDate",entity.CreateDate),
         new SqlParameter("@FromFlag",entity.FromFlag),
         new SqlParameter("@OperationUserID",entity.OperationUserID),
         new SqlParameter("@UserID",entity.UserID),
        new SqlParameter("@Account",entity.Account)
     };
     StringBuilder strSql = new StringBuilder();
     strSql.AppendFormat("insert into Deliver_BZJ({0})", Fields.Deliver_FIELD_LIST);
     strSql.AppendFormat(" values ({0})", "@" + Fields.Deliver_FIELD_LIST.Replace(",", ",@"));
     object obj = DbHelper.ExecuteNonQuery(strSql.ToString(), parms, tran.Transaction);
     return obj == null || obj == DBNull.Value ? 0 : Convert.ToInt32(obj);
 }
        /// <summary>
        /// 交割单记录
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="orderEntity"></param>
        /// <param name="operationId"></param>
        /// <param name="tran"></param>
        /// <returns></returns>
        public static int UpdateDeliver(DeliverEntity entity, OrderEntity orderEntity, string operationId, YicelTransaction tran)
        {
            SqlParameter[] parms = new SqlParameter[] {
                new SqlParameter("@DeliverId",entity.DeliverId),
                new SqlParameter("@DeliverNo",entity.DeliverNo),
                new SqlParameter("@Account",entity.Account),
                new SqlParameter("@Direction",entity.Direction),
                new SqlParameter("@Total",entity.Total),
                new SqlParameter("@Goods",entity.Goods),
                new SqlParameter("@DeliverDate",entity.DeliverDate),
                new SqlParameter("@LockPrice",entity.LockPrice),
                new SqlParameter("@AvailableTotal",entity.AvailableTotal),
                new SqlParameter("@FromFlag",entity.FromFlag),
                new SqlParameter("@State",entity.State),
                new SqlParameter("@CreateDate",entity.CreateDate)
            };
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update Deliver_BZJ set ");
            strSql.Append("DeliverNo=@DeliverNo,");
            strSql.Append("Account=@Account,");
            strSql.Append("Goods=@Goods,");
            strSql.Append("Direction=@Direction,");
            strSql.Append("Total=@Total,");
            strSql.Append("DeliverDate=@DeliverDate,");
            strSql.Append("LockPrice=@LockPrice,");
            strSql.Append("AvailableTotal=@AvailableTotal,");
            strSql.Append("FromFlag=@FromFlag,");
            strSql.Append("State=@State,");
            strSql.Append("CreateDate=@CreateDate");
            strSql.AppendFormat(" where DeliverId='{0}'", entity.DeliverId);
            return DbHelper.ExecuteNonQuery(strSql.ToString(), parms, tran.Transaction);
            #region 记录出库记录
            //DeliverAdjustmentEntity deliver = new DeliverAdjustmentEntity();
            //deliver.DeliverAdjustmentID = Guid.NewGuid().ToString("n");
            //deliver.DeliverAdjustmentNO = "JS" + DateTime.Now.ToString("yyMMddhhmmssffff");
            //deliver.Goods = entity.Goods;
            //deliver.Direction = orderEntity.OrderType;
            //if (entity.Goods == 1)
            //{
            //    deliver.Total =- Math.Abs( orderEntity.Au);
            //}

            //if (entity.Goods == 2)
            //{
            //    deliver.Total = - Math.Abs(orderEntity.Ag);
            //}
            //if (entity.Goods == 3)
            //{
            //    deliver.Total = - Math.Abs(orderEntity.Pt);
            //}
            //if (entity.Goods == 4)
            //{
            //    deliver.Total = - Math.Abs(orderEntity.Pd);
            //}
            //deliver.Account = entity.Account;
            //deliver.LockPrice = 0;
            //deliver.State = 0;
            //deliver.AvailableTotal = 0;
            //deliver.FromFlag = 1;
            //deliver.OperationUserID = OperationId;
            //deliver.UserID = orderEntity.UserId;
            #endregion
            // return CreateDeliverAdjustment(deliver, tran);
        }
 /// <summary>
 /// 保证金实体
 /// </summary>
 /// <param name="reader"></param>
 /// <returns></returns>
 private static DeliverEntity CreateDeliverEntity(DbDataReader reader)
 {
     DeliverEntity entity = new DeliverEntity();
     entity.DeliverId = reader["DeliverId"].ToString();
     entity.DeliverNo = reader["DeliverNo"].ToString();
     entity.Account = reader["Account"].ToString();
     entity.Goods = Convert.ToInt32(reader["Goods"]);
     entity.Direction = Convert.ToInt32(reader["Direction"]);
     entity.Total = Convert.ToDecimal(reader["Total"]);
     entity.DeliverDate = reader["DeliverDate"].ToString();
     entity.LockPrice = Convert.ToDecimal(reader["LockPrice"]);
     entity.AvailableTotal = Convert.ToDecimal(reader["AvailableTotal"]);
     entity.FromFlag = Convert.ToInt32(reader["FromFlag"]);
     entity.State = Convert.ToInt32(reader["State"]);
     entity.CreateDate = reader["CreateDate"].ToString();
     return entity;
 }
        /// <summary>
        /// 交割单报表查询
        /// </summary>
        /// <param name="loginId"></param>
        /// <param name="entity"></param>
        /// <param name="userName"></param>
        /// <param name="agentId"></param>
        /// <param name="pageindex"></param>
        /// <param name="pagesize"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public static DataTable GetDeliverOrderList(string loginId, DeliverEntity entity, string userName, string agentId, int pageindex, int pagesize, ref int page)
        {
            SqlParameter[] paras = null;
            StringBuilder sb = new StringBuilder();
            StringBuilder sbSearch = new StringBuilder();
            if (!string.IsNullOrEmpty(entity.DeliverNo))
            {
                sbSearch.AppendFormat(@" and DeliverNo='{0}'", entity.DeliverNo);
            }
            if (!string.IsNullOrEmpty(entity.Account))
            {
                sbSearch.AppendFormat(@" and Account='{0}'", entity.Account);
            }
            if (!string.IsNullOrEmpty(userName))
            {
                sbSearch.AppendFormat(@" and userName like '{0}%'", userName);
            }
            if (!string.IsNullOrEmpty(entity.CreateDate))
            {
                sbSearch.AppendFormat(@" and CreateDate BETWEEN '{0}' AND '{1}'", entity.CreateDate, entity.EndDate);
            }
            if (!string.IsNullOrEmpty(agentId))
            {
                sbSearch.AppendFormat(@" and agentid in ({0}) ", ComFunction.GetOrgIds(agentId));
            }
            paras = new SqlParameter[]
            {
                new SqlParameter("@selectlist", "  Account,userName,DeliverId,DeliverDate,DeliverNo,Goods,Direction,Total,LockPrice,State,AvailableTotal,FromFlag,CreateDate"),
                new SqlParameter("@SubSelectList", " Account,userName,DeliverId,DeliverDate,DeliverNo,Goods,Direction,Total,LockPrice,State,AvailableTotal,FromFlag,CreateDate"),
                new SqlParameter("@TableSource", "V_OrderDelivery"),
                new SqlParameter("@TableOrder", "a"),
                new SqlParameter("@SearchCondition", string.Format(@" 1=1 {0}",sbSearch.ToString())),
                new SqlParameter("@OrderExpression", " order by CreateDate desc"),
                new SqlParameter("@PageIndex", pageindex),
                new SqlParameter("@PageSize", pagesize),
                new SqlParameter("@PageCount", page)
            };

            paras[8].Direction = ParameterDirection.Output;
            DataTable dt = DbHelper.RunProcedure("GetRecordFromPage", paras, "Deliver_BZJ").Tables[0];
            page = Convert.ToInt32(paras[8].Value);
            return dt;
        }