protected OrderModel.AddOrderProductModel.ProductDetailsModel PrepareAddProductToOrderModel(int orderId, int productVariantId) { var productVariant = _productService.GetProductVariantById(productVariantId); var model = new OrderModel.AddOrderProductModel.ProductDetailsModel() { ProductVariantId = productVariantId, OrderId = orderId, Name = productVariant.FullProductName, UnitPriceExclTax = decimal.Zero, UnitPriceInclTax = decimal.Zero, Quantity = 1, SubTotalExclTax = decimal.Zero, SubTotalInclTax = decimal.Zero }; //attributes var productVariantAttributes = _productAttributeService.GetProductVariantAttributesByProductVariantId(productVariant.Id); foreach (var attribute in productVariantAttributes) { var pvaModel = new OrderModel.AddOrderProductModel.ProductVariantAttributeModel() { Id = attribute.Id, ProductAttributeId = attribute.ProductAttributeId, Name = attribute.ProductAttribute.Name, TextPrompt = attribute.TextPrompt, IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType }; if (attribute.ShouldHaveValues()) { //values var pvaValues = _productAttributeService.GetProductVariantAttributeValues(attribute.Id); foreach (var pvaValue in pvaValues) { var pvaValueModel = new OrderModel.AddOrderProductModel.ProductVariantAttributeValueModel() { Id = pvaValue.Id, Name = pvaValue.Name, IsPreSelected = pvaValue.IsPreSelected }; pvaModel.Values.Add(pvaValueModel); } } model.ProductVariantAttributes.Add(pvaModel); } //gift card model.GiftCard.IsGiftCard = productVariant.IsGiftCard; if (model.GiftCard.IsGiftCard) { model.GiftCard.GiftCardType = productVariant.GiftCardType; } return model; }
protected virtual OrderModel.AddOrderProductModel.ProductDetailsModel PrepareAddProductToOrderModel(int orderId, int productId) { var product = _productService.GetProductById(productId); if (product == null) throw new ArgumentException("No product found with the specified id"); var order = _orderService.GetOrderById(orderId); if (order == null) throw new ArgumentException("No order found with the specified id"); var presetQty = 1; var presetPrice = _priceCalculationService.GetFinalPrice(product, order.Customer, decimal.Zero, true, presetQty); decimal taxRate; decimal presetPriceInclTax = _taxService.GetProductPrice(product, presetPrice, true, order.Customer, out taxRate); decimal presetPriceExclTax = _taxService.GetProductPrice(product, presetPrice, false, order.Customer, out taxRate); var model = new OrderModel.AddOrderProductModel.ProductDetailsModel { ProductId = productId, OrderId = orderId, Name = product.Name, ProductType = product.ProductType, UnitPriceExclTax = presetPriceExclTax, UnitPriceInclTax = presetPriceInclTax, Quantity = presetQty, SubTotalExclTax = presetPriceExclTax, SubTotalInclTax = presetPriceInclTax }; //attributes var attributes = _productAttributeService.GetProductAttributeMappingsByProductId(product.Id); foreach (var attribute in attributes) { var attributeModel = new OrderModel.AddOrderProductModel.ProductAttributeModel { Id = attribute.Id, ProductAttributeId = attribute.ProductAttributeId, Name = attribute.ProductAttribute.Name, TextPrompt = attribute.TextPrompt, IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType }; if (attribute.ShouldHaveValues()) { //values var attributeValues = _productAttributeService.GetProductAttributeValues(attribute.Id); foreach (var attributeValue in attributeValues) { var attributeValueModel = new OrderModel.AddOrderProductModel.ProductAttributeValueModel { Id = attributeValue.Id, Name = attributeValue.Name, IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(attributeValueModel); } } model.ProductAttributes.Add(attributeModel); } //gift card model.GiftCard.IsGiftCard = product.IsGiftCard; if (model.GiftCard.IsGiftCard) { model.GiftCard.GiftCardType = product.GiftCardType; } //rental model.IsRental = product.IsRental; return model; }
protected virtual OrderModel.AddOrderProductModel.ProductDetailsModel PrepareAddProductToOrderModel(int orderId, int productId) { var product = _productService.GetProductById(productId); if (product == null) throw new ArgumentException("No product found with the specified id"); var model = new OrderModel.AddOrderProductModel.ProductDetailsModel { ProductId = productId, OrderId = orderId, Name = product.Name, ProductType = product.ProductType, UnitPriceExclTax = decimal.Zero, UnitPriceInclTax = decimal.Zero, Quantity = 1, SubTotalExclTax = decimal.Zero, SubTotalInclTax = decimal.Zero }; //attributes var attributes = _productAttributeService.GetProductAttributeMappingsByProductId(product.ID); foreach (var attribute in attributes) { var attributeModel = new OrderModel.AddOrderProductModel.ProductAttributeModel { Id = attribute.ID, ProductAttributeId = attribute.ProductAttributeId, Name = attribute.ProductAttribute.Name, TextPrompt = attribute.TextPrompt, IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType }; if (attribute.ShouldHaveValues()) { //values var attributeValues = _productAttributeService.GetProductAttributeValues(attribute.ID); foreach (var attributeValue in attributeValues) { var attributeValueModel = new OrderModel.AddOrderProductModel.ProductAttributeValueModel { Id = attributeValue.ID, Name = attributeValue.Name, IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(attributeValueModel); } } model.ProductAttributes.Add(attributeModel); } //gift card model.GiftCard.IsGiftCard = product.IsGiftCard; if (model.GiftCard.IsGiftCard) { model.GiftCard.GiftCardType = product.GiftCardType; } //rental model.IsRental = product.IsRental; return model; }
protected virtual OrderModel.AddOrderProductModel.ProductDetailsModel PrepareAddProductToOrderModel(int orderId, int productId) { var product = _productService.GetProductById(productId); if (product == null) throw new ArgumentException("No product found with the specified id"); var order = _orderService.GetOrderById(orderId); if (order == null) throw new ArgumentException("No order found with the specified id"); var presetQty = 1; var presetPrice = _priceCalculationService.GetFinalPrice(product, order.Customer, decimal.Zero, true, presetQty); decimal taxRate; decimal presetPriceInclTax = _taxService.GetProductPrice(product, presetPrice, true, order.Customer, out taxRate); decimal presetPriceExclTax = _taxService.GetProductPrice(product, presetPrice, false, order.Customer, out taxRate); var model = new OrderModel.AddOrderProductModel.ProductDetailsModel { ProductId = productId, OrderId = orderId, Name = product.Name, ProductType = product.ProductType, UnitPriceExclTax = presetPriceExclTax, UnitPriceInclTax = presetPriceInclTax, Quantity = presetQty, SubTotalExclTax = presetPriceExclTax, SubTotalInclTax = presetPriceInclTax, AutoUpdateOrderTotals = _orderSettings.AutoUpdateOrderTotalsOnEditingOrder }; //attributes var attributes = _productAttributeService.GetProductAttributeMappingsByProductId(product.Id); foreach (var attribute in attributes) { var attributeModel = new OrderModel.AddOrderProductModel.ProductAttributeModel { Id = attribute.Id, ProductAttributeId = attribute.ProductAttributeId, Name = attribute.ProductAttribute.Name, TextPrompt = attribute.TextPrompt, IsRequired = attribute.IsRequired, AttributeControlType = attribute.AttributeControlType, HasCondition = !String.IsNullOrEmpty(attribute.ConditionAttributeXml) }; if (!String.IsNullOrEmpty(attribute.ValidationFileAllowedExtensions)) { attributeModel.AllowedFileExtensions = attribute.ValidationFileAllowedExtensions .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .ToList(); } if (attribute.ShouldHaveValues()) { //values var attributeValues = _productAttributeService.GetProductAttributeValues(attribute.Id); foreach (var attributeValue in attributeValues) { var attributeValueModel = new OrderModel.AddOrderProductModel.ProductAttributeValueModel { Id = attributeValue.Id, Name = attributeValue.Name, IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(attributeValueModel); } } model.ProductAttributes.Add(attributeModel); } model.HasCondition = model.ProductAttributes.Any(a => a.HasCondition); //gift card model.GiftCard.IsGiftCard = product.IsGiftCard; if (model.GiftCard.IsGiftCard) { model.GiftCard.GiftCardType = product.GiftCardType; } //rental model.IsRental = product.IsRental; return model; }