Ejemplo n.º 1
0
        /*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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        //
        // 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));
        }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        // 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();
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 18
0
        private void proPricingBtn_Click(object sender, EventArgs e)
        {
            ProductPricing p = new ProductPricing();

            MainClass.showWindow(p, this, MDI.ActiveForm);
        }
Ejemplo n.º 19
0
        /*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;
                }
            }
        }
Ejemplo n.º 21
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);

            }
          
        }