public static void SendCertificateMails(GiftCertificate certificate)
        {
            var certificateMailTemplate = new CertificateMailTemplate(certificate.CertificateCode, certificate.FromName,
                                                                      certificate.ToName,
                                                                      CatalogService.GetStringPrice(certificate.Sum),
                                                                      certificate.CertificateMessage);

            certificateMailTemplate.BuildMail();

            SendMail.SendMailNow(certificate.ToEmail, certificateMailTemplate.Subject, certificateMailTemplate.Body, true);
            SendMail.SendMailNow(SettingsMail.EmailForOrders, certificateMailTemplate.Subject, certificateMailTemplate.Body, true);
        }
 public static int AddCertificate(GiftCertificate certificate)
 {
     return SQLDataAccess.ExecuteScalar<int>("[Order].[sp_AddCertificate]", CommandType.StoredProcedure,
                                               new SqlParameter("@CertificateCode", certificate.CertificateCode),
                                               new SqlParameter("@ApplyOrderNumber", String.IsNullOrEmpty(certificate.ApplyOrderNumber) ? (object)DBNull.Value : certificate.ApplyOrderNumber),
                                               new SqlParameter("@OrderID", certificate.OrderId),
                                               new SqlParameter("@FromName", certificate.FromName),
                                               new SqlParameter("@ToName", certificate.ToName),
                                               new SqlParameter("@Used", certificate.Used),
                                               new SqlParameter("@Enable", certificate.Enable),
                                               new SqlParameter("@Sum", certificate.Sum),
                                               new SqlParameter("@Message", certificate.CertificateMessage),
                                               new SqlParameter("@ToEmail", certificate.ToEmail)
         );
 }
 public static void UpdateCertificateById(GiftCertificate certificate)
 {
     SQLDataAccess.ExecuteNonQuery("[Order].[sp_UpdateCertificateById]", CommandType.StoredProcedure,
                                   new SqlParameter("@CertificateId", certificate.CertificateId),
                                   new SqlParameter("@CertificateCode", certificate.CertificateCode),
                                   new SqlParameter("@OrderID", certificate.OrderId),
                                   new SqlParameter("@ApplyOrderNumber", certificate.ApplyOrderNumber),
                                   new SqlParameter("@FromName", certificate.FromName),
                                   new SqlParameter("@ToName", certificate.ToName),
                                   new SqlParameter("@Used", certificate.Used),
                                   new SqlParameter("@Enable", certificate.Enable),
                                   new SqlParameter("@Sum", certificate.Sum),
                                   new SqlParameter("@Message", certificate.CertificateMessage),
                                   new SqlParameter("@ToEmail", certificate.ToEmail));
 }
 public static int AddCertificate(GiftCertificate certificate)
 {
     return(SQLDataAccess.ExecuteScalar <int>("[Order].[sp_AddCertificate]", CommandType.StoredProcedure,
                                              new SqlParameter("@CertificateCode", certificate.CertificateCode),
                                              new SqlParameter("@ApplyOrderNumber", String.IsNullOrEmpty(certificate.ApplyOrderNumber) ? (object)DBNull.Value : certificate.ApplyOrderNumber),
                                              new SqlParameter("@OrderID", certificate.OrderId),
                                              new SqlParameter("@FromName", certificate.FromName),
                                              new SqlParameter("@ToName", certificate.ToName),
                                              new SqlParameter("@Used", certificate.Used),
                                              new SqlParameter("@Enable", certificate.Enable),
                                              new SqlParameter("@Sum", certificate.Sum),
                                              new SqlParameter("@Message", certificate.CertificateMessage),
                                              new SqlParameter("@ToEmail", certificate.ToEmail)
                                              ));
 }
