public void UptadeOfPaymentShipping() { var selectedPaymentShipping = new List <JurisdictionRelation>(); foreach (var selectedJurisdiction in SelectedJurisdictions) { var itemToAdd = new JurisdictionRelation { JurisdictionId = selectedJurisdiction.JurisdictionId, JurisdictionGroupId = InnerItem.JurisdictionGroupId }; selectedPaymentShipping.Add(itemToAdd); } var paymentShippingForDelete = InnerItem.JurisdictionRelations.Where( x => selectedPaymentShipping.All(ps => ps.JurisdictionId != x.JurisdictionId)).ToList(); foreach (var paymentShippingToDelete in paymentShippingForDelete) { InnerItem.JurisdictionRelations.Remove(paymentShippingToDelete); //repository.Attach(paymentShippingToDelete); //repository.Remove(paymentShippingToDelete); } foreach (var paymentShippingToAdd in selectedPaymentShipping) { var sameItemFromInnerItem = InnerItem.JurisdictionRelations.SingleOrDefault( pmsm => pmsm.JurisdictionGroupId == paymentShippingToAdd.JurisdictionGroupId && pmsm.JurisdictionId == paymentShippingToAdd.JurisdictionId); if (sameItemFromInnerItem != null) { continue; } InnerItem.JurisdictionRelations.Add(paymentShippingToAdd); } }
public void Can_run_activity_calculatetaxtotals() { var orderGroup = CreateOrderConstant(); var catrepository = new Mock <ICatalogRepository>(); var items = new List <Item>(); orderGroup.OrderForms[0].Shipments[0].ShipmentItems.ToList().ForEach(item => items.Add(new Product { ItemId = item.LineItem.CatalogItemId, TaxCategory = "472b9809-3530-4d95-9886-cbddcaa0b72e" })); orderGroup.OrderForms[0].Shipments[0].ShippingCost = 10; catrepository.Setup(x => x.Items).Returns(() => items.ToArray().AsQueryable()); catrepository.SetupAllProperties(); var taxrepository = new Mock <ITaxRepository>(); var taxes = new[] { new Tax { Name = "US Shipment tax", TaxType = (int)TaxTypes.ShippingTax, SortOrder = 1 }, new Tax { Name = "US Sales tax", TaxType = (int)TaxTypes.SalesTax, SortOrder = 1 } }; var jurisdiction = new Jurisdiction { Code = "VAT", CountryCode = "USA", JurisdictionType = (int)JurisdictionTypes.All }; var jurisdictionGroup = new JurisdictionGroup { DisplayName = "USA VAT", Code = "USAVAT", JurisdictionType = (int)JurisdictionTypes.All }; var jurisdictionRel = new JurisdictionRelation { JurisdictionGroup = jurisdictionGroup, JurisdictionGroupId = jurisdictionGroup.JurisdictionGroupId, Jurisdiction = jurisdiction, JurisdictionId = jurisdiction.JurisdictionId }; jurisdictionGroup.JurisdictionRelations.Add(jurisdictionRel); taxes[0].TaxValues.Add(new TaxValue() { AffectiveDate = new DateTime(2013, 6, 1), Percentage = 18, TaxCategory = "472b9809-3530-4d95-9886-cbddcaa0b72e", TaxId = taxes[0].TaxId, Tax = taxes[0], JurisdictionGroup = jurisdictionGroup, JurisdictionGroupId = jurisdictionGroup.JurisdictionGroupId }); taxes[1].TaxValues.Add(new TaxValue() { AffectiveDate = new DateTime(2013, 6, 1), Percentage = 5, TaxCategory = "472b9809-3530-4d95-9886-cbddcaa0b72e", TaxId = taxes[1].TaxId, Tax = taxes[1], JurisdictionGroup = jurisdictionGroup, JurisdictionGroupId = jurisdictionGroup.JurisdictionGroupId }); taxrepository.Setup(x => x.Taxes).Returns(taxes.AsQueryable); taxrepository.SetupAllProperties(); var activity = new CalculateTaxActivity(catrepository.Object, taxrepository.Object, CacheRepository); var result = InvokeActivity(activity, orderGroup); var order = result.OrderGroup; // now check totals // Order totals Assert.Equal(order.TaxTotal, 660.24M); Assert.Equal(order.OrderForms[0].Shipments[0].ItemTaxTotal, 609.84M); Assert.Equal(order.OrderForms[0].Shipments[0].ShippingTaxTotal, 12.6M); }
public override string Import(string catalogId, string propertySetId, ImportItem[] systemValues, ImportItem[] customValues, IRepository repository) { var _error = string.Empty; _repository = (IOrderRepository)repository; var action = GetAction(systemValues.First(x => x.Name == "Action").Value); switch (action) { case ImportAction.Insert: var itemI = systemValues.FirstOrDefault(y => y.Name == "Code"); if (itemI != null) { var originalItem = _repository.JurisdictionGroups.Where(x => x.Code == itemI.Value).FirstOrDefault(); if (originalItem == null) { var addItem = InitializeItem(null, systemValues); _repository.Add(addItem); originalItem = addItem; } var jurisdictionCode = systemValues.First(x => x.Name == "JurisdictionCode").Value; if (jurisdictionCode != null) { var jItem = _repository.Jurisdictions.Where(x => x.Code == jurisdictionCode).SingleOrDefault(); if (jItem != null) { var relation = new JurisdictionRelation() { JurisdictionId = jItem.JurisdictionId, JurisdictionGroupId = originalItem.JurisdictionGroupId }; _repository.Add(relation); } } } break; case ImportAction.InsertAndReplace: var itemR = systemValues.FirstOrDefault(y => y.Name == "Code"); if (itemR != null) { var originalItem = _repository.JurisdictionGroups.Where(x => x.Code == itemR.Value).SingleOrDefault(); if (originalItem != null) { _repository.Remove(originalItem); } } var replaceItem = InitializeItem(null, systemValues); _repository.Add(replaceItem); break; case ImportAction.Update: var itemU = systemValues.FirstOrDefault(y => y.Name == "JurisdictionCode"); if (itemU != null) { var origItem = _repository.JurisdictionGroups.Where(x => x.Code == itemU.Value).SingleOrDefault(); if (origItem != null) { InitializeItem(origItem, systemValues); _repository.Update(origItem); } } break; case ImportAction.Delete: var itemD = systemValues.FirstOrDefault(y => y.Name == "JurisdictionCode"); if (itemD != null) { var deleteItem = _repository.JurisdictionGroups.Where(x => x.Code == itemD.Value).SingleOrDefault(); if (deleteItem != null) { _repository.Remove(deleteItem); } } break; } return(_error); }