Esempio n. 1
0
        public static void SaveProductImageUseCompress(string destName, Image image, bool skipOriginal = false)
        {
            UpdateDirectories();

            //не удалять, создаем еще один imaga из-за багов в формате файла, если сохранять напрямую, выдает исключение GDI+
            using (Image img = new Bitmap(image))
            {
                if (!skipOriginal)
                {
                    var destPath = FoldersHelper.GetImageProductPathAbsolut(ProductImageType.Original, destName);
                    if (File.Exists(destPath))
                    {
                        DeleteFile(destPath);
                    }
                    img.Save(destPath);
                }

                if (!SettingsCatalog.CompressBigImage)
                {
                    var destPath = FoldersHelper.GetImageProductPathAbsolut(ProductImageType.Big, destName);
                    if (File.Exists(destPath))
                    {
                        DeleteFile(destPath);
                    }
                    img.Save(destPath);
                }

                ModulesRenderer.ProcessPhoto(img);

                if (SettingsCatalog.CompressBigImage)
                {
                    SaveResizePhotoFile(ProductImageType.Big, img, destName);
                }
                SaveResizePhotoFile(ProductImageType.Middle, img, destName);
                SaveResizePhotoFile(ProductImageType.Small, img, destName);
                SaveResizePhotoFile(ProductImageType.XSmall, img, destName);
            }
        }
    private void ResizeCurrentPhoto(Image image, string destName)
    {
        FileHelpers.UpdateDirectories();

        ModulesRenderer.ProcessPhoto(image);

        if (SettingsCatalog.CompressBigImage)
        {
            FileHelpers.SaveResizePhotoFile(ProductImageType.Big, image, destName);
        }
        else
        {
            //не удалять, создаем еще один imaga из-за багов в формате файла, если сохранять напрямую, выдает исключение GDI+
            using (Image img = new Bitmap(image))
            {
                img.Save(FoldersHelper.GetImageProductPathAbsolut(ProductImageType.Big, destName));
            }
        }

        FileHelpers.SaveResizePhotoFile(ProductImageType.Middle, image, destName);
        FileHelpers.SaveResizePhotoFile(ProductImageType.Small, image, destName);
        FileHelpers.SaveResizePhotoFile(ProductImageType.XSmall, image, destName);
    }
