public void SaveProductVariant(ProductVariant productVariant) { ProductVariant existingData = GetProductVariantByID(productVariant.ProductVariantID); if (existingData == null) { productVariant.CreatedOn = DateTime.Now; productVariant.UpdatedOn = DateTime.Now; _context.ProductVariants.AddObject(productVariant); } else { existingData.ProductID = productVariant.ProductID; existingData.Name = productVariant.Name; existingData.BarCode = productVariant.BarCode; existingData.RestrictedUnder18 = productVariant.RestrictedUnder18; existingData.StockQuantity = productVariant.StockQuantity; existingData.DisplayStockQuantity = productVariant.DisplayStockQuantity; existingData.MinimumStockQuantity = productVariant.MinimumStockQuantity; existingData.NotifyForQuantityBelow = productVariant.NotifyForQuantityBelow; existingData.BuyingPrice = productVariant.BuyingPrice; existingData.PictureID = productVariant.PictureID; existingData.CreatedOn = existingData.CreatedOn; existingData.UpdatedOn = DateTime.Now; existingData.SellingPrice = productVariant.SellingPrice; if (!_context.IsAttached(existingData)) _context.ProductVariants.Attach(existingData); } _context.SaveChanges(); }
private Sale CreateSale(ProductVariant productVariant) { return null; }
private ProductVariant GetSaleProductVariant(string barCode) { if (string.IsNullOrEmpty(barCode)) return null; ProductVariant ProductVariant = new ProductVariant(); if (ZuluContext.Current.ProductVariants == null) ZuluContext.Current.ProductVariants = new List<ProductVariant>(); else ProductVariant = ZuluContext.Current.ProductVariants.FirstOrDefault(c => c.BarCode == barCode); if (ProductVariant == null) { ProductVariant = IoC.Resolve<IProductService>().GetProductVariantByBarCode(barCode); ZuluContext.Current.ProductVariants.Add(ProductVariant); } return ProductVariant; }
/// <summary> /// Add Product Variant to cache /// </summary> /// <param name="productVariant">The Product Variant Object</param> private void AddProductVariantToCache(ProductVariant productVariant) { if (productVariant != null) { List<ProductVariant> productVariants = new List<ProductVariant>(); if (CacheProductVariants != null && CacheProductVariants.Count > 0) { productVariants = CacheProductVariants; ProductVariant cacheProductVariant = new ProductVariant(); cacheProductVariant = CacheProductVariants.FirstOrDefault(c => c.ProductVariantID == productVariant.ProductVariantID); } if (CacheProductVariants != null && CacheProductVariants.Count > 0) { productVariants.Add(productVariant); CacheProductVariants = productVariants; } } }
private void Save() { if (txtBarcode.Text.Length > 0) { ProductVariant productvariant = ProductService.GetProductVariantByBarCode(txtBarcode.Text); if (productvariant == null || productvariant.ProductVariantID == 0) { productvariant = new ProductVariant(); //for Edit Data if (VariantID.Length > 0) { productvariant.ProductVariantID = int.Parse(VariantID); productvariant.CreatedOn = Convert.ToDateTime(txtVariant.Tag.ToString()); } productvariant.Name = txtVariant.Text.ToString(); productvariant.BarCode = txtBarcode.Text.ToString(); productvariant.SupplierID = int.Parse(lueSupplier.EditValue.ToString()); productvariant.ProductID = int.Parse(lueProductName.EditValue.ToString()); productvariant.IsActive = Convert.ToBoolean(chkIsActive.EditValue); productvariant.RestrictedUnder18 = Convert.ToBoolean(chkUnder18.EditValue); ProductImageID = zpcProductImage.SavePicture(); productvariant.PictureID = ProductImageID; productvariant.UpdatedOn = DateTime.Now; //for New Data if (VariantID.Length < 0) { productvariant.CreatedOn = DateTime.Now; } ProductService.SaveProductVariant(productvariant); grdProductVariant.DataSource = ProductService.GetProductVariantsByProductID(int.Parse(lueProductName.EditValue.ToString())); ClearForm(); } else { MessageBox.Show("Existing product variant has the same barcode. Please Check!", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Please, fill the barcode up!", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); txtBarcode.Focus(); } }
/// <summary> /// Save Product Variant use for both Insert and Update /// </summary> /// <param name="productVariant">The product variant</param> public void SaveProductVariant(ProductVariant productVariant) { ProductVariant existingData = GetProductVariantByID(productVariant.ProductVariantID); RemoveProductVariantFromTheCache(existingData); if (existingData == null) { productVariant.CreatedOn = DateTime.Now; productVariant.UpdatedOn = DateTime.Now; _context.ProductVariants.AddObject(productVariant); } else { existingData.ProductID = productVariant.ProductID; existingData.Name = productVariant.Name; existingData.BarCode = productVariant.BarCode; existingData.SupplierID = productVariant.SupplierID; existingData.RestrictedUnder18 = productVariant.RestrictedUnder18; existingData.PictureID = productVariant.PictureID; existingData.CreatedOn = existingData.CreatedOn; existingData.UpdatedOn = DateTime.Now; existingData.IsActive = productVariant.IsActive; if (!_context.IsAttached(existingData)) _context.ProductVariants.Attach(existingData); } _context.SaveChanges(); AddProductVariantToCache(existingData); }
/// <summary> /// Get Product Variant By ID. Firstly look from the project cache and get from the database /// </summary> /// <param name="productVariantID">The product variant identifier</param> /// <returns>ProductVariant</returns> public ProductVariant GetProductVariantByID(int productVariantID) { if (productVariantID == 0) return null; ProductVariant productVariant = new ProductVariant(); if (CacheProductVariants != null) productVariant = CacheProductVariants.FirstOrDefault(c => c.ProductVariantID == productVariantID); if (productVariant == null || productVariant.ProductVariantID == 0) { productVariant = _context.ProductVariants.FirstOrDefault(c => c.ProductVariantID == productVariantID); AddProductVariantToCache(productVariant); return productVariant; } return productVariant; }
/// <summary> /// Get Product Variant By barcode. Firstly look from the project cache and get from the database /// </summary> /// <param name="productVariantID">The product variant identifier</param> /// <returns>ProductVariant</returns> public ProductVariant GetProductVariantByBarCode(string barCode) { if (string.IsNullOrEmpty(barCode)) return null; ProductVariant productVariant = new ProductVariant(); if (CacheProductVariants != null) productVariant = CacheProductVariants.FirstOrDefault(c => c.BarCode == barCode); if (productVariant == null || productVariant.ProductVariantID == 0) { productVariant = _context.ProductVariants.FirstOrDefault(c => c.BarCode == barCode); AddProductVariantToCache(productVariant); return productVariant; } return productVariant; }
/// <summary> /// Remove Specific Product Variant from the cache /// </summary> /// <param name="productVariant">The Product Variant Object</param> private void RemoveProductVariantFromTheCache(ProductVariant productVariant) { if (productVariant != null) { ProductVariant cacheProductVariant = new ProductVariant(); if (CacheProductVariants != null) cacheProductVariant = CacheProductVariants.FirstOrDefault(c => c.ProductVariantID == productVariant.ProductVariantID); if (cacheProductVariant != null) { List<ProductVariant> productVariants = new List<ProductVariant>(); if (CacheProductVariants != null && CacheProductVariants.Count > 0) productVariants = CacheProductVariants; productVariants.Remove(cacheProductVariant); CacheProductVariants = productVariants; } } }
private void FixupnpProductVariant(ProductVariant previousValue, bool skipKeys = false) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.npDamageByProductVariants.Contains(this)) { previousValue.npDamageByProductVariants.Remove(this); } if (npProductVariant != null) { if (!npProductVariant.npDamageByProductVariants.Contains(this)) { npProductVariant.npDamageByProductVariants.Add(this); } ProductVariantID = npProductVariant.ProductVariantID; } else if (!skipKeys) { ProductVariantID = null; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("npProductVariant") && (ChangeTracker.OriginalValues["npProductVariant"] == npProductVariant)) { ChangeTracker.OriginalValues.Remove("npProductVariant"); } else { ChangeTracker.RecordOriginalValue("npProductVariant", previousValue); } if (npProductVariant != null && !npProductVariant.ChangeTracker.ChangeTrackingEnabled) { npProductVariant.StartTracking(); } } }