Пример #1
0
 protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         TaxServices.DeleteTax(int.Parse((string)e.CommandArgument));
     }
     if (e.CommandName == "AddTax")
     {
         GridViewRow footer    = grid.FooterRow;
         string      name      = ((TextBox)footer.FindControl("txtNewName")).Text;
         string      regNumber = ((TextBox)footer.FindControl("txtNewRegNumber")).Text;
         bool        enabled   = Convert.ToBoolean(((DropDownList)footer.FindControl("ddlNewEnabled")).SelectedValue);
         int         countryId = Convert.ToInt32(((DropDownList)footer.FindControl("ddlCountry")).SelectedValue);
         if ((name.Trim().Length != 0) && (regNumber.Trim().Length != 0))
         {
             var tax = new TaxElement {
                 CountryID = countryId, DependsOnAddress = TypeRateDepends.Default, Enabled = enabled, FederalRate = 0.0M, Name = name, Priority = 1, RegNumber = regNumber, ShowInPrice = false, Type = (RateType)1
             };
             TaxServices.CreateTax(tax);
             //if (tax.TaxId != 0)
             //    Response.Redirect("Tax.aspx?TaxID=" + tax.TaxId);
         }
         grid.ShowFooter = false;
     }
 }
Пример #2
0
 protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (RegionService.GetRegions(ddlCountry.SelectedValue).Count == 0)
     {
         CurrentTax.RegionalRates.Clear();
         grid.Visible = false;
         regionsPanel.Update();
         formPanel.Update();
     }
     else
     {
         grid.Visible = true;
         List <AjaxControlToolkit.CascadingDropDownNameValue> regions =
             RegionService.GetRegions(ddlCountry.SelectedValue);
         var fordelete = new List <RegionalRate>();
         foreach (var rate in
                  CurrentTax.RegionalRates.Where(rate => regions.Where(reg => reg.value == rate.RegionId.ToString(CultureInfo.InvariantCulture)).Count() == 0))
         {
             fordelete.Add(rate);
         }
         foreach (var regionalRate in fordelete)
         {
             CurrentTax.RegionalRates.Remove(regionalRate);
         }
         TaxServices.UpdateTax(CurrentTax);
         regionsPanel.Update();
         formPanel.Update();
     }
 }
Пример #3
0
        public void AddTaxService(int taxServiceId, int calculationMethod, decimal amount)
        {
            var t = TaxServices.SingleOrDefault(x => x.TaxServiceId == taxServiceId);

            if (t == null)
            {
                t = new TaxService
                {
                    Amount          = amount,
                    CalculationType = calculationMethod,
                    TaxServiceId    = taxServiceId
                };
                TaxServices.Add(t);
            }

            if (amount == 0)
            {
                if (t.Id > 0)
                {
                    _removedTaxServices.Add(t);
                }
                TaxServices.Remove(t);
            }
            t.Amount = amount;
        }
Пример #4
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            GiftCertificatePaymentMethods = new List <int>(GiftCertificateService.GetCertificatePaymentMethodsID());
            lvPaymentMethods.DataSource   = PaymentService.GetAllPaymentMethods(true).Where(payment => payment.Type != PaymentType.GiftCertificate);
            lvPaymentMethods.DataBind();

            GiftCertificateTaxes = TaxServices.GetCertificateTaxes().Select(tax => tax.TaxId).ToList();
            lvTaxes.DataSource   = TaxServices.GetTaxes();
            lvTaxes.DataBind();
        }
Пример #5
0
        public override string ProcessJavascript(Order order)
        {
            int    orderItemsCount = 0;
            string orderItems      = "";

            var subtotal = order.OrderItems.Sum(item => item.Amount * item.Price);

            // сумма налогов не включенных в стоимость товара
            var taxTotal      = TaxServices.GetOrderTaxes(order.OrderID).Where(t => !t.TaxShowInPrice).Sum(t => t.TaxSum);
            var totalDiscount = (float)Math.Round(subtotal / 100 * order.OrderDiscount, 2);

            taxTotal += order.PaymentCost;

            foreach (var item in order.OrderItems)
            {
                var percent = item.Price * item.Amount * 100 / subtotal;

                item.Price += percent * taxTotal / (100 * item.Amount);
                item.Price -= percent * totalDiscount / (100 * item.Amount);

                orderItemsCount++;
                orderItems += string.Format("&TC_{0}={1}&TPr_{0}={2}&TName_{0}={3}",
                                            orderItemsCount, item.Amount, item.Price.ToString("F"), HttpUtility.UrlEncode(item.Name));
            }

            var shippingCost = order.ShippingCost / order.OrderCurrency.CurrencyValue;

            if (shippingCost > 0)
            {
                orderItemsCount++;
                orderItems += string.Format("&TC_{0}={1}&TPr_{0}={2}&TName_{0}={3}",
                                            orderItemsCount, 1, ((float)Math.Round(shippingCost)).ToString("F"), HttpUtility.UrlEncode("Доставка"));
            }

            var link = String.Format("https://anketa.bank.rs.ru/minipotreb.php?idTpl={0}&TTName={1}&Order={2}&TCount={3}{4}&UserName={5}&UserLastName={6}&UserMail={7}",
                                     PartnerId,
                                     SettingsMain.SiteUrl.Replace("http://", ""),
                                     order.OrderID,
                                     orderItemsCount,
                                     orderItems,
                                     order.OrderCustomer.FirstName,
                                     order.OrderCustomer.LastName,
                                     order.OrderCustomer.Email != "admin" ? order.OrderCustomer.Email : "");

            var sb = new StringBuilder();

            sb.Append("<script type=\"text/javascript\"> ");
            sb.AppendLine("function openrsbcredit() {{");
            sb.AppendFormat("window.open(\"{0}\", \"_blank\");\r\n", link);
            sb.AppendLine("}} ");
            sb.AppendLine("</script>");

            return(sb.ToString());
        }
Пример #6
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (grid.UpdatedRow != null)
            {
                TaxElement tax = TaxServices.GetTax(grid.UpdatedRow["ID"].TryParseInt());
                if (tax != null)
                {
                    tax.Name        = grid.UpdatedRow["Name"];
                    tax.Enabled     = grid.UpdatedRow["Enable"].TryParseBool();
                    tax.ShowInPrice = grid.UpdatedRow["DoShowInPrice"].TryParseBool();
                    tax.Rate        = grid.UpdatedRow["Rate"].TryParseFloat();

                    TaxServices.UpdateTax(tax);
                }
            }

            DataTable data = _paging.PageItems;

            while (data.Rows.Count < 1 && _paging.CurrentPageIndex > 1)
            {
                _paging.CurrentPageIndex--;
                data = _paging.PageItems;
            }

            var clmn = new DataColumn("IsSelected", typeof(bool))
            {
                DefaultValue = _inverseSelection
            };

            data.Columns.Add(clmn);
            if ((_selectionFilter != null) && (_selectionFilter.Values != null))
            {
                for (int i = 0; i <= data.Rows.Count - 1; i++)
                {
                    int intIndex = i;
                    if (Array.Exists(_selectionFilter.Values, c => c == data.Rows[intIndex]["ID"].ToString()))
                    {
                        data.Rows[i]["IsSelected"] = !_inverseSelection;
                    }
                }
            }

            if (data.Rows.Count < 1)
            {
                goToPage.Visible = false;
            }

            grid.DataSource = data;
            grid.DataBind();

            pageNumberer.PageCount = _paging.PageCount;
            lblFound.Text          = _paging.TotalRowsCount.ToString();
        }
Пример #7
0
 void SaveTaxesByProductFromDatalist()
 {
     for (int i = 0; i < datalistTaxes.Items.Count; i++)
     {
         int taxId = 0;
         Int32.TryParse(((HiddenField)(datalistTaxes.Items[i].FindControl("hfTaxId"))).Value, out taxId);
         if (taxId != 0)
         {
             TaxServices.SwitchProductTax(ProductId, taxId, ((CheckBox)(datalistTaxes.Items[i].FindControl("chbTax"))).Checked, true);
         }
     }
 }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (EmptyCheck || Order == null)
            {
                return;
            }

            liCompanyName.Text       = Bill.CompanyName;
            liCompanyName2.Text      = Bill.CompanyName;
            liCompanyCode.Text       = Bill.CompanyCode;
            liCredit.Text            = Bill.Credit;
            liBankCode.Text          = Bill.BankCode;
            liBankName.Text          = Bill.BankName;
            liCompanyEssencials.Text = Bill.CompanyEssentials;

            liOrderNum.Text = string.Format("Рахунок на оплату № {0} від {1} {2} {3} р.",
                                            Order.OrderID, Order.OrderDate.Day.ToString("0#"),
                                            Months[Order.OrderDate.Month - 1], Order.OrderDate.Year);

            liBuyerInfo.Text = Order.BillingContact.Name;

            rprOrrderItems.DataSource = Order.OrderItems;
            rprOrrderItems.DataBind();

            trDiscount.Visible = Order.TotalDiscount != 0;
            liDiscount.Text    = GetPrice(Order.TotalDiscount, Order.OrderCurrency);

            liTotal.Text  = GetPrice(Order.Sum, Order.OrderCurrency);
            hfTotal.Value = GetPriceFormat(Order.Sum, Order.OrderCurrency);

            liTotalCount.Text = string.Format("Всього найменувань {0}, на суму {1} грн.",
                                              Order.OrderItems.Count,
                                              GetPrice(Order.Sum, Order.OrderCurrency));

            var taxes = TaxServices.GetOrderTaxes(Order.OrderID).Where(p => p.TaxSum > 0).ToList();

            if (taxes.Count > 0)
            {
                var taxSum = (float)Math.Round(taxes.Sum(t => t.TaxSum), 2);

                liTaxSum.Text = GetPrice(taxSum, Order.OrderCurrency);
                hfTax.Value   = GetPriceFormat(taxSum, Order.OrderCurrency);

                trTax.Visible    = true;
                trTaxSum.Visible = true;
            }
            else
            {
                trTax.Visible    = false;
                trTaxSum.Visible = false;
            }
        }
Пример #9
0
    private static Dictionary <TaxElement, decimal> GetTaxItems(ShoppingCart shoppingCart, CustomerContact shippingContact, CustomerContact billingContact)
    {
        var taxesItems = new Dictionary <TaxElement, decimal>();

        foreach (var item in shoppingCart)
        {
            var t = (List <TaxElement>)TaxServices.GetTaxesForProduct(item.EntityId, billingContact, shippingContact);
            foreach (var tax in t)
            {
                if (taxesItems.ContainsKey(tax))
                {
                    taxesItems[tax] += TaxServices.CalculateTax((OrderItem)item, tax);
                }
                else
                {
                    taxesItems.Add(tax, TaxServices.CalculateTax((OrderItem)item, tax));
                }
            }
        }
        return(taxesItems);
    }
Пример #10
0
 //Delete!!
 protected void lbDeleteSelected_Click(object sender, EventArgs e)
 {
     if ((_selectionFilter != null) && (_selectionFilter.Values != null))
     {
         if (!_inverseSelection)
         {
             foreach (var id in _selectionFilter.Values)
             {
                 TaxServices.DeleteTax(Convert.ToInt32(id));
             }
         }
         else
         {
             var itemsIds = _paging.ItemsIds <int>("TaxID as ID");
             foreach (int tax in itemsIds.Where(tax => !_selectionFilter.Values.Contains(tax.ToString(CultureInfo.InvariantCulture))))
             {
                 TaxServices.DeleteTax(tax);
             }
         }
     }
 }
Пример #11
0
        private string GetOrderJson(Order order)
        {
            var orderItems = order.OrderItems;

            float subtotal = order.OrderItems.Sum(item => item.Amount * item.Price);

            // сумма налогов не включенных в стоимость товара
            var   taxTotal      = TaxServices.GetOrderTaxes(order.OrderID).Where(t => !t.TaxShowInPrice).Sum(t => t.TaxSum);
            float totalDiscount = (float)Math.Round(subtotal / 100 * order.OrderDiscount, 2);

            foreach (var item in orderItems)
            {
                var percent = item.Price * item.Amount * 100 / subtotal;

                item.Price += percent * taxTotal / (100 * item.Amount);
                item.Price -= percent * totalDiscount / (100 * item.Amount);
            }

            var shopCartItems = orderItems.Select(item => new
            {
                model = item.Name,
                count = item.Amount,
                price = (float)Math.Round(item.Price * item.Amount)
            }).ToList();


            var shippingCost = order.ShippingCost / order.OrderCurrency.CurrencyValue;

            if (shippingCost > 0)
            {
                shopCartItems.Add(new
                {
                    model = "Доставка",
                    count = 1F,
                    price = (float)Math.Round(shippingCost)
                });
            }

            return(JsonConvert.SerializeObject(shopCartItems));
        }
