public void NewSemiProduct(SemiProduct semiproduct) { List<SemiProduct> specificSemiProduct = (from p in (Task as ProductTask).SalesTask.SemiProducts where p.Equals(semiproduct) select p).ToList(); if (specificSemiProduct.Count > 0) { MessageBox.Show("已经存在这个日期的这批货物啦\n\r如果你想增加库存数量,则直接双击修改即可"); return; } SaleTask task = (Task as ProductTask).SalesTask; task.SemiProducts.Add(semiproduct); task.TriggerRepoSemiProductsChanged(this, new SemiProductChangeEventArg(semiproduct, ModelChangeEventArg.INSERT)); }
private void NewSemiProductButton_Click(object sender, EventArgs e) { String name = this.nameTextBox.Text.Trim(); if (String.IsNullOrEmpty(name)) { MessageBox.Show("名字不为空"); return; } String material = this.materialTextBox.Text.Trim(); if(String.IsNullOrEmpty(material)) { MessageBox.Show("材料不为空"); return; } String norm = this.normTextBox.Text.Trim(); if (String.IsNullOrEmpty(norm)) { MessageBox.Show("规格不为空"); return; } String numberStr = this.numberTextBox.Text.Trim(); int quantity; if (!(int.TryParse(numberStr, out quantity) && quantity>=0)) { MessageBox.Show("请输入大于等于0的整数"); return; } String remark = this.remarkTextBox.Text.Trim(); SemiProduct p = new SemiProduct() { Name = name, Material = material, Norm = norm, Quantity = quantity, Remark = remark, InitialQuantity = quantity, WarehousingDate = this.warehousingDatePicker.Value }; (Controller as ProductController).NewSemiProduct(p); }
private void semiproductsDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { semiproductsDataGridViewTimer.Enabled = true; lastModifiedSemiProduct = CurrentSemiProduct; }
public void SelectSemiProductInList(SemiProduct semiproduct) { int index = (this.semiproductsDataGridView.DataSource as BindingSource).IndexOf(semiproduct); int count = this.semiproductsDataGridView.Rows.Count; if (index < count && index >= 0) { this.semiproductsDataGridView.Rows[index].Selected = true; this.semiproductsDataGridView.Refresh(); } }
private void DatabaseSemiProductPersist(SemiProduct semiproduct, int changingType) { switch (changingType) { case ModelChangeEventArg.INSERT: SemiProductDao.Insert(semiproduct); break; case ModelChangeEventArg.UPDATE: SemiProductDao.Update(semiproduct); break; case ModelChangeEventArg.REMOVE: SemiProductDao.Delete(semiproduct); break; } }
public void UpdateSemiProduct(SemiProduct semiproduct) { (Task as SaleTask).TriggerRepoSemiProductsChanged(null, new SemiProductChangeEventArg(semiproduct, ModelChangeEventArg.UPDATE)); }
public void SetCurrentRepoSemiProduct(SemiProduct semiproduct) { (Task as SaleTask).CurrentRepoSemiProduct = semiproduct; }
public String GetSemiProductStatusString(SemiProduct p, DateTime fr, DateTime to) { var list = (from s in (Task as SaleTask).SemiProducts where s.WarehousingDate.Date >= fr.Date && s.WarehousingDate.Date <= to.Date && s.Norm.Equals(p.Norm) && s.Name.Equals(p.Name) && s.Material.Equals(p.Material) select s); int sumQuantity = list.Select(c => c.Quantity).Sum(); int sumInitQuantity = list.Select(c => c.InitialQuantity).Sum(); return "总现有库存:" + sumQuantity + "; " + "总初始库存:" + sumInitQuantity; }
public void DeleteSemiProduct(SemiProduct semiproduct) { // 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).TriggerRepoSemiProductsChanged(null, new SemiProductChangeEventArg(semiproduct, ModelChangeEventArg.REMOVE)); }
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 static void Update(SemiProduct product) { DatabaseHelper.SemiProductCollection.Save(product); }
public static void Insert(SemiProduct product) { product.Id = new MongoDB.Bson.ObjectId(); DatabaseHelper.SemiProductCollection.Insert<SemiProduct>(product); }
public static void Delete(SemiProduct product) { DatabaseHelper.SemiProductCollection.Remove(Query<SemiProduct>.EQ(e => e.Id, product.Id)); }
public void Set(SemiProduct p) { if (this.Name.Equals(p.Name) && this.Material.Equals(p.Material) && this.Norm.Equals(p.Norm) && this.WarehousingDate.Date.Equals(p.WarehousingDate.Date)) { this.Quantity = p.Quantity; this.InitialQuantity = p.InitialQuantity; this.Remark = p.Remark; } else { throw new Exception("不能对不同类别的SemiProduct调用Set方法"); } }
public SemiProductChangeEventArg(SemiProduct changedSemiProduct, int changingType) { this.ChangedSemiProduct = changedSemiProduct; this.ChangingType = changingType; }