12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using Comal.Classes;
- using InABox.Core;
- namespace Comal.Stores
- {
- public class SupplierProductStore : BaseProductStore<SupplierProduct>
- {
- protected override void BeforeSave(IEnumerable<SupplierProduct> entities)
- {
- base.BeforeSave(entities);
- var updates = entities
- .Where(x => x.HasOriginalValue(x => x.DiscountGroup.ID) || x.HasOriginalValue(x => x.Job.ID)).ToArray();
- if (!updates.Any())
- return;
-
- var discounts = Provider.Query(
- new Filter<SupplierDiscount>(x => x.Group.ID).InList(updates.Select(x => x.DiscountGroup.ID).Distinct().ToArray())
- .And(x => x.Job.ID).InList(updates.Select(x => x.Job.ID).Distinct().ToArray()),
- Columns.Required<SupplierDiscount>()
- ).ToArray<SupplierDiscount>();
- foreach (var update in updates)
- {
- var discount = discounts.FirstOrDefault(x=>x.Group.ID == update.DiscountGroup.ID && x.Job.ID == update.Job.ID);
- if (discount != null)
- {
- if (discount.Group.Type == SupplierDiscountGroupType.Discount)
- update.Discount = discount.Value;
- else
- {
- update.TradePrice = discount.Value;
- update.Discount = 0.0;
- }
- }
-
- }
- }
- protected override void AfterSave(SupplierProduct entity)
- {
- base.AfterSave(entity);
- //if (entity.ProductLink.UseDefaultSupplierPricing)
- UpdateDefaultSupplierPricing(entity);
- }
- protected override void AfterDelete(SupplierProduct entity)
- {
- base.AfterDelete(entity);
- // Do we actually need to do anything here?
- }
- }
- }
|