Пример #12
0
 protected void grid_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Delete")
     {
         TaxServices.DeleteTax(int.Parse((string)e.CommandArgument));
     }
     if (e.CommandName == "AddTax")
     {
         GridViewRow footer      = grid.FooterRow;
         string      name        = ((TextBox)footer.FindControl("txtNewName")).Text;
         float       rate        = ((TextBox)footer.FindControl("txtNewRate")).Text.TryParseFloat();
         bool        enabled     = SQLDataHelper.GetBoolean(((DropDownList)footer.FindControl("ddlNewEnabled")).SelectedValue);
         bool        showInPrice = SQLDataHelper.GetBoolean(((DropDownList)footer.FindControl("ddlNewShowInPrice")).SelectedValue);
         if ((name.Trim().Length != 0))
         {
             var tax = new TaxElement {
                 Enabled = enabled, Rate = rate, Name = name, ShowInPrice = showInPrice
             };
             TaxServices.CreateTax(tax);
         }
         grid.ShowFooter = false;
     }
 }
Пример #13
0
        protected void btnSaveClick(object sender, EventArgs e)
        {
            MsgErr(true);

            try
            {
                var PaymentMethodsList = new List <int>();
                foreach (ListViewItem item in lvPaymentMethods.Items)
                {
                    int id;
                    if (((CheckBox)item.FindControl("ckbActive")).Checked && Int32.TryParse(((HiddenField)item.FindControl("hfPaymentId")).Value, out id))
                    {
                        PaymentMethodsList.Add(id);
                    }
                }

                GiftCertificateService.SaveCertificatePaymentMethods(PaymentMethodsList);

                var TaxesList = new List <int>();
                foreach (ListViewItem item in lvTaxes.Items)
                {
                    int id;
                    if (((CheckBox)item.FindControl("ckbActive")).Checked && Int32.TryParse(((HiddenField)item.FindControl("hfTaxId")).Value, out id))
                    {
                        TaxesList.Add(id);
                    }
                }
                TaxServices.SaveCertificateTaxes(TaxesList);

                MsgErr(Resources.Resource.Admin_Certificates_Save, true);
            }
            catch (Exception ex)
            {
                Debug.LogError(ex);
                MsgErr("Error: " + ex.Message, false);
            }
        }
Пример #14
0
        /// <summary>
        /// Генерирует json с заказами
        /// </summary>
        private string GetOrderJson(Order order, string partnerId)
        {
            var orderItems = order.OrderItems;

            float subtotal = order.OrderItems.Sum(item => item.Amount * item.Price);

            // сумма налогов не включенных в стоимость товара
            var taxTotal      = TaxServices.GetOrderTaxes(order.OrderID).Where(t => !t.TaxShowInPrice).Sum(t => t.TaxSum);
            var totalDiscount = (float)Math.Round(subtotal / 100 * order.OrderDiscount, 2);

            foreach (var item in orderItems)
            {
                var percent = item.Price * item.Amount * 100 / subtotal;

                item.Price += percent * taxTotal / (100 * item.Amount);
                item.Price -= percent * totalDiscount / (100 * item.Amount);
            }

            var shopCartItems = orderItems.Select(item => item.ProductID != null ? new
            {
                id    = item.ArtNo,
                name  = item.Name,
                price = (float)Math.Round(item.Price),
                type  = ProductService.GetCategoriesByProductId((int)item.ProductID).FirstOrDefault().Name,
                count = item.Amount.ToString("#")
            } : null).ToList();

            var array = new
            {
                items = shopCartItems
            };



            return(JsonConvert.SerializeObject(array));
        }
Пример #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (EmptyCheck || Order == null)
        {
            return;
        }

        string company = HttpUtility.UrlDecode(Request["bill_companyname"]);
        string inn     = HttpUtility.UrlDecode(Request["bill_inn"]);

        lblOrderID.Text = Order.OrderID.ToString();

        lblcompanyname.Text        = Bill.CompanyName;  // bill2.CompanyName;
        lTransactAccount.Text      = Bill.TransAccount; // bill2.PayBill;
        lblinn.Text                = Bill.INN;
        lblkpp.Text                = Bill.KPP;
        lblbank.Text               = Bill.BankName;
        lCorrespondentAccount.Text = Bill.CorAccount;
        lblbik.Text                = Bill.BIK;

        lblProvider.Text = string.Format("ИНН {0} КПП {1} {2} {3} {4}", Bill.INN, Bill.KPP, Bill.CompanyName,
                                         Bill.Address,
                                         ((string.IsNullOrEmpty(Bill.Telephone)) ? "" : ", тел. " + Bill.Telephone));


        lblDirector.Text   = (string.IsNullOrEmpty(Bill.Director)) ? "______________________" : Bill.Director;
        lblAccountant.Text = (string.IsNullOrEmpty(Bill.Accountant)) ? "______________________" : Bill.Accountant;
        lblManager.Text    = (string.IsNullOrEmpty(Bill.Manager)) ? "______________________" : Bill.Manager;

        lblDateTime.Text = (Order.OrderDate).ToString("dd.MM.yy");

        string userAddress = Order.BillingContact.Address;

        lblBuyer.Text = string.Format("{0}{1} {2}", (string.IsNullOrEmpty(inn)) ? "" : ("ИНН " + inn + " "), company,
                                      userAddress);

        ShippingPrice = Order.ShippingCost / Order.OrderCurrency.CurrencyValue;
        rptOrderItems.DataBind();
        trShipping.DataBind();
        decimal priceSum = Order.OrderItems.Sum(oi => oi.Price * oi.Amount);
        decimal discount = Order.TotalDiscount;

        lbltotalprice.Text      = priceSum.ToString("##,##0.00") + ' ' + @"руб.";
        lTotalDiscount.Text     = discount.ToString("##,##0.00") + ' ' + @"руб.";
        lbltotalpricetopay.Text = Order.Sum.ToString("##,##0.00") + ' ' + @"руб.";
        lbltotalprice2.Text     = lbltotalpricetopay.Text;

        //NOTE using RUR - unstable!!!!
        literalTaxCost.Text = BuildTaxTable(TaxServices.GetOrderTaxes(Order.OrderID).Where(p => p.TaxSum > 0).ToList());

        var intPart = (int)(Math.Floor(Order.Sum));

        int floatPart = Order.Sum != 0 ? Convert.ToInt32(Math.Round(Order.Sum - Math.Floor(Order.Sum), 2) * 100) : 0;

        string script = "<script>num2str(\'" + intPart + "\', \'str\');</script>";

        switch (floatPart % 10)
        {
        case 1:
            lbltotalkop.Text = floatPart.ToString("0#") + @" копейка";
            break;

        case 2:
        case 3:
        case 4:
            lbltotalkop.Text = floatPart.ToString("0#") + @" копейки";
            break;

        default:
            lbltotalkop.Text = floatPart.ToString("0#") + @" копеек";
            break;
        }

        ClientScript.RegisterStartupScript(typeof(String), "A", script);
    }
Пример #16
0
        private void LoadShoppingCart()
        {
            var orderConfirmData = PageData.OrderConfirmationData;

            var shpCart = ShoppingCartService.CurrentShoppingCart;

            if (shpCart.Count > 0 && shpCart.Count <= 5)
            {
                lvOrderList.DataSource = shpCart;
                lvOrderList.DataBind();
                lvOrderList.Visible = true;
            }
            else
            {
                lvOrderList.Visible = false;
            }

            var productsPrice        = shpCart.TotalPrice;
            var discountOnTotalPrice = shpCart.DiscountPercentOnTotalPrice;
            var totalDiscount        = shpCart.TotalDiscount;
            var shippingPrice        = orderConfirmData.SelectedShippingItem.Rate;

            if (discountOnTotalPrice > 0)
            {
                discountRow.Visible    = true;
                liDiscountPercent.Text = string.Format("<span class=\"per\">-{0}%</span>", discountOnTotalPrice);
                lblOrderDiscount.Text  = "-" + CatalogService.GetStringPrice(productsPrice * discountOnTotalPrice / 100);
            }
            else
            {
                discountRow.Visible = false;
            }

            if (shpCart.Certificate != null)
            {
                certificateRow.Visible   = true;
                lblCertificatePrice.Text = String.Format("-{0}",
                                                         CatalogService.GetStringPrice(shpCart.Certificate.Sum, 1,
                                                                                       shpCart.Certificate.CertificateOrder.OrderCurrency.CurrencyCode,
                                                                                       shpCart.Certificate.CertificateOrder.OrderCurrency.CurrencyValue));
            }

            if (shpCart.Coupon != null)
            {
                couponRow.Visible = true;
                if (shpCart.TotalPrice < shpCart.Coupon.MinimalOrderPrice)
                {
                    lblCouponPrice.Text = String.Format(Resource.Client_OrderConfirmation_CouponMessage,
                                                        CatalogService.GetStringPrice(shpCart.Coupon.MinimalOrderPrice));
                }
                else
                {
                    if (totalDiscount == 0)
                    {
                        lblCouponPrice.Text = String.Format("-{0} ({1}) <img src='images/question_mark.png' title='{3}'> <a class=\"cross\"  data-cart-remove-cupon=\"true\" title=\"{2}\"></a>",
                                                            CatalogService.GetStringPrice(0), shpCart.Coupon.Code,
                                                            Resource.Client_ShoppingCart_DeleteCoupon,
                                                            Resource.Client_ShoppingCart_CouponNotApplied);
                    }
                    else
                    {
                        switch (shpCart.Coupon.Type)
                        {
                        case CouponType.Fixed:
                            lblCouponPrice.Text = String.Format("-{0} ({1})",
                                                                CatalogService.GetStringPrice(totalDiscount), shpCart.Coupon.Code);
                            break;

                        case CouponType.Percent:
                            lblCouponPrice.Text = String.Format("-{0} ({1}%) ({2})",
                                                                CatalogService.GetStringPrice(totalDiscount),
                                                                CatalogService.FormatPriceInvariant(shpCart.Coupon.Value), shpCart.Coupon.Code);
                            break;
                        }
                    }
                }
            }

            if (BonusSystem.IsActive)
            {
                var bonusCard = BonusSystemService.GetCard(orderConfirmData.Customer.BonusCardNumber);
                if (bonusCard != null)
                {
                    if (orderConfirmData.UseBonuses)
                    {
                        var bonusPrice = BonusSystemService.GetBonusCost(productsPrice + shippingPrice - totalDiscount, productsPrice - totalDiscount, bonusCard.BonusAmount);
                        totalDiscount += bonusPrice;

                        lblOrderBonuses.Text = "-" + CatalogService.GetStringPrice(bonusPrice);
                        bonusesRow.Visible   = true;
                    }

                    var bonusPlusPrice = BonusSystemService.GetBonusPlusCost(productsPrice + shippingPrice - totalDiscount, productsPrice - totalDiscount, bonusCard.BonusPercent);
                    if (bonusPlusPrice > 0)
                    {
                        liBonusPlus.Text  = "+" + CatalogService.GetStringPrice(bonusPlusPrice);
                        bonusPlus.Visible = true;
                    }
                    orderConfirmData.BonusPlus = bonusPlusPrice;
                }
            }



            if (orderConfirmData.SelectedPaymentItem.Type == PaymentType.CashOnDelivery && orderConfirmData.SelectedShippingItem.Ext != null)
            {
                shippingPrice = orderConfirmData.SelectedShippingItem.Ext.PriceCash;
            }

            var taxesItems = TaxServices.CalculateTaxes(productsPrice - totalDiscount + shippingPrice);
            var taxesTotal = taxesItems.Where(tax => !tax.Key.ShowInPrice).Sum(item => item.Value);

            var paymentExtraCharge = orderConfirmData.SelectedPaymentItem.Extracharge;

            paymentExtraChargeRow.Visible = paymentExtraCharge != 0;

            if (orderConfirmData.SelectedPaymentItem.ExtrachargeType == ExtrachargeType.Percent)
            {
                paymentExtraCharge = paymentExtraCharge * (productsPrice - totalDiscount + shippingPrice + taxesTotal) / 100;
            }

            lPaymentCost.Text = paymentExtraCharge > 0
                ? Resource.Client_OrderConfirmation_PaymentCost
                : Resource.Client_OrderConfirmation_PaymentDiscount;

            var totalPrice = productsPrice - totalDiscount + shippingPrice + paymentExtraCharge + taxesTotal;


            lblProductsPrice.Text      = CatalogService.GetStringPrice(productsPrice);
            lblShippingPrice.Text      = shippingPrice != 0 ? "+" + CatalogService.GetStringPrice(shippingPrice) : orderConfirmData.SelectedShippingItem.ZeroPriceMessage;
            lblPaymentExtraCharge.Text = (paymentExtraCharge > 0 ? "+" : "") +
                                         CatalogService.GetStringPrice(paymentExtraCharge);

            //todo tax
            if (taxesItems.Count > 0)
            {
                literalTaxCost.Text = BuildTaxTable(taxesItems, CurrencyService.CurrentCurrency.Value,
                                                    CurrencyService.CurrentCurrency.Iso3);
            }

            lblTotalPrice.Text = CatalogService.GetStringPrice(totalPrice > 0 ? totalPrice : 0);

            orderConfirmData.Sum      = totalPrice > 0 ? totalPrice : 0;
            orderConfirmData.CheckSum = ShoppingCartService.CurrentShoppingCart.GetHashCode();
        }
