Ejemplo n.º 1
0
        public static List <GoodsInfoDto> GetTodayGoodsByStore(long accountUnitId, long departId, long storeId, long productPlanId)
        {
            var list   = new List <GoodsInfoDto>();
            var bill   = new JoinAlias(typeof(ProduceOutput));
            var detail = new JoinAlias(typeof(ProduceOutput_Detail));
            var query  = new DQueryDom(bill);

            query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(bill, "ID", detail, "ProduceOutput_ID"));
            query.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", accountUnitId));

            //query.Where.Conditions.Add(DQCondition.EQ("Department_ID", departId));
            //DQCondition.EQ(string.Format("Department_TreeDeep{0}ID", context.Department_Depth), context.Department_ID)

            query.Where.Conditions.Add(DQCondition.EQ(bill, "Domain_ID", DomainContext.Current.ID));
            query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核));
            query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual(bill, "Time", DateTime.Today.AddDays(-3)), DQCondition.LessThanOrEqual(bill, "Time", DateTime.Today.AddDays(1))));
            //query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(bill, "Time", DateTime.Today));
            //query.Where.Conditions.Add(DQCondition.LessThan(bill, "Time", DateTime.Today.AddDays(1)));
            query.Where.Conditions.Add(DQCondition.EQ("FrozenStore_ID", storeId));
            query.Where.Conditions.Add(DQCondition.EQ("PlanNumber_ID", productPlanId));
            query.Where.Conditions.Add(DQCondition.NotInSubQuery(DQExpression.Field(detail, "Goods_ID"), GetTodayGoodsByStoreSubQuery(accountUnitId, departId, storeId, productPlanId)));
            query.Where.Conditions.EFieldInList(DQExpression.Field(bill, "PlanNumber_ID"), GetProductPlan().Select(x => x.ID).ToArray());

            OrganizationUtil.AddOrganizationLimit(query, typeof(ProduceOutput));

            query.Columns.Add(DQSelectColumn.Field("Goods_ID", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_Name", detail));
            //query.Columns.Add(DQSelectColumn.Field("Goods_InnerPackingPer", detail));
            query.Columns.Add(DQSelectColumn.Sum(detail, "Number"));
            query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Sum(DQExpression.Field(detail, "Number")), DQExpression.Field(detail, "Goods_InnerPackingPer")), "InnerPackingPer"));
            query.Columns.Add(DQSelectColumn.Field("Goods_InnerPackingPer", detail));
            //query.Columns.Add(DQSelectColumn.Create(DQExpression.Divide(DQExpression.Field(detail,"Number"),DQExpression.Field(detail, "Goods_InnerPackingPer")),"包装数"));


            query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_ID"));
            query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_Name"));
            query.GroupBy.Expressions.Add(DQExpression.Field(detail, "Goods_InnerPackingPer"));

            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var goods = new GoodsInfoDto
                        {
                            Goods_ID              = (long)reader[0],
                            Goods_Name            = (string)reader[1],
                            Number                = (decimal?)(Money <decimal>?)reader[2],
                            InnerPackingPer       = (decimal?)reader[3],
                            Goods_InnerPackingPer = (decimal?)reader[4]
                        };
                        list.Add(goods);
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 2
0
        private AddOrderRecordCommand GenerateOrder(OrderInput input, GoodsInfoDto goods, double discount)
        {
            var orderNo         = OrderHelper.GenerateOrderNo(OrderType.Order, input.SellType);
            var orderOriginCost = input.Count * input.UnitPrice;
            var orderCost       = orderOriginCost * discount;

            return(new AddOrderRecordCommand(Guid.NewGuid().ToString(), orderNo, goods.Id, goods.AuthRankId, _lotterySession.SystemTypeId, OrderSourceType.V1,
                                             input.Count, input.UnitPrice, orderOriginCost, orderCost, input.SellType, _lotterySession.UserId));
        }
