Exemple #1
0
    // load or create new data for current state
    private AdvantShop.Orders.OrderConfirmation LoadOrderConfirmationData(Guid id)
    {
        AdvantShop.Orders.OrderConfirmation res;

        if (!OrderConfirmationService.IsExist(id))
        {
            res = new AdvantShop.Orders.OrderConfirmation
            {
                CustomerId            = id,
                OrderConfirmationData = new OrderConfirmationData {
                    UserType = EnUserType.NoUser, BillingIsShipping = true
                }
            };
            // if we have user
            if (CustomerSession.CurrentCustomer.RegistredUser)
            {
                res.OrderConfirmationData.UserType = EnUserType.RegistredUser;
            }
            OrderConfirmationService.Add(res);
        }
        else
        {
            res = OrderConfirmationService.Get(id);
        }

        return(res);
    }
Exemple #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var ocModule = AttachedModules.GetModules(AttachedModules.EModuleType.OrderConfirmation).FirstOrDefault();
            if (ocModule != null)
            {
                var classInstance = (IOrderConfirmation)Activator.CreateInstance(ocModule, null);
                if (classInstance.IsActive && classInstance.CheckAlive() && !string.IsNullOrEmpty(classInstance.FileUserControlOrderConfirmation))
                {
                    Redirect("orderconfirmationmodule.aspx", true);
                }
            }
        }

        var shoppingCart = ShoppingCartService.CurrentShoppingCart;

        PageData = LoadOrderConfirmationData(CustomerSession.CustomerId);

        if (!shoppingCart.CanOrder && (PageData.OrderConfirmationData.ActiveTab != EnActiveTab.FinalTab))
        {
            Redirect("shoppingcart.aspx", true);
        }

        //check current step and save state in db
        var activeT = EnActiveTab.NoTab;

        if (!IsPostBack)
        {
            Enum.TryParse(Request["tab"], true, out activeT);

            if (activeT != PageData.OrderConfirmationData.ActiveTab)
            {
                if (activeT < PageData.OrderConfirmationData.ActiveTab)
                {
                    PageData.OrderConfirmationData.ActiveTab = activeT;
                }
                Redirect(PageData);
            }
        }
        if (PageData.OrderConfirmationData.ActiveTab == EnActiveTab.FinalTab)
        {
            OrderConfirmationService.Delete(CustomerSession.CustomerId);
            LoadOrderConfirmationData(CustomerSession.CustomerId);
        }

        if (PageData.OrderConfirmationData.ActiveTab == EnActiveTab.NoTab)
        {
            //ShowTab(PageData.OrderConfirmationData.UserType == EnUserType.RegistredUser ? EnActiveTab.UserTab : EnActiveTab.DefaultTab);
            //Changed by Evgeni to prevent user registration
            ShowTab(EnActiveTab.UserTab);
        }
        else
        {
            ShowTab(PageData.OrderConfirmationData.ActiveTab);
        }

        SetMeta(new MetaInfo(string.Format("{0} - {1}", Resource.Client_OrderConfirmation_DrawUpOrder, SettingsMain.ShopName)), string.Empty);
    }
 private void Redirect()
 {
     //if (Request.UrlReferrer != null && !Request.UrlReferrer.AbsoluteUri.Contains("orderconfirmation"))
     //{
     //    PageData.OrderConfirmationData.ActiveTab = EnActiveTab.UserTab;
     //}
     OrderConfirmationService.Update(PageData);
     Response.Redirect("orderconfirmation.aspx?tab=" + PageData.OrderConfirmationData.ActiveTab.ToString());
 }
Exemple #4
0
 public void Execute(IJobExecutionContext context)
 {
     ShoppingCartService.DeleteExpiredShoppingCartItems(DateTime.Today.AddMonths(-3));
     OrderConfirmationService.DeleteExpired(DateTime.Today.AddMonths(-3));
     RecentlyViewService.DeleteExpired();
     InternalServices.DeleteExpiredAppRestartLogData();
     Secure.DeleteExpiredAuthorizeLog();
     //JsCssTool.Clear();
 }
Exemple #5
0
        public void Setup()
        {
            _uow          = new UnitOfWork();
            _orderService = new OrderConfirmationService(null, _uow, Root);

            _project           = _uow.ProjectRepository.Get(p => p.ProjectNumber == "P2013-083").FirstOrDefault();
            _relation          = _project.Files.FirstOrDefault(f => f.File.Name == "R5942565_EU0028S_22104496 SO 10449601");
            _parser            = OrderConfirmationFactory.GetParser(Root, _relation.File);
            _orderConfirmation = _orderService.CreateFromProjectFile(_relation);
        }
        private Order DoCreateOrder()
        {
            var shoppingCart = ShoppingCartService.CurrentShoppingCart;

            if (shoppingCart.GetHashCode() != PageData.OrderConfirmationData.CheckSum || !shoppingCart.HasItems)
            {
                Response.Redirect("shoppingcart.aspx");
                return(null);
            }

            if (PageData.OrderConfirmationData.UserType == EnUserType.JustRegistredUser)
            {
                RegistrationNow();
            }

            if (PageData.OrderConfirmationData.UserType == EnUserType.RegisteredUserWithoutAddress)
            {
                UpdateCustomerContact();
            }

            var order = CreateOrder(shoppingCart);

            SendOrderMail(order, shoppingCart);

            var certificate = shoppingCart.Certificate;

            if (certificate != null)
            {
                certificate.ApplyOrderNumber = order.Number;
                certificate.Used             = true;
                certificate.Enable           = true;

                GiftCertificateService.DeleteCustomerCertificate(certificate.CertificateId);
                GiftCertificateService.UpdateCertificateById(certificate);
            }

            var coupon = shoppingCart.Coupon;

            if (coupon != null && shoppingCart.TotalPrice >= coupon.MinimalOrderPrice)
            {
                coupon.ActualUses += 1;
                CouponService.UpdateCoupon(coupon);
                CouponService.DeleteCustomerCoupon(coupon.CouponID);
            }

            ShoppingCartService.ClearShoppingCart(ShoppingCartType.ShoppingCart, PageData.OrderConfirmationData.Customer.Id);
            ShoppingCartService.ClearShoppingCart(ShoppingCartType.ShoppingCart, CustomerContext.CustomerId);

            ShippingManager.CurrentShippingRates.Clear();

            OrderConfirmationService.Delete(CustomerContext.CustomerId);

            return(order);
        }