Пример #17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (EmptyCheck || Order == null)
        {
            return;
        }
        _currency = (Order.OrderCurrency ?? CurrencyService.Currency("USD")) ?? new Currency
        {
            IsCodeBefore = true,
            Iso3         = "USD",
            Name         = "USD",
            PriceFormat  = CurrencyService.DefaultPriceFormat,
            Symbol       = "$",
            Value        = 1
        };

        //var check = new Check_PaymentModule();

        lCompanyName.Text = _Check.CompanyName;
        lAddress.Text     = _Check.Adress;
        lCountry.Text     = _Check.Country;
        lState.Text       = _Check.State;
        lCity.Text        = _Check.City;

        lCompanyPhone.Text = _Check.Phone;
        lInterPhone.Text   = _Check.IntPhone;
        lCompanyFax.Text   = _Check.Fax;

        lOrderDate.Text      = AdvantShop.Localization.Culture.ConvertDate(Order.OrderDate); // AdvantShop.Localization.Culture.ConvertDate((DateTime)reader["OrderDate"]);
        lOrderId.Text        = @"#" + Order.OrderID;
        lShippingMethod.Text = Order.ShippingMethodName;                                     // reader["ShippingMethod"].ToString();

        lName.Text  = Order.BillingContact.Name;
        lPhone.Text = Order.OrderCustomer.MobilePhone;
        //lFax.Text = Order.BillingContact.Fax;
        //lEmail.Text = Order.BillingContact.Email;
        lEmail.Text = Order.OrderCustomer.Email;

        lBillingAddress.Text = Order.BillingContact.Address;
        lBillingCity.Text    = Order.BillingContact.City;
        lBillingState.Text   = Order.BillingContact.Zone;
        lBillingCountry.Text = Order.BillingContact.Country;
        lBillingZip.Text     = Order.BillingContact.Zip;

        lShippingAddress.Text = Order.ShippingContact.Address;
        lShippingCity.Text    = Order.ShippingContact.City;
        lShippingState.Text   = Order.ShippingContact.Zone;
        lShippingCountry.Text = Order.ShippingContact.Country;
        lShippingZip.Text     = Order.ShippingContact.Zip;



        lSubTotal.Text =
            EvalPrice((Order.Sum - Order.ShippingCost) * 100.0M / (100 - Order.OrderDiscount));
        lShippingCost.Text = EvalPrice(Order.ShippingCost);
        lDiscount.Text     =
            EvalPrice(Order.OrderDiscount * (Order.Sum - Order.ShippingCost / (100 - Order.OrderDiscount)));


        var shippingContact = new AdvantShop.Customers.CustomerContact
        {
            CountryId = CountryService.GetCountryIdByName(lShippingCountry.Text),
            RegionId  = RegionService.GetRegionIdByName(lShippingState.Text)
        };
        var billingContact = new AdvantShop.Customers.CustomerContact
        {
            CountryId = CountryService.GetCountryIdByName(lBillingCountry.Text),
            RegionId  = RegionService.GetRegionIdByName(lBillingState.Text)
        };

        rptOrderItems.DataBind();
        IList <OrderItem> dtOrder = Order.OrderItems;
        var taxedItems            = new List <TaxValue>();

        foreach (OrderItem item in dtOrder)
        {
            ICollection <TaxElement> t = TaxServices.GetTaxesForProduct(item.EntityId, billingContact, shippingContact);
            foreach (TaxElement tax in t)
            {
                TaxValue taxedItem = taxedItems.Find(tv => tv.TaxID == tax.TaxId);
                if (taxedItem != null)
                {
                    taxedItem.TaxSum += TaxServices.CalculateTax(item, tax);
                }
                else
                {
                    taxedItems.Add(new TaxValue
                    {
                        TaxID          = tax.TaxId,
                        TaxName        = tax.Name,
                        TaxShowInPrice = tax.ShowInPrice,
                        TaxSum         = TaxServices.CalculateTax(item, tax)
                    });
                }
            }
        }


        literalTaxCost.Text = BuildTaxTable(taxedItems, _currency.Value, _currency.Iso3, Resource.Admin_ViewOrder_Taxes);
        lTotal.Text         = EvalPrice(Order.Sum);
    }
Пример #18
0
    private void UpdateBasket()
    {
        try
        {
            var shpCart = ShoppingCartService.CurrentShoppingCart;

            if (shpCart.Count > 0)
            {
                lvOrderList.DataSource = shpCart;
                lvOrderList.DataBind();
                lvOrderList.Visible = true;
                pnlSummary.Visible  = true;
            }
            else
            {
                lvOrderList.Visible = false;
                pnlSummary.Visible  = false;
            }

            decimal totalPrice           = shpCart.TotalPrice;
            decimal discountOnTotalPrice = shpCart.DiscountPercentOnTotalPrice;
            decimal totalDiscount        = shpCart.TotalDiscount;
            decimal shippingPrice        = PageData.SelectShippingRate;


            lblTotalOrderPrice.Text = CatalogService.GetStringPrice(shpCart.TotalPrice);

            if (discountOnTotalPrice > 0)
            {
                discountRow.Visible   = true;
                lblOrderDiscount.Text = string.Format(
                    "<span class=\"per\">-{0}%</span><span class=\"price\">{1}</span>", discountOnTotalPrice,
                    CatalogService.GetStringPrice(totalPrice * discountOnTotalPrice / 100));
            }
            else
            {
                discountRow.Visible = false;
            }

            if (shpCart.Certificate != null)
            {
                certificateRow.Visible   = true;
                lblCertificatePrice.Text = String.Format("-{0}",
                                                         CatalogService.GetStringPrice(shpCart.Certificate.Sum, 1,
                                                                                       shpCart.Certificate.CurrencyCode,
                                                                                       shpCart.Certificate.CurrencyValue));
            }

            if (shpCart.Coupon != null)
            {
                couponRow.Visible = true;
                if (shpCart.TotalPrice < shpCart.Coupon.MinimalOrderPrice)
                {
                    lblCouponPrice.Text = String.Format(Resource.Client_OrderConfirmation_CouponMessage,
                                                        CatalogService.GetStringPrice(shpCart.Coupon.MinimalOrderPrice));
                }
                else
                {
                    if (totalDiscount == 0)
                    {
                        lblCouponPrice.Text = String.Format("-{0} ({1})", CatalogService.GetStringPrice(0), shpCart.Coupon.Code);
                    }
                    else
                    {
                        switch (shpCart.Coupon.Type)
                        {
                        case CouponType.Fixed:
                            lblCouponPrice.Text = String.Format("-{0} ({1})", CatalogService.GetStringPrice(totalDiscount), shpCart.Coupon.Code);
                            break;

                        case CouponType.Percent:
                            lblCouponPrice.Text = String.Format("-{0} ({1}%) ({2})", CatalogService.GetStringPrice(totalDiscount),
                                                                CatalogService.FormatPriceInvariant(shpCart.Coupon.Value), shpCart.Coupon.Code);
                            break;
                        }
                    }
                }
            }

            if (PageData.SelectedPaymentType == PaymentType.CashOnDelivery && PageData.ShippingOptionEx != null)
            {
                shippingPrice = PageData.ShippingOptionEx.PriceCash;
            }

            var     billingContact  = PageData.BillingContact;
            var     shippingContact = PageData.ShippingContact;
            decimal taxesTotal      = shpCart.Sum(item => TaxServices.CalculateTaxesTotal(item, shippingContact, billingContact));
            var     taxesItems      = GetTaxItems(shpCart, shippingContact, billingContact);

            decimal dblTotalPrice = (totalPrice + shippingPrice + taxesTotal - totalDiscount);

            lblTotalOrderPrice.Text = CatalogService.GetStringPrice(totalPrice);
            lblShippingPrice.Text   = @"+" + CatalogService.GetStringPrice(shippingPrice);
            if (taxesItems.Count > 0)
            {
                literalTaxCost.Text = BuildTaxTable(taxesItems, CurrencyService.CurrentCurrency.Value, CurrencyService.CurrentCurrency.Iso3, Resource.Admin_ViewOrder_Taxes);
            }
            lblTotalPrice.Text = CatalogService.GetStringPrice(dblTotalPrice > 0 ? dblTotalPrice : 0);
        }
        catch (Exception ex)
        {
            Debug.LogError(ex);
            Message = ex.Message + " at UpdateBasket";
        }
    }
Пример #19
0
        /// <summary>
        /// Генерирует json с заказами
        /// </summary>
        private string GetOrderJson(Order order, string partnerId)
        {
            var orderItems = order.OrderItems;

            decimal subtotal = order.OrderItems.Sum(item => item.Amount * item.Price);

            // сумма налогов не включенных в стоимость товара
            var taxTotal      = TaxServices.GetOrderTaxes(order.OrderID).Where(t => !t.TaxShowInPrice).Sum(t => t.TaxSum);
            var totalDiscount = Math.Round(subtotal / 100 * order.OrderDiscount, 2);

            foreach (var item in orderItems)
            {
                var percent = item.Price * item.Amount * 100 / subtotal;

                item.Price += percent * taxTotal / (100 * item.Amount);
                item.Price -= percent * totalDiscount / (100 * item.Amount);
            }

            var shopCartItems = orderItems.Select(item => new
            {
                title    = item.Name,
                category = item.ItemType == EnumItemType.Product ?
                           ProductService.GetCategoriesByProductId(item.EntityId).FirstOrDefault().Name
                                                                            : "",
                qty   = item.Amount,
                price = Math.Round(item.Price)
            }).ToList();


            var shippingCost = order.ShippingCost / order.OrderCurrency.CurrencyValue;

            if (shippingCost > 0)
            {
                shopCartItems.Add(new
                {
                    title    = "Доставка",
                    category = "",
                    qty      = 1,
                    price    = Math.Round(shippingCost)
                });
            }

            var details = new
            {
                firstname  = order.OrderCustomer.FirstName,
                lastname   = order.OrderCustomer.LastName,
                middlename = "",
                email      = order.OrderCustomer.Email != "admin" ? order.OrderCustomer.Email : "",
                cellphone  = order.OrderCustomer.MobilePhone
            };

            var array = new
            {
                items = shopCartItems,
                details,
                partnerId      = partnerId,
                partnerName    = SettingsMain.ShopName.Replace("\"", "").Replace("'", ""),
                partnerOrderId = Sandbox ? (order.Number.ToString() + "-kvk-test") : order.OrderID.ToString(),
                deliveryType   = ""
            };

            OrderSum = shopCartItems.Sum(item => item.price * item.qty);

            return(JsonConvert.SerializeObject(array));
        }
Пример #20
0
        private void GenerateWorksheetSheet1(WorksheetCollection sheets, Order order)
        {
            Culture.InitializeCulture();
            Worksheet sheet = sheets.Add(Resource.Admin_ViewOrder_ItemNum + order.OrderID);

            sheet.Table.DefaultRowHeight    = 15F;
            sheet.Table.ExpandedColumnCount = 5;
            List <TaxValue> taxedItems = TaxServices.GetOrderTaxes(order.OrderID);

            sheet.Table.ExpandedRowCount = 40 + order.OrderItems.Count * 2 + taxedItems.Count;
            sheet.Table.FullColumns      = 1;
            sheet.Table.FullRows         = 1;
            WorksheetColumn column0 = sheet.Table.Columns.Add();

            //column0.Width = 186; Commented By Evgeni to enlarge column width
            column0.Width = 250;
            column0.Span  = 1;
            WorksheetColumn column1 = sheet.Table.Columns.Add();

            column1.Index = 3;
            column1.Width = 156;
            sheet.Table.Columns.Add(120);
            sheet.Table.Columns.Add(89);
            // Order ID-----------------------------------------------
            WorksheetRow Row0 = sheet.Table.Rows.Add();

            Row0.Height = 22;
            WorksheetCell cell;

            cell             = Row0.Cells.Add();
            cell.StyleID     = "s132";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_ItemNum + order.OrderID;
            cell.MergeAcross = 4;
            // Status -----------------------------------------------
            WorksheetRow Row1 = sheet.Table.Rows.Add();

            cell             = Row1.Cells.Add();
            cell.StyleID     = "s133";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = "(" + order.OrderStatus.StatusName + ")";
            cell.MergeAcross = 4;
            //  -----------------------------------------------
            WorksheetRow Row2 = sheet.Table.Rows.Add();

            cell             = Row2.Cells.Add();
            cell.StyleID     = "s134";
            cell.MergeAcross = 4;
            // Date -----------------------------------------------
            WorksheetRow Row3 = sheet.Table.Rows.Add();

            cell             = Row3.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_Date;
            cell             = Row3.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Culture.ConvertDate(order.OrderDate);
            cell.MergeAcross = 3;
            // NUmber to status check -----------------------------------------------
            WorksheetRow Row4 = sheet.Table.Rows.Add();

            cell             = Row4.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_Number;
            cell             = Row4.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.Number;
            cell.MergeAcross = 3;
            // Status comment -----------------------------------------------
            WorksheetRow Row5 = sheet.Table.Rows.Add();

            cell             = Row5.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_StatusComment;
            cell             = Row5.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.StatusComment;
            cell.MergeAcross = 3;
            // -----------------------------------------------
            WorksheetRow Row6 = sheet.Table.Rows.Add();

            cell             = Row6.Cells.Add();
            cell.StyleID     = "s136";
            cell.MergeAcross = 4;
            // Headers -----------------------------------------------
            WorksheetRow Row7 = sheet.Table.Rows.Add();

            Row7.Cells.Add(Resource.Admin_ViewOrder_Billing, DataType.String, "s70");
            Row7.Cells.Add(Resource.Admin_ViewOrder_Shipping, DataType.String, "s70");
            Row7.Cells.Add(Resource.Admin_ViewOrder_ShippingMethod, DataType.String, "s70");
            // Names -----------------------------------------------
            WorksheetRow Row8 = sheet.Table.Rows.Add();

            Row8.Cells.Add("     " + Resource.Admin_ViewOrder_Name + order.BillingContact.Name, DataType.String, "s70");

            Row8.Cells.Add("     " + Resource.Admin_ViewOrder_Name + order.ShippingContact.Name, DataType.String, "s70");
            var shippingMethodName = order.ArchivedShippingName;

            if (order.OrderPickPoint != null)
            {
                shippingMethodName += order.OrderPickPoint.PickPointAddress.Replace("<br/>", " ");
            }

            Row8.Cells.Add("     " + shippingMethodName, DataType.String, "s70");
            // Countries -----------------------------------------------
            WorksheetRow Row9 = sheet.Table.Rows.Add();

            Row9.Cells.Add("     " + Resource.Admin_ViewOrder_Country + order.BillingContact.Country, DataType.String,
                           "s70");
            Row9.Cells.Add("     " + Resource.Admin_ViewOrder_Country + order.ShippingContact.Country, DataType.String,
                           "s70");
            Row9.Cells.Add(Resource.Admin_ViewOrder_PaymentType, DataType.String, "s70");
            // Cities -----------------------------------------------
            WorksheetRow Row10 = sheet.Table.Rows.Add();

            Row10.Cells.Add("     " + Resource.Admin_ViewOrder_City + order.BillingContact.City, DataType.String, "s70");
            Row10.Cells.Add("     " + Resource.Admin_ViewOrder_City + order.ShippingContact.City, DataType.String, "s70");
            Row10.Cells.Add("     " + order.PaymentMethodName, DataType.String, "s70");
            // Zones -----------------------------------------------
            WorksheetRow Row11 = sheet.Table.Rows.Add();

            Row11.Cells.Add("     " + Resource.Admin_ViewOrder_Zone + order.BillingContact.Zone, DataType.String, "s70");
            Row11.Cells.Add("     " + Resource.Admin_ViewOrder_Zone + order.ShippingContact.Zone, DataType.String, "s70");
            cell         = Row11.Cells.Add();
            cell.StyleID = "s70";
            // Zips -----------------------------------------------
            WorksheetRow Row12 = sheet.Table.Rows.Add();

            Row12.Cells.Add("     " + Resource.Admin_ViewOrder_Zip + order.BillingContact.Zip, DataType.String, "s70");
            Row12.Cells.Add("     " + Resource.Admin_ViewOrder_Zip + order.ShippingContact.Zip, DataType.String, "s70");
            cell         = Row12.Cells.Add();
            cell.StyleID = "s70";
            // Adresses -----------------------------------------------
            WorksheetRow Row13 = sheet.Table.Rows.Add();

            Row13.Cells.Add("     " + Resource.Admin_ViewOrder_Address + order.BillingContact.Address, DataType.String,
                            "s70");
            Row13.Cells.Add("     " + Resource.Admin_ViewOrder_Address + order.ShippingContact.Address, DataType.String,
                            "s70");
            cell         = Row13.Cells.Add();
            cell.StyleID = "s70";

            // Added by Evgeni
            //Tel
            WorksheetRow Row14 = sheet.Table.Rows.Add();

            Row14.Cells.Add("     " + Resource.Client_OrderConfirmation_MobilePhone + " :" + order.OrderCustomer.MobilePhone, DataType.String,
                            "s70");
            Row14.Cells.Add("     " + Resource.Client_OrderConfirmation_MobilePhone + " :" + order.OrderCustomer.MobilePhone, DataType.String,
                            "s70");
            cell         = Row14.Cells.Add();
            cell.StyleID = "s70";

            //
            // -----------------------------------------------
            WorksheetRow Row17 = sheet.Table.Rows.Add();

            cell             = Row17.Cells.Add();
            cell.StyleID     = "s134";
            cell.MergeAcross = 4;
            // Orders -----------------------------------------------
            WorksheetRow Row18 = sheet.Table.Rows.Add();

            cell             = Row18.Cells.Add();
            cell.StyleID     = "s136";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_OrderItem;
            cell.MergeAcross = 4;
            // -----------------------------------------------
            WorksheetRow Row19 = sheet.Table.Rows.Add();

            Row19.Height     = 15;
            cell             = Row19.Cells.Add();
            cell.StyleID     = "s137";
            cell.MergeAcross = 4;
            // Order items table header -----------------------------------------------
            WorksheetRow Row20 = sheet.Table.Rows.Add();

            Row20.Height = 16;
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemName, DataType.String, "s89");
            Row20.Cells.Add(Resource.Admin_ViewOrder_CustomOptions, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_Price, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemAmount, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemCost, DataType.String, "s91");
            // Order items -----------------------------------------------
            foreach (OrderItem item in order.OrderItems)
            {
                WorksheetRow Row = sheet.Table.Rows.Add();
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494176";
                cell.Data.Type = DataType.String;
                //Changed by Evgeni to isert ArtNo in order print
                cell.Data.Text = item.Name + " [" + item.ArtNo + "]";
                //
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494196";
                var html = new StringBuilder();
                foreach (EvaluatedCustomOptions ev in item.SelectedOptions)
                {
                    html.Append(string.Format("- {0}: {1} \n", ev.CustomOptionTitle, ev.OptionTitle));
                }

                //Changed by Evgeni to isert ArtNo in order print
                cell.Data.Text = " " + item.ArtNo + " " + html.ToString();
                //
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494216";
                cell.Data.Type = DataType.String;

                bool     ciscodebefore;
                string   cpriceformat = null;
                string   csign        = null;
                Currency cur          = CurrencyService.Currency(order.OrderCurrency.CurrencyCode);
                ciscodebefore = cur.IsCodeBefore;
                cpriceformat  = cur.PriceFormat;
                csign         = cur.Symbol;

                cell.Data.Text = CatalogService.GetStringPrice(item.Price, order.OrderCurrency.CurrencyValue,
                                                               order.OrderCurrency.CurrencyCode);
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494236";
                cell.Data.Type = DataType.Number;
                cell.Data.Text = item.Amount.ToString();
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494256";
                cell.Data.Type = DataType.String;

                cell.Data.Text = CatalogService.GetStringPrice(item.Price * item.Amount,
                                                               order.OrderCurrency.CurrencyValue,
                                                               order.OrderCurrency.CurrencyCode);
                cell.MergeDown = 1;
                // -----------------------------------------------
                WorksheetRow RowSep = sheet.Table.Rows.Add();
                RowSep.Height = 15;
            }
            // -----------------------------------------------
            WorksheetRow Row27 = sheet.Table.Rows.Add();

            Row27.Height   = 15;
            cell           = Row27.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row27.Cells.Add();
            cell.StyleID   = "s70";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_ItemCost2;
            cell.Index     = 4;
            decimal orderPrice = ((order.Sum - order.ShippingCost) * 100) / (100 - order.OrderDiscount);

            Row27.Cells.Add(
                CatalogService.GetStringPrice(order.Sum, order.OrderCurrency.CurrencyValue,
                                              order.OrderCurrency.CurrencyCode), DataType.String, "s70");
            // -----------------------------------------------
            WorksheetRow Row28 = sheet.Table.Rows.Add();

            cell           = Row28.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row28.Cells.Add();
            cell.StyleID   = "s70";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_ItemDiscount;
            cell.Index     = 4;


            decimal discount = orderPrice * (order.OrderDiscount / 100);

            Row28.Cells.Add(
                "-" +
                CatalogService.GetStringPrice(discount, order.OrderCurrency.CurrencyValue,
                                              order.OrderCurrency.CurrencyCode), DataType.String, "s70");
            // -----------------------------------------------
            WorksheetRow Row29 = sheet.Table.Rows.Add();

            cell           = Row29.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row29.Cells.Add();
            cell.StyleID   = "s70";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_ShippingPrice;
            cell.Index     = 4;

            Row29.Cells.Add(
                "+" +
                CatalogService.GetStringPrice(order.ShippingCost, order.OrderCurrency.CurrencyValue,
                                              order.OrderCurrency.CurrencyCode), DataType.String, "s70");
            // -----------------------------------------------

            if (taxedItems.Count > 0)
            {
                foreach (TaxValue tax in taxedItems)
                {
                    WorksheetRow Row = sheet.Table.Rows.Add();
                    cell           = Row.Cells.Add();
                    cell.StyleID   = "s70";
                    cell           = Row.Cells.Add();
                    cell.StyleID   = "s70";
                    cell.Data.Type = DataType.String;
                    cell.Data.Text = (tax.TaxShowInPrice ? Resource.Core_TaxServices_Include_Tax + " " : "") +
                                     tax.TaxName + ":";
                    cell.Index = 4;
                    Row.Cells.Add(
                        (tax.TaxShowInPrice ? "" : "+") +
                        CatalogService.GetStringPrice(tax.TaxSum, order.OrderCurrency.CurrencyValue,
                                                      order.OrderCurrency.CurrencyCode), DataType.String, "s70");
                }
            }
            else
            {
                WorksheetRow Row30a = sheet.Table.Rows.Add();
                cell           = Row30a.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row30a.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_Taxes;
                cell.Index     = 4;

                Row30a.Cells.Add(
                    "+" +
                    CatalogService.GetStringPrice(0, order.OrderCurrency.CurrencyValue, order.OrderCurrency.CurrencyCode),
                    DataType.String, "s70");
            }
            // -----------------------------------------------
            WorksheetRow Row30 = sheet.Table.Rows.Add();

            cell           = Row30.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row30.Cells.Add();
            cell.StyleID   = "s135";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_TotalPrice;
            cell.Index     = 4;

            cell =
                Row30.Cells.Add(
                    CatalogService.GetStringPrice(order.Sum, order.OrderCurrency.CurrencyValue,
                                                  order.OrderCurrency.CurrencyCode), DataType.String, "s135");

            // -----------------------------------------------
            WorksheetRow Row31 = sheet.Table.Rows.Add();

            cell             = Row31.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Client_PrintOrder_YourComment;
            cell.MergeAcross = 4;
            // -----------------------------------------------
            WorksheetRow Row32 = sheet.Table.Rows.Add();

            cell             = Row32.Cells.Add();
            cell.StyleID     = "s141";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.CustomerComment;
            cell.MergeAcross = 4;
            cell.MergeDown   = 1;
            // -----------------------------------------------
            //  Options
            // -----------------------------------------------
            sheet.Options.Selected                     = true;
            sheet.Options.ProtectObjects               = false;
            sheet.Options.ProtectScenarios             = false;
            sheet.Options.PageSetup.Header.Margin      = 0.3F;
            sheet.Options.PageSetup.Footer.Margin      = 0.3F;
            sheet.Options.PageSetup.PageMargins.Bottom = 0.75F;
            sheet.Options.PageSetup.PageMargins.Left   = 0.7F;
            sheet.Options.PageSetup.PageMargins.Right  = 0.7F;
            sheet.Options.PageSetup.PageMargins.Top    = 0.75F;
            sheet.Options.Print.PaperSizeIndex         = 9;
            sheet.Options.Print.VerticalResolution     = 0;
            sheet.Options.Print.ValidPrinterInfo       = true;
        }
