/// <summary>
        /// 组织所选择的数据
        /// </summary>
        /// <returns></returns>
        private SalerReturnModel[] GetReturnModel(out bool flgSuccess)
        {
            flgSuccess = true;
            SalerReturnModel[] salerReturnModel = new SalerReturnModel[dgvSalerReturnList.SelectedRows.Count];
            for (int i = 0; i < dgvSalerReturnList.SelectedRows.Count; i++)
            {
                SalerReturnModel mdl = new SalerReturnModel();
                mdl.Id            = dgvSalerReturnList.Rows[i].Cells["ID"].Value.ToString();
                mdl.Remark        = dgvSalerReturnList.Rows[i].Cells["Remark"].Value.ToString();
                mdl.StrReceiveID  = dgvSalerReturnList.Rows[i].Cells["receive_id"].Value.ToString();
                mdl.StrReceiveQty = Convert.ToDouble(dgvSalerReturnList.Rows[i].Cells["receive_qty_pre"].Value.ToString()) - Convert.ToDouble(dgvSalerReturnList.Rows[i].Cells["return_qty"].Value.ToString());
                mdl.StrReceiveQty = mdl.StrReceiveQty < 0 ? 0 : mdl.StrReceiveQty;
                if (mdl.Remark.Length > 100)
                {
                    MessageBox.Show("附注内容不得大于100!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    this.SetStyle(ControlStyles.Selectable, true);
                    dgvSalerReturnList.Select();
                    dgvSalerReturnList.Rows[i].Cells["Remark"].Selected = true;
                    dgvSalerReturnList.CurrentCell = dgvSalerReturnList.Rows[i].Cells["Remark"];
                    flgSuccess = false;
                    break;
                }
                salerReturnModel[i] = mdl;
            }

            return(salerReturnModel);
        }
        /// <summary>
        /// 组织输入参数实体
        /// </summary>
        /// <returns></returns>
        private SalerReturnModel GetInput()
        {
            SalerReturnModel mdl = new SalerReturnModel();

            mdl.CurOrgId    = this.CurrentUserOrgId;
            mdl.ReturnState = cmbReturnStatus.SelectedValue.ToString();
            mdl.StrType     = cmbType.SelectedValue.ToString();
            mdl.StrKeyValue = txtName.Text;
            mdl.StartDate   = ComUtil.formatDate(this.dtStartDate.Text.ToString());
            mdl.EndDate     = ComUtil.formatDate(this.dtEndDate.Text.ToString());

            return(mdl);
        }
        /// <summary>
        /// 查询退货单列表
        /// </summary>
        /// <param name="plats">受管理的平台集合</param>
        /// <param name="input">页面输入参数</param>
        /// <param name="pageParam">分业参数</param>
        /// <param name="rows">数据行数</param>
        /// <returns></returns>
        public DataTable findDealList(string[] plats, SalerReturnModel input, PagedParameter pageParam, out int rows)
        {
            SalerReturnDAO dao = new SalerReturnDAO();
            DataTable      dt  = null;

            try
            {
                dt = dao.findDealList(plats, input, pageParam, out rows);
            }
            catch (Exception e)
            {
                throw e;
            }
            return(dt);
        }
 /// <summary>
 /// 查询退货单列表
 /// </summary>
 /// <param name="plats">受管理的平台集合</param>
 /// <param name="input">页面输入参数</param>
 /// <param name="pageParam">分业参数</param>
 /// <param name="rows">数据行数</param>
 /// <returns></returns>
 public DataTable findDealList(string[] plats, SalerReturnModel input, PagedParameter pageParam, out int rows)
 {
     return(new SalerReturnBLL().findDealList(plats, input, pageParam, out rows));
 }
        /// <summary>
        /// 查询退货单列表
        /// </summary>
        /// <param name="plats">受管理的平台集合</param>
        /// <param name="input">页面输入参数</param>
        /// <param name="pageParam">分业参数</param>
        /// <param name="rows">数据行数</param>
        /// <returns></returns>
        public DataTable findDealList(string[] plats, SalerReturnModel input, PagedParameter pageParam, out int rows)
        {
            //组织所有的交易所平台ID
            rows = 0;
            DataTable     dt      = null;
            StringBuilder sqlPlat = new StringBuilder();

            for (int i = 0; i < plats.Length; i++)
            {
                // PltPlat p1 = (PltPlat)it.next();
                if (i == 0)
                {
                    sqlPlat.Append("'" + plats[i] + "'");
                }
                else
                {
                    sqlPlat.Append(",'" + plats[i] + "'");
                }
                i++;
            }
            if (sqlPlat.Length == 0)
            {
                return(null);
            }
            //根据查询类别,组织查询条件
            StringBuilder      sb         = new StringBuilder();
            List <DbParameter> parameters = new List <DbParameter>();
            DbParameter        param      = null;

            if (input.StrType != null && !input.StrKeyValue.Equals(""))
            {
                if (input.StrType.Equals("1"))
                {
                    sb.Append(" and (item.bak_medical_name like :StrKeyValue");

                    sb.Append(" or item.bak_product_name like :StrKeyValue)");
                }
                else if (input.StrType.Equals("2"))
                {
                    sb.Append(" and (item.bak_medical_fast like :StrKeyValue");

                    sb.Append(" or item.bak_product_fast like :StrKeyValue)");
                }
                else if (input.StrType.Equals("3"))
                {
                    sb.Append(" and (item.bak_medical_wubi like :StrKeyValue");

                    sb.Append(" or item.bak_product_wubi like :StrKeyValue)");
                }
                else if (input.StrType.Equals("4"))
                {
                    sb.Append(" and (ord.bak_buyer_easy like :StrKeyValue");

                    sb.Append(" or ord.bak_buyer_name like :StrKeyValue)");
                }
                else
                {
                    return(null);
                }
                param = this.DbFacade.CreateParameter();
                param.ParameterName = "StrKeyValue";
                param.DbType        = DbType.String;
                if (input.StrType.Equals("1") || input.StrType.Equals("4"))
                {
                    param.Value = CommonFunction.GetLike(input.StrKeyValue);
                }
                else
                {
                    param.Value = CommonFunction.GetLike(input.StrKeyValue.ToUpper());
                }
                parameters.Add(param);
            }

            StringBuilder strSql = new StringBuilder();

            strSql.Append(" select rownum, r.id receive_id, r.receive_qty receive_qty_pre, t.id,item.bak_medical_name,item.bak_product_name,item.BAK_MASS_ASSIGNMENT,item.bak_medical_mode,item.bak_product_spec"
                          + " ,ord.bak_buyer_easy,ord.bak_buyer_name "
                          + " ,item.unit_price,t.lot_no,w.warehouse_name,r.receive_date,r.receive_qty,t.return_qty,t.buyer_remark"
                          + " ,t.create_date,to_char(t.create_date,'yyyy-mm-dd') create_date_display,t.confirm_date,to_char(t.confirm_date,'yyyy-mm-dd') confirm_date_display,t.saler_remark Remark "
                          + ", ord.order_code, ord.create_date order_date, t.create_userid, item.unit_price * t.return_qty return_money"
                          + ", item.product_id"
                          + " from ord_order_receive r,ord_order ord,ord_order_item item, ord_warehouse w,ord_order_return t"
                          + " where t.order_receive_id=r.id and t.order_id=ord.order_id and t.order_item_id =item.record_id "
                          + " and r.order_item_id = item.record_id and ord.order_id=item.order_id and item.repository_id =w.warehouse_id(+)"
                          + "	and t.sender_orgid = :orgid"
                          + " and t.return_state = :returnState"
                          + " and t.create_date >= to_date(:startDate,'yyyy-mm-dd hh24:mi:ss')"
                          + " and t.create_date<= to_date(:endDate,'yyyy-mm-dd hh24:mi:ss') + 1"
                          + " and t.plat_id in ("
                          + sqlPlat.ToString()
                          + ")"
                          + sb.ToString());

            param = this.DbFacade.CreateParameter();
            param.ParameterName = "orgid";
            param.DbType        = DbType.String;
            param.Value         = input.CurOrgId;
            parameters.Add(param);

            param = this.DbFacade.CreateParameter();
            param.ParameterName = "returnState";
            param.DbType        = DbType.String;
            param.Value         = input.ReturnState;
            parameters.Add(param);

            param = this.DbFacade.CreateParameter();
            param.ParameterName = "startDate";
            param.DbType        = DbType.String;
            param.Value         = input.StartDate;
            parameters.Add(param);

            param = this.DbFacade.CreateParameter();
            param.ParameterName = "endDate";
            param.DbType        = DbType.String;
            param.Value         = input.EndDate;
            parameters.Add(param);

            try
            {
                rows = base.GetRowCount(strSql.ToString(), parameters.ToArray());
                //该sql需要用户自己绑定:highRowNum(该页的最大记录行数)和:lowRowNum(该页的最小记录行数)参数.
                DbParameter highIndexPara = DbFacade.CreateParameter();
                highIndexPara.ParameterName = "highRowNum";
                highIndexPara.DbType        = DbType.Int32;
                highIndexPara.Value         = PageUtils.GetHighIndexOfPage(int.Parse(pageParam.PageNum), int.Parse(pageParam.PageSize));
                parameters.Add(highIndexPara);

                DbParameter lowIndexPara = DbFacade.CreateParameter();
                lowIndexPara.ParameterName = "lowRowNum";
                lowIndexPara.DbType        = DbType.Int32;
                lowIndexPara.Value         = PageUtils.GetLowIndexOfPage(int.Parse(pageParam.PageNum), int.Parse(pageParam.PageSize));
                parameters.Add(lowIndexPara);

                dt = DbFacade.SQLExecuteDataTable(GetPagedSql(strSql.ToString()), parameters.ToArray());
            }
            catch (Exception e)
            {
                throw e;
            }

            return(dt);
        }