Exemple #7
0
    private void ShowActiveTab(bool innerPostback)
    {
        switch (PageData.OrderConfirmationData.ActiveTab)
        {
        case EnActiveTab.DefaultTab:
            mvOrderConfirm.SetActiveView(ViewAuthorizationCheck);
            break;

        case EnActiveTab.UserTab:
            FirstStep.UserType          = PageData.OrderConfirmationData.UserType;
            FirstStep.BillingIsShipping = PageData.OrderConfirmationData.BillingIsShipping;
            FirstStep.ShippingContact   = PageData.OrderConfirmationData.ShippingContact;
            FirstStep.BillingContact    = PageData.OrderConfirmationData.BillingContact;
            FirstStep.Customer          = PageData.OrderConfirmationData.Customer;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationUser);
            break;

        case EnActiveTab.ShippingTab:
            SecondStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationShipping);
            break;

        case EnActiveTab.PaymentTab:
            ThirdStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationPayment);
            break;

        case EnActiveTab.SumTab:
            FourthStep.PageData = PageData.OrderConfirmationData;
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationSum);
            break;

        case EnActiveTab.FinalTab:
            if (!innerPostback)
            {
                var order = DoCreateOrder();
                FifthStep.OrderID = order.OrderID;
                FifthStep.Number  = order.Number;
                ShippingManager.CurrentShippingRates.Clear();
            }
            mvOrderConfirm.SetActiveView(ViewOrderConfirmationFinal);
            OrderConfirmationService.Delete(CustomerSession.CustomerId);
            break;

        default:
            mvOrderConfirm.SetActiveView(ViewAuthorizationCheck);
            break;
        }

        ltSteps.Text = RenderSteps(PageData.OrderConfirmationData.ActiveTab);
    }
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            UpdatePageData();

            if (!IsValidPageData())
            {
                PageData.OrderConfirmationData.ActiveTab = EnActiveTab.NoTab;
                OrderConfirmationService.Update(PageData);
                ShowActiveTab(false);
            }
            else
            {
                PageData.OrderConfirmationData.ActiveTab = EnActiveTab.FinalTab;
                Redirect();
            }
        }
        /// <summary>
        /// Load or create new order confirmation data for current state
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private AdvantShop.Orders.OrderConfirmation LoadOrderConfirmationData(Guid id)
        {
            if (OrderConfirmationService.IsExist(id))
            {
                return(OrderConfirmationService.Get(id));
            }

            var res = new AdvantShop.Orders.OrderConfirmation
            {
                CustomerId            = id,
                OrderConfirmationData = new OrderConfirmationData
                {
                    UserType          = CustomerContext.CurrentCustomer.RegistredUser ? EnUserType.RegisteredUser : EnUserType.NoUser,
                    BillingIsShipping = true
                }
            };

            OrderConfirmationService.Add(res);
            return(res);
        }
Exemple #10
0
        public bool Execute(DbConnection connection, EntityInfo info)
        {
            var root = HttpContext.Current.Server.MapPath("~/");
            var uow  = new UnitOfWork(connection);

            var projectService = new ProjectService(null, uow, root);
            var orderService   = new OrderConfirmationService(null, uow, root);

            var relation = info.Entity as ProjectFile;
            var project  = projectService.GetByKey(relation.ProjectId);

            if (info.EntityState == EntityState.Added && relation.Role == FileRole.OrderConfirmation)
            {
                if (uow.OrderConfirmationRepository.Get(o => o.FileId == relation.FileId).Any())
                {
                    throw new Exception("File already used as an order confirmation");
                }

                var orderConfirmation = orderService.CreateFromProjectFile(relation);
                info.OriginalValuesMap.Add("VendorId", orderConfirmation.VendorId);

                foreach (var item in orderConfirmation.Items)
                {
                    var rel = project.Components.SingleOrDefault(pc => pc.Component.Name == item.Component.Name && pc.Component.Vendor.Name == item.Component.Vendor.Name);

                    if (rel == null)
                    {
                        project.Components.Add(new ProjectComponent
                        {
                            Component       = item.Component,
                            ComponentId     = item.ComponentId,
                            Project         = project,
                            ProjectId       = project.Id,
                            Count           = item.Quantity,
                            Unit            = item.Unit,
                            IncludeInManual = true
                        });
                    }
                    else
                    {
                        rel.Count += item.Quantity;
                    }
                }
            }
            else if (info.EntityState == EntityState.Deleted && relation.Role == FileRole.OrderConfirmation)
            {
                var orderConfirmation = uow.OrderConfirmationRepository.Get(o => o.FileId == relation.FileId).SingleOrDefault();

                if (orderConfirmation != null)
                {
                    foreach (var item in orderConfirmation.Items)
                    {
                        var rel = project.Components.SingleOrDefault(pc => pc.ComponentId == item.ComponentId);

                        if (rel != null)
                        {
                            rel.Count -= item.Quantity;
                            if (rel.Count <= 0)
                            {
                                project.Components.Remove(rel);
                            }
                        }
                    }
                }
            }

            projectService.Commit();
            uow.DetachAll();

            return(true);
        }