Пример #21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(Request["ordernumber"]))
        {
            Response.Redirect("default.aspx");
        }

        try
        {
            int orderId = OrderService.GetOrderIdByNumber(Request["ordernumber"]);

            lblOrderID.Text = Resource.Admin_ViewOrder_ItemNum + orderId;
            //Added by Evgeni
            lOrder0.Text = orderId.ToString();

            if (!IsPostBack)
            {
                Order ord = OrderService.GetOrder(orderId);

                if (ord != null)
                {
                    ordCurrency     = ord.OrderCurrency;
                    lOrderDate.Text = AdvantShop.Localization.Culture.ConvertDate(ord.OrderDate);


                    lNumber.Text = ord.Number;

                    lblOrderStatus.Text = @"(" + ord.OrderStatus.StatusName + @")";

                    lblShipping.Text  = @"<b>" + Resource.Admin_ViewOrder_Name + @"</b>&nbsp;" + ord.ShippingContact.Name;
                    lblShipping.Text += @"<br />";
                    lblShipping.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Country +
                                        @"</b>&nbsp;" + ord.ShippingContact.Country + @"<br />";
                    lblShipping.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_City +
                                        @"</b>&nbsp;" + ord.ShippingContact.City + @"<br />";

                    if (ord.ShippingContact.Zone != null)
                    {
                        lblShipping.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Zone +
                                            @"</b>&nbsp;" + ord.ShippingContact.Zone.Trim() + @"<br />";
                    }

                    if (ord.ShippingContact.Zip != null)
                    {
                        lblShipping.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Zip +
                                            @"</b>&nbsp;" + ord.ShippingContact.Zip.Trim() + @"<br />";
                    }

                    lblShipping.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Address +
                                        @"</b>&nbsp;" + ord.ShippingContact.Address + @"<br />";


                    lblBilling.Text  = @"<b>" + Resource.Admin_ViewOrder_Name + @"</b>&nbsp;" + ord.BillingContact.Name;
                    lblBilling.Text += @"<br />";
                    lblBilling.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Country +
                                       @"</b>&nbsp;" + ord.BillingContact.Country + @"<br />";
                    lblBilling.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_City +
                                       @"</b>&nbsp;" + ord.BillingContact.City + @"<br />";

                    if (ord.BillingContact.Zone != null)
                    {
                        lblBilling.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Zone +
                                           @"</b>&nbsp;" + ord.BillingContact.Zone.Trim() + @"<br />";
                    }

                    if (ord.BillingContact.Zip != null)
                    {
                        lblBilling.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Zip +
                                           @"</b>&nbsp;" + ord.BillingContact.Zip.Trim() + @"<br />";
                    }

                    lblBilling.Text += @"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>" + Resource.Admin_ViewOrder_Address +
                                       @"</b>&nbsp;" + ord.BillingContact.Address + @"<br />";

                    lblShippingMethod.Text = @"<b>" + ord.ArchivedShippingName + @"</b>";

                    if (ord.OrderPickPoint != null)
                    {
                        lblShippingMethod.Text += @"</br><b>" + ord.OrderPickPoint.PickPointAddress + @"</b>";
                    }

                    lblPaymentType.Text = @"<b>" + ord.PaymentMethodName + @"</b>";

                    // ------------------------------------------------------------------------------------


                    decimal productPrice  = ord.OrderItems.Sum(item => item.Amount * item.Price);
                    decimal totalDiscount = ord.OrderDiscount;

                    lblProductPrice.Text = CatalogService.GetStringPrice(productPrice, ordCurrency.CurrencyValue, ordCurrency.CurrencyCode);

                    trDiscount.Visible    = ord.OrderDiscount != 0;
                    lblOrderDiscount.Text = string.Format("-{0}", CatalogService.GetStringDiscountPercent(productPrice, totalDiscount,
                                                                                                          ordCurrency.CurrencyValue, ord.OrderCurrency.CurrencySymbol,
                                                                                                          ord.OrderCurrency.IsCodeBefore, CurrencyService.CurrentCurrency.PriceFormat, false));

                    if (ord.Certificate != null)
                    {
                        trCertificate.Visible = true;
                        lblCertificate.Text   = string.Format("-{0}",
                                                              CatalogService.GetStringPrice(ord.Certificate.Price,
                                                                                            ordCurrency.CurrencyValue,
                                                                                            ordCurrency.CurrencyCode));
                    }
                    else
                    {
                        trCertificate.Visible = false;
                    }

                    if (ord.Coupon != null)
                    {
                        trCoupon.Visible = true;
                        switch (ord.Coupon.Type)
                        {
                        case CouponType.Fixed:
                            lblCoupon.Text = String.Format("-{0} ({1})",
                                                           CatalogService.GetStringPrice(ord.Coupon.Value,
                                                                                         ordCurrency.CurrencyValue,
                                                                                         ordCurrency.CurrencyCode),
                                                           ord.Coupon.Code);
                            break;

                        case CouponType.Percent:
                            lblCoupon.Text = String.Format("-{0} ({1}%) ({2})",
                                                           CatalogService.GetStringPrice(ord.Coupon.Value,
                                                                                         ordCurrency.CurrencyValue,
                                                                                         ordCurrency.CurrencyCode),
                                                           CatalogService.FormatPriceInvariant(ord.Coupon.Value),
                                                           ord.Coupon.Code);
                            break;
                        }
                    }
                    else
                    {
                        trCoupon.Visible = false;
                    }

                    lblShippingPrice.Text = string.Format("+{0}", CatalogService.GetStringPrice(ord.ShippingCost, ord.OrderCurrency.CurrencyValue, ord.OrderCurrency.CurrencyCode));

                    List <TaxValue> taxedItems = TaxServices.GetOrderTaxes(ord.OrderID);
                    literalTaxCost.Text = TaxServices.BuildTaxTable(taxedItems, ord.OrderCurrency.CurrencyValue, ord.OrderCurrency.CurrencyCode, Resource.Admin_ViewOrder_Taxes);
                    //Added By Evgeni
                    lblTotalPrice.Text = lblTotalPrice0.Text = CatalogService.GetStringPrice(ord.Sum, ord.OrderCurrency.CurrencyValue, ord.OrderCurrency.CurrencyCode);

                    // ------------------------------------------------------------------------------------

                    if (string.IsNullOrEmpty(ord.CustomerComment))
                    {
                        lblUserComments.Visible = false;
                    }
                    else
                    {
                        lblUserComments.Text    = Resource.Client_PrintOrder_YourComment + @" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + ord.CustomerComment;
                        lblUserComments.Visible = true;
                    }

                    lStatusComment.Text = ord.StatusComment;

                    DataListOrderItems.DataSource = ord.OrderItems;
                    DataListOrderItems.DataBind();
                }
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(ex);
        }
    }
Пример #22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var cats = new List <Category> {
            CategoryService.GetCategory(0)
        };

        Category[] rootCategories = cats.ToArray();
        CatalogDataTreeViewForTaxes.RootCategories = rootCategories;

        var taxIdStr = Request["taxid"];

        if (string.IsNullOrEmpty(taxIdStr))
        {
            Response.Redirect("Taxes.aspx", true);
            return;
        }
        int taxId;

        if (!Int32.TryParse(taxIdStr, out taxId))
        {
            Response.Redirect("Taxes.aspx", true);
            return;
        }

        CurrentTax = TaxServices.GetTax(taxId);

        Title = CurrentTax.Name;

        if (!IsPostBack)
        {
            _paging = new SqlPaging {
                TableName = "[Catalog].[TaxRegionRate] JOIN [Customers].[Region] ON [TaxRegionRate].[RegionID] = [Region].[RegionID]", ItemsPerPage = 10
            };

            var f = new Field {
                Name = "TaxID"
            };
            var ff = new EqualFieldFilter {
                ParamName = "@TaxID", Value = CurrentTax.TaxId.ToString(CultureInfo.InvariantCulture)
            };
            f.Filter = ff;

            _paging.AddField(f);

            f = new Field {
                Name = "RegionName", Sorting = SortDirection.Ascending
            };
            _paging.AddField(f);
            grid.ChangeHeaderImageUrl("arrowName", f.Sorting == SortDirection.Ascending ? "images/arrowup.gif" : "images/arrowdown.gif");

            f = new Field {
                Name = "RegionRate"
            };
            _paging.AddField(f);

            f = new Field {
                Name = "[Catalog].[TaxRegionRate].RegionID as RegionID"
            };
            _paging.AddField(f);

            _paging.CurrentPageIndex = 1;

            ViewState["Paging"] = _paging;

            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_DefaultAddress, ((int)TypeRateDepends.Default).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_ShippingAddress, ((int)TypeRateDepends.ByShippingAddress).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_BillingAddress, ((int)TypeRateDepends.ByBillingAddress).ToString(CultureInfo.InvariantCulture)));
            ddlDependsOnAddress.SelectedValue = ((int)CurrentTax.DependsOnAddress).ToString(CultureInfo.InvariantCulture);

            ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Fixed, ((int)RateType.LumpSum).ToString(CultureInfo.InvariantCulture)));
            ddlRateType.Items.Add(new ListItem(Resources.Resource.Admin_Taxes_Proportional, ((int)RateType.Proportional).ToString(CultureInfo.InvariantCulture)));
            ddlRateType.SelectedValue = ((int)CurrentTax.Type).ToString(CultureInfo.InvariantCulture);

            ddlCountry.DataSource = CountryService.GetAllCountries();
            DataBind();

            ddlCountry.SelectedValue = CurrentTax.CountryID.ToString(CultureInfo.InvariantCulture);
            ddlCountry_SelectedIndexChanged(ddlCountry, e);
            chkEnabled.Checked = CurrentTax.Enabled;
        }
        else
        {
            _paging = (SqlPaging)ViewState["Paging"];
        }
    }
