/*Add New Product Detail*/ public ServiceResponse SaveProduct(ProductModel productModel) { var product = new Product(); var productAccountPrice = new ProductAccountPrice(); var productAvailability = new ProductAvailability(); var productPricing = new ProductPricing(); Mapper.Map(productModel, product); Mapper.Map(productModel.ProductAccountPriceModel, product.ProductAccountPrice); Mapper.Map(productModel.ProductAvailabilityModel, product.ProductAvailability); Mapper.Map(productModel.ProductPricingModel, product.ProductPricing); Mapper.Map(productModel.ProductDivisionModel, product.ProductDivision); Mapper.Map(productModel.ProductCategoryModel, product.ProductCategory); Mapper.Map(productModel.ProductAttributeModel, product.ProductAttribute); product.CreatedBy = GetLoginUserId(); product.ProductAccountPrice.ToList().ForEach(m => m.CreatedBy = GetLoginUserId()); product.ProductPricing.ToList().ForEach(m => m.CreatedBy = GetLoginUserId()); _unitOfWork.productRespository.Insert(product); _unitOfWork.Save(); Mapper.Map(product, productModel); Mapper.Map(product.ProductClass, productModel.ProductClassModel); Mapper.Map(product.ProductAccountPrice, productModel.ProductAccountPriceModel); Mapper.Map(product.ProductAvailability, productModel.ProductAvailabilityModel); Mapper.Map(product.ProductPricing, productModel.ProductPricingModel); Mapper.Map(product.ProductDivision, productModel.ProductDivisionModel); Mapper.Map(product.ProductCategory, productModel.ProductCategoryModel); Mapper.Map(product.ProductAttribute, productModel.ProductAttributeModel); return(new ServiceResponse { Success = true, Message = "Saved", Data = productModel }); }
public static decimal CalCulateItemPrice(ProductPricing pp, int NoOfServer, int NoOfDomains) { decimal price = 0; decimal AdditionDomainPrice = 0; if (pp != null) { if (pp.Product.isSANEnabled) { int SanMin = Convert.ToInt32(pp.Product.SanMin); if (NoOfDomains > SanMin) { AdditionDomainPrice = pp.AdditionalSanPrice * (NoOfDomains - SanMin); } } if (!pp.Product.isNoOfServerFree) { price = pp.SalesPrice * NoOfServer; } else { price = pp.SalesPrice; } price += AdditionDomainPrice; } return(price); }
public ActionResult Edit(ShoppingCartDetail model, FormCollection collection) { if (model != null && model.ShoppingCartID > 0 && model.ProductPriceID > 0 && model.ID > 0) { ProductPricing pp = _service.GetProductPricing(model.ProductPriceID, model.ShoppingCart.SiteID > 0 ? model.ShoppingCart.SiteID : Site.ID); if (pp != null) { model.Price = CalCulatePrice(pp, model.NumberOfServers, model.AdditionalDomains); model.ProductPricing = pp; model.Product = pp.Product; AssignPromoInCart(_service.GetPromoRow(model.PromoCode, model.ShoppingCart.SiteID > 0 ? model.ShoppingCart.SiteID : Site.ID), model); } model.ShoppingCart = null; _repository.Update(model); _unitOfWork.Commit(); return(Json("ok")); } else if (model != null && model.ProductPriceID > 0 && model.ProductID > 0) { AddDataInCart(model, Convert.ToInt32(collection["drpQty"])); return(Json("ok")); } else { return(Json("flase")); } }
public static string GetMAXProductPricingID(List <ProductPricing> lstPricing) { string RetValue = string.Empty; ProductPricing pricing = lstPricing.Where(price => price.NumberOfMonths == lstPricing.Max(pp => pp.NumberOfMonths)).FirstOrDefault(); return(pricing.ID.ToString()); }
public static string GetProductPricing(List <ProductPricing> lstPricing) { string RetValue = string.Empty; ProductPricing pricing = lstPricing.Where(price => price.NumberOfMonths == lstPricing.Max(pp => pp.NumberOfMonths)).FirstOrDefault(); decimal YearlyPrice = pricing.SalesPrice > 0 ? (pricing.SalesPrice / Convert.ToInt32(pricing.NumberOfMonths / 12)) : pricing.SalesPrice; return(string.Format("{0:C}", YearlyPrice)); }
private void AddDataInCart(ShoppingCartDetail _Detail, int Quantity) { GetShoppingCart(); if (Quantity <= 0) { Quantity = 1; } if (_viewModel.Cart.ID == 0) { _viewModel.Cart.AuditID = 1; _viewModel.Cart.SiteID = Site.ID; if (CurrentUser != null && CurrentUser.ID > 0) { _viewModel.Cart.UserID = CurrentUser.ID; _viewModel.Cart.UserAnonymousToken = string.Empty; } else { _viewModel.Cart.UserAnonymousToken = AnonymousID; } _viewModel.Cart.Email = ""; } ShoppingCartDetail cartdetail; ProductPricing pp = _service.GetProductPricing(_Detail.ProductPriceID, Site.ID); PromoCode prow = null; if (promo != "") { prow = _service.GetPromoRow(promo, Site.ID); } for (int iCnt = 1; iCnt <= Quantity; iCnt++) { cartdetail = new ShoppingCartDetail(); cartdetail.AdditionalDomains = _Detail.AdditionalDomains; cartdetail.IsCompetitiveUpgrade = _Detail.IsCompetitiveUpgrade; cartdetail.NumberOfServers = _Detail.NumberOfServers; cartdetail.isNewOrder = _Detail.isNewOrder; cartdetail.PromoCode = _Detail.PromoCode; cartdetail.ProductID = pp.ProductID; cartdetail.ProductPriceID = _Detail.ProductPriceID; cartdetail.Comment = _Detail.Comment; cartdetail.Price = CalCulatePrice(pp, _Detail.NumberOfServers, _Detail.AdditionalDomains);; cartdetail.ShoppingCart = _viewModel.Cart; AssignPromoInCart(prow, cartdetail); _viewModel.CartDetails.Add(cartdetail); } _service.AddToCart(_viewModel); }
public ViewResult Payment(int id) { string ExternalOrderID = id.ToString(); var _OrderDetail = _repository.Find(od => od.ID == id).EagerLoad(od => od.CertificateRequest, od => od.Order, od => od.Product).FirstOrDefault(); Site Site = GetSite(_OrderDetail.Order.SiteID); SetSiteIDInSession(); var PGInstance = _service.GetPGInstances(Site.ID); ViewBag.SiteID = Site.ID; PaymentGateways PG = PGInstance.Where(p => p.InstancesID == (int)PGInstances.AuthorizeNet).FirstOrDefault(); if (PG != null) { ViewBag.ISCC = true; } else { ViewBag.ISCC = false; } PG = null; PG = PGInstance.Where(p => p.InstancesID == (int)PGInstances.PayPalIPN).FirstOrDefault(); if (PG != null) { ViewBag.IsPayPal = true; } else { ViewBag.IsPayPal = false; } PG = null; PG = PGInstance.Where(p => p.InstancesID == (int)PGInstances.Moneybookers).FirstOrDefault(); if (PG != null) { ViewBag.IsMoneybookers = true; } else { ViewBag.IsMoneybookers = false; } PG = null; var _ProdPricing = DependencyResolver.Current.GetService <IRepository <ProductPricing> >(); int CuttentContractID = WBSSLStore.Web.Helpers.WBHelper.GetCurrentContractID(_OrderDetail.Order.UserID, Site.ID); ProductPricing objPricing = _ProdPricing.Find(pp => pp.ProductID == _OrderDetail.ProductID && pp.NumberOfMonths == _OrderDetail.NumberOfMonths && pp.ContractID == CuttentContractID && pp.RecordStatusID == (int)RecordStatus.ACTIVE).FirstOrDefault(); ViewBag.Pricing = objPricing; ViewBag.AvailableCredit = _service.GetCreditAmount(_OrderDetail.Order.UserID, Site.ID); return(View(_OrderDetail)); }
public ViewResult Detail(int id) { ViewBag.ProductPricingID = 0; var _supportreq = DependencyResolver.Current.GetService <IRepository <SupportRequest> >(); SupportRequest objSppReq = _supportreq.Find(y => y.OrderDetailID == id && y.SupportTypeID == (int)SupportType.REFUNDREQUEST).FirstOrDefault(); if (objSppReq != null) { if (objSppReq.OrderDetailID == id) { ViewBag.CancelationRequest = "Cancel"; } } OrderDetail orderdetail = _repository.Find(x => x.ID == id) .EagerLoad(o => o.Order, o => o.Product, o => o.CertificateRequest, o => o.AuditDetails, o => o.StoreAPIInteraction, o => o.CertificateRequest.AdminContact, o => o.CertificateRequest.TechnicalContact, o => o.Product) .FirstOrDefault(); if (orderdetail != null && orderdetail.Price > 0) { var _usertransaction = DependencyResolver.Current.GetService <IRepository <UserTransaction> >(); UserTransaction objTrans = _usertransaction.Find(ut => ut.OrderDetailID == id && ut.PaymentID != null) .EagerLoad(ut => ut.Payment, ut => ut.Payment.GatewayInteraction) .FirstOrDefault(); if (objTrans != null) { ViewBag.PaymentType = objTrans.Payment.PaymentMode.GetEnumDescription <PaymentMode>(); ViewBag.AuthCode = objTrans.Payment.GatewayInteraction.GatewayAuthCode; } } if (orderdetail != null && !string.IsNullOrEmpty(orderdetail.ExternalOrderID) && orderdetail.OrderStatus != OrderStatus.REJECTED && orderdetail.OrderStatus != OrderStatus.REFUNDED) { if (orderdetail.OrderStatus == OrderStatus.ACTIVE && (orderdetail.CertificateExpiresOn.Value - DateTimeWithZone.Now.Date).Days <= 30) { var _PricingRepo = DependencyResolver.Current.GetService <IRepository <ProductPricing> >(); int ContractID = WBHelper.GetCurrentContractID(orderdetail.Order.UserID, Site.ID); ProductPricing objPrice = _PricingRepo.Find(pp => pp.ProductID == orderdetail.Product.ID && pp.NumberOfMonths == orderdetail.NumberOfMonths && pp.ContractID == ContractID).FirstOrDefault(); if (objPrice != null) { ViewBag.ProductPricingID = objPrice.ID; } } GetOrderstatusThruRESTAPI(orderdetail, Site); } return(View(orderdetail)); }
public async Task <IActionResult> Post([FromBody] ProductPricing value) { if (ModelState.IsValid) { using (db) { var productPrice = await _productPrices.Create(value); return(CreatedAtAction("Get", "Price", new { Id = productPrice.Id }, productPrice)); } } else { return(BadRequest(ModelState)); } }
public bool ImportProductsInContract(Site site, decimal Margin, int ContractID) { var ClientContract = GetClientContract(site.ID); var ProductPriceList = _productPricing.Find(price => price.SiteID == site.ID && price.ContractID == ClientContract.ID); if (ProductPriceList != null && ProductPriceList.Count() > 0) { foreach (ProductPricing pricing in ProductPriceList) { ProductPricing objNewPrice = new ProductPricing(); objNewPrice.isRecommended = pricing.isRecommended; objNewPrice.NumberOfMonths = pricing.NumberOfMonths; objNewPrice.ProductID = pricing.ProductID; objNewPrice.RecordStatusID = pricing.RecordStatusID; objNewPrice.RetailPrice = pricing.RetailPrice; if (pricing.AdditionalSanPrice > 0) { objNewPrice.AdditionalSanPrice = pricing.AdditionalSanPrice - ((pricing.AdditionalSanPrice * Margin) / 100); } else { objNewPrice.AdditionalSanPrice = 0; } objNewPrice.ContractID = ContractID; objNewPrice.Contract = null; if (pricing.SalesPrice > 0) { objNewPrice.SalesPrice = pricing.SalesPrice - ((pricing.SalesPrice * Margin) / 100); } else { objNewPrice.SalesPrice = 0; } objNewPrice.SiteID = pricing.SiteID; _productPricing.Add(objNewPrice); } _unitOfWork.Commit(); } return(true); }
// // GET: /Client/Orders/Details/5 public ViewResult Details(int id) { ViewBag.ProductPricingID = 0; ViewBag.UserName = user.FirstName + " " + user.LastName; var _supportrequest = DependencyResolver.Current.GetService <IRepository <SupportRequest> >(); SupportRequest objSupportReq = _supportrequest.Find(y => y.UserID == user.ID && y.OrderDetailID == id).FirstOrDefault(); if (objSupportReq != null) { if (objSupportReq.OrderDetailID == id) { ViewBag.CancelationRequest = "Cancel"; } } OrderDetail orderdetail = _repository.Find(x => x.ID == id && x.Order.UserID == user.ID).Include(o => o.Order).Include(o => o.Product).Include(o => o.CertificateRequest).Include(o => o.AuditDetails).Include(o => o.StoreAPIInteraction).Include(o => o.CertificateRequest.AdminContact).Include(o => o.CertificateRequest.TechnicalContact).Include(o => o.Product).FirstOrDefault(); if (orderdetail != null && !string.IsNullOrEmpty(orderdetail.ExternalOrderID) && orderdetail.OrderStatus != OrderStatus.REJECTED && orderdetail.OrderStatus != OrderStatus.REFUNDED) { if (orderdetail.OrderStatus == OrderStatus.ACTIVE && (orderdetail.CertificateExpiresOn.Value - DateTimeWithZone.Now.Date).Days <= 30) { var _PricingRepo = DependencyResolver.Current.GetService <IRepository <ProductPricing> >(); int ContractID = WBHelper.GetCurrentContractID(orderdetail.Order.UserID, Site.ID); ProductPricing objPrice = _PricingRepo.Find(pp => pp.ProductID == orderdetail.Product.ID && pp.NumberOfMonths == orderdetail.NumberOfMonths && pp.ContractID == ContractID).FirstOrDefault(); if (objPrice != null) { ViewBag.ProductPricingID = objPrice.ID; } } GetOrderstatusThruRESTAPI(orderdetail, Site); } return(View(orderdetail)); }
private decimal GetFinalPriceForProduct(ProductPricing pricing) { // use the lower of the two prices: either % markup, or % below msrp, but // ensure that we make a certain flat $ value. var x = Math.Max( Math.Min( pricing.Cost * (1+MinMarkupPercent), (pricing.Msrp ?? decimal.MaxValue) * (1-MaxPriceBelowMsrp) ), pricing.Cost + MinMarkupDollars ); // now add in flat costs like shipping x += pricing.ShippingFee ?? 0; x += pricing.ShippingCost ?? 0; return x; }
public List <StringBuilder> ImportProducts(List <Gateways.RestAPIModels.Response.ALLProduct> ProductList, Site site, decimal Margin) { ProductPricing resellerProductPricing = null; Contract ClientContract = GetClientContract(site.ID); StringBuilder SuccessProduct = new StringBuilder(); StringBuilder UnSuccessProduct = new StringBuilder(); var ProductSlugs = GeneralHelper.GetProductDetailSlugs(); Contract resellerContract = _contract.Find(cn => cn.SiteID == site.ID && cn.isAutoCalculation == false && cn.isForReseller == true && cn.ContractLevel == null && cn.RecordStatusID != (int)RecordStatus.DELETED).OrderBy(cn => cn.ID).FirstOrDefault(); if (resellerContract != null) { resellerProductPricing = _productPricing.Find(pp => pp.ContractID == resellerContract.ID && pp.SiteID == site.ID).FirstOrDefault(); } foreach (Gateways.RestAPIModels.Response.ALLProduct apiProduct in ProductList) { try { ProductPricingModel model = new ProductPricingModel(); var productavailablity = _productavailablity.Find(pro => pro.Product.InternalProductCode.Equals(apiProduct.ProductCode, StringComparison.OrdinalIgnoreCase) && pro.SiteID == site.ID && pro.Product.RecordStatusID != (int)RecordStatus.DELETED).EagerLoad(p => p.Product).FirstOrDefault(); var sl = ProductSlugs.Where(x => x.ProductCode.Equals(apiProduct.ProductCode, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); if (productavailablity == null) { //Create Product Row Product objProduct = new Product(); apiProduct.Brand = apiProduct.Brand.ToLower() == "verisign" ? "symantec" : apiProduct.Brand; objProduct.BrandID = GetBrand().Where(br => br.BrandName.Equals(apiProduct.Brand, StringComparison.OrdinalIgnoreCase)).FirstOrDefault().ID; objProduct.CanbeReissued = apiProduct.CanbeReissued; objProduct.InternalProductCode = apiProduct.ProductCode; objProduct.isCompetitiveUpgradeAllowed = apiProduct.IsCompetitiveUpgradeSupported; objProduct.isNoOfServerFree = apiProduct.isNoOfServerFree; objProduct.isSANEnabled = apiProduct.IsSanEnable; objProduct.isWildcard = apiProduct.IsWildCardProduct; objProduct.ProductDescription = apiProduct.ProductName; objProduct.ProductName = apiProduct.ProductName; objProduct.ProductTypeID = apiProduct.ProductType; objProduct.RecordStatusID = (int)RecordStatus.ACTIVE; objProduct.RefundDays = apiProduct.RefundDays; objProduct.ReissueDays = apiProduct.ReissueDays; objProduct.ReissueType = "Included"; objProduct.SanMax = apiProduct.SanMax; objProduct.SanMin = apiProduct.SanMin; objProduct.DetailPageslug = sl != null ? sl.SlugUrl : string.Empty; model.product = objProduct; ProductAvailablity objAvailablity = new ProductAvailablity(); objAvailablity.isActive = true; objAvailablity.Product = objProduct; objAvailablity.SiteID = site.ID; model.productAvailablity = objAvailablity; SuccessProduct.Append(SetMarginalPrice(model, apiProduct, site, Margin, ClientContract.ID, false)); //Add reseller pricing for default reseller contract if (resellerContract != null && resellerProductPricing == null) { SetMarginalPrice(model, apiProduct, site, Margin, resellerContract.ID, false); } } else { if (string.IsNullOrEmpty(productavailablity.Product.DetailPageslug)) { productavailablity.Product.DetailPageslug = sl != null ? sl.SlugUrl : string.Empty; } model.product = productavailablity.Product; model.productAvailablity = productavailablity; model.Month_12 = _productPricing.Find(pp => pp.SiteID == site.ID && pp.ProductID == productavailablity.ProductID && pp.ContractID == ClientContract.ID && (pp.NumberOfMonths < 12 ? 12 : pp.NumberOfMonths) == (int)SettingConstants.NumberOfMonths.Month12).FirstOrDefault(); model.Month_24 = _productPricing.Find(pp => pp.SiteID == site.ID && pp.ProductID == productavailablity.ProductID && pp.ContractID == ClientContract.ID && pp.NumberOfMonths == (int)SettingConstants.NumberOfMonths.Month24).FirstOrDefault(); SuccessProduct.Append(SetMarginalPrice(model, apiProduct, site, Margin, ClientContract.ID, true)); //Add reseller pricing for default reseller contract if (resellerContract != null && resellerProductPricing == null) { model.Month_12 = _productPricing.Find(pp => pp.SiteID == site.ID && pp.ContractID == resellerContract.ID && pp.ProductID == productavailablity.ProductID && pp.NumberOfMonths == (int)SettingConstants.NumberOfMonths.Month12).FirstOrDefault(); model.Month_24 = _productPricing.Find(pp => pp.SiteID == site.ID && pp.ContractID == resellerContract.ID && pp.ProductID == productavailablity.ProductID && pp.NumberOfMonths == (int)SettingConstants.NumberOfMonths.Month24).FirstOrDefault(); SetMarginalPrice(model, apiProduct, site, Margin, resellerContract.ID, true); } } } catch (Exception ex) { _logger.Log("Error while importing product : " + (apiProduct != null ? apiProduct.ProductName : string.Empty), Logger.LogType.INFO); _logger.LogException(ex); } } List <StringBuilder> lstReturn = new List <StringBuilder>(); lstReturn.Add(SuccessProduct); lstReturn.Add(UnSuccessProduct); return(lstReturn); }
// Method to print all of the items in the Master customer order form to the console void printItAll() { Console.Clear(); displayOrderFormTitle(); Console.WriteLine(); // If there are no items in the order form if (WagCustomerTypeAndOrder.MasterOrderForm.Count == 0) { Console.WriteLine("THERE ARE NO ITEMS IN YOUR ORDER."); Console.WriteLine(); Console.WriteLine("PRESS ANY KEY TO CONTINUE..."); Console.ReadKey(); Console.Clear(); PresentSelectionMenu(); } int counter = 1; // Print everything in the order form foreach (Object entry in WagCustomerTypeAndOrder.MasterOrderForm) { // We will use this to check if there is an array in the order form array ArrayList ArrayInMasterList = entry as ArrayList; // Check to see if the current entry is an array if (ArrayInMasterList != null) { Console.Write(counter + ". "); int x = 0; // Print each item in the array that is in the current entry of the order form foreach (Object listItem in ArrayInMasterList) { if (x > 0) //if it is not looking at the first ellement of the array (a decimal) { Console.Write(listItem + " "); } else { decimal price = decimal.Parse(listItem.ToString()); WagCustomerTypeAndOrder.AddToRunningTotal(price); x++; } } Console.WriteLine(); } else { // Print out single string entrys in the order form Console.WriteLine(counter + ". " + entry); //Looks up the price and adds to RunningTotal ProductPricing getPrice = new ProductPricing(entry); } counter++; } Console.WriteLine(); Console.WriteLine(); }
private Response <ProductDetailResponse> GetResponse(DWClientConfig config) { var result = new Response <ProductDetailResponse>(); try { var apiResponse = DWClient.GetAPIResponse <DWProduct>(config); if (apiResponse.ResponseStatus.Code == HttpStatusCode.OK) { result.resultset = new ProductDetailResponse(apiResponse.Model, _request.Color, _core, _errors); try { result.resultset.RecommendedProducts = RecommendedProducts.Load(result.resultset.Product.ProductId, _core).Products; } catch { // ignored } result.template = Config.ResponseTemplates.ProductDetail; var reviewsObj = GetPwReviews(result.resultset.Product.ProductId); result.resultset.Product.PowerReview.Reviews = reviewsObj.Item1; result.resultset.Product.PowerReview.Pagination = reviewsObj.Item2; result.resultset.Product.PowerReview.Snapshot = GetPwSnapShots(result.resultset.Product.ProductId); result.resultset.Product.PowerReview.MsqcTags = PowerReviewHelper.GetMsqcsTagSummary(result.resultset.Product.PowerReview.Reviews); result.resultset.Product.PowerReview.FaceOff = GetPwFaceOff(result.resultset.Product.ProductId); if (!string.IsNullOrWhiteSpace(result.resultset.Product.PowerReview.Snapshot.average_rating)) { result.resultset.Product.ProductRating.Rating = decimal.Parse(result.resultset.Product.PowerReview.Snapshot.average_rating); } if (result.resultset.Product.VariantIdsSegments.Count > 0) { IEnumerable <KeyValuePair <string, ProductDetailItemExtension> > tempDictionary = new Dictionary <string, ProductDetailItemExtension>(); result.resultset.Product.VariantIdsSegments.ForEach(segment => { var variantIdToExtension = GetDetailExtension(segment); tempDictionary = tempDictionary.Union(variantIdToExtension); }); if (!_errors.Any()) { var completeDictionary = tempDictionary.GroupBy(x => x.Key).ToDictionary(x => x.Key, x => x.First().Value); if (completeDictionary.Any()) { result.resultset.Product.Colors.ForEach(color => { color.Sizes.ForEach(size => { if (completeDictionary.ContainsKey(size.Value)) { size.SizeSegment = completeDictionary[size.Value].SizeSegment; size.ExclusiveMsg = completeDictionary[size.Value].ExclusiveMsg; size.PriceRange = completeDictionary[size.Value].PriceRange; } color.SizeSegments = color.Sizes .Where(x => !string.IsNullOrEmpty(x.SizeSegment)) .GroupBy(x => x.SizeSegment) .Select((x, i) => new Option { Name = x.First().SizeSegment, Value = x.First().SizeSegment, IsSelected = i == 0 }) .ToList(); }); color.Sizes = color.Sizes; }); } } } result.resultset.Product.Pricing = ProductPricing.GetByID(_core, _request.Id); } else { _errors.Add(new SiteError { Message = new ErrorMessage(Config.Constants.GenericError, apiResponse.ResponseStatus.Message) }); } } catch (Exception ex) { var titleMsg = string.Format("ProductDetail.GetResponse - DW Productid: {0}-{1}", result.resultset.Product.ProductId, config.Path); _errors.Add(ex.Handle(titleMsg, ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }
public ActionResult Payment(OrderDetail model, FormCollection collection) { model = _repository.Find(od => od.ID == model.ID).EagerLoad(od => od.CertificateRequest, od => od.Order, od => od.Order.Site, od => od.Product, od => od.AuditDetails, od => od.Order.User).FirstOrDefault(); Site Site = GetSite(model.Order.SiteID); SetSiteIDInSession(); var _ProdPricing = DependencyResolver.Current.GetService <IRepository <ProductPricing> >(); int CuttentContractID = WBSSLStore.Web.Helpers.WBHelper.GetCurrentContractID(model.Order.UserID, Site.ID); ProductPricing objPricing = _ProdPricing.Find(pp => pp.ProductID == model.ProductID && pp.NumberOfMonths == model.NumberOfMonths && pp.ContractID == CuttentContractID && pp.RecordStatusID == (int)RecordStatus.ACTIVE).FirstOrDefault(); decimal AvailableCredit = _service.GetCreditAmount(model.Order.UserID, Site.ID); int NewAddedSAN = Convert.ToInt32(collection["drpNewSAN"]); if (NewAddedSAN > 0) { if (model.CertificateRequest.AdditionalDomains < model.Product.SanMin) { NewAddedSAN = NewAddedSAN - (Convert.ToInt32(model.Product.SanMin) - model.CertificateRequest.AdditionalDomains); } if (NewAddedSAN > 0) { decimal SANAmount = NewAddedSAN * objPricing.AdditionalSanPrice; if (SANAmount > AvailableCredit) { _viewModel = new ReIssueViewModel(); _viewModel.ISCC = Convert.ToString(collection["rbtPaymentMethod"]).ToLower().Equals("cc") ? true : false; _viewModel.IsPayPal = Convert.ToString(collection["rbtPaymentMethod"]).ToLower().Equals("paypal") ? true : false; _viewModel.IsMoneybookers = Convert.ToString(collection["rbtPaymentMethod"]).ToLower().Equals("moneybookers") ? true : false; _viewModel.user = model.Order.User; _viewModel.PayableAmount = (SANAmount - AvailableCredit); _viewModel.NewSANAdded = NewAddedSAN; _viewModel.SANAmount = SANAmount; _viewModel.OrderDetailID = model.ID; _viewModel.BillingCountry = _viewModel.user.Address.Country.CountryName; if (_viewModel.IsPayPal || _viewModel.ISCC || _viewModel.IsMoneybookers) { if (_viewModel.IsPayPal && !string.IsNullOrEmpty(collection["txtPaypalID"])) { _viewModel.PayPalID = collection["txtPaypalID"].ToString(); _viewModel.paymentmode = WBSSLStore.Domain.PaymentMode.PAYPAL; } else if (_viewModel.IsPayPal) { ViewBag.ErrorMessage = "Please enter paypalid."; } else if (_viewModel.IsMoneybookers) { _viewModel.MoneybookersID = collection["txtMoneybookersID"].ToString(); _viewModel.paymentmode = WBSSLStore.Domain.PaymentMode.MONEYBOOKERS; } else if (_viewModel.ISCC) { _viewModel.CCName = Convert.ToString(collection["txtNameOnCard"]); _viewModel.CCNumber = Convert.ToString(collection["txtCCNumber"]); _viewModel.CVV = Convert.ToString(collection["txtCCV"]); _viewModel.Month = Convert.ToInt32(collection["drpMonth"]); _viewModel.Year = Convert.ToInt32(collection["drpYear"]); _viewModel.paymentmode = WBSSLStore.Domain.PaymentMode.CC; } string Message = _service.AddFundAndReIssue(_viewModel, Site); if (!string.IsNullOrEmpty(Message) && (Message.ToLower().Equals("https://"))) { ViewBag.TransferToEnterCsr = true; } else if (!string.IsNullOrEmpty(Message)) { ViewBag.ErrorMessage = Message; } else { ViewBag.ErrorMessage = "No payment gateway selected."; } } else { ViewBag.ErrorMessage = "No payment gateway selected."; } } else { _service.ReIssueAndUpdateOrderREST(model, SANAmount, NewAddedSAN); ViewBag.TransferToEnterCsr = true; } } else { model.CertificateRequest.AdditionalDomains = Convert.ToInt32(model.Product.SanMin); model.AuditDetails.DateModified = DateTimeWithZone.Now; model.Order = null; model.Product = null; _repository.Update(model); _unitOfWork.Commit(); ViewBag.TransferToEnterCsr = true; } } else { ViewBag.TransferToEnterCsr = true; } if (Convert.ToBoolean(ViewBag.TransferToEnterCsr)) { return(RedirectToAction("entercsr", new { id = model.ID })); } var PGInstance = _service.GetPGInstances(Site.ID); ViewBag.SiteID = Site.ID; PaymentGateways PG = PGInstance.Where(p => p.InstancesID == (int)PGInstances.AuthorizeNet).FirstOrDefault(); if (PG != null) { ViewBag.ISCC = true; } else { ViewBag.ISCC = false; } PG = null; PG = PGInstance.Where(p => p.InstancesID == (int)PGInstances.PayPalIPN).FirstOrDefault(); if (PG != null) { ViewBag.IsPayPal = true; } else { ViewBag.IsPayPal = false; } PG = null; ViewBag.Pricing = objPricing; ViewBag.AvailableCredit = AvailableCredit; return(View(model)); }
public int UpdateShoppingCart(User user, int CartID, int SiteID, int ContractID, string AnonymousID) { List <ShoppingCartDetail> currentcart = null; int returnCartID = CartID; ShoppingCart currentSC = null; if (CartID > 0) { currentSC = DbContext.ShoppingCarts.Where(sc => sc.ID == CartID && sc.SiteID == SiteID).FirstOrDefault(); } else if (!string.IsNullOrEmpty(AnonymousID)) { currentSC = DbContext.ShoppingCarts.Where(sc => sc.UserAnonymousToken == AnonymousID && sc.SiteID == SiteID).FirstOrDefault(); } if (currentSC != null && currentSC.ID > 0) { currentcart = (from s in DbContext.ShoppingCartDetails where s.ShoppingCartID == currentSC.ID select s).EagerLoad(x => x.ProductPricing).ToList(); returnCartID = currentSC.ID; } if (currentcart != null && currentcart.Count > 0) { List <ShoppingCartDetail> usercart = null; ShoppingCart userSC = DbContext.ShoppingCarts.Where(sc => sc.UserID == user.ID && sc.SiteID == SiteID).FirstOrDefault(); if (userSC != null && userSC.ID > 0) { usercart = (from s in DbContext.ShoppingCartDetails where s.ShoppingCartID == userSC.ID select s).EagerLoad(x => x.ProductPricing).ToList(); } if (userSC != null && userSC.ID > 0 && currentSC.ID != userSC.ID) { foreach (ShoppingCartDetail s1 in currentcart) { s1.ShoppingCartID = userSC.ID; usercart.Add(s1); } returnCartID = userSC.ID; DbContext.ShoppingCarts.Remove(currentSC); } else { currentSC.UserAnonymousToken = string.Empty; currentSC.UserID = user.ID; usercart = currentcart; returnCartID = currentSC.ID; } if (usercart != null && usercart.Count > 0) { ProductPricing pp = null; PromoCode promo = null; foreach (ShoppingCartDetail s1 in usercart) { if (user.UserType == UserType.RESELLER) { pp = (from p in DbContext.ProductPricings where p.ContractID == ContractID && p.ProductID == s1.ProductID && p.NumberOfMonths == s1.ProductPricing.NumberOfMonths && p.SiteID == SiteID select p).FirstOrDefault(); if (pp != null) { s1.ProductPricing = pp; s1.ProductPriceID = pp.ID; s1.Price = CalCulatePrice(pp, s1.NumberOfServers, s1.AdditionalDomains); if (!string.IsNullOrEmpty(s1.PromoCode)) { promo = this.GetPromoRow(s1.PromoCode, SiteID, UserType.RESELLER); if (promo != null) { this.AssignPromoInCart(promo, s1, pp); } else { s1.PromoCode = ""; s1.PromoDiscount = 0; } } } } DbContext.ShoppingCartDetails.Attach(s1); DbContext.Entry(s1).State = EntityState.Modified; } DbContext.Commit(); } } else { var Cart = DbContext.ShoppingCarts.Where(x => x.UserID == user.ID && x.SiteID == user.SiteID); if (Cart != null && Cart.Count() > 0) { returnCartID = Cart.FirstOrDefault().ID; } } return(returnCartID); }
private void proPricingBtn_Click(object sender, EventArgs e) { ProductPricing p = new ProductPricing(); MainClass.showWindow(p, this, MDI.ActiveForm); }
/*Add New Product Detail*/ public ServiceResponse SaveProduct(ProductModel productModel) { var product = new Product(); var productAccountPrice = new ProductAccountPrice(); var productAvailability = new ProductAvailability(); var productPricing = new ProductPricing(); Mapper.Map(productModel, product); Mapper.Map(productModel.ProductAccountPriceModel, product.ProductAccountPrice); Mapper.Map(productModel.ProductAvailabilityModel, product.ProductAvailability); Mapper.Map(productModel.ProductPricingModel, product.ProductPricing); Mapper.Map(productModel.ProductDivisionModel, product.ProductDivision); Mapper.Map(productModel.ProductCategoryModel, product.ProductCategory); Mapper.Map(productModel.ProductAttributeModel, product.ProductAttribute); product.CreatedBy = GetLoginUserId(); product.ProductAccountPrice.ToList().ForEach(m => m.CreatedBy = GetLoginUserId()); product.ProductPricing.ToList().ForEach(m => m.CreatedBy = GetLoginUserId()); _unitOfWork.productRespository.Insert(product); _unitOfWork.Save(); Mapper.Map(product, productModel); Mapper.Map(product.ProductClass, productModel.ProductClassModel); Mapper.Map(product.ProductAccountPrice, productModel.ProductAccountPriceModel); Mapper.Map(product.ProductAvailability, productModel.ProductAvailabilityModel); Mapper.Map(product.ProductPricing, productModel.ProductPricingModel); Mapper.Map(product.ProductDivision, productModel.ProductDivisionModel); Mapper.Map(product.ProductCategory, productModel.ProductCategoryModel); Mapper.Map(product.ProductAttribute, productModel.ProductAttributeModel); return new ServiceResponse { Success = true, Message = "Saved", Data = productModel }; }
public static void AssignPromoInCart(PromoCode prow, ShoppingCartDetail cartDetails, ProductPricing pp) { decimal promodiscount = 0; if (prow == null) { cartDetails.PromoCode = string.Empty; cartDetails.PromoDiscount = 0; return; } if (prow != null && cartDetails != null && cartDetails.ShoppingCartID > 0) { if (cartDetails.ProductID == prow.ProductID && cartDetails.ProductPricing.NumberOfMonths == prow.NoOfMonths) { if (prow.Discount > 0) { if (prow.DiscountModeID == (int)DiscountMode.FLAT) { promodiscount = prow.Discount; if (!cartDetails.Product.isNoOfServerFree) { promodiscount = (prow.Discount * (cartDetails.NumberOfServers > 0 ? cartDetails.NumberOfServers : 1)); } } else if (prow.DiscountModeID == (int)DiscountMode.PERCENTAGE) { promodiscount = (pp.SalesPrice * prow.Discount) / 100; if (!cartDetails.Product.isNoOfServerFree) { promodiscount = (promodiscount * (cartDetails.NumberOfServers > 0 ? cartDetails.NumberOfServers : 1)); } } } cartDetails.PromoCode = prow.Code; cartDetails.PromoDiscount = promodiscount; } else { cartDetails.PromoCode = string.Empty; cartDetails.PromoDiscount = 0; } } }
internal static void Products() { int productbrandcount = 0; int productsubbrandcount = 0; int productcount = 1; bool boolSessionBegun = false; QBSessionManager sessionManager = new QBSessionManager(); try { IMsgSetRequest requestMsgSet; IMsgSetResponse responseMsgSet; sessionManager.OpenConnection("", _appName); sessionManager.BeginSession(qdbpath, ENOpenMode.omDontCare); boolSessionBegun = true; requestMsgSet = GetLatestMsgSetRequest(sessionManager); requestMsgSet.Attributes.OnError = ENRqOnError.roeStop; // ISalesTaxCodeRetList IItemInventoryQuery itemInventoryQ = requestMsgSet.AppendItemInventoryQueryRq(); responseMsgSet = sessionManager.DoRequests(requestMsgSet); IResponse response = responseMsgSet.ResponseList.GetAt(0); IItemInventoryRetList itemInventoryRetList = response.Detail as IItemInventoryRetList; List<ProductImport> items= new List<ProductImport>(); List<ProductPricing> pricings=new List<ProductPricing>(); List<Packaging> packagings=new List<Packaging>(); List<ProductBrand> brands=new List<ProductBrand>(); if (itemInventoryRetList != null && itemInventoryRetList.Count > 0) { for (var i = 0; i < itemInventoryRetList.Count; i++) { IItemInventoryRet inventoryRet = itemInventoryRetList.GetAt(i); if(!inventoryRet.Sublevel.IsSet()) { productbrandcount++; } if (inventoryRet.Sublevel.IsSet()) { productsubbrandcount++; } if (inventoryRet.UnitOfMeasureSetRef!=null) { productcount++; } if (inventoryRet != null && inventoryRet.IsActive.GetValue()) { var p = new ProductImport { pCode = inventoryRet.FullName != null ? inventoryRet.Name.GetValue() : "", pDesc = inventoryRet.SalesDesc != null ? inventoryRet.SalesDesc.GetValue() : "", exfactory = inventoryRet.PurchaseCost != null ? Convert.ToDecimal(inventoryRet.PurchaseCost.GetAsString()) : 0m, vatclassName = inventoryRet.SalesTaxCodeRef != null ? inventoryRet.SalesTaxCodeRef.FullName.GetValue() : "", packagingTypeName = inventoryRet.UnitOfMeasureSetRef !=null?inventoryRet.UnitOfMeasureSetRef.FullName.GetValue():"", productBrandName = inventoryRet.ParentRef != null ? inventoryRet.ParentRef.FullName.GetValue() : "" }; items.Add(p); if (inventoryRet.ParentRef != null && inventoryRet.ParentRef.FullName != null ) { IItemInventoryRet b = GetInventoryByNameFilter(inventoryRet.ParentRef.FullName.GetValue()); if (b != null ) { var brand = new ProductBrand { Code = b.FullName != null ? b.FullName.GetValue() : "", Name = b.SalesDesc != null ? b.SalesDesc.GetValue() : "", Description = b.SalesDesc != null ? b.SalesDesc.GetValue() : "", supplierName = "NESTLE KENYA LIMITED" //b.PrefVendorRef.FullName.GetValue() }; if (!string.IsNullOrEmpty(brand.Code) && brands.All(n => n.Code != brand.Code)) brands.Add(brand); brands.Select(n => new {}); } } if(inventoryRet!=null && inventoryRet.UnitOfMeasureSetRef!=null)//p !=null && items.Any(n=>n.pCode==p.pCode)) { //Michael Added Code // if(p.exfactory==0) continue; //End of Michael Added Code var pricing = new ProductPricing { ProductCode = inventoryRet.FullName != null ? inventoryRet.Name.GetValue() : "", Exfactory = inventoryRet.PurchaseCost != null ? Convert.ToDecimal(inventoryRet.PurchaseCost.GetAsString()) : 0m, SellingPrice = inventoryRet.SalesPrice !=null?Convert.ToDecimal(inventoryRet.SalesPrice.GetValue()):0m, StartDate = DateTime.Today.ToShortDateString(), TierNameCode = "Default" }; pricings.Add(pricing); } } } } sessionManager.EndSession(); boolSessionBegun = false; sessionManager.CloseConnection(); if (items.Any()) { DumpExportFilesAsync(items.Where(p=>!string.IsNullOrEmpty(p.productBrandName) && p.exfactory >0m).ToCsv(), MasterDataCollective.SaleProduct.ToString()); } if (pricings.Any()) { DumpExportFilesAsync(pricings.ToCsv(), MasterDataCollective.Pricing.ToString()); } if (packagings.Any()) { DumpExportFilesAsync(packagings.ToCsv(), MasterDataCollective.ProductPackaging.ToString()); } if (brands.Any()) { DumpExportFilesAsync(brands.ToCsv(), MasterDataCollective.ProductBrand.ToString()); } } catch (Exception ex) { if (boolSessionBegun) { sessionManager.EndSession(); sessionManager.CloseConnection(); } string error = (ex.Message.ToString() + "\nStack Trace: \n" + ex.StackTrace + "\nExiting the application"); Log(error); MessageBox.Show(error); } }