Example #1
0
        public QueryResult QueryProducts(VirtualRequestQueryProductsFilter filter)
        {
            int       totalCount;
            DataTable dt = ObjectFactory <IVirtualRequestQueryDA> .Instance.QueryProducts(filter, out totalCount);

            return(new QueryResult
            {
                Data = dt,
                TotalCount = totalCount
            });
        }
        /// <summary>
        /// 查询商品
        /// </summary>
        /// <param name="queryFilter"></param>
        /// <param name="callback"></param>
        public void QueryProducts(VirtualRequestQueryProductsVM filterVM, Action <int, List <VirtualRequestProductVM> > callback)
        {
            VirtualRequestQueryProductsFilter filter = filterVM.ConvertVM <VirtualRequestQueryProductsVM, VirtualRequestQueryProductsFilter>();
            string relativeUrl = "/InventoryService/VirtualRequest/QueryProducts";

            restClient.QueryDynamicData(relativeUrl, filter, (obj, args) =>
            {
                if (!args.FaultsHandle())
                {
                    List <VirtualRequestProductVM> vmList = new List <VirtualRequestProductVM>();
                    int totalCount = 0;
                    if (args.Result != null && args.Result.Rows != null)
                    {
                        totalCount = args.Result.TotalCount;
                        vmList     = DynamicConverter <VirtualRequestProductVM> .ConvertToVMList(args.Result.Rows);
                    }
                    if (callback != null)
                    {
                        callback(totalCount, vmList);
                    }
                }
            });
        }
Example #3
0
        public DataTable QueryProducts(VirtualRequestQueryProductsFilter filter, out int totalCount)
        {
            totalCount = 0;
            if (filter == null)
            {
                return(null);
            }
            CustomDataCommand dataCommand = null;

            if (filter.StockSysNo.HasValue)
            {
                dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("Inventory_QueryVirtualItems");
            }
            else
            {
                dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("Inventory_QueryVirtualItemsWithInventory");
            }
            PagingInfoEntity pageEntity = PagingInfoToPagingInfoEntity(filter.PagingInfo);

            using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(dataCommand.CommandText, dataCommand, pageEntity, "a.SysNo DESC"))
            {
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.CompanyCode",
                                                             DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);

                sqlBuilder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.AND);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "v.StockType", DbType.AnsiStringFixedLength,
                                                             "@StockType", QueryConditionOperatorType.NotEqual, "MET");
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "v.StockType", DbType.AnsiStringFixedLength,
                                                             "@StockType", QueryConditionOperatorType.IsNull, DBNull.Value);
                sqlBuilder.ConditionConstructor.EndGroupCondition();


                sqlBuilder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.AND);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "v.ShippingType", DbType.AnsiStringFixedLength,
                                                             "@ShippingType", QueryConditionOperatorType.NotEqual, "MET");
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "v.ShippingType", DbType.AnsiStringFixedLength,
                                                             "@ShippingType", QueryConditionOperatorType.IsNull, DBNull.Value);
                sqlBuilder.ConditionConstructor.EndGroupCondition();


                sqlBuilder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.AND);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "v.InvoiceType", DbType.AnsiStringFixedLength,
                                                             "@InvoiceType", QueryConditionOperatorType.NotEqual, "MET");
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "v.InvoiceType", DbType.AnsiStringFixedLength,
                                                             "@InvoiceType", QueryConditionOperatorType.IsNull, DBNull.Value);
                sqlBuilder.ConditionConstructor.EndGroupCondition();

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.ProductID",
                                                             DbType.String, "@ItemCode", QueryConditionOperatorType.Like, filter.ProductID);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.ProductName",
                                                             DbType.String, "@ItemName", QueryConditionOperatorType.Like, filter.ProductName);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.ProductType",
                                                             DbType.Int32, "@ItemType", QueryConditionOperatorType.Equal, GetPorductTypeEnumInt(filter.ProductType));
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.Status",
                                                             DbType.Int32, "@Status", filter.Operator == VirtualRequestQueryProductsFilter.OperationType.Equal ? QueryConditionOperatorType.Equal : QueryConditionOperatorType.NotEqual, (int?)filter.Status);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.PMUserSysNo",
                                                             DbType.Int32, "@PMSysNumber", QueryConditionOperatorType.Equal, filter.PMSysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "b.stockSysNo",
                                                             DbType.Int32, "@WarehouseSysNumber", QueryConditionOperatorType.Equal, filter.StockSysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "d.Category1Sysno",
                                                             DbType.Int32, "@Category1SysNumber", QueryConditionOperatorType.Equal, filter.Category1SysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "d.Category2Sysno",
                                                             DbType.Int32, "@Category2SysNumber", QueryConditionOperatorType.Equal, filter.Category2SysNo);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "d.Category3Sysno",
                                                             DbType.Int32, "@Category3SysNumber", QueryConditionOperatorType.Equal, filter.Category3SysNo);
                dataCommand.CommandText = sqlBuilder.BuildQuerySql();


                DataTable dt = dataCommand.ExecuteDataTable(new EnumColumnList()
                {
                    { "Status", typeof(ECCentral.BizEntity.IM.ProductStatus) }
                });

                totalCount = Convert.ToInt32(dataCommand.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }