Beispiel #1
0
        public List <GoodsBaseInfoVM> GetAllGoodsBaseInfo()
        {
            GoodsBaseInfo info = new GoodsBaseInfo();
            OQL           q    = OQL.From(info).Select().END;

            return(GetGoodsBaseInfoList(q));
        }
Beispiel #2
0
        /// <summary>
        /// 获取商品销售价格信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable <GoodsSaleInfoVM> GetGoodsSaleInfo()
        {
            GoodsBaseInfo bInfo = new GoodsBaseInfo();
            GoodsStock    stock = new GoodsStock();
            OQL           joinQ = OQL.From(bInfo)
                                  .Join(stock).On(bInfo.SerialNumber, stock.SerialNumber)
                                  .Select(bInfo.GoodsName, bInfo.Manufacturer, bInfo.SerialNumber, stock.GoodsPrice, stock.MakeOnDate, bInfo.CanUserMonth, stock.Stocks, stock.GoodsID)
                                  .OrderBy(bInfo.GoodsName, "asc")
                                  .END;

            PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelper();
            EntityContainer ec = new EntityContainer(joinQ, db);

            ec.Execute();
            var result = ec.Map <GoodsSaleInfoVM>(e =>
            {
                e.GoodsName    = ec.GetItemValue <string>(0);
                e.Manufacturer = ec.GetItemValue <string>(1);
                e.SerialNumber = ec.GetItemValue <string>(2);
                e.GoodsPrice   = ec.GetItemValue <decimal>(3);
                e.MakeOnDate   = ec.GetItemValue <DateTime>(4);
                e.CanUserMonth = ec.GetItemValue <int>(5);
                e.Stocks       = ec.GetItemValue <int>(6);
                e.GoodsID      = ec.GetItemValue <int>(7);
                return(e);
            }
                                                  );

            return(result);
        }
Beispiel #3
0
        private int GetOverDays(string serialNumber, int goodsID, out decimal goodsPrice, out int stockCount)
        {
            //计算距离过期时间
            GoodsBaseInfo bInfo = new GoodsBaseInfo();

            bInfo.SerialNumber = serialNumber;
            OQL q = OQL.From(bInfo)
                    .Select(bInfo.CanUserMonth)
                    .Where(bInfo.SerialNumber)
                    .END;

            bInfo = EntityQuery <GoodsBaseInfo> .QueryObject(q);

            int canUseMonth = bInfo.CanUserMonth;

            GoodsStock stock = new GoodsStock();

            stock.GoodsID = goodsID;
            EntityQuery <GoodsStock> .Fill(stock);

            goodsPrice = stock.GoodsPrice;
            stockCount = stock.Stocks;
            //距离过期时间
            int overDays = canUseMonth * 30 - DateTime.Now.Subtract(stock.MakeOnDate).Days;

            return(overDays);
        }
Beispiel #4
0
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblMsg.Text = "Selected id=" + GridView1.SelectedRow.Cells[1].Text;
            //关键,必须为主键控件赋值
            this.dlCHJLH.Text = GridView1.SelectedRow.Cells[1].Text;
            //填充数据
            MyWebForm.Instance.AutoSelectIBForm(this.Controls);

            //设置下拉框的选项
            //得到当前条码号
            string         sn   = this.dtbSN.Text;
            GoodsManageBIZ biz  = new GoodsManageBIZ();
            GoodsBaseInfo  info = biz.GetGoodsBaseInfo(sn);

            this.ddlGoodsNames.Text = info.GoodsName;

            List <GoodsBaseInfoVM> list = biz.GetGoodsBaseInfoWhithGoodsName(info.GoodsName);

            this.ddlManufacturer.DataTextField  = "Manufacturer";
            this.ddlManufacturer.DataValueField = "SerialNumber";
            this.ddlManufacturer.DataSource     = list;
            this.ddlManufacturer.DataBind();

            this.ddlManufacturer.SelectedValue = sn;
        }
Beispiel #5
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (dbtSN.Text.Trim() == "")
            {
                lblMsg.Text = "没有条码号,请输入!";
                return;
            }
            //实例化一个控件数据映射对象
            ControlDataMap cdm = new ControlDataMap();
            //收集数据到实体对象
            GoodsBaseInfo info = cdm.CollectDataToObject <GoodsBaseInfo>(
                MyWebForm.GetIBControls(this.tbGoosBaseInfo.Controls)
                );
            //调用业务类,保存数据
            GoodsManageBIZ biz = new GoodsManageBIZ();

            if (biz.SaveGoodsBaseInfo(info))
            {
                lblMsg.Text = "保存成功!";
            }
            else
            {
                lblMsg.Text = "保存失败.";
            }

            bindGrid();
        }
Beispiel #6
0
        /// <summary>
        /// 根据商品名称为顺序获取所有商品基本信息
        /// </summary>
        /// <returns></returns>
        public List <GoodsBaseInfoVM> GetAllGoodsBaseInfoOrderByNames()
        {
            GoodsBaseInfo info = new GoodsBaseInfo();
            OQL           q    = new OQL(info);

            q.Select(info.SerialNumber, info.GoodsName, info.Manufacturer, info.CanUserMonth)
            .OrderBy(info.GoodsName, "asc");
            return(GetGoodsBaseInfoList(q));
        }
Beispiel #7
0
        /// <summary>
        /// 获取一条商品信息
        /// </summary>
        /// <param name="sn">条码号</param>
        /// <returns></returns>
        public GoodsBaseInfo GetGoodsBaseInfo(string sn)
        {
            GoodsBaseInfo info = new GoodsBaseInfo()
            {
                SerialNumber = sn
            };

            EntityQuery <GoodsBaseInfo> .Fill(info);

            return(info);
        }
Beispiel #8
0
        public int GetAllGoodsBaseInfoCount()
        {
            GoodsBaseInfo info = new GoodsBaseInfo();
            OQL           q    = new OQL(info);

            q.Select()
            .Count(info.SerialNumber, "Count");

            GoodsBaseInfo infoCount = EntityQuery <GoodsBaseInfo> .QueryObject(q);

            return(Convert.ToInt32(infoCount.PropertyList("Count")));
        }
Beispiel #9
0
        public List <GoodsBaseInfoVM> GetGoodsBaseInfoList(int pageSize, int pageNumber, int allCount)
        {
            GoodsBaseInfo info = new GoodsBaseInfo();
            OQL           q    = new OQL(info);

            q.Select()
            .OrderBy(info.SerialNumber, "asc");
            q.Limit(pageSize, pageNumber);
            q.PageWithAllRecordCount = allCount;

            return(GetGoodsBaseInfoList(q));
        }
Beispiel #10
0
        /// <summary>
        /// 获取指定商品名称下面的商品信息
        /// </summary>
        /// <param name="goodsName">商品名称</param>
        /// <returns></returns>
        public List <GoodsBaseInfoVM> GetGoodsBaseInfoWhithGoodsName(string goodsName)
        {
            GoodsBaseInfo info = new GoodsBaseInfo();

            info.GoodsName = goodsName;
            OQL q = new OQL(info);

            q.Select(info.SerialNumber, info.GoodsName, info.Manufacturer, info.CanUserMonth)
            .Where(info.GoodsName)
            .OrderBy(info.GoodsName, "asc");
            return(GetGoodsBaseInfoList(q));
        }
Beispiel #11
0
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblMsg.Text = "Selected id=" + GridView1.SelectedRow.Cells[1].Text;
            string sn = GridView1.SelectedRow.Cells[1].Text;
            //调用业务层方法获取实体
            GoodsManageBIZ biz  = new GoodsManageBIZ();
            GoodsBaseInfo  info = biz.GetGoodsBaseInfo(sn);

            //将实体与页面控件绑定
            WebControlDataMap.FillDataFromEntityClass(info,
                                                      MyWebForm.GetIBControls(this.tbGoosBaseInfo.Controls)
                                                      );
        }
Beispiel #12
0
        /// <summary>
        /// 获取商品名称分组
        /// </summary>
        /// <returns></returns>
        public List <string> GetAllGoodsNames()
        {
            GoodsBaseInfo info = new GoodsBaseInfo();
            OQL           q    = new OQL(info);

            q.Select(info.GoodsName)
            .GroupBy(info.GoodsName)
            .OrderBy(info.GoodsName, "asc");
            List <GoodsBaseInfo> list = EntityQuery <GoodsBaseInfo> .QueryList(q);

            var result = list.ConvertAll <string>(p => p.GoodsName);

            return(result);
        }
