Ejemplo n.º 1
0
        private void LoadInfo(bool charged)
        {
            int orderId = QueryOrderId;

            var shippingAddress = OrderService.GetShippingAddressViewModelByOrderId(orderId);

            ltlHeaderAddress.Text = "Ship To:" + HtmlElement.BR;
            if (string.IsNullOrEmpty(shippingAddress.Name) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.Name + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.AddressLine1) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.AddressLine1 + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.AddressLine2) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.AddressLine2 + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.City) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.City + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.PostCode) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.PostCode + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.USStateName) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.USStateName + HtmlElement.BR;
            }
            if (string.IsNullOrEmpty(shippingAddress.CountryName) == false)
            {
                ltlHeaderAddress.Text += shippingAddress.CountryName + HtmlElement.BR;
            }

            ltlDeliveryAddr.Text = ltlHeaderAddress.Text;

            eohHeader.OrderId   = orderId;
            eavShipping.OrderId = orderId;

            var orderView = OrderService.GetOrderOverviewModelById(orderId);

            esnShipping.OrderOverviewModel = orderView;

            // Exclude anonymous order
            if (orderView.ProfileId > 0)
            {
                var account = AccountService.GetAccountByProfileId(orderView.ProfileId);

                if (account != null)
                {
                    eavShipping.Email        = string.IsNullOrEmpty(account.Email) ? string.Empty : account.Email;
                    eavShipping.Phone        = string.IsNullOrEmpty(account.ContactNumber) ? string.Empty : account.ContactNumber;
                    eavShipping.DisplayPhone = account.DisplayContactNumberInDespatch;

                    ltContactNumber.Text = string.Empty;
                    if (account.DisplayContactNumberInDespatch)
                    {
                        ltContactNumber.Text = string.Format("<i class='fa fa-phone' aria-hidden='true'></i> {0}", account.ContactNumber);
                    }
                }
            }

            if (orderView.PointValue > 0)
            {
                phEarnPoint.Visible = true;
                ltlPointValue.Text  = orderView.PointValue.ToString();
            }
            else
            {
                phEarnPoint.Visible = false;
            }

            var items = OrderService.GetLineItemOverviewModelListByOrderId(orderId);

            rptItems.DataSource = items;
            rptItems.DataBind();

            rptDnoteItems.DataSource = items;
            rptDnoteItems.DataBind();

            rptComments.DataSource = OrderService.GetOrderCommentOverviewModelListByOrderId(orderId, AppConstant.SHOW_MAX_COMMENT);
            rptComments.DataBind();

            if (orderView.StatusCode == OrderStatusCode.SHIPPING ||
                orderView.StatusCode == OrderStatusCode.INVOICED ||
                orderView.StatusCode == OrderStatusCode.CANCELLED ||
                orderView.StatusCode == OrderStatusCode.DISCARDED ||
                orderView.StatusCode == OrderStatusCode.PENDING ||
                orderView.StatusCode == OrderStatusCode.SCHEDULED_FOR_CANCEL ||
                orderView.StatusCode == OrderStatusCode.STOCK_WARNING)
            {
                phItems.Visible     = false;
                esnShipping.Visible = false;
            }
            else
            {
                phItems.Visible     = true;
                esnShipping.Visible = true;
            }

            var GAItems = items.Where(i => i.StatusCode == LineStatusCode.GOODS_ALLOCATED).ToList();

            int     weight        = 0;
            decimal netValue      = 0M;
            int     quantityGA    = GAItems.Select(i => i.Quantity).Sum();
            int     quantityOrder = items.Select(i => i.Quantity).Sum();

            GAItems.ForEach(delegate(LineItemOverviewModel item)
            {
                weight   += item.Weight * item.Quantity;
                netValue += (item.PriceExclTax * item.Quantity);
            });

            // Discount only if quantities match
            if (quantityOrder == quantityGA)
            {
                decimal result = netValue - orderView.DiscountValue;
                if (result > 0M)
                {
                    netValue = result;
                }
            }

            ltlWeightGrams.Text = "<input id=\"cn22Weight\" class=\"form-control\" type=\"text\" value=\"" + weight + "\" onkeyup=\"getWeightInput(event)\" />";
            ltlNetValue.Text    = "<input id=\"cn22Value\" class=\"form-control\" type=\"text\" value=\"" + orderView.CurrencyCode + " " + AdminStoreUtility.RoundPrice(netValue) + "\" onkeyup=\"getValueInput(event)\" />";

            if (GAItems.Count == 0)
            {
                lbSubmitTop.Visible    = false;
                lbSubmitBottom.Visible = false;
            }

            if (charged)
            {
                lbProcessPaymentTop.Visible = false;
                phAfterPaymentTop.Visible   = true;

                lbProcessPaymentBottom.Visible = false;
                phAfterPaymentBottom.Visible   = true;
            }
            else
            {
                lbProcessPaymentTop.Visible = true;
                phAfterPaymentTop.Visible   = false;

                lbProcessPaymentBottom.Visible = true;
                phAfterPaymentBottom.Visible   = false;

                enbInfo.Message = "This order was not fully paid. Please process payment first before proceed to packing.";
            }

            // Shipping Option ID
            // Next Day Shipping Option ID = 2
            // Local Standard Shipping Option ID = 1

            if (shippingAddress.CountryId == ShippingSettings.PrimaryStoreCountryId)
            {
                ltlFirstClass.Text    = "<input type=\"radio\" name=\"stampType\" value=\"firstClass\" checked=\"checked\" /> 1st class";
                ltlInternational.Text = "<input type=\"radio\" name=\"stampType\" value=\"international\" /> International";
            }
            else
            {
                ltlFirstClass.Text    = "<input type=\"radio\" name=\"stampType\" value=\"firstClass\" /> 1st class";
                ltlInternational.Text = "<input type=\"radio\" name=\"stampType\" value=\"international\" checked=\"checked\" /> International";
            }

            ltlCN22Date.Text  = DateTime.Now.ToString(AppConstant.DATE_FORM1);
            ltlSignature.Text = "<img src=\"/img/diana-sig.jpg\" alt=\"diana\" width=\"50\" />"; // Default
            var country = ShippingService.GetCountryById(shippingAddress.CountryId);

            ltlDeminimis.Text = country.DeminimisValue;

            ltOrderNumber.Text       = string.Format("Order # {0}", orderId);
            ltOrderNumberReturn.Text = ltOrderNumber.Text;

            int    profileId = Convert.ToInt32(HttpContext.Current.Profile.GetPropertyValue("ProfileId"));
            string email     = AccountService.GetEmailByProfileId(profileId);

            if (email.ToLower() == "*****@*****.**")
            {
                ltlSignature.Text = "<img src=\"/img/flory-sig.jpg\" alt=\"flory\" width=\"50\" />";
            }
        }
Ejemplo n.º 2
0
        private void LoadButtons()
        {
            switch (Type)
            {
            case OrderNavType.Order:
                int  orderId   = QueryOrderId;
                bool fullyPaid = OrderService.HasFullyPaid(orderId);

                if (!fullyPaid)
                {
                    decimal totalRefunded     = OrderService.CalculateTotalRefundedAmountByOrderId(orderId);
                    decimal totalPaidPayments = OrderService.CalculateTotalPaidAmountByOrderId(orderId);
                    decimal totalOrder        = OrderService.CalculateOrderTotalByOrderId(orderId);
                    decimal totalPending      = totalOrder - totalRefunded - totalPaidPayments;
                    var     currencyCode      = OrderService.GetCurrencyCodeByOrderId(orderId);

                    totalPending = AdminStoreUtility.RoundPrice(totalPending, places: 2);
                    if (totalPending > 0M)
                    {
                        lbAuthorise.OnClientClick = string.Format("javascript: return confirm('Total amount to be charged is {0}{1:0.00}.\\nAre you sure to authorise this order?');", currencyCode, totalPending);
                    }
                    else
                    {
                        lbAuthorise.Enabled = false;
                    }
                }

                lbAuthorise.Enabled = !fullyPaid;
                hlBack.NavigateUrl  = "/sales/order_default.aspx";

                phDeleteCancellation.Visible = false;
                phDeleteRefund.Visible       = false;
                break;

            case OrderNavType.Refund:
                hlBack.NavigateUrl = "/sales/refund_default.aspx";

                phAuthorise.Visible          = false;
                phPayment.Visible            = false;
                phInvoice.Visible            = false;
                phCancel.Visible             = false;
                phRefund.Visible             = false;
                phMarkFraud.Visible          = false;
                phSendOrderEmail.Visible     = false;
                phDeleteCancellation.Visible = false;
                phPrintInvoice.Visible       = false;
                break;

            case OrderNavType.Cancellation:
                hlBack.NavigateUrl = "/sales/cancellation_default.aspx";

                phAuthorise.Visible      = false;
                phPayment.Visible        = false;
                phInvoice.Visible        = false;
                phCancel.Visible         = false;
                phRefund.Visible         = false;
                phMarkFraud.Visible      = false;
                phSendOrderEmail.Visible = false;
                phDeleteRefund.Visible   = false;
                phPrintInvoice.Visible   = false;
                break;

            default:
                break;
            }
        }