Пример #23
0
    protected void saveClick(object sender, EventArgs e)
    {
        MsgErr(false);
        CurrentTax.Name = txtName.Text;
        var cid = Int32.Parse(ddlCountry.SelectedValue);

        if (CurrentTax.CountryID != cid)
        {
            CurrentTax.RegionalRates.Clear();
        }
        CurrentTax.Enabled   = chkEnabled.Checked;
        CurrentTax.CountryID = cid;
        int priority = 0;

        if (int.TryParse(txtPriority.Text, out priority))
        {
            CurrentTax.Priority = priority;
        }
        else
        {
            CurrentTax.Priority = 1;
            txtPriority.Text    = "1";
        }
        decimal fedRate = 0;

        if (Decimal.TryParse(txtFederalRate.Text, out fedRate))
        {
            CurrentTax.FederalRate = fedRate;
        }
        else
        {
            CurrentTax.FederalRate = 0;
            txtFederalRate.Text    = @"0.00";
        }

        CurrentTax.DependsOnAddress = ((TypeRateDepends)(Int32.Parse(ddlDependsOnAddress.SelectedValue)));
        CurrentTax.RegNumber        = txtRegNumber.Text;
        CurrentTax.ShowInPrice      = chkShowInPrice.Checked;
        CurrentTax.Type             = (RateType)(Int32.Parse(ddlRateType.SelectedValue));
        try
        {
            TaxServices.UpdateTax(CurrentTax);
            Msg(Resources.Resource.Admin_Tax_Saved);
            formPanel.Update();
        }
        catch (Exception ex)
        {
            MsgErr(ex.Message);
            return;
        }

        // Mapping on product ----------------------------------------------------

        var sc = CatalogDataTreeViewForTaxes.SelectedCategories;

        if (sc.Count == 0)
        {
            TaxLasyLoad.SetCategorySelectionState("0", CurrentTax.TaxId, false, true);
        }
        foreach (var selectedCategory in sc)
        {
            int categoryID         = selectedCategory.Category.CategoryId;
            var hasSelectedSubCats =
                sc.Where(cat => cat.Category.CategoryId != selectedCategory.Category.CategoryId).Any(c => c.Category.ParentCategoryId == categoryID);
            var hasSelectedProducts = false;
            foreach (Product product1 in
                     CatalogDataTreeViewForTaxes.SelectedProducts.Where(product1 => CategoryService.GetProductsByCategoryId(categoryID).Where(p => p.ProductId == product1.ProductId).Count() > 0))
            {
                hasSelectedProducts = true;
            }
            if (selectedCategory.Full)
            {
                //sp.AddRange(selectedCategory.Category.Products);
                TaxLasyLoad.SetCategorySelectionState(selectedCategory.Category.CategoryId.ToString(CultureInfo.InvariantCulture), CurrentTax.TaxId, true, true);
            }
            else
            {
                if (hasSelectedSubCats)
                {
                    //Выполняется очистка выбранных категорий и продуктов для текущей категории
                    TaxLasyLoad.SetCategorySelectionState(selectedCategory.Category.CategoryId.ToString(CultureInfo.InvariantCulture), CurrentTax.TaxId, false, true);
                    //а затем сохранение состояния только для текущей категории
                    TaxLasyLoad.SetCategorySelectionState(selectedCategory.Category.CategoryId.ToString(CultureInfo.InvariantCulture), CurrentTax.TaxId, true, false);
                    //остальные выбранные категории будут сохранены на следующих итерация, а продукты в следующем цикле
                }
                else if (hasSelectedProducts)
                {
                    TaxLasyLoad.SetCategorySelectionState(selectedCategory.Category.CategoryId.ToString(CultureInfo.InvariantCulture), CurrentTax.TaxId, true, false);
                }
            }
        }

        foreach (Product selectedProduct in CatalogDataTreeViewForTaxes.SelectedProducts)
        {
            TaxLasyLoad.SetProductSelectionState(selectedProduct.ProductId, CurrentTax.TaxId);
        }
    }
Пример #24
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request["ordernumber"].IsNullOrEmpty())
            {
                Response.Redirect("default.aspx");
                return;
            }

            try
            {
                var orderId = OrderService.GetOrderIdByNumber(Request["ordernumber"]);

                lblOrderID.Text = Resource.Admin_ViewOrder_ItemNum + orderId;

                Order = OrderService.GetOrder(orderId);

                if (Order == null)
                {
                    Response.Redirect("default.aspx");
                    return;
                }

                OrdCurrency     = Order.OrderCurrency;
                lOrderDate.Text = AdvantShop.Localization.Culture.ConvertDate(Order.OrderDate);

                if (Order.OrderCertificates != null && Order.OrderCertificates.Count > 0)
                {
                    trBilling.Visible  = false;
                    trShipping.Visible = false;
                }


                var productPrice = Order.OrderCertificates != null && Order.OrderCertificates.Count > 0
                                            ? Order.OrderCertificates.Sum(item => item.Sum)
                                            : Order.OrderItems.Sum(item => item.Amount * item.Price);

                var totalDiscount = Order.OrderDiscount;

                lblProductPrice.Text = CatalogService.GetStringPrice(productPrice, OrdCurrency.CurrencyValue,
                                                                     OrdCurrency.CurrencyCode);

                trDiscount.Visible    = Order.OrderDiscount != 0;
                lblOrderDiscount.Text = string.Format("-{0}",
                                                      CatalogService.GetStringDiscountPercent(productPrice, totalDiscount,
                                                                                              OrdCurrency.CurrencyValue,
                                                                                              Order.OrderCurrency.CurrencySymbol, Order.OrderCurrency.IsCodeBefore,
                                                                                              CurrencyService.CurrentCurrency.PriceFormat, false));

                trBonus.Visible    = Order.BonusCost != 0;
                lblOrderBonus.Text = string.Format("-{0}",
                                                   CatalogService.GetStringPrice(Order.BonusCost,
                                                                                 Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode));

                if (Order.Certificate != null)
                {
                    trCertificate.Visible = true;
                    lblCertificate.Text   = string.Format("-{0}",
                                                          CatalogService.GetStringPrice(Order.Certificate.Price,
                                                                                        OrdCurrency.CurrencyValue,
                                                                                        OrdCurrency.CurrencyCode));
                }
                else
                {
                    trCertificate.Visible = false;
                }

                if (Order.Coupon != null)
                {
                    var productsWithCoupon = Order.OrderItems.Where(item => item.IsCouponApplied).Sum(item => item.Price * item.Amount);
                    trCoupon.Visible = true;
                    switch (Order.Coupon.Type)
                    {
                    case CouponType.Fixed:
                        lblCoupon.Text = String.Format("-{0} ({1})",
                                                       CatalogService.GetStringPrice(Order.Coupon.Value, OrdCurrency.CurrencyValue, OrdCurrency.CurrencyCode),
                                                       Order.Coupon.Code);
                        break;

                    case CouponType.Percent:
                        lblCoupon.Text = String.Format("-{0} ({1}%) ({2})",
                                                       CatalogService.GetStringPrice(productsWithCoupon * Order.Coupon.Value / 100, OrdCurrency.CurrencyValue, OrdCurrency.CurrencyCode),
                                                       CatalogService.FormatPriceInvariant(Order.Coupon.Value),
                                                       Order.Coupon.Code);
                        break;
                    }
                }
                else
                {
                    trCoupon.Visible = false;
                }

                lblShippingPrice.Text = string.Format("{0}{1}", Order.ShippingCost > 0 ? "+" : "",
                                                      CatalogService.GetStringPrice(Order.ShippingCost, Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode));

                PaymentRow.Visible   = Order.PaymentCost != 0;
                lblPaymentPrice.Text = string.Format("{0}{1}", Order.PaymentCost > 0 ? "+" : "",
                                                     CatalogService.GetStringPrice(Order.PaymentCost, Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode));

                List <OrderTax> taxedItems = TaxServices.GetOrderTaxes(Order.OrderID);
                if (taxedItems.Count > 0)
                {
                    literalTaxCost.Text = TaxServices.BuildTaxTable(taxedItems, Order.OrderCurrency.CurrencyValue,
                                                                    Order.OrderCurrency.CurrencyCode,
                                                                    Resource.Admin_ViewOrder_Taxes);
                }


                lblTotalPrice.Text = CatalogService.GetStringPrice(Order.Sum, Order.OrderCurrency.CurrencyValue,
                                                                   Order.OrderCurrency.CurrencyCode);

                // ------------------------------------------------------------------------------------

                if (Order.OrderCertificates == null || Order.OrderCertificates.Count == 0)
                {
                    lvOrderItems.DataSource = Order.OrderItems;
                    lvOrderItems.DataBind();
                }
                else
                {
                    lvOrderGiftCertificates.DataSource = Order.OrderCertificates;
                    lvOrderGiftCertificates.DataBind();
                }


                MapAdress = Order.ShippingContact.Country + "," + Order.ShippingContact.Zone + "," +
                            Order.ShippingContact.City + "," + Order.ShippingContact.Address;
            }
            catch (Exception ex)
            {
                Debug.LogError(ex);
            }
        }
Пример #25
0
    protected void grid_Command(object sender, GridViewCommandEventArgs e)
    {
        MsgErrRegions(true);
        switch (e.CommandName)
        {
        case "AddNewRegion":
        {
            var ddlRegionNew = (DropDownList)grid.FooterRow.FindControl("ddlRegionNew");
            if (ValidationHelper.IsValidPositiveIntNumber(ddlRegionNew.SelectedValue))
            {
                var rate = new RegionalRate
                {
                    RegionId = Int32.Parse(ddlRegionNew.SelectedValue)
                };
                if (!TaxServices.GetRegionalRatesForTax(CurrentTax.TaxId).Any(rr => rr.RegionId == rate.RegionId))
                {
                    decimal t;
                    rate.Rate = Decimal.TryParse(
                        ((TextBox)grid.FooterRow.FindControl("txtRegionRateNew")).Text,
                        out t)
                                            ? t
                                            : 0;
                    if (!TaxServices.AddRegionRateToTax(CurrentTax.TaxId, rate))
                    {
                        MsgErrRegions(Resources.Resource.Admin_Tax_RegionRateError);
                    }
                }
            }
            regionsPanel.Update();
            //grid.ShowFooter = false;
        }
        break;

        case "CancelAdd":
            grid.ShowFooter = false;
            regionsPanel.Update();
            break;

        case "Delete":
            TaxServices.RemoveRegionalRateFromTax(CurrentTax.TaxId, Int32.Parse((string)e.CommandArgument));
            break;

        case "Update":
        {
            var     regionId = Int32.Parse(((HiddenField)grid.Rows[Int32.Parse(((string)e.CommandArgument))].FindControl("hdRegionId")).Value);
            decimal rate     = 0;
            decimal t;
            if (Decimal.TryParse(((TextBox)grid.Rows[Int32.Parse(((string)e.CommandArgument))].FindControl("txtRegionRate")).Text, out t))
            {
                rate = t;
            }
            else
            {
                rate = 0;
            }
            TaxServices.UpdateRegionalRate(CurrentTax.TaxId, regionId, rate);
        }
        break;

        case "Sort":
        {
            _paging.Fields.Values.Where(x => x.Name != (string)e.CommandArgument).ToList().ForEach(x => x.Sorting = null);
            switch ((string)e.CommandArgument)
            {
            case "RegionName":
            {
                _paging.Fields["RegionName"].Sorting = !_paging.Fields["RegionName"].Sorting.HasValue ?
                                                       SortDirection.Ascending :
                                                       (_paging.Fields["RegionName"].Sorting == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);
                grid.ChangeHeaderImageUrl("arrowName", _paging.Fields["RegionName"].Sorting == SortDirection.Ascending ? "images/arrowup.gif" : "images/arrowdown.gif");
            }
            break;

            case "RegionRate":
            {
                _paging.Fields["RegionRate"].Sorting = !_paging.Fields["RegionRate"].Sorting.HasValue ?
                                                       SortDirection.Ascending :
                                                       (_paging.Fields["RegionRate"].Sorting == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);
                grid.ChangeHeaderImageUrl("arrowRate", _paging.Fields["RegionRate"].Sorting == SortDirection.Ascending ? "images/arrowup.gif" : "images/arrowdown.gif");
            }
            break;
            }
        }
        break;
        }
    }
Пример #26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (EmptyCheck || Order == null)
            {
                Error404();
                return;
            }

            lblOrderID.Text = Order.OrderID.ToString();

            lblcompanyname.Text   = Bill.CompanyName;  // bill2.CompanyName;
            lTransactAccount.Text = Bill.TransAccount; // bill2.PayBill;
            lblinn.Text           = Bill.INN;

            divKPP.Visible             = Bill.KPP.IsNotEmpty();
            lblkpp.Text                = Bill.KPP.IsNotEmpty() ? Bill.KPP : string.Empty;
            lblbank.Text               = Bill.BankName;
            lCorrespondentAccount.Text = Bill.CorAccount;
            lblbik.Text                = Bill.BIK;

            lblProvider.Text = string.Format("ИНН {0}, {1} {2}, {3}{4}", Bill.INN,
                                             Bill.KPP.IsNullOrEmpty() ? string.Empty : "КПП " + Bill.KPP + ",",
                                             Bill.CompanyName, Bill.Address,
                                             (Bill.Telephone.IsNullOrEmpty() ? string.Empty : ", тел. " + Bill.Telephone));


            lblDirector.Text   = (string.IsNullOrEmpty(Bill.Director)) ? "______________________" : Bill.Director;
            lblAccountant.Text = (string.IsNullOrEmpty(Bill.Accountant)) ? "______________________" : Bill.Accountant;
            lblManager.Text    = (string.IsNullOrEmpty(Bill.Manager)) ? "______________________" : Bill.Manager;

            lblDateTime.Text = (Order.OrderDate).ToString("dd.MM.yy");

            string userAddress =
                (new List <string>()
            {
                Order.BillingContact.Name,
                Order.BillingContact.Country,
                Order.BillingContact.Zone,
                Order.BillingContact.City,
                Order.BillingContact.Address
            }).Where(s => s.IsNotEmpty()).AggregateString(", ");

            if (Order.PaymentDetails != null)
            {
                lblBuyer.Text = string.Format("{0}{1}{2}", (string.IsNullOrEmpty(Order.PaymentDetails.INN)) ? "" : ("ИНН " + Order.PaymentDetails.INN + ", "),
                                              (string.IsNullOrEmpty(Order.PaymentDetails.CompanyName)) ? "" : Order.PaymentDetails.CompanyName + ", ",
                                              userAddress);
            }
            else
            {
                lblBuyer.Text = userAddress;
            }


            if (Order.OrderItems != null && Order.OrderItems.Any())
            {
                rptOrderItems.DataBind();
            }
            else
            {
                rptOrderItems.Visible = false;
            }

            if (Order.OrderCertificates != null && Order.OrderCertificates.Any())
            {
                rptOrderCertificates.DataBind();
            }
            else
            {
                rptOrderCertificates.Visible = false;
            }

            trShipping.DataBind();

            trPaymentCost.Visible = Order.PaymentCost != 0;

            float priceSum = Order.OrderItems.Sum(oi => oi.Price * oi.Amount) + Order.ShippingCost + Order.PaymentCost;

            lbltotalprice.Text      = CatalogService.GetStringPrice(priceSum, Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode);
            lTotalDiscount.Text     = CatalogService.GetStringPrice(Order.TotalDiscount, Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode);
            lbltotalpricetopay.Text = CatalogService.GetStringPrice(Order.Sum, Order.OrderCurrency.CurrencyValue, Order.OrderCurrency.CurrencyCode);
            lbltotalprice2.Text     = lbltotalpricetopay.Text;

            literalTaxCost.Text =
                BuildTaxTable(TaxServices.GetOrderTaxes(Order.OrderID).Where(p => p.TaxSum > 0).ToList(), Order.OrderCurrency);

            float sumToRender = Order.Sum / Order.OrderCurrency.CurrencyValue;
            var   intPart     = (int)(Math.Floor(sumToRender));
            int   floatPart   = sumToRender != 0
                                ? SQLDataHelper.GetInt(Math.Round(sumToRender - Math.Floor(sumToRender), 2) * 100)
                                : 0;

            string script = "<script>num2str(\'" + intPart + "\', \'str\');</script>";

            switch (floatPart % 10)
            {
            case 1:
                lbltotalkop.Text = floatPart.ToString("0#") + @" копейка";
                break;

            case 2:
            case 3:
            case 4:
                lbltotalkop.Text = floatPart.ToString("0#") + @" копейки";
                break;

            default:
                lbltotalkop.Text = floatPart.ToString("0#") + @" копеек";
                break;
            }

            ClientScript.RegisterStartupScript(typeof(String), "A", script);
        }
Пример #27
0
        protected int CreateCertificateOrder()
        {
            var certificate = new GiftCertificate
            {
                CertificateCode    = GiftCertificateService.GenerateCertificateCode(),
                ToName             = txtTo.Text,
                FromName           = txtFrom.Text,
                Sum                = Convert.ToSingle(txtSum.Text.Trim()),
                CertificateMessage = txtMessage.Text,
                Enable             = true,
                ToEmail            = txtEmail.Text
            };

            var orderContact = new OrderContact
            {
                Address = string.Empty,
                City    = string.Empty,
                Country = string.Empty,
                Name    = string.Empty,
                Zip     = string.Empty,
                Zone    = string.Empty
            };

            var taxes = TaxServices.CalculateCertificateTaxes(certificate.Sum);

            var taxOverPay = taxes.Where(tax => !tax.Key.ShowInPrice).Sum(tax => tax.Value);

            float orderSum = certificate.Sum + taxOverPay;

            var   payment      = PaymentService.GetPaymentMethod(hfPaymentMethod.Value.TryParseInt());
            float paymentPrice = payment.Extracharge == 0 ? 0 : (payment.ExtrachargeType == ExtrachargeType.Fixed ? payment.Extracharge : payment.Extracharge / 100 * certificate.Sum + taxOverPay);

            var baseCurrency = CurrencyService.BaseCurrency;

            var order = new Order
            {
                OrderDate     = DateTime.Now,
                OrderCustomer = new OrderCustomer
                {
                    CustomerID = CustomerContext.CurrentCustomer.Id,
                    Email      = txtEmailFrom.Text,
                    FirstName  = CustomerContext.CurrentCustomer.FirstName,
                    LastName   = CustomerContext.CurrentCustomer.LastName,
                    CustomerIP = HttpContext.Current.Request.UserHostAddress
                },
                OrderCurrency = new OrderCurrency
                {
                    //CurrencyCode = CurrencyService.CurrentCurrency.Iso3,
                    //CurrencyNumCode = CurrencyService.CurrentCurrency.NumIso3,
                    //CurrencyValue = CurrencyService.CurrentCurrency.Value,
                    //CurrencySymbol = CurrencyService.CurrentCurrency.Symbol,
                    //IsCodeBefore = CurrencyService.CurrentCurrency.IsCodeBefore
                    CurrencyCode    = baseCurrency.Iso3,
                    CurrencyValue   = baseCurrency.Value,
                    CurrencySymbol  = baseCurrency.Symbol,
                    CurrencyNumCode = baseCurrency.NumIso3,
                    IsCodeBefore    = baseCurrency.IsCodeBefore
                },
                OrderStatusId        = OrderService.DefaultOrderStatus,
                AffiliateID          = 0,
                ArchivedShippingName = Resource.Client_GiftCertificate_DeliveryByEmail,
                PaymentMethodId      = Convert.ToInt32(hfPaymentMethod.Value),
                ArchivedPaymentName  = payment.Name,
                PaymentDetails       = null,
                Sum               = orderSum + paymentPrice,
                PaymentCost       = paymentPrice,
                OrderCertificates = new List <GiftCertificate>
                {
                    certificate
                },
                TaxCost = taxes.Sum(tax => tax.Value),
                Taxes   = taxes.Select(tax => new OrderTax()
                {
                    TaxID = tax.Key.TaxId, TaxName = tax.Key.Name, TaxShowInPrice = tax.Key.ShowInPrice, TaxSum = tax.Value
                }).ToList(),
                ShippingContact = orderContact,
                BillingContact  = orderContact,
                Number          = OrderService.GenerateNumber(1)
            };

            if (order.PaymentMethod.Type == PaymentType.QIWI)
            {
                order.PaymentDetails = new PaymentDetails()
                {
                    Phone = txtPhone.Text
                };
            }

            OrderId     = order.OrderID = OrderService.AddOrder(order);
            OrderNumber = order.Number = OrderService.GenerateNumber(order.OrderID);
            OrderService.UpdateNumber(order.OrderID, order.Number);
            OrderService.ChangeOrderStatus(order.OrderID, OrderService.DefaultOrderStatus);

            string email = txtEmailFrom.Text;

            string htmlOrderTable = OrderService.GenerateHtmlOrderCertificateTable(order.OrderCertificates,
                                                                                   CurrencyService.CurrentCurrency,
                                                                                   order.PaymentCost, order.TaxCost);

            var orderMailTemplate = new NewOrderMailTemplate(order.OrderID.ToString(), order.Number, email, string.Empty,
                                                             order.ArchivedShippingName,
                                                             order.ArchivedPaymentName, htmlOrderTable,
                                                             CurrencyService.CurrentCurrency.Iso3, order.Sum.ToString(),
                                                             order.CustomerComment,
                                                             OrderService.GetBillingLinkHash(order));

            orderMailTemplate.BuildMail();

            SendMail.SendMailNow(email, orderMailTemplate.Subject, orderMailTemplate.Body, true);
            SendMail.SendMailNow(SettingsMail.EmailForOrders, orderMailTemplate.Subject, orderMailTemplate.Body, true);

            return(OrderId);
        }
