Beispiel #1
0
        private void simpleButton_Search_Click(object sender, EventArgs e)
        {
            //if (lookUpEditDepot.EditValue == null)
            //{
            //    MessageBox.Show(Properties.Resources.deptNotNull, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            //    lookUpEditDepot.Focus();
            //    return;
            //}
            Model.ProductCategory temp = this.lookUpEditProductCatogry.EditValue as Model.ProductCategory;
            products = this._productManager.GetProductByCondition(temp == null ? null : temp.ProductCategoryId, this.textEditProductNameOrId.Text, this.lookUpEditDepot.EditValue.ToString());

            stocks = (from p in products
                      select new Model.Stock()
            {
                StockId = Guid.NewGuid().ToString(),
                Product = p,
                ProductId = p.ProductId,
                StockQuantity0 = stockManager.GetTheCount0OfProductByProductId(p, this._depotManager.Get(this.lookUpEditDepot.EditValue.ToString())),
                StockQuantity1 = stockManager.GetTheCountByProduct(p),
                DepotStockQuantity = stockManager.GetTheCount1OfProductByProductId(p, this._depotManager.Get(this.lookUpEditDepot.EditValue.ToString())),
                ProductCategory = p.ProductCategory,
                GetDescription = p.ProductDescription,
                CustomerProductName = p.CustomerProductName,
                Stock0Date = stockManager.Get0DateByProduct(p.ProductId)
            }).ToList <Model.Stock>();


            this.bindingSourceStock.DataSource = stocks;
            this.gridControl1.RefreshDataSource();
            barStaticItemCount.Caption = "共" + stocks.Count + "項";
        }