Ejemplo n.º 3
0
        static List <GoodsInfoDto> GetListByDquery(DQueryDom query)
        {
            var list = new List <GoodsInfoDto>();

            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var dto = new GoodsInfoDto();
                        dto.Goods_ID                   = (long)reader[0];
                        dto.Goods_Name                 = (string)reader[1];
                        dto.Goods_MainUnit             = (string)reader[2];
                        dto.Goods_SecondUnit           = (string)reader[3];
                        dto.Goods_UnitConvertDirection = (NamedValue <主辅转换方向>?)reader[4];
                        dto.Goods_MainUnitRatio        = (Money <decimal>?)reader[5];
                        dto.Goods_SecondUnitRatio      = (Money <decimal>?)reader[6];
                        dto.Goods_Code                 = (string)reader[7];
                        if (dto.Goods_MainUnitRatio == null)
                        {
                            dto.Goods_MainUnitRatio = 1;
                        }
                        if (dto.Goods_SecondUnitRatio == null)
                        {
                            dto.Goods_SecondUnitRatio = 1;
                        }

                        dto.SecondUnitII = (string)reader[8];
                        dto.SecondUnitII_MainUnitRatio   = Convert.ToDecimal(reader[9]);
                        dto.SecondUnitII_SecondUnitRatio = Convert.ToDecimal(reader[10]);

                        dto.GoodsProperty_ID          = (long?)reader[11];
                        dto.GoodsProperty_Name        = (string)reader[12];
                        dto.GoodsPropertyCatalog_Name = (string)reader[13];
                        //            dto.GoodsPropertyCatalog_Sort = (int?)reader[14];
                        dto.Goods_Spell = (string)reader[14];
                        dto.Goods_Spec  = (string)reader[15];



                        list.Add(dto);
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 4
0
        public static GoodsInfoDto Get(long?id)
        {
            if (id == null)
            {
                return(null);
            }
            var goodsInfo = new GoodsInfoDto();

            var goods = WebBLUtil.GetSingleDmo <Goods>("ID", id, "SecondUnit", "UnitConvertDirection", "MainUnit", "MainUnitRatio", "SecondUnitRatio");

            goodsInfo.Goods_SecondUnit           = goods.SecondUnit;
            goodsInfo.Goods_MainUnit             = goods.MainUnit;
            goodsInfo.Goods_UnitConvertDirection = goods.UnitConvertDirection;
            goodsInfo.Goods_MainUnitRatio        = goods.MainUnitRatio;
            goodsInfo.Goods_SecondUnitRatio      = goods.SecondUnitRatio;
            return(goodsInfo);
        }
Ejemplo n.º 5
0
        public static List <GoodsInfoDto> GetProductInStoreTemplate(string input)
        {
            var list                = new List <GoodsInfoDto>();
            var productInStore      = new JoinAlias(typeof(ProductInStoreTemplate));
            var productInStoreGoods = new JoinAlias(typeof(ProductInStoreTemplate_GoodsDetail));
            var goods               = new JoinAlias(typeof(Goods));
            var query               = new DQueryDom(productInStoreGoods);

            query.From.AddJoin(JoinType.Left, new DQDmoSource(productInStore), DQCondition.EQ(productInStore, "ID", productInStoreGoods, "ProductInStoreTemplate_ID"));
            query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(productInStoreGoods, "Goods_ID", goods, "ID"));
            query.Range = SelectRange.Top(200);
            query.Where.Conditions.Add(DQCondition.EQ(productInStore, "Stopped", false));
            if (!string.IsNullOrWhiteSpace(input))
            {
                query.Where.Conditions.Add(DQCondition.Or(DQCondition.Like(goods, "Name", input), DQCondition.Like(goods, "Code", input), DQCondition.Like(goods, "Spell", input)));
            }
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create(goods, "Name"));
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create(goods, "Code"));

            query.Columns.Add(DQSelectColumn.Field("ID", goods));
            query.Columns.Add(DQSelectColumn.Field("Name", goods));
            query.Columns.Add(DQSelectColumn.Field("MainUnit", goods));
            query.Columns.Add(DQSelectColumn.Field("SecondUnit", goods));
            query.Columns.Add(DQSelectColumn.Field("UnitConvertDirection", goods));
            query.Columns.Add(DQSelectColumn.Field("MainUnitRatio", goods));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitRatio", goods));
            query.Columns.Add(DQSelectColumn.Field("Code", goods));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID", goods));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name", goods));
            query.Columns.Add(DQSelectColumn.Field("GoodsPropertyCatalog_Name", goods));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII", goods));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_MainUnitRatio", goods));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_SecondUnitRatio", goods));
            query.Columns.Add(DQSelectColumn.Field("Spec", goods));
            query.Distinct = true;

            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var dto = new GoodsInfoDto();
                        dto.Goods_ID                   = (long)reader[0];
                        dto.Goods_Name                 = (string)reader[1];
                        dto.Goods_MainUnit             = (string)reader[2];
                        dto.Goods_SecondUnit           = (string)reader[3];
                        dto.Goods_UnitConvertDirection = (NamedValue <主辅转换方向>?)reader[4];

                        dto.Goods_MainUnitRatio   = (Money <decimal>?)reader[5];
                        dto.Goods_SecondUnitRatio = (Money <decimal>?)reader[6];
                        dto.Goods_Code            = (string)reader[7];
                        if (dto.Goods_MainUnitRatio == null)
                        {
                            dto.Goods_MainUnitRatio = 1;
                        }
                        if (dto.Goods_SecondUnitRatio == null)
                        {
                            dto.Goods_SecondUnitRatio = 1;
                        }
                        dto.GoodsProperty_ID          = (long?)reader[8];
                        dto.GoodsProperty_Name        = (string)reader[9];
                        dto.GoodsPropertyCatalog_Name = (string)reader[10];
                        dto.SecondUnitII = (string)reader[11];
                        dto.SecondUnitII_MainUnitRatio   = Convert.ToDecimal(reader[12]);
                        dto.SecondUnitII_SecondUnitRatio = Convert.ToDecimal(reader[13]);
                        dto.Goods_Spec = (string)(reader[14]);

                        list.Add(dto);
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 6
0
        public static List <GoodsInfoDto> GetAllSettingedGoods(int pageIndex, int pageSize)
        {
            var list      = new List <GoodsInfoDto>();
            var joinGoods = new JoinAlias(typeof(Goods));
            //      var goodsProperty = new JoinAlias(typeof(GoodsProperty));
            //      var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
            var query = new DQueryDom(joinGoods);

            query.Where.Conditions.Add(DQCondition.EQ("Stopped", false));
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Name"));
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Code"));


            query.Columns.Add(DQSelectColumn.Field("ID"));
            query.Columns.Add(DQSelectColumn.Field("Name"));
            query.Columns.Add(DQSelectColumn.Field("MainUnit"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnit"));
            query.Columns.Add(DQSelectColumn.Field("UnitConvertDirection"));
            query.Columns.Add(DQSelectColumn.Field("MainUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("Code"));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID"));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name"));
            query.Columns.Add(DQSelectColumn.Field("GoodsPropertyCatalog_Name"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_MainUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_SecondUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("Spec"));

            query.Where.Conditions.Add(DQCondition.InSubQuery(DQExpression.Field("ID"), GetAllSettingedGoodsSubQuery()));

            query.Range = new SelectRange(pageIndex * pageSize, pageSize);

            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var dto = new GoodsInfoDto();
                        dto.Goods_ID                   = (long)reader[0];
                        dto.Goods_Name                 = (string)reader[1];
                        dto.Goods_MainUnit             = (string)reader[2];
                        dto.Goods_SecondUnit           = (string)reader[3];
                        dto.Goods_UnitConvertDirection = (NamedValue <主辅转换方向>?)reader[4];
                        dto.Goods_MainUnitRatio        = (Money <decimal>?)reader[5];
                        dto.Goods_SecondUnitRatio      = (Money <decimal>?)reader[6];
                        dto.Goods_Code                 = (string)reader[7];
                        if (dto.Goods_MainUnitRatio == null)
                        {
                            dto.Goods_MainUnitRatio = 1;
                        }
                        if (dto.Goods_SecondUnitRatio == null)
                        {
                            dto.Goods_SecondUnitRatio = 1;
                        }
                        dto.GoodsProperty_ID          = (long?)reader[8];
                        dto.GoodsProperty_Name        = (string)reader[9];
                        dto.GoodsPropertyCatalog_Name = (string)reader[10];
                        dto.SecondUnitII = (string)reader[11];
                        dto.SecondUnitII_MainUnitRatio   = Convert.ToDecimal(reader[12]);
                        dto.SecondUnitII_SecondUnitRatio = Convert.ToDecimal(reader[13]);
                        dto.Goods_Spec = (string)(reader[14]);

                        list.Add(dto);
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 7
0
        public static List <GoodsInfoDto> GetByDepartPlan(long?departId, long?productionPlanId = null, string productionPlanNumber = "")
        {
            if (departId == null || departId == 0)
            {
                throw new Exception("员工档案上没有配置部门");
            }
            var list   = new List <GoodsInfoDto>();
            var bill   = new JoinAlias(typeof(ProductPlan));
            var detail = new JoinAlias(typeof(ProductPlan_OutputDetail));
            var goods  = new JoinAlias(typeof(Goods));
            var query  = new DQueryDom(bill);

            query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(bill, "ID", detail, "ProductPlan_ID"));
            query.From.AddJoin(JoinType.Left, new DQDmoSource(goods), DQCondition.EQ(goods, "ID", detail, "Goods_ID"));

            //query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(bill, "Date", DateTime.Today));
            //query.Where.Conditions.Add(DQCondition.LessThan(bill, "Date", DateTime.Today.AddDays(1)));
            query.Where.Conditions.Add(DQCondition.EQ(bill, "BillState", 单据状态.已审核));
            //if(productionPlanId!=null)
            //  query.Where.Conditions.Add(DQCondition.EQ(bill, "ID", productionPlanId));
            if (productionPlanNumber != "")
            {
                query.Where.Conditions.Add(DQCondition.EQ(bill, "PlanNumber", productionPlanNumber));
            }
            //      query.Where.Conditions.Add(B3ButcheryUtil.部门或上级部门条件(departId??0, bill));
            OrganizationUtil.AddOrganizationLimit(query, typeof(ProductPlan));

            query.Columns.Add(DQSelectColumn.Field("Goods_ID", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_Name", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_MainUnit", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnit", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_UnitConvertDirection", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_MainUnitRatio", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnitRatio", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_Code", detail));

            query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnitII", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnitII_MainUnitRatio", detail));
            query.Columns.Add(DQSelectColumn.Field("Goods_SecondUnitII_SecondUnitRatio", detail));

            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID", goods));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name", goods));
            query.Columns.Add(DQSelectColumn.Field("GoodsPropertyCatalog_Name", goods));
            query.Distinct = true;
            query.Where.Conditions.Add(DQCondition.EQ(bill, "Domain_ID", DomainContext.Current.ID));
            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var dto = new GoodsInfoDto();
                        dto.Goods_ID                   = (long)reader[0];
                        dto.Goods_Name                 = (string)reader[1];
                        dto.Goods_MainUnit             = (string)reader[2];
                        dto.Goods_SecondUnit           = (string)reader[3];
                        dto.Goods_UnitConvertDirection = (NamedValue <主辅转换方向>?)reader[4];
                        dto.Goods_MainUnitRatio        = (Money <decimal>?)reader[5];
                        dto.Goods_SecondUnitRatio      = (Money <decimal>?)reader[6];
                        dto.Goods_Code                 = (string)reader[7];
                        if (dto.Goods_MainUnitRatio == null)
                        {
                            dto.Goods_MainUnitRatio = 1;
                        }
                        if (dto.Goods_SecondUnitRatio == null)
                        {
                            dto.Goods_SecondUnitRatio = 1;
                        }

                        dto.SecondUnitII = (string)reader[8];
                        dto.SecondUnitII_MainUnitRatio   = Convert.ToDecimal(reader[9]);
                        dto.SecondUnitII_SecondUnitRatio = Convert.ToDecimal(reader[10]);

                        dto.GoodsProperty_ID          = (long?)reader[11];
                        dto.GoodsProperty_Name        = (string)reader[12];
                        dto.GoodsPropertyCatalog_Name = (string)reader[13];

                        list.Add(dto);
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 8
0
        public static List <GoodsInfoDto> GetAllGoods(string input)
        {
            var list      = new List <GoodsInfoDto>();
            var joinGoods = new JoinAlias(typeof(Goods));
            //      var goodsProperty = new JoinAlias(typeof(GoodsProperty));
            //      var goodsPropertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog));
            var query = new DQueryDom(joinGoods);

            //query.Range = SelectRange.Top(100);
            query.Where.Conditions.Add(DQCondition.EQ("Stopped", false));
            if (!string.IsNullOrWhiteSpace(input))
            {
                query.Where.Conditions.Add(DQCondition.Or(DQCondition.Like("Name", input), DQCondition.Like("Code", input), DQCondition.Like("Spell", input)));
            }
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Name"));
            query.OrderBy.Expressions.Add(DQOrderByExpression.Create("Code"));
            //query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));

            query.Columns.Add(DQSelectColumn.Field("ID"));
            query.Columns.Add(DQSelectColumn.Field("Name"));
            query.Columns.Add(DQSelectColumn.Field("MainUnit"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnit"));
            query.Columns.Add(DQSelectColumn.Field("UnitConvertDirection"));
            query.Columns.Add(DQSelectColumn.Field("MainUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("Code"));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_ID"));
            query.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name"));
            query.Columns.Add(DQSelectColumn.Field("GoodsPropertyCatalog_Name"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_MainUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("SecondUnitII_SecondUnitRatio"));
            query.Columns.Add(DQSelectColumn.Field("Spec"));


            using (var session = Dmo.NewSession())
            {
                using (var reader = session.ExecuteReader(query))
                {
                    while (reader.Read())
                    {
                        var dto = new GoodsInfoDto();
                        dto.Goods_ID                   = (long)reader[0];
                        dto.Goods_Name                 = (string)reader[1];
                        dto.Goods_MainUnit             = (string)reader[2];
                        dto.Goods_SecondUnit           = (string)reader[3];
                        dto.Goods_UnitConvertDirection = (NamedValue <主辅转换方向>?)reader[4];
                        dto.Goods_MainUnitRatio        = (Money <decimal>?)reader[5];
                        dto.Goods_SecondUnitRatio      = (Money <decimal>?)reader[6];
                        dto.Goods_Code                 = (string)reader[7];
                        if (dto.Goods_MainUnitRatio == null)
                        {
                            dto.Goods_MainUnitRatio = 1;
                        }
                        if (dto.Goods_SecondUnitRatio == null)
                        {
                            dto.Goods_SecondUnitRatio = 1;
                        }
                        dto.GoodsProperty_ID          = (long?)reader[8];
                        dto.GoodsProperty_Name        = (string)reader[9];
                        dto.GoodsPropertyCatalog_Name = (string)reader[10];
                        dto.SecondUnitII = (string)reader[11];
                        dto.SecondUnitII_MainUnitRatio   = Convert.ToDecimal(reader[12]);
                        dto.SecondUnitII_SecondUnitRatio = Convert.ToDecimal(reader[13]);
                        dto.Goods_Spec = (string)(reader[14]);

                        list.Add(dto);
                    }
                }
            }
            return(list);
        }