Esempio n. 3
0
        public static void SaveProductImageUseCompress(string destName, Image image, bool skipOriginal = false)
        {
            UpdateDirectories();

            if (!skipOriginal)
            {
                image.Save(FoldersHelper.GetImageProductPathAbsolut(ProductImageType.Original, destName));
            }

            ModulesRenderer.ProcessPhoto(image);

            if (SettingsCatalog.CompressBigImage)
            {
                SaveResizePhotoFile(ProductImageType.Big, image, destName);
            }
            else
            {
                image.Save(FoldersHelper.GetImageProductPathAbsolut(ProductImageType.Big, destName));
            }

            SaveResizePhotoFile(ProductImageType.Middle, image, destName);
            SaveResizePhotoFile(ProductImageType.Small, image, destName);
            SaveResizePhotoFile(ProductImageType.XSmall, image, destName);
        }
        private Order CreateOrder(ShoppingCart shoppingCart)
        {
            var orderConfirmData = PageData.OrderConfirmationData;
            var customerGroup    = CustomerContext.CurrentCustomer.CustomerGroup;

            var baseCurrency = CurrencyService.BaseCurrency;

            var ord = new Order
            {
                OrderCustomer = new OrderCustomer
                {
                    CustomerIP  = Request.UserHostAddress,
                    CustomerID  = orderConfirmData.Customer.Id,
                    FirstName   = orderConfirmData.Customer.FirstName,
                    LastName    = orderConfirmData.Customer.LastName,
                    Patronymic  = orderConfirmData.Customer.Patronymic,
                    Email       = orderConfirmData.Customer.EMail,
                    MobilePhone = orderConfirmData.Customer.Phone,
                },
                OrderCurrency = new OrderCurrency
                {
                    //CurrencyCode = CurrencyService.CurrentCurrency.Iso3,
                    //CurrencyValue = CurrencyService.CurrentCurrency.Value,
                    //CurrencySymbol = CurrencyService.CurrentCurrency.Symbol,
                    //CurrencyNumCode = CurrencyService.CurrentCurrency.NumIso3,
                    //IsCodeBefore = CurrencyService.CurrentCurrency.IsCodeBefore
                    CurrencyCode    = baseCurrency.Iso3,
                    CurrencyValue   = baseCurrency.Value,
                    CurrencySymbol  = baseCurrency.Symbol,
                    CurrencyNumCode = baseCurrency.NumIso3,
                    IsCodeBefore    = baseCurrency.IsCodeBefore
                },
                OrderStatusId   = OrderService.DefaultOrderStatus,
                AffiliateID     = 0,
                OrderDate       = DateTime.Now,
                CustomerComment = orderConfirmData.CustomerComment,
                ShippingContact = new OrderContact
                {
                    Name         = orderConfirmData.ShippingContact.Name,
                    Country      = orderConfirmData.ShippingContact.Country,
                    Zone         = orderConfirmData.ShippingContact.RegionName,
                    City         = orderConfirmData.ShippingContact.City,
                    Zip          = orderConfirmData.ShippingContact.Zip,
                    Address      = orderConfirmData.ShippingContact.Address,
                    CustomField1 = orderConfirmData.ShippingContact.CustomField1,
                    CustomField2 = orderConfirmData.ShippingContact.CustomField2,
                    CustomField3 = orderConfirmData.ShippingContact.CustomField3
                },

                GroupName     = customerGroup.GroupName,
                GroupDiscount = customerGroup.GroupDiscount,
                OrderDiscount = shoppingCart.DiscountPercentOnTotalPrice
            };

            foreach (var orderItem in shoppingCart.Select(item => (OrderItem)item))
            {
                ord.OrderItems.Add(orderItem);
            }

            if (!orderConfirmData.BillingIsShipping)
            {
                ord.BillingContact = new OrderContact
                {
                    Name         = orderConfirmData.BillingContact.Name,
                    Country      = orderConfirmData.BillingContact.Country,
                    Zone         = orderConfirmData.BillingContact.RegionName,
                    City         = orderConfirmData.BillingContact.City,
                    Zip          = orderConfirmData.BillingContact.Zip,
                    Address      = orderConfirmData.BillingContact.Address,
                    CustomField1 = orderConfirmData.BillingContact.CustomField1,
                    CustomField2 = orderConfirmData.BillingContact.CustomField2,
                    CustomField3 = orderConfirmData.BillingContact.CustomField3
                };
            }

            ord.ShippingMethodId = orderConfirmData.SelectedShippingItem.MethodId;
            ord.PaymentMethodId  = orderConfirmData.SelectedPaymentItem.PaymenMethodtId;

            ord.ArchivedShippingName = orderConfirmData.SelectedShippingItem.MethodNameRate;
            ord.ArchivedPaymentName  = orderConfirmData.SelectedPaymentItem.Name;

            ord.PaymentDetails = orderConfirmData.PaymentDetails;

            if (orderConfirmData.SelectedShippingItem.Ext != null &&
                orderConfirmData.SelectedShippingItem.Ext.PickpointAddress.IsNotEmpty())
            {
                ord.OrderPickPoint = new OrderPickPoint
                {
                    PickPointId      = orderConfirmData.SelectedShippingItem.Ext.PickpointId,
                    PickPointAddress = orderConfirmData.SelectedShippingItem.Ext.PickpointAddress,
                    AdditionalData   = orderConfirmData.SelectedShippingItem.Ext.AdditionalData
                };
            }
            else if (orderConfirmData.SelectedShippingItem.Ext != null &&
                     orderConfirmData.SelectedShippingItem.Ext.Type == ExtendedType.Cdek &&
                     orderConfirmData.SelectedShippingItem.Ext.PickpointAddress.IsNullOrEmpty())
            {
                ord.OrderPickPoint = new OrderPickPoint
                {
                    PickPointId      = orderConfirmData.SelectedShippingItem.Ext.PickpointId,
                    PickPointAddress = ord.ShippingContact.Address,
                    AdditionalData   = orderConfirmData.SelectedShippingItem.Ext.AdditionalData
                };
            }
            else if (orderConfirmData.SelectedShippingItem.Type == ShippingType.CheckoutRu &&
                     orderConfirmData.SelectedShippingItem.Ext != null)
            {
                ord.OrderPickPoint = new OrderPickPoint
                {
                    PickPointId      = orderConfirmData.SelectedShippingItem.Ext.PickpointId,
                    PickPointAddress = orderConfirmData.SelectedShippingItem.Ext.Type != ExtendedType.CashOnDelivery
                        ? ord.ShippingContact.Address
                        : string.Empty,
                    AdditionalData = orderConfirmData.SelectedShippingItem.Ext.AdditionalData
                };
            }

            var certificate = shoppingCart.Certificate;
            var coupon      = shoppingCart.Coupon;

            if (certificate != null)
            {
                ord.Certificate = new OrderCertificate()
                {
                    Code  = certificate.CertificateCode,
                    Price = certificate.Sum
                };
            }
            if (coupon != null && shoppingCart.TotalPrice >= coupon.MinimalOrderPrice)
            {
                ord.Coupon = new OrderCoupon()
                {
                    Code  = coupon.Code,
                    Type  = coupon.Type,
                    Value = coupon.Value
                };
            }

            var shippingPrice = orderConfirmData.SelectedPaymentItem.Type == PaymentType.CashOnDelivery && (orderConfirmData.SelectedShippingItem.Type != ShippingType.Cdek || orderConfirmData.SelectedShippingItem.Type != ShippingType.CheckoutRu)
                                ? orderConfirmData.SelectedShippingItem.Ext != null
                                      ? orderConfirmData.SelectedShippingItem.Ext.PriceCash
                                      : 0
                                : orderConfirmData.SelectedShippingItem.Rate;

            BonusCard bonusCard = null;

            if (BonusSystem.IsActive)
            {
                bonusCard = BonusSystemService.GetCard(orderConfirmData.Customer.BonusCardNumber);
                if (bonusCard != null && orderConfirmData.UseBonuses && bonusCard.BonusAmount > 0)
                {
                    ord.BonusCost =
                        BonusSystemService.GetBonusCost(
                            shoppingCart.TotalPrice - shoppingCart.TotalDiscount + shippingPrice,
                            shoppingCart.TotalPrice - shoppingCart.TotalDiscount, bonusCard.BonusAmount);
                }
            }

            var taxTotal =
                AdvantShop.Taxes.TaxServices.CalculateTaxes(shoppingCart.TotalPrice - shoppingCart.TotalDiscount +
                                                            shippingPrice - ord.BonusCost).Where(tax => !tax.Key.ShowInPrice).Sum(tax => tax.Value);

            var paymentPrice = orderConfirmData.SelectedPaymentItem.ExtrachargeType == ExtrachargeType.Percent
                                    ? (shoppingCart.TotalPrice - shoppingCart.TotalDiscount + shippingPrice - ord.BonusCost + taxTotal) * orderConfirmData.SelectedPaymentItem.Extracharge / 100
                                    : orderConfirmData.SelectedPaymentItem.Extracharge;

            ord.ShippingCost = shippingPrice;
            ord.PaymentCost  = paymentPrice;


            ord.Number = OrderService.GenerateNumber(1); // For crash protection

            ord.OrderID = OrderService.AddOrder(ord);
            ord.Number  = OrderService.GenerateNumber(ord.OrderID); // new number
            OrderService.UpdateNumber(ord.OrderID, ord.Number);

            ModulesRenderer.OrderAdded(ord.OrderID);

            OrderService.ChangeOrderStatus(ord.OrderID, OrderService.DefaultOrderStatus);

            if (BonusSystem.IsActive && bonusCard != null)
            {
                var sumPrice = BonusSystem.BonusType == BonusSystem.EBonusType.ByProductsCostWithShipping
                       ? shoppingCart.TotalPrice - shoppingCart.TotalDiscount + shippingPrice
                       : shoppingCart.TotalPrice - shoppingCart.TotalDiscount;

                BonusSystemService.MakeBonusPurchase(bonusCard.CardNumber, sumPrice, ord.BonusCost, ord.Number, ord.OrderID);
            }



            TrialService.TrackEvent(
                ord.OrderItems.Any(item => item.Name.Contains("SM-G900F"))
                    ? TrialEvents.BuyTheProduct
                    : TrialEvents.CheckoutOrder, string.Empty);

            return(ord);
        }
