private void FixupnpPurchase(Purchase previousValue, bool skipKeys = false) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.npPurchaseProductVariants.Contains(this)) { previousValue.npPurchaseProductVariants.Remove(this); } if (npPurchase != null) { if (!npPurchase.npPurchaseProductVariants.Contains(this)) { npPurchase.npPurchaseProductVariants.Add(this); } PurchaseID = npPurchase.PurchaseID; } else if (!skipKeys) { PurchaseID = null; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("npPurchase") && (ChangeTracker.OriginalValues["npPurchase"] == npPurchase)) { ChangeTracker.OriginalValues.Remove("npPurchase"); } else { ChangeTracker.RecordOriginalValue("npPurchase", previousValue); } if (npPurchase != null && !npPurchase.ChangeTracker.ChangeTrackingEnabled) { npPurchase.StartTracking(); } } }
/// <summary> /// Save Purchase use for both Insert and Update /// </summary> /// <param name="purchase">The purchase.</param> public void SavePurchase(Purchase purchase) { Purchase existingData = GetPurchaseByID(purchase.PurchaseID); if (existingData == null) { purchase.CreatedOn = DateTime.Now; _context.Purchases.AddObject(purchase); } else { existingData.VoucherNumber = purchase.VoucherNumber; existingData.Remark = purchase.Remark; existingData.ImportLicenseNumber = purchase.ImportLicenseNumber; existingData.CustomDutyAmount = purchase.CustomDutyAmount; existingData.CommercialTaxAmunt = purchase.CommercialTaxAmunt; existingData.AgentFees = purchase.AgentFees; existingData.OtherTax = purchase.OtherTax; existingData.CustomReleaseDate = purchase.CustomReleaseDate; if (!_context.IsAttached(existingData)) _context.Purchases.Attach(existingData); } _context.SaveChanges(); }