Beispiel #13
0
        /// <summary>
        /// 保存商品信息
        /// </summary>
        /// <param name="info">商品信息</param>
        /// <returns></returns>
        /// <remarks>该方法会自动探测实体对象是新增的还是修改的,如果要求较快速度,请调用Insert或者Update方法</remarks>
        public bool SaveGoodsBaseInfo(GoodsBaseInfo info)
        {
            EntityQuery <GoodsBaseInfo> query = new EntityQuery <GoodsBaseInfo>(info);

            return(query.SaveAllChanges() > 0);
        }
Beispiel #14
0
 /// <summary>
 /// 修改商品信息
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public bool UpdateGoodsBaseInfo(GoodsBaseInfo info)
 {
     return(EntityQuery <GoodsBaseInfo> .Instance.Update(info) > 0);
 }
Beispiel #15
0
 /// <summary>
 /// 增加商品信息
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public bool AddGoodsBaseInfo(GoodsBaseInfo info)
 {
     return(EntityQuery <GoodsBaseInfo> .Instance.Insert(info) > 0);
 }
Beispiel #16
0
        /// <summary>
        /// 获取商品销售价格信息
        /// </summary>
        /// <returns></returns>
        public IEnumerable <GoodsSaleInfoVM> GetGoodsSaleInfo()
        {
            GoodsBaseInfo bInfo = new GoodsBaseInfo();
            GoodsStock    stock = new GoodsStock();

            /*
             * Select采用指定详细实体类属性的方式:
             * OQL joinQ = OQL.From(bInfo)
             *  .Join(stock).On(bInfo.SerialNumber, stock.SerialNumber)
             *  .Select(
             *          bInfo.GoodsName,
             *          bInfo.Manufacturer,
             *          bInfo.SerialNumber,
             *          stock.GoodsPrice,
             *          stock.MakeOnDate,
             *          bInfo.CanUserMonth,
             *          stock.Stocks,
             *          stock.GoodsID)
             *  .OrderBy(bInfo.GoodsName, "asc")
             *  .END;
             */

            //Select 方法不指定具体要选择的实体类属性,可以推迟到EntityContainer类的MapToList 方法上指定
            OQL joinQ = OQL.From(bInfo)
                        .Join(stock).On(bInfo.SerialNumber, stock.SerialNumber)
                        .Select()
                        .OrderBy(bInfo.SerialNumber, "asc").OrderBy(bInfo.GoodsName, "asc")
                        .END;

            joinQ.Limit(3, 3);

            PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelper();
            EntityContainer ec = new EntityContainer(joinQ, db);

            /*
             * 如果OQL的Select方法指定了详细的实体类属性,那么映射结果,可以采取下面的方式:
             * var result = ec.Map<GoodsSaleInfoVM>(e =>
             *  {
             *      e.GoodsName = ec.GetItemValue<string>(0);
             *      e.Manufacturer = ec.GetItemValue<string>(1);
             *      e.SerialNumber  = ec.GetItemValue<string>(2);
             *      e.GoodsPrice  = ec.GetItemValue<decimal>(3);
             *      e.MakeOnDate = ec.GetItemValue<DateTime>(4);
             *      e.CanUserMonth = ec.GetItemValue<int>(5);
             *      e.Stocks = ec.GetItemValue<int>(6);
             *      e.GoodsID = ec.GetItemValue<int>(7);
             *      return e;
             *  }
             * );
             */
            var result = ec.MapToList <GoodsSaleInfoVM>(() => new GoodsSaleInfoVM()
            {
                GoodsName    = bInfo.GoodsName,
                Manufacturer = bInfo.Manufacturer,
                SerialNumber = bInfo.SerialNumber,
                GoodsPrice   = stock.GoodsPrice,
                MakeOnDate   = stock.MakeOnDate,
                CanUserMonth = bInfo.CanUserMonth,
                Stocks       = stock.Stocks,
                GoodsID      = stock.GoodsID,
                ExpireDate   = stock.MakeOnDate.AddMonths(bInfo.CanUserMonth)
            });

            return(result);
        }