/// <summary>
        /// 查询退货账单
        /// </summary>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        private List <ReceiveBillMain> QueryBackBill(string startDate, string endDate, string userId)
        {
            List <ReceiveBillMain> previewList = new List <ReceiveBillMain>();
            List <ConditionFun.SqlqueryCondition> conditionList = new List <ConditionFun.SqlqueryCondition>();

            //查询总店的所有应收出货单
            conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, OUT00Table.SHOP_ID, Comparison.Equals, shopId, false, false));
            //退货单时间
            conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.INPUT_DATE, Comparison.GreaterOrEquals, startDate, false, false));
            conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.INPUT_DATE, Comparison.LessOrEquals, endDate, false, false));
            //退货单状态为2=核准
            conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.STATUS, Comparison.Equals, 2, false, false));

            List <IN_BACK00> backList = selectHelper.Select <IN_BACK00>(true, 5000, null, 0, 5000, conditionList, new List <string>()
            {
                "SHOP_ID"
            }).ExecuteTypedList <IN_BACK00>();

            if (backList == null || backList.Count == 0)
            {
                return(previewList);
            }

            foreach (IN_BACK00 back00 in backList)
            {
                try
                {
                    //查询退货单明细
                    //明细查询条件
                    List <ConditionFun.SqlqueryCondition> itemConditionList = new List <ConditionFun.SqlqueryCondition>();
                    itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, "SHOP_ID", Comparison.Equals, back00.SHOP_ID, false, false));
                    itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, "IB_ID", Comparison.Equals, back00.IB_ID, false, false));

                    //执行查询
                    List <IN_BACK01> outItemList = selectHelper.Select <IN_BACK01>(false, 0, null, itemConditionList, new List <string>()
                    {
                        "SNo"
                    }).ExecuteTypedList <IN_BACK01>();

                    if (outItemList == null || outItemList.Count == 0)
                    {
                        CommonBll.WriteLog(string.Format("出货单{0}未查询到明细", back00.IB_ID, null));
                        continue;
                    }

                    //出货价格
                    decimal price = 0;
                    //出货成本
                    decimal cost = 0;
                    //遍历出货单明细插入
                    foreach (IN_BACK01 item in outItemList)
                    {
                        //累加出货价
                        price += item.STD_PRICE;
                        //累加成本
                        cost += item.COST;
                    }

                    ReceiveBillMain receiveMain = new ReceiveBillMain();
                    receiveMain.Id        = back00.Id;
                    receiveMain.BILL_TYPE = (int)BillType.BackBill;
                    //建档时间
                    receiveMain.CRT_DATETIME = DateTime.Now;
                    //建档人员
                    receiveMain.CRT_USER_ID = userId;
                    //出货单日期
                    receiveMain.INPUT_DATE = back00.INPUT_DATE;
                    //分店编号
                    receiveMain.IN_SHOP = back00.SHOP_ID;
                    //最后修改日期
                    receiveMain.LAST_UPDATE = DateTime.Now;
                    //备注
                    receiveMain.MEMO = back00.Memo;
                    //修改时间
                    receiveMain.MOD_DATETIME = DateTime.Now;
                    //修改人
                    receiveMain.MOD_USER_ID = userId;
                    //退货单号
                    receiveMain.BILL_ID = back00.IB_ID;
                    //总店编号
                    receiveMain.SHOP_ID = back00.OUT_SHOP;
                    //新建存档状态
                    receiveMain.STATUS = 1;
                    //出货单的建单人
                    receiveMain.USER_ID = back00.USER_ID;

                    //退货总价
                    receiveMain.BILL_AMOUNT = price;
                    //退货总成本
                    receiveMain.BILL_COST = cost;

                    previewList.Add(receiveMain);
                }
                catch (Exception ex)
                {
                    CommonBll.WriteLog(string.Format("汇整退货单{0}发生错误。", back00.IB_ID, ex));
                }
            }

            return(previewList);
        }
        /// <summary>
        /// 查询应收账单
        /// </summary>
        /// <param name="startDate">开始日期</param>
        /// <param name="endDate">结束日期</param>
        /// <param name="userId"></param>
        /// <returns></returns>
        private List <ReceiveBillMain> QueryOutBill(string startDate, string endDate, string userId)
        {
            //拼接查询条件
            List <ConditionFun.SqlqueryCondition> conditionList = QueryOutListCondition(shopId, startDate, endDate);

            //1.查询总部出货表OUT00
            // 1)出货单状态为 2=核准
            // 2)SHOP_ID = 当前登录用户的总部编号
            // 3)在指定日期范围内
            //2.遍历结果 计算成本和价格
            //3.显示预览界面


            List <ReceiveBillMain> previewList = new List <ReceiveBillMain>();


            //1.查询满足条件的出货单
            DataTable dataTable = OUT00Bll.GetInstence().GetDataTable(false, 5000, null, 0, 5000, conditionList, null);

            if (dataTable == null || dataTable.Rows.Count == 0)
            {
                return(previewList);
            }

            //2.遍历查询结果
            foreach (DataRow row in dataTable.Rows)
            {
                try
                {
                    //4.查询出货单明细
                    //明细查询条件
                    List <ConditionFun.SqlqueryCondition> itemConditionList = new List <ConditionFun.SqlqueryCondition>();
                    itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, "SHOP_ID", Comparison.Equals, row["SHOP_ID"], false, false));
                    itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, "OUT_ID", Comparison.Equals, row["OUT_ID"], false, false));

                    //执行查询
                    List <OUT01> outItemList = selectHelper.Select <OUT01>(false, 0, null, itemConditionList, new List <string>()
                    {
                        "SNo"
                    }).ExecuteTypedList <OUT01>();

                    if (outItemList == null || outItemList.Count == 0)
                    {
                        CommonBll.WriteLog(string.Format("出货单{0}未查询到明细", row["OUT_ID"]), null);
                        continue;
                    }

                    //出货价格
                    decimal price = 0;
                    //出货成本
                    decimal cost = 0;
                    //遍历出货单明细插入
                    foreach (OUT01 item in outItemList)
                    {
                        //累加出货价
                        price += item.STD_PRICE;
                        //累加成本
                        cost += item.COST;
                    }

                    ReceiveBillMain receiveMain = new ReceiveBillMain();

                    receiveMain.Id        = Convert.ToInt32(row["Id"].ToString());
                    receiveMain.BILL_TYPE = (int)BillType.OutBill;
                    //建档时间
                    receiveMain.CRT_DATETIME = DateTime.Now;
                    //建档人员
                    receiveMain.CRT_USER_ID = userId;
                    //出货单日期
                    receiveMain.INPUT_DATE = (DateTime)row["INPUT_DATE"];
                    //分店编号
                    receiveMain.IN_SHOP = row["IN_SHOP"].ToString();
                    //最后修改日期
                    receiveMain.LAST_UPDATE = DateTime.Now;
                    //备注
                    receiveMain.MEMO = row["Memo"].ToString();
                    //修改时间
                    receiveMain.MOD_DATETIME = DateTime.Now;
                    //修改人
                    receiveMain.MOD_USER_ID = userId;
                    //出货单号
                    receiveMain.BILL_ID = row["OUT_ID"].ToString();
                    //总店编号
                    receiveMain.SHOP_ID = row["SHOP_ID"].ToString();
                    //新建存档状态
                    receiveMain.STATUS = 1;
                    //出货单的建单人
                    receiveMain.USER_ID = row["USER_ID"].ToString();
                    //出货总价
                    receiveMain.BILL_AMOUNT = price;
                    //出货总成本
                    receiveMain.BILL_COST = cost;

                    previewList.Add(receiveMain);
                }
                catch (Exception ex)
                {
                    CommonBll.WriteLog(string.Format("汇整出货单{0}发生错误。", row["OUT_ID"]), ex);
                }
            }

            return(previewList);
        }