Beispiel #2
0
        public void Insert(Model.StockCheck stockCheck)
        {
            //
            // todo:add other logic here
            //
            stockCheck.InsertTime = DateTime.Now;
            stockCheck.UpdateTime = DateTime.Now;

            Validate(stockCheck);

            try
            {
                BL.V.BeginTransaction();

                string invoiceKind   = this.GetInvoiceKind().ToLower();
                string sequencekey_y = string.Format("{0}-y-{1}", invoiceKind, stockCheck.InsertTime.Value.Year);
                string sequencekey_m = string.Format("{0}-m-{1}-{2}", invoiceKind, stockCheck.InsertTime.Value.Year, stockCheck.InsertTime.Value.Month);
                string sequencekey_d = string.Format("{0}-d-{1}", invoiceKind, stockCheck.InsertTime.Value.ToString("yyyy-MM-dd"));
                string sequencekey   = invoiceKind;
                SequenceManager.Increment(sequencekey_y);
                SequenceManager.Increment(sequencekey_m);
                SequenceManager.Increment(sequencekey_d);
                SequenceManager.Increment(sequencekey);
                //设置盘点录入表为已校正
                Model.StockEditor stockEditor = stockEditorAccessor.Get(stockCheck.StockEditorId);
                stockEditor.IsStockCheck = true;
                stockEditorAccessor.Update(stockEditor);

                accessor.Insert(stockCheck);

                //Dictionary<string, Model.StockCheckDetail> dic = new Dictionary<string, Book.Model.StockCheckDetail>();
                foreach (Model.StockCheckDetail details in stockCheck.Details)
                {
                    if (details.Product == null || string.IsNullOrEmpty(details.Product.ProductId))
                    {
                        continue;
                    }
                    //if (!dic.ContainsKey(details.Product.ProductId))
                    //    dic.Add(details.Product.ProductId, details);

                    stockCheckDetailAccessor.Insert(details);

                    Model.Stock stock = stockManager.GetStockByProductIdAndDepotPositionId(details.ProductId, details.DepotPositionId);
                    if (stock == null)
                    {
                        stock = new Book.Model.Stock();
                        stock.StockCheckDate   = stockCheck.StockCheckDate;
                        stock.StockId          = Guid.NewGuid().ToString();
                        stock.DepotPositionId  = details.DepotPositionId;
                        stock.DepotId          = stockCheck.DepotId;
                        stock.ProductId        = details.ProductId;
                        stock.StockQuantityOld = 0;
                        stock.StockQuantity1   = details.StockCheckQuantity;
                        stock.IsNotUpdate      = true;
                        stockManager.Insert(stock);
                    }
                    else
                    {
                        stock.StockCheckDate   = stockCheck.StockCheckDate;
                        stock.DepotPositionId  = details.DepotPositionId;
                        stock.StockQuantityOld = stock.StockQuantity1 == null ? 0 : stock.StockQuantity1;
                        stock.StockQuantity1   = details.StockCheckQuantity;
                        stock.IsNotUpdate      = true;
                        stockManager.Update(stock);
                    }

                    //  product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot);
                    //details.Product.StocksQuantity = details.StockCheckQuantity;
                    //修改產品
                    //productmanager.UpdateProduct_Stock(details.Product);
                    details.Product.StocksQuantity    = stockManager.GetTheCountByProduct(details.Product);
                    details.Product.LastStockTakeTime = DateTime.Now;
                    productmanager.update(details.Product);
                }

                //foreach (string productId in dic.Keys)
                //{
                //    Model.Product product = productmanager.Get(productId);
                //    if (product.ProductImage == null)
                //        product.ProductImage = new byte[] { };
                //    if (product.ProductImage1 == null)
                //        product.ProductImage1 = new byte[] { };
                //    if (product.ProductImage2 == null)
                //        product.ProductImage2 = new byte[] { };
                //    if (product.ProductImage3 == null)
                //        product.ProductImage3 = new byte[] { };
                //  //  product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot);
                //    product.StocksQuantity = dic[productId].StockCheckQuantity;
                //    //修改產品
                //    productmanager.update(product);
                //}


                BL.V.CommitTransaction();
            }
            catch
            {
                BL.V.RollbackTransaction();
                throw;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Update a StockCheck.
        /// </summary>
        public void Update(Model.StockCheck stockCheck)
        {
            try
            {
                BL.V.BeginTransaction();

                stockCheck.UpdateTime = DateTime.Now;
                if (stockCheck.Employee0 != null)
                {
                    stockCheck.Employee0Id = stockCheck.Employee0.EmployeeId;
                }

                accessor.Update(stockCheck);

                //13.10.10曹瑞修改:校正不直接修改库存为校正数量,而是当前库存加上差异数量
                IList <Model.StockCheckDetail> detailList = stockCheckDetailAccessor.Select(stockCheck);
                foreach (Model.StockCheckDetail item in detailList)
                {
                    Model.Stock stock = new Book.Model.Stock();
                    stock = stockManager.GetStockByProductIdAndDepotPositionId(item.ProductId, item.DepotPositionId);
                    if (stock != null)
                    {
                        stock.StockQuantity1 = (stock.StockQuantity1 == null ? 0 : stock.StockQuantity1) + (item.StockCheckQuantityDiff == null ? 0 : item.StockCheckQuantityDiff);
                        stock.IsNotUpdate    = true;
                        stockManager.Update(stock);
                    }
                    productmanager.UpdateProduct_Stock(item.Product);
                    stockCheckDetailAccessor.Delete(item.StockCheckDetailId);
                }

                foreach (Model.StockCheckDetail details in stockCheck.Details)
                {
                    if (details.Product == null || string.IsNullOrEmpty(details.Product.ProductId))
                    {
                        continue;
                    }
                    stockCheckDetailAccessor.Insert(details);

                    Model.Stock stock = stockManager.GetStockByProductIdAndDepotPositionId(details.ProductId, details.DepotPositionId);
                    if (stock == null)
                    {
                        stock = new Book.Model.Stock();
                        stock.StockCheckDate   = stockCheck.StockCheckDate;
                        stock.StockId          = Guid.NewGuid().ToString();
                        stock.DepotPositionId  = details.DepotPositionId;
                        stock.DepotId          = stockCheck.DepotId;
                        stock.ProductId        = details.ProductId;
                        stock.StockQuantityOld = 0;
                        stock.StockQuantity1   = details.StockCheckQuantity;
                        stock.IsNotUpdate      = true;
                        stockManager.Insert(stock);
                    }
                    else
                    {
                        stock.StockCheckDate   = stockCheck.StockCheckDate;
                        stock.DepotPositionId  = details.DepotPositionId;
                        stock.StockQuantityOld = stock.StockQuantity1 == null ? 0 : stock.StockQuantity1;
                        stock.StockQuantity1   = (stock.StockQuantity1 == null ? 0 : stock.StockQuantity1) - (details.StockCheckQuantityDiff == null ? 0 : details.StockCheckQuantityDiff);
                        stock.IsNotUpdate      = true;
                        stockManager.Update(stock);
                    }

                    //  product.StocksQuantity = stockManager.GetTheCount1OfProductByProductId(product, dic[productId].Depot);
                    //details.Product.StocksQuantity = details.StockCheckQuantity;
                    //修改產品
                    //productmanager.UpdateProduct_Stock(details.Product);
                    details.Product.StocksQuantity    = stockManager.GetTheCountByProduct(details.Product);
                    details.Product.LastStockTakeTime = DateTime.Now;
                    productmanager.update(details.Product);
                }

                BL.V.CommitTransaction();
            }
            catch
            {
                BL.V.RollbackTransaction();
                throw;
            }
        }