Ejemplo n.º 3
0
        void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
        {
            string[] args = eventArgument.Split(splitter);

            int hourFlag    = 0;
            int dayFlag     = 0;
            int weekFlag    = 0;
            int monthFlag   = 0;
            int quarterFlag = 0;
            int yearFlag    = 0;
            int hour;
            int day;
            int week;
            int month;
            int quarter;
            int year;

            hour    = Convert.ToInt32(args[1]);
            day     = Convert.ToInt32(args[2]);
            week    = Convert.ToInt32(args[3]);
            month   = Convert.ToInt32(args[4]);
            quarter = Convert.ToInt32(args[5]);
            year    = Convert.ToInt32(args[6]);

            string typeFlag = args[8];

            switch (typeFlag)
            {
            case "hour":
                weekFlag    = 1;
                quarterFlag = 1;
                break;

            case "day":
                hourFlag    = 1;
                weekFlag    = 1;
                quarterFlag = 1;
                break;

            case "week":
                hourFlag    = 1;
                dayFlag     = 1;
                monthFlag   = 1;
                quarterFlag = 1;
                break;

            case "month":
                hourFlag    = 1;
                dayFlag     = 1;
                weekFlag    = 1;
                quarterFlag = 1;
                break;

            case "quarter":
                hourFlag  = 1;
                dayFlag   = 1;
                weekFlag  = 1;
                monthFlag = 1;
                break;

            case "year":
                hourFlag    = 1;
                dayFlag     = 1;
                weekFlag    = 1;
                monthFlag   = 1;
                quarterFlag = 1;
                break;
            }

            bool noneu = Convert.ToBoolean(args[7]);
            int  count = 0;

            switch (args[0])
            {
            case "noOrders":
                count = ReportService.GetOrderCountSumByDate(AdminStoreUtility.BuildXmlString("status", ValidOrderStatus.VALID_STATUSES),
                                                             noneu,
                                                             hourFlag,
                                                             dayFlag,
                                                             weekFlag,
                                                             monthFlag,
                                                             quarterFlag,
                                                             yearFlag,
                                                             hour,
                                                             day,
                                                             week,
                                                             month,
                                                             quarter,
                                                             year);
                message = count.ToString();

                break;

            case "promoDiscount":
                decimal promoDiscount = ReportService.GetOrderDiscountSumByDate(
                    AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                    noneu,
                    hourFlag,
                    dayFlag,
                    weekFlag,
                    monthFlag,
                    quarterFlag,
                    yearFlag,
                    hour,
                    day,
                    week,
                    month,
                    quarter,
                    year);
                message = AdminStoreUtility.GetFormattedPrice(promoDiscount,
                                                              CurrencySettings.PrimaryStoreCurrencyCode,
                                                              CurrencyType.HtmlEntity);
                break;

            case "loyaltyDiscount":
                decimal loyaltyDiscount = ReportService.GetOrderLoyaltyDiscountSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                                         noneu,
                                                                                         hourFlag,
                                                                                         dayFlag,
                                                                                         weekFlag,
                                                                                         monthFlag,
                                                                                         quarterFlag,
                                                                                         yearFlag,
                                                                                         hour,
                                                                                         day,
                                                                                         week,
                                                                                         month,
                                                                                         quarter,
                                                                                         year);
                message = AdminStoreUtility.GetFormattedPrice(loyaltyDiscount,
                                                              CurrencySettings.PrimaryStoreCurrencyCode,
                                                              CurrencyType.HtmlEntity);
                break;

            case "lineCostPrice":
                decimal lineCostPrice = ReportService.GetLineCostSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                           AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                           noneu,
                                                                           hourFlag,
                                                                           dayFlag,
                                                                           weekFlag,
                                                                           monthFlag,
                                                                           quarterFlag,
                                                                           yearFlag,
                                                                           hour,
                                                                           day,
                                                                           week,
                                                                           month,
                                                                           quarter,
                                                                           year);
                message = AdminStoreUtility.GetFormattedPrice(lineCostPrice,
                                                              CurrencySettings.PrimaryStoreCurrencyCode,
                                                              CurrencyType.HtmlEntity);
                break;

            case "margin":
                decimal margin = ReportService.GetMarginValueSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                       AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                       noneu,
                                                                       20,
                                                                       hourFlag,
                                                                       dayFlag,
                                                                       weekFlag,
                                                                       monthFlag,
                                                                       quarterFlag,
                                                                       yearFlag,
                                                                       hour,
                                                                       day,
                                                                       week,
                                                                       month,
                                                                       quarter,
                                                                       year);
                message = margin.ToString() + "%";
                break;

            case "shipping":
                decimal shipping = ReportService.GetShippingValueSumByDate(
                    AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                    AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                    noneu,
                    20,
                    hourFlag,
                    dayFlag,
                    weekFlag,
                    monthFlag,
                    quarterFlag,
                    yearFlag,
                    hour,
                    day,
                    week,
                    month,
                    quarter,
                    year);
                message = AdminStoreUtility.GetFormattedPrice(shipping,
                                                              CurrencySettings.PrimaryStoreCurrencyCode,
                                                              CurrencyType.HtmlEntity);
                break;

            case "orderValue":
                decimal orderValue = ReportService.GetOrderValueSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                          AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                          noneu,
                                                                          20,
                                                                          hourFlag,
                                                                          dayFlag,
                                                                          weekFlag,
                                                                          monthFlag,
                                                                          quarterFlag,
                                                                          yearFlag,
                                                                          hour,
                                                                          day,
                                                                          week,
                                                                          month,
                                                                          quarter,
                                                                          year);

                message = AdminStoreUtility.GetFormattedPrice(orderValue, CurrencySettings.PrimaryStoreCurrencyCode, CurrencyType.HtmlEntity);

                decimal nonTaxableOrderValue = ReportService.GetNonTaxableOrderValueSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                                              AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                                              noneu,
                                                                                              20,
                                                                                              hourFlag,
                                                                                              dayFlag,
                                                                                              weekFlag,
                                                                                              monthFlag,
                                                                                              quarterFlag,
                                                                                              yearFlag,
                                                                                              hour,
                                                                                              day,
                                                                                              week,
                                                                                              month,
                                                                                              quarter,
                                                                                              year);

                decimal vatDiscount = nonTaxableOrderValue / (120M) * 20M;

                decimal netOrderValue = AdminStoreUtility.RoundPrice(orderValue) - AdminStoreUtility.RoundPrice(vatDiscount);

                message = AdminStoreUtility.GetFormattedPrice(netOrderValue, CurrencySettings.PrimaryStoreCurrencyCode, CurrencyType.HtmlEntity);

                break;

            case "productDiscount":
                decimal productDiscount = ReportService.GetProductDiscountSumByDate(
                    AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                    AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                    noneu,
                    hourFlag,
                    dayFlag,
                    weekFlag,
                    monthFlag,
                    quarterFlag,
                    yearFlag,
                    hour,
                    day,
                    week,
                    month,
                    quarter,
                    year);
                message = AdminStoreUtility.GetFormattedPrice(productDiscount,
                                                              CurrencySettings.PrimaryStoreCurrencyCode,
                                                              CurrencyType.HtmlEntity);
                break;

            case "orderAverageValue":
                decimal totalOrderValue = ReportService.GetOrderValueSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                               AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                               noneu,
                                                                               20,
                                                                               hourFlag,
                                                                               dayFlag,
                                                                               weekFlag,
                                                                               monthFlag,
                                                                               quarterFlag,
                                                                               yearFlag,
                                                                               hour,
                                                                               day,
                                                                               week,
                                                                               month,
                                                                               quarter,
                                                                               year);

                decimal totalNonTaxableOrderValue = ReportService.GetNonTaxableOrderValueSumByDate(AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidOrderStatus.VALID_STATUSES),
                                                                                                   AdminStoreUtility.BuildXmlString(AppConstant.XML_ROOT_STATUS, ValidLineStatus.VALID_LINE_STATUSES),
                                                                                                   noneu,
                                                                                                   20,
                                                                                                   hourFlag,
                                                                                                   dayFlag,
                                                                                                   weekFlag,
                                                                                                   monthFlag,
                                                                                                   quarterFlag,
                                                                                                   yearFlag,
                                                                                                   hour,
                                                                                                   day,
                                                                                                   week,
                                                                                                   month,
                                                                                                   quarter,
                                                                                                   year);

                decimal totalVatDiscount = totalNonTaxableOrderValue / (120M) * 20M;

                decimal totalNetOrderValue = AdminStoreUtility.RoundPrice(totalOrderValue) - AdminStoreUtility.RoundPrice(totalVatDiscount);

                int totalOrder = ReportService.GetOrderCountSumByDate(AdminStoreUtility.BuildXmlString("status", ValidOrderStatus.VALID_STATUSES),
                                                                      noneu,
                                                                      hourFlag,
                                                                      dayFlag,
                                                                      weekFlag,
                                                                      monthFlag,
                                                                      quarterFlag,
                                                                      yearFlag,
                                                                      hour,
                                                                      day,
                                                                      week,
                                                                      month,
                                                                      quarter,
                                                                      year);

                if (totalNetOrderValue != 0M && totalOrder != 0)
                {
                    message = AdminStoreUtility.GetFormattedPrice(totalNetOrderValue / totalOrder, CurrencySettings.PrimaryStoreCurrencyCode, CurrencyType.HtmlEntity);
                }
                else
                {
                    message = AdminStoreUtility.GetFormattedPrice(0M, CurrencySettings.PrimaryStoreCurrencyCode, CurrencyType.HtmlEntity);
                }

                break;
            }
        }