Esempio n. 5
0
    private Order CreateOrder(ShoppingCart shoppingCart)
    {
        var customerGroup = CustomerSession.CurrentCustomer.CustomerGroup;
        var ord           = new Order
        {
            OrderCustomer = new OrderCustomer
            {
                CustomerIP  = Request.UserHostAddress,
                CustomerID  = PageData.OrderConfirmationData.Customer.Id,
                FirstName   = PageData.OrderConfirmationData.Customer.FirstName,
                LastName    = PageData.OrderConfirmationData.Customer.LastName,
                Email       = PageData.OrderConfirmationData.Customer.EMail,
                MobilePhone = PageData.OrderConfirmationData.Customer.Phone,
            },
            OrderCurrency = new OrderCurrency
            {
                CurrencyCode    = CurrencyService.CurrentCurrency.Iso3,
                CurrencyValue   = CurrencyService.CurrentCurrency.Value,
                CurrencySymbol  = CurrencyService.CurrentCurrency.Symbol,
                CurrencyNumCode = CurrencyService.CurrentCurrency.NumIso3,
                IsCodeBefore    = CurrencyService.CurrentCurrency.IsCodeBefore
            },
            OrderStatusId = OrderService.DefaultOrderStatus,
            AffiliateID   = 0,
            ShippingCost  = PageData.OrderConfirmationData.SelectedPaymentType == PaymentType.CashOnDelivery
                                                                              ? PageData.OrderConfirmationData.ShippingOptionEx != null ? PageData.OrderConfirmationData.ShippingOptionEx.PriceCash : 0
                                                                              : PageData.OrderConfirmationData.SelectShippingRate,
            OrderDate       = DateTime.Now,
            CustomerComment = PageData.OrderConfirmationData.CustomerComment,
            ShippingContact = new OrderContact
            {
                Name    = PageData.OrderConfirmationData.ShippingContact.Name,
                Country = PageData.OrderConfirmationData.ShippingContact.Country,
                Zone    = PageData.OrderConfirmationData.ShippingContact.RegionName,
                City    = PageData.OrderConfirmationData.ShippingContact.City,
                Zip     = PageData.OrderConfirmationData.ShippingContact.Zip,
                Address = PageData.OrderConfirmationData.ShippingContact.Address,
            },

            GroupName     = customerGroup.GroupName,
            GroupDiscount = customerGroup.GroupDiscount,
            OrderDiscount = shoppingCart.DiscountPercentOnTotalPrice
        };



        foreach (var orderItem in shoppingCart.Select(item => (OrderItem)item))
        {
            ord.OrderItems.Add(orderItem);
        }

        if (!PageData.OrderConfirmationData.BillingIsShipping)
        {
            ord.BillingContact = new OrderContact
            {
                Name    = PageData.OrderConfirmationData.BillingContact.Name,
                Country = PageData.OrderConfirmationData.BillingContact.Country,
                Zone    = PageData.OrderConfirmationData.BillingContact.RegionName,
                City    = PageData.OrderConfirmationData.BillingContact.City,
                Zip     = PageData.OrderConfirmationData.BillingContact.Zip,
                Address = PageData.OrderConfirmationData.BillingContact.Address,
            };
        }

        ord.ShippingMethodId = PageData.OrderConfirmationData.SelectShippingId;
        ord.ShippingMethodId = shoppingCart.Count(item => item.ItemType == EnumItemType.Product) == 0 ? 0 : PageData.OrderConfirmationData.SelectShippingId;
        ord.PaymentMethodId  = PageData.OrderConfirmationData.SelectPaymentId;

        ord.ArchivedShippingName = shoppingCart.Count(item => item.ItemType == EnumItemType.Product) == 0 ? Resource.Client_OrderConfirmation_FreeShipping : PageData.OrderConfirmationData.SelectShippingName;
        ord.ArchivedPaymentName  = PageData.OrderConfirmationData.SelectPaymentName;

        ord.PaymentDetails = PageData.OrderConfirmationData.PaymentDetails;

        if (PageData.OrderConfirmationData.ShippingOptionEx != null && !string.IsNullOrEmpty(PageData.OrderConfirmationData.ShippingOptionEx.Pickpointmap))
        {
            ord.OrderPickPoint = new OrderPickPoint
            {
                PickPointId      = PageData.OrderConfirmationData.ShippingOptionEx.PickpointId,
                PickPointAddress =
                    PageData.OrderConfirmationData.ShippingOptionEx.PickpointAddress
            }
        }
        ;

        ord.Number = OrderService.GenerateNumber(1); // For crash protection

        GiftCertificate certificate = shoppingCart.Certificate;
        Coupon          coupon      = shoppingCart.Coupon;

        if (certificate != null)
        {
            ord.Certificate = new OrderCertificate()
            {
                Code  = certificate.CertificateCode,
                Price = certificate.Sum
            };
        }
        if (coupon != null && shoppingCart.TotalPrice >= coupon.MinimalOrderPrice)
        {
            ord.Coupon = new OrderCoupon()
            {
                Code  = coupon.Code,
                Type  = coupon.Type,
                Value = coupon.Value
            };
        }



        ord.OrderID = OrderService.AddOrder(ord);
        ord.Number  = OrderService.GenerateNumber(ord.OrderID); // new number
        OrderService.UpdateNumber(ord.OrderID, ord.Number);
        OrderService.ChangeOrderStatus(ord.OrderID, OrderService.DefaultOrderStatus);

        ModulesRenderer.OrderAdded(ord.OrderID);
        return(ord);
    }
