Exemplo n.º 1
0
        private void btnRefresh_Click(object sender, EventArgs e)
        {
            string message = string.Empty;

            try
            {
                //this.list = PharmacyDatabaseService.GetOutInventoryByStatus(out message, (int)this.Status).OrderBy(r => r.CreateTime).ToList();

                Business.Models.SalesOrderOutInventoryQueryModel q = new Business.Models.SalesOrderOutInventoryQueryModel
                {
                    OutInventoryStatusValue = (int)this.Status,
                    FirstCheckerUserId      = base.CurrentUser.Id,
                    SecondCheckerUserInd    = base.CurrentUser.Id
                };
                this.list = PharmacyDatabaseService.GetWaitingOutInventoryList(q, out msg).ToList();
                dgvOutInventory.DataSource = list;
            }
            catch (Exception)
            {
                MessageBox.Show("检索出库单失败!" + message);
            }
        }
        /// <summary>
        /// 根据OutInventory表中的OutInventoryStatus字段状态,读取出库表,用于拣货、复核等操作
        /// </summary>
        /// <param name="q"></param>
        /// <returns></returns>
        public System.Collections.Generic.IEnumerable <Business.Models.SalesOrderOutInventoryModel> GetWaitingOutInventoryList(Business.Models.SalesOrderOutInventoryQueryModel q)
        {
            var all = RepositoryProvider.Db.OutInventorys.Where(r => r.OutInventoryStatusValue == q.OutInventoryStatusValue);

            if (q.OutInventoryStatusValue == (int)OutInventoryStatus.Outing)
            {
                all = all.Where(r => r.OrderOutInventoryCheckUserID == q.FirstCheckerUserId);
            }

            if (q.OutInventoryStatusValue == (int)OutInventoryStatus.important)
            {
                all = all.Where(r => r.SpecialDrugSecondChecker == q.SecondCheckerUserInd);
            }

            var re = from i in all
                     join j in RepositoryProvider.Db.SalesOrders on i.SalesOrderID equals j.Id
                     join userinfo in RepositoryProvider.Db.Users on i.storekeeperId equals userinfo.Id
                     select new Business.Models.SalesOrderOutInventoryModel
            {
                Id                    = i.Id,
                OrderCode             = j.OrderCode,
                SalesOrderCreateTime  = j.CreateTime,
                OutInventoryTypeValue = i.OutInventoryTypeValue,
                SalerName             = j.SalerName,
                OutInventoryOrderCode = i.OrderCode,
                InventoryKeeper       = userinfo.Employee.Name,
                SalesOrderId          = j.Id
            };

            return(re.OrderBy(r => r.OrderCode));
        }