public bool CheckIfExistInRepo(Product pro) { return (Task.Navigator.GetController(SaleTask.RepoView) as RepoController).CheckIfExist(pro); }
private void DatabaseProductPersist(Product product, int changingType) { switch (changingType) { case ModelChangeEventArg.INSERT: ProductDao.Insert(product); break; case ModelChangeEventArg.UPDATE: ProductDao.Update(product); break; case ModelChangeEventArg.REMOVE: ProductDao.Delete(product); break; } }
public void CancelProductToRepo(Product product, Boolean discardOnMissing) { SaleTask task = (Task as SaleTask); if (task.CurrentBillProduct == null) { MessageBox.Show("请选择货物"); return; } Product removedProduct = task.CurrentBillProduct; (View as IBillsView).RemoveFromProductsList(removedProduct); task.CancelProductToRepo(removedProduct, discardOnMissing); (View as IBillsView).RefreshCurrentProduct(); }
public void UpdateProduct(Product product) { (Task as SaleTask).TriggerRepoProductsChanged(null, new ProductChangeEventArg(product, ModelChangeEventArg.UPDATE)); }
public void WithdrawProductsToSemiProducts(Product p, DateTime warehousingDate,int count) { SemiProduct semiproduct = (from s in SemiProductDao.GetAll() where s.WarehousingDate.Date == warehousingDate.Date && s.Norm.Equals(p.Norm) && s.Name.Equals(p.Name) && s.Material.Equals(p.Material) select s).ToList<SemiProduct>()[0]; semiproduct.Quantity += count; this.UpdateSemiProduct(semiproduct); }
public void SelectProductInList(Product product) { int index = (this.productsDataGridView.DataSource as BindingSource).IndexOf(product); int count = this.productsDataGridView.Rows.Count; if(index<count && index >=0) { this.productsDataGridView.Rows[index].Selected = true; this.productsDataGridView.Refresh(); } }
public static void Delete(Product product) { DatabaseHelper.ProductCollection.Remove(Query<Product>.EQ(e => e.Id, product.Id)); }
public void AddCurrentSemiProductToProduct(SemiProduct semiproduct, int count) { if(semiproduct.Quantity < count) { MessageBox.Show("分配超额"); return; } semiproduct.Quantity -= count; this.UpdateSemiProduct(semiproduct); List<Product> products = (from s in (Task as SaleTask).Products where s.Norm.Equals(semiproduct.Norm) && s.Name.Equals(semiproduct.Name) && s.Material.Equals(semiproduct.Material) select s).ToList<Product>(); Product theProduct; if (products.Count > 0) { theProduct = products[0]; theProduct.Quantity += count; (Task as SaleTask).TriggerRepoProductsChanged(null, new ProductChangeEventArg(theProduct, ModelChangeEventArg.UPDATE)); } else { theProduct = new Product() { Quantity = count, Name = semiproduct.Name, Norm = semiproduct.Norm, Material = semiproduct.Material, Demand = 0, }; (Task as SaleTask).Products.Add(theProduct); (Task as SaleTask).TriggerRepoProductsChanged(null, new ProductChangeEventArg(theProduct, ModelChangeEventArg.INSERT)); } }
public bool CheckIfExist(Product pro) { List<Product> specificProduct = (from p in ProductDao.GetAll() where p.Equals(pro) select p).ToList(); return specificProduct.Count >= 1 ? true : false; }
/** if the returned product does not exist in repo, then create it **/ public void ReturnProductToRepo(Product pro, int count) { // check if the product exist, if exist, then increase by extra products quantities List<Product> specificProduct = (from p in ProductDao.GetAll() where p.Equals(pro) select p).ToList(); if (specificProduct.Count > 0) { specificProduct[0].Quantity += count; specificProduct[0].Demand += count; // check if exist in current repo products list List<Product> currentSpecificProduct = (from p in Products where p.Equals(pro) select p).ToList(); // update current list if (currentSpecificProduct.Count > 0) { currentSpecificProduct[0].Quantity = specificProduct[0].Quantity; currentSpecificProduct[0].Demand = specificProduct[0].Demand; } TriggerRepoProductsChanged(this, new ProductChangeEventArg(specificProduct[0], ModelChangeEventArg.UPDATE)); } else { Product missedProduct = pro.Clone() as Product; missedProduct.Demand = count; missedProduct.Quantity = count; Products.Add(missedProduct); TriggerRepoProductsChanged(this, new ProductChangeEventArg(missedProduct, ModelChangeEventArg.INSERT)); } // check if the bill is ready for assemblage if (CurrentBill.Products.Count == 0 || CurrentBill.Products.Count<Product>(b => b.Quantity < b.Demand) > 0) { CurrentBill.AssemblageOK = false; CurrentBill.Completed = false; } BillDao.Update(CurrentBill); }
public void RemoveFromProductsList(Product product) { (bill_productsGridView.DataSource as BindingSource).Remove(product); }
public void CancelProductToRepo(Product product, Boolean discardOnMissing) { // check if the product exist, if exist, then increase by extra products quantities List<Product> specificProduct = (from p in ProductDao.GetAll() where p.Equals(product) select p).ToList(); if(specificProduct.Count>0) // exist { // change the quantity and demand specificProduct[0].Quantity += product.Quantity; specificProduct[0].Demand -= (product.Demand - product.Quantity); // check if exist in current repo products list List<Product> currentSpecificProduct = (from p in Products where p.Equals(product) select p).ToList(); // update current list if (currentSpecificProduct.Count > 0) { currentSpecificProduct[0].Quantity = specificProduct[0].Quantity; currentSpecificProduct[0].Demand = specificProduct[0].Demand; } TriggerRepoProductsChanged(this, new ProductChangeEventArg(specificProduct[0], ModelChangeEventArg.UPDATE)); } // not exist, unconsistency state if(!discardOnMissing) { Product missedProduct = product.Clone() as Product; missedProduct.Demand = 0; Products.Add(missedProduct); TriggerRepoProductsChanged(this, new ProductChangeEventArg(missedProduct, ModelChangeEventArg.INSERT)); } // check if the bill is ready for assemblage if (CurrentBill.Products.Count == 0 || CurrentBill.Products.Count<Product>(b => b.Quantity < b.Demand) > 0) { CurrentBill.AssemblageOK = false; CurrentBill.Completed = false; } BillDao.Update(CurrentBill); }
public static void Update(Product product) { DatabaseHelper.ProductCollection.Save(product); }
public static void Insert(Product product) { product.Id = new MongoDB.Bson.ObjectId(); DatabaseHelper.ProductCollection.Insert<Product>(product); }
public void ReturnProductToRepo(Product product, int count) { SaleTask task = (Task as SaleTask); if (task.CurrentBillProduct == null) { MessageBox.Show("请选择货物"); return; } Product returnedProduct = task.CurrentBillProduct; returnedProduct.Quantity = 0; task.ReturnProductToRepo(returnedProduct, count); (View as IBillsView).RefreshCurrentProduct(); }
/* * product modify method */ public void DeleteProduct(Product product) { // since in the form view layer, we called bindingsource.remove method, it will also delete the object of model layer // here we just call the event trigger method to notify the observors to take actions (Task as SaleTask).TriggerRepoProductsChanged(null, new ProductChangeEventArg(product, ModelChangeEventArg.REMOVE)); }
public void SetCurrentBillProduct(Product product) { (Task as SaleTask).CurrentBillProduct = product; }
public List<SemiProduct> GetRelatedSemiProducts(Product p) { List<SemiProduct> list = (from s in SemiProductDao.GetAll() where s.Norm.Equals(p.Norm) && s.Name.Equals(p.Name) && s.Material.Equals(p.Material) && s.InitialQuantity>s.Quantity select s).ToList<SemiProduct>(); return list; }
public ProductChangeEventArg(Product changedProduct, int changingType) { this.ChangedProduct = changedProduct; this.ChangingType = changingType; }
public void Set(Product p) { if (this.Name.Equals(p.Name) && this.Material.Equals(p.Material) && this.Norm.Equals(p.Norm)) { this.Quantity = p.Quantity; this.Demand = p.Demand; this.Remark = p.Remark; this.UnitPrice = p.UnitPrice; } else { throw new Exception("不能对不同类型的product调用set方法"); } }