Esempio n. 6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (ProductId == 0)
        {
            Error404();
            return;
        }

        //if not have category
        if (ProductService.GetCountOfCategoriesByProductId(ProductId) == 0)
        {
            Error404();
            return;
        }


        // --- Check product exist ------------------------
        CurrentProduct = ProductService.GetProduct(ProductId);
        if (CurrentProduct == null || CurrentProduct.Enabled == false || CurrentProduct.HirecalEnabled == false)//CategoryService.IsEnabledParentCategories(_product.CategoryID) == false)
        {
            Error404();
            return;
        }

        BuyInOneClick.Visible         = SettingsOrderConfirmation.BuyInOneClick;
        BuyInOneClick.ProductId       = CurrentProduct.ProductId;
        BuyInOneClick.SelectedOptions = productCustomOptions.SelectedOptions;
        BuyInOneClick.CustomOptions   = productCustomOptions.CustomOptions;

        if (CurrentProduct.Amount <= 0 || CurrentProduct.Price == 0)
        {
            divAmount.Visible = false;
        }

        CompareControl.Visible    = SettingsCatalog.EnableCompareProducts;
        CompareControl.ProductId  = ProductId;
        CompareControl.IsSelected = ShoppingCartService.CurrentCompare.Any(p => p.EntityId == ProductId);

        divUnit.Visible = CurrentProduct.Offers[0].Unit.IsNotEmpty();

        sbShareButtons.Visible = SettingsDesign.EnableSocialShareButtons;

        rating.ProductId  = CurrentProduct.ID;
        rating.Rating     = CurrentProduct.Ratio;
        rating.ShowRating = SettingsCatalog.EnableProductRating;
        rating.ReadOnly   = RatingService.DoesUserVote(ProductId, CustomerSession.CustomerId);

        pnlWishlist.Visible = SettingsDesign.WishListVisibility;

        pnlSize.Visible = !string.IsNullOrEmpty(CurrentProduct.Size) && (CurrentProduct.Size != "0|0|0");
        //lblSize.Text = !string.IsNullOrEmpty(_product.Size) ? _product.Size.Replace("|", "x") : string.Empty;
        pnlWeight.Visible = CurrentProduct.Weight != 0;
        //lblWeight.Text = _product.Weight.ToString();
        pnlBrand.Visible = CurrentProduct.Brand != null;

        //Commented by Evgeni
        //productPropertiesView.ProductId = ProductId;
        //productPropertiesSetView.ProductId = ProductId;
        //productPropertiesAddedValueView.ProductId = ProductId;
        //ProductVideoView.ProductID = ProductId;

        //Need to pass to user control List of all product properties and in each set to divide this list into categories
        List <PropertyValue> productProperties = PropertyService.GetPropertyValuesByProductId(ProductId);

        productPropertiesView.ProductProperties    = productProperties;
        productPropertiesSetView.ProductProperties = productProperties;
        productPropertiesSetView.ProductId         = ProductId;
        productPropertiesSetView.ManufacteruArtNo  = CurrentProduct.ManufactureArtNo;
        if (productProperties == null)
        {
            productPropertiesAddedValueView.ProductProperties = new List <PropertyValue>();
        }
        else
        {
            productPropertiesAddedValueView.ProductProperties = productProperties;
        }
        //Added by Evgeni for Stihl Viking
        if (CurrentProduct.Brand == null)
        {
        }
        else if ((CurrentProduct.Brand.Name.ToLower() == "stihl") || (CurrentProduct.Brand.Name.ToLower() == "viking"))
        {
            productPropertiesAddedValueView.ProductId = ProductId;
        }
        else
        {
            productPropertiesAddedValueView.ProductId = 0;
        }
        ProductVideoView.ProductID = ProductId;

        //Added By Evgeni to change long description into user friendly mode
        if ((CustomerSession.CurrentCustomer.CustomerGroup.GroupName == "Оптовик") || CustomerSession.CurrentCustomer.IsAdmin)
        {
            if (CurrentProduct.Offers.Where(t => t.OfferListId == 16).ToList().Count > 0 && CurrentProduct.Offers.Where(t => t.OfferListId == 16).FirstOrDefault().Price > 0)
            {
                lblSinglePriceTextForOptUser.Text = @"<font size='3'>  Розничная цена:  </font> <br />";
                lblOptPrice.Text = string.Format("<font size='3'>  Минимальная оптовая цена в евро:  </font> <br /> <div class='price'> {0} € </div>", CurrentProduct.Offers.Where(t => t.OfferListId == 16).FirstOrDefault().Price.ToString("F2"));
            }
        }
        DescriptionModificator();
        //////////////////////////////////////////////////////////

        productPhotoView.Product = CurrentProduct;
        relatedProducts.ProductIds.Add(ProductId);
        alternativeProducts.ProductIds.Add(ProductId);
        //Added By Evgeni for Bosch Related Products
        relatedBoschProducts.ProductIds.Add(ProductId);
        //

        breadCrumbs.Items = CategoryService.GetParentCategories(CurrentProduct.CategoryID).Reverse().Select(cat => new BreadCrumbs()
        {
            Name = cat.Name,
            Url  = UrlService.GetLink(ParamType.Category, cat.UrlPath, cat.ID)
        }).ToList();
        breadCrumbs.Items.Insert(0, new BreadCrumbs()
        {
            Name = Resource.Client_MasterPage_MainPage,
            Url  = UrlService.GetAbsoluteLink("/")
        });

        breadCrumbs.Items.Add(new BreadCrumbs {
            Name = CurrentProduct.Name, Url = null
        });

        RecentlyViewService.SetRecentlyView(CustomerSession.CustomerId, ProductId);

        if ((!IsPostBack) && (IsEditItem))
        {
            if (!IsCorrectItemType)
            {
                Redirect(UrlService.GetLink(ParamType.Product, CurrentProduct.UrlPath, ProductId));
                return;
            }

            switch (ItemType)
            {
            case ShoppingCartType.ShoppingCart:
                //txtAmount.Text = ShoppingCartService.CurrentShoppingCart[ItemIndex].Amount.ToString();
                break;

            case ShoppingCartType.Wishlist:
                //txtAmount.Text = "1";
                break;
            }
        }

        SetMeta(CurrentProduct.Meta, CurrentProduct.Name);

        productReviews.EntityType = EntityType.Product;
        productReviews.EntityId   = ProductId;

        ltrlRightColumnModules.Text = ModulesRenderer.RenderDetailsModulesToRightColumn();

        int reviewsCount = SettingsCatalog.ModerateReviews ? ReviewService.GetCheckedReviewsCount(ProductId, EntityType.Product) : ReviewService.GetReviewsCount(ProductId, EntityType.Product);

        if (reviewsCount > 0)
        {
            lReviewsCount.Text = string.Format("({0})", reviewsCount);
        }
    }