Пример #28
0
        private void GenerateWorksheetSheet1(WorksheetCollection sheets, Order order)
        {
            Culture.InitializeCulture();
            Worksheet sheet = sheets.Add(Resource.Admin_ViewOrder_ItemNum + order.OrderID);

            sheet.Table.DefaultRowHeight    = 15F;
            sheet.Table.ExpandedColumnCount = 5;
            List <OrderTax> taxedItems = TaxServices.GetOrderTaxes(order.OrderID);

            sheet.Table.ExpandedRowCount = 42 + order.OrderItems.Count * 2 + taxedItems.Count;
            sheet.Table.FullColumns      = 1;
            sheet.Table.FullRows         = 1;
            WorksheetColumn column0 = sheet.Table.Columns.Add();

            column0.Width = 186;
            column0.Span  = 1;
            WorksheetColumn column1 = sheet.Table.Columns.Add();

            column1.Index = 3;
            column1.Width = 156;
            sheet.Table.Columns.Add(120);
            sheet.Table.Columns.Add(89);
            // Order ID-----------------------------------------------
            WorksheetRow Row0 = sheet.Table.Rows.Add();

            Row0.Height = 22;
            WorksheetCell cell;

            cell             = Row0.Cells.Add();
            cell.StyleID     = "s132";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_ItemNum + order.OrderID;
            cell.MergeAcross = 4;
            // Status -----------------------------------------------
            WorksheetRow Row1 = sheet.Table.Rows.Add();

            cell             = Row1.Cells.Add();
            cell.StyleID     = "s133";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = "(" + order.OrderStatus.StatusName + ")";
            cell.MergeAcross = 4;
            //  -----------------------------------------------
            WorksheetRow Row2 = sheet.Table.Rows.Add();

            cell             = Row2.Cells.Add();
            cell.StyleID     = "s134";
            cell.MergeAcross = 4;
            // Date -----------------------------------------------
            WorksheetRow Row3 = sheet.Table.Rows.Add();

            cell             = Row3.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_Date;
            cell             = Row3.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Culture.ConvertDate(order.OrderDate);
            cell.MergeAcross = 3;
            // NUmber to status check -----------------------------------------------
            WorksheetRow Row4 = sheet.Table.Rows.Add();

            cell             = Row4.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_Number;
            cell             = Row4.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.Number;
            cell.MergeAcross = 3;
            // Status comment -----------------------------------------------
            WorksheetRow Row5 = sheet.Table.Rows.Add();

            cell             = Row5.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_StatusComment;
            cell             = Row5.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.StatusComment;
            cell.MergeAcross = 3;


            WorksheetRow RowEmail = sheet.Table.Rows.Add();

            cell             = RowEmail.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewCustomer_Email;
            cell             = RowEmail.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.OrderCustomer.Email;
            cell.MergeAcross = 3;

            WorksheetRow RowPhone = sheet.Table.Rows.Add();

            cell             = RowPhone.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_CommonSettings_Phone;
            cell             = RowPhone.Cells.Add();
            cell.StyleID     = "s70";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.OrderCustomer.MobilePhone;
            cell.MergeAcross = 3;

            // -----------------------------------------------
            WorksheetRow Row6 = sheet.Table.Rows.Add();

            cell             = Row6.Cells.Add();
            cell.StyleID     = "s136";
            cell.MergeAcross = 4;
            // Headers -----------------------------------------------
            WorksheetRow Row7 = sheet.Table.Rows.Add();

            Row7.Cells.Add(Resource.Admin_ViewOrder_Billing, DataType.String, "s70");
            Row7.Cells.Add(Resource.Admin_ViewOrder_Shipping, DataType.String, "s70");
            Row7.Cells.Add(Resource.Admin_ViewOrder_ShippingMethod, DataType.String, "s70");
            // Names -----------------------------------------------
            WorksheetRow Row8 = sheet.Table.Rows.Add();

            Row8.Cells.Add("���� " + Resource.Admin_ViewOrder_Name + order.BillingContact.Name, DataType.String, "s70");

            Row8.Cells.Add("���� " + Resource.Admin_ViewOrder_Name + order.ShippingContact.Name, DataType.String, "s70");
            var shippingMethodName = order.ArchivedShippingName;

            if (order.OrderPickPoint != null)
            {
                shippingMethodName += order.OrderPickPoint.PickPointAddress.Replace("<br/>", " ");
            }

            Row8.Cells.Add("���� " + shippingMethodName, DataType.String, "s70");
            // Countries -----------------------------------------------
            WorksheetRow Row9 = sheet.Table.Rows.Add();

            Row9.Cells.Add("�����" + Resource.Admin_ViewOrder_Country + order.BillingContact.Country, DataType.String,
                           "s70");
            Row9.Cells.Add("�����" + Resource.Admin_ViewOrder_Country + order.ShippingContact.Country, DataType.String,
                           "s70");
            Row9.Cells.Add(Resource.Admin_ViewOrder_PaymentType, DataType.String, "s70");
            // Cities -----------------------------------------------
            WorksheetRow Row10 = sheet.Table.Rows.Add();

            Row10.Cells.Add("�����" + Resource.Admin_ViewOrder_City + order.BillingContact.City, DataType.String, "s70");
            Row10.Cells.Add("�����" + Resource.Admin_ViewOrder_City + order.ShippingContact.City, DataType.String, "s70");
            Row10.Cells.Add("���� " + order.PaymentMethodName, DataType.String, "s70");
            // Zones -----------------------------------------------
            WorksheetRow Row11 = sheet.Table.Rows.Add();

            Row11.Cells.Add("�����" + Resource.Admin_ViewOrder_Zone + order.BillingContact.Zone, DataType.String, "s70");
            Row11.Cells.Add("�����" + Resource.Admin_ViewOrder_Zone + order.ShippingContact.Zone, DataType.String, "s70");
            cell         = Row11.Cells.Add();
            cell.StyleID = "s70";
            // Zips -----------------------------------------------
            WorksheetRow Row12 = sheet.Table.Rows.Add();

            Row12.Cells.Add("�����" + Resource.Admin_ViewOrder_Zip + order.BillingContact.Zip, DataType.String, "s70");
            Row12.Cells.Add("�����" + Resource.Admin_ViewOrder_Zip + order.ShippingContact.Zip, DataType.String, "s70");
            cell         = Row12.Cells.Add();
            cell.StyleID = "s70";
            // Adresses -----------------------------------------------
            WorksheetRow Row13 = sheet.Table.Rows.Add();

            Row13.Cells.Add("�����" + Resource.Admin_ViewOrder_Address + order.BillingContact.Address, DataType.String,
                            "s70");
            Row13.Cells.Add("�����" + Resource.Admin_ViewOrder_Address + order.ShippingContact.Address, DataType.String,
                            "s70");
            cell         = Row13.Cells.Add();
            cell.StyleID = "s70";
            // -----------------------------------------------
            WorksheetRow Row17 = sheet.Table.Rows.Add();

            cell             = Row17.Cells.Add();
            cell.StyleID     = "s134";
            cell.MergeAcross = 4;
            // Orders -----------------------------------------------
            WorksheetRow Row18 = sheet.Table.Rows.Add();

            cell             = Row18.Cells.Add();
            cell.StyleID     = "s136";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Admin_ViewOrder_OrderItem;
            cell.MergeAcross = 4;
            // -----------------------------------------------
            WorksheetRow Row19 = sheet.Table.Rows.Add();

            Row19.Height     = 15;
            cell             = Row19.Cells.Add();
            cell.StyleID     = "s137";
            cell.MergeAcross = 4;
            // Order items table header -----------------------------------------------
            WorksheetRow Row20 = sheet.Table.Rows.Add();

            Row20.Height = 16;
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemName, DataType.String, "s89");
            Row20.Cells.Add(Resource.Admin_ViewOrder_CustomOptions, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_Price, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemAmount, DataType.String, "s90");
            Row20.Cells.Add(Resource.Admin_ViewOrder_ItemCost, DataType.String, "s91");
            // Order items -----------------------------------------------
            foreach (OrderItem item in order.OrderItems)
            {
                WorksheetRow Row = sheet.Table.Rows.Add();
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494176";
                cell.Data.Type = DataType.String;
                cell.Data.Text = item.ArtNo + ", " + item.Name;
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494196";
                var html = new StringBuilder();

                if (!string.IsNullOrEmpty(item.Color))
                {
                    html.Append(Configuration.SettingsCatalog.ColorsHeader + ": " + item.Color + " \n");
                }

                if (!string.IsNullOrEmpty(item.Size))
                {
                    html.Append(Configuration.SettingsCatalog.SizesHeader + ": " + item.Size + " \n");
                }

                foreach (EvaluatedCustomOptions ev in item.SelectedOptions)
                {
                    html.Append(string.Format("- {0}: {1} \n", ev.CustomOptionTitle, ev.OptionTitle));
                }

                cell.Data.Text = html.ToString();
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494216";
                cell.Data.Type = DataType.String;

                cell.Data.Text = CatalogService.GetStringPrice(item.Price, order.OrderCurrency.CurrencyValue,
                                                               order.OrderCurrency.CurrencyCode);
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494236";
                cell.Data.Type = DataType.String;
                cell.Data.Text = item.Amount.ToString();
                cell.MergeDown = 1;
                cell           = Row.Cells.Add();
                cell.StyleID   = "m51494256";
                cell.Data.Type = DataType.String;

                cell.Data.Text = CatalogService.GetStringPrice(item.Price * item.Amount,
                                                               order.OrderCurrency.CurrencyValue,
                                                               order.OrderCurrency.CurrencyCode);
                cell.MergeDown = 1;
                // -----------------------------------------------
                WorksheetRow RowSep = sheet.Table.Rows.Add();
                RowSep.Height = 15;
            }
            // -----------------------------------------------
            WorksheetRow Row27 = sheet.Table.Rows.Add();

            Row27.Height   = 15;
            cell           = Row27.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row27.Cells.Add();
            cell.StyleID   = "s70";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_ItemCost2;
            cell.Index     = 4;

            var   ordCurrency  = order.OrderCurrency;
            float productPrice = order.OrderItems.Sum(item => item.Amount * item.Price);

            Row27.Cells.Add(
                CatalogService.GetStringPrice(productPrice, ordCurrency.CurrencyValue, ordCurrency.CurrencyCode),
                DataType.String, "s70");


            //-----------------------------------------------

            if (order.Coupon != null)
            {
                WorksheetRow Row28 = sheet.Table.Rows.Add();
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_Coupon;
                cell.Index     = 4;

                var productsWithCoupon = order.OrderItems.Where(item => item.IsCouponApplied).Sum(item => item.Price * item.Amount);

                switch (order.Coupon.Type)
                {
                case CouponType.Fixed:
                    Row28.Cells.Add(String.Format("-{0} ({1})",
                                                  CatalogService.GetStringPrice(order.Coupon.Value, ordCurrency.CurrencyValue, ordCurrency.CurrencyCode),
                                                  order.Coupon.Code), DataType.String, "s70");
                    break;

                case CouponType.Percent:
                    Row28.Cells.Add(String.Format("-{0} ({1}%) ({2})",
                                                  CatalogService.GetStringPrice(productsWithCoupon * order.Coupon.Value / 100, ordCurrency.CurrencyValue, ordCurrency.CurrencyCode),
                                                  CatalogService.FormatPriceInvariant(order.Coupon.Value),
                                                  order.Coupon.Code), DataType.String, "s70");
                    break;
                }
            }

            // -----------------------------------------------
            float totalDiscount = order.OrderDiscount;

            if (totalDiscount > 0)
            {
                WorksheetRow Row28 = sheet.Table.Rows.Add();
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_ItemDiscount;
                cell.Index     = 4;

                Row28.Cells.Add(
                    "-" +
                    CatalogService.GetStringDiscountPercent(productPrice, totalDiscount,
                                                            ordCurrency.CurrencyValue, ordCurrency.CurrencySymbol,
                                                            ordCurrency.IsCodeBefore,
                                                            CurrencyService.CurrentCurrency.PriceFormat, false),
                    DataType.String, "s70");
            }

            // -------------------------------------------------------

            if (order.Certificate != null)
            {
                WorksheetRow Row28 = sheet.Table.Rows.Add();
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row28.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_ItemDiscount;
                cell.Index     = 4;

                Row28.Cells.Add(
                    "-" +
                    string.Format("-{0}", CatalogService.GetStringPrice(order.Certificate.Price, ordCurrency.CurrencyValue, ordCurrency.CurrencyCode)),
                    DataType.String, "s70");
            }

            // -----------------------------------------------

            float bonusPrice = order.BonusCost;

            if (bonusPrice > 0)
            {
                WorksheetRow Row28_5 = sheet.Table.Rows.Add();
                cell           = Row28_5.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row28_5.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_Bonuses;
                cell.Index     = 4;

                Row28_5.Cells.Add("-" + CatalogService.GetStringPrice(bonusPrice), DataType.String, "s70");
            }
            // -----------------------------------------------
            WorksheetRow Row29 = sheet.Table.Rows.Add();

            cell           = Row29.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row29.Cells.Add();
            cell.StyleID   = "s70";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_ShippingPrice;
            cell.Index     = 4;

            Row29.Cells.Add(
                "+" +
                CatalogService.GetStringPrice(order.ShippingCost, order.OrderCurrency.CurrencyValue,
                                              order.OrderCurrency.CurrencyCode), DataType.String, "s70");

            if (taxedItems.Count > 0)
            {
                foreach (OrderTax tax in taxedItems)
                {
                    WorksheetRow Row = sheet.Table.Rows.Add();
                    cell           = Row.Cells.Add();
                    cell.StyleID   = "s70";
                    cell           = Row.Cells.Add();
                    cell.StyleID   = "s70";
                    cell.Data.Type = DataType.String;
                    cell.Data.Text = (tax.TaxShowInPrice ? Resource.Core_TaxServices_Include_Tax + " " : "") +
                                     tax.TaxName + ":";
                    cell.Index = 4;
                    Row.Cells.Add(
                        (tax.TaxShowInPrice ? "" : "+") +
                        CatalogService.GetStringPrice(tax.TaxSum, order.OrderCurrency.CurrencyValue,
                                                      order.OrderCurrency.CurrencyCode), DataType.String, "s70");
                }
            }
            else
            {
                WorksheetRow Row30a = sheet.Table.Rows.Add();
                cell           = Row30a.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row30a.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_Taxes;
                cell.Index     = 4;

                Row30a.Cells.Add(
                    "+" +
                    CatalogService.GetStringPrice(0, order.OrderCurrency.CurrencyValue, order.OrderCurrency.CurrencyCode),
                    DataType.String, "s70");
            }
            // -----------------------------------------------

            if (order.PaymentCost > 0)
            {
                WorksheetRow Row291 = sheet.Table.Rows.Add();
                cell           = Row291.Cells.Add();
                cell.StyleID   = "s70";
                cell           = Row291.Cells.Add();
                cell.StyleID   = "s70";
                cell.Data.Type = DataType.String;
                cell.Data.Text = Resource.Admin_ViewOrder_PaymentExtracharge;
                cell.Index     = 4;

                Row291.Cells.Add(
                    "+" +
                    CatalogService.GetStringPrice(order.PaymentCost, order.OrderCurrency.CurrencyValue,
                                                  order.OrderCurrency.CurrencyCode), DataType.String, "s70");
            }

            // -----------------------------------------------

            WorksheetRow Row30 = sheet.Table.Rows.Add();

            cell           = Row30.Cells.Add();
            cell.StyleID   = "s70";
            cell           = Row30.Cells.Add();
            cell.StyleID   = "s135";
            cell.Data.Type = DataType.String;
            cell.Data.Text = Resource.Admin_ViewOrder_TotalPrice;
            cell.Index     = 4;

            cell =
                Row30.Cells.Add(
                    CatalogService.GetStringPrice(order.Sum, order.OrderCurrency.CurrencyValue,
                                                  order.OrderCurrency.CurrencyCode), DataType.String, "s135");

            // -----------------------------------------------
            WorksheetRow Row31 = sheet.Table.Rows.Add();

            cell             = Row31.Cells.Add();
            cell.StyleID     = "s135";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = Resource.Client_PrintOrder_YourComment;
            cell.MergeAcross = 4;
            // -----------------------------------------------
            WorksheetRow Row32 = sheet.Table.Rows.Add();

            cell             = Row32.Cells.Add();
            cell.StyleID     = "s141";
            cell.Data.Type   = DataType.String;
            cell.Data.Text   = order.CustomerComment;
            cell.MergeAcross = 4;
            cell.MergeDown   = 1;
            // -----------------------------------------------
            //  Options
            // -----------------------------------------------
            sheet.Options.Selected                     = true;
            sheet.Options.ProtectObjects               = false;
            sheet.Options.ProtectScenarios             = false;
            sheet.Options.PageSetup.Header.Margin      = 0.3F;
            sheet.Options.PageSetup.Footer.Margin      = 0.3F;
            sheet.Options.PageSetup.PageMargins.Bottom = 0.75F;
            sheet.Options.PageSetup.PageMargins.Left   = 0.7F;
            sheet.Options.PageSetup.PageMargins.Right  = 0.7F;
            sheet.Options.PageSetup.PageMargins.Top    = 0.75F;
            sheet.Options.Print.PaperSizeIndex         = 9;
            sheet.Options.Print.VerticalResolution     = 0;
            sheet.Options.Print.ValidPrinterInfo       = true;
        }