示例#5
0
        protected void LoadCertificateById(int certificateId)
        {
            Certificate = GiftCertificateService.GetCertificateByID(certificateId);
            if (Certificate == null)
            {
                MsgErr("Certificate with this ID does not exist");
                return;
            }

            lblCertificateCode.Text = Certificate.CertificateCode;
            txtFromName.Text = Certificate.FromName;
            txtToName.Text = Certificate.ToName;
            txtSum.Text = Certificate.Sum.ToString("#0.00");
            chkUsed.Checked = Certificate.Used;
            chkEnable.Checked = Certificate.Enable;
            txtMessage.Text = Certificate.CertificateMessage;
            txtEmail.Text = Certificate.ToEmail;
            chkPaid.Checked = OrderService.IsPaidOrder(Certificate.OrderId);
        }
        protected bool CreateCertificateOrder()
        {
            var certificate = new GiftCertificate
                {
                    CertificateCode = GiftCertificateService.GenerateCertificateCode(),
                    ToName = txtTo.Text,
                    FromName = txtFrom.Text,
                    Sum = Convert.ToSingle(txtSum.Text.Trim()) * CurrencyService.CurrentCurrency.Value,
                    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
                };

            float taxTotalPrice = 0;
            var orderTaxes = new List<TaxValue>();
            foreach (var taxId in GiftCertificateService.GetCertificateTaxesId())
            {
                var tax = TaxServices.GetTax(taxId);
                orderTaxes.Add(new TaxValue
                    {
                        TaxID = tax.TaxId,
                        TaxName = tax.Name,
                        TaxShowInPrice = tax.ShowInPrice,
                        TaxSum = tax.FederalRate
                    });
                taxTotalPrice += TaxServices.CalculateTax(certificate.Sum, tax);
            }

            float orderSum = certificate.Sum + taxTotalPrice;

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

            var order = new Order
                {
                    OrderDate = DateTime.Now,
                    OrderCustomer = new OrderCustomer
                        {
                            CustomerID = CustomerSession.CurrentCustomer.Id,
                            Email = txtEmailFrom.Text,
                            FirstName = CustomerSession.CurrentCustomer.FirstName,
                            LastName = CustomerSession.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
                        },
                    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 = taxTotalPrice,
                    Taxes = orderTaxes,
                    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);

            string htmlMessage = SendMail.BuildMail(new ClsMailParamOnNewOrder
            {
                CustomerContacts = string.Empty,
                PaymentType = order.ArchivedPaymentName,
                ShippingMethod = order.ArchivedShippingName,
                CurrentCurrencyCode = CurrencyService.CurrentCurrency.Iso3,
                TotalPrice = order.Sum.ToString(),
                Comments = order.CustomerComment,
                Email = email,
                OrderTable = htmlOrderTable,
                OrderID = order.OrderID.ToString(),
                Number = order.Number
            });

            SendMail.SendMailNow(email, Resource.Client_OrderConfirmation_ReceivedOrder + " " + order.OrderID, htmlMessage, true);
            SendMail.SendMailNow(SettingsMail.EmailForOrders, Resource.Client_OrderConfirmation_ReceivedOrder + " " + order.OrderID, htmlMessage, true);

            return OrderId != 0;
        }
 public static void UpdateCertificateById(GiftCertificate certificate)
 {
     SQLDataAccess.ExecuteNonQuery("[Order].[sp_UpdateCertificateById]", CommandType.StoredProcedure,
         new SqlParameter("@CertificateId", certificate.CertificateId),
         new SqlParameter("@CertificateCode", certificate.CertificateCode),
         new SqlParameter("@OrderID", certificate.OrderId),
         new SqlParameter("@ApplyOrderNumber", certificate.ApplyOrderNumber),
         new SqlParameter("@FromName", certificate.FromName),
         new SqlParameter("@ToName", certificate.ToName),
         new SqlParameter("@Used", certificate.Used),
         new SqlParameter("@Enable", certificate.Enable),
         new SqlParameter("@Sum", certificate.Sum),
         new SqlParameter("@Message", certificate.CertificateMessage),
         new SqlParameter("@ToEmail", certificate.ToEmail));
 }
        public static void SendCertificateMails(GiftCertificate certificate)
        {
            string htmlMessage = SendMail.BuildMail(new ClsMailParamOnSendCertificate
            {
                CertificateCode = certificate.CertificateCode,
                FromName = certificate.FromName,
                ToName = certificate.ToName,
                Message = certificate.CertificateMessage,
                Sum = CatalogService.GetStringPrice(certificate.Sum)
            });

            SendMail.SendMailNow(certificate.ToEmail, Resources.Resource.Admin_GiftCertificate_Certificate,
                                 htmlMessage, true);
        }