private GdoOrderEmailSendData_V01 getDataDeclinedEmailConfirmation(Order order, string emailType, string orderNumber)
        {
            var member = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
            ////Get the order items

            GdoOrderEmailSendData_V01 orderData = null;

            orderData = new GdoOrderEmailSendData_V01()
            {
                //Dummy Data
                EmailType   = emailType,
                OrderId     = orderNumber,// "0199",
                Locale      = order.Locale,
                Distributor = new Distributor
                {
                    Contact =
                        new ContactInfo
                    {
                        Email       = order.Email,
                        PhoneNumber = order.Shipment.Phone
                    },
                    DistributorId = order.DistributorID,
                    FirstName     = member.Value.FirstName,
                    LastName      = member.Value.LastName,
                    Locale        = order.Locale,
                    MiddleName    = member.Value.MiddleName
                },
                OrderSubmittedDate          = order.ReceivedDate,
                OrderSubmittedDateSpecified = true
            };
            orderData.Messages = this.GetOrderMessages(order, orderNumber).ToArray();
            return(orderData);
        }
        private GdoPaymentTypes GetPaymentType(Order order)
        {
            var code = order.Payments.Select(x => x.PaymentCode).FirstOrDefault();

            //generic codes for CC
            if (code == "MC" || code == "AX" || code == "VI")
            {
                return(GdoPaymentTypes.CreditCard);
            }
            return(GdoPaymentTypes.Wire);
        }
        private GenericAddress GetAddress(Order order)
        {
            var address        = order.Shipment.Address;
            var genericAddress = address != null
                ? new GenericAddress
            {
                City           = address.City ?? string.Empty,
                Country        = address.Country ?? string.Empty,
                CountyDistrict = address.CountyDistrict ?? string.Empty,
                Line1          = address.Line1 ?? string.Empty,
                Line2          = address.Line2 ?? string.Empty,
                Line3          = address.Line3 ?? string.Empty,
                Line4          = address.Line4 ?? string.Empty,
                State          = address.StateProvinceTerritory ?? string.Empty,
                Zip            = address.PostalCode ?? string.Empty
            }
                : null;

            return(genericAddress);
        }
        private List <PaymentInfo> GetOrderPayments(Order order, string orderNumber)
        {
            List <PaymentInfo> listPayment = new List <PaymentInfo>();

            foreach (var payment in order.Payments)
            {
                var newpayment = new PaymentInfo
                {
                    Authorization   = payment.AuthNumber ?? string.Empty,
                    Amount          = payment.Amount,
                    BankName        = payment.BankName ?? string.Empty,
                    CardNumber      = payment.AccountNumber ?? string.Empty,
                    CardType        = payment.PaymentCode ?? string.Empty,
                    ExpirationDate  = payment.Expiration.ToString(),
                    Installments    = payment.NumberOfInstallments.ToString(),
                    FirstName       = payment.NameOnAccount ?? string.Empty,
                    LastName        = string.Empty,
                    PaymentCode     = payment.PaymentCode ?? string.Empty,
                    TransactionType = payment.TransactionType ?? string.Empty
                };
                listPayment.Add(newpayment);
            }
            return(listPayment);
        }
        private List <TriggeredGDOOrderConfirmationOrderLine> GetOrderSkus(Order order, string orderNumber)
        {
            var orderSkus = new List <TriggeredGDOOrderConfirmationOrderLine>();

            foreach (var sku in order.OrderItems)
            {
                var toAdd = new TriggeredGDOOrderConfirmationOrderLine_V01()
                {
                    OrderID          = orderNumber, //order.OrderID,
                    DistributorCost  = Convert.ToDecimal(sku.DistributorCost),
                    EarnBase         = Convert.ToDecimal(sku.EarnBase),
                    Flavor           = sku.Flavor ?? string.Empty,
                    ItemDescription  = sku.ItemDescription ?? string.Empty,
                    LineTotal        = Convert.ToDecimal(sku.LineTotal),
                    PriceWithCharges = Convert.ToDecimal(sku.PriceWithCharges),
                    Quantity         = sku.Quantity,
                    SkuId            = sku.SKU,
                    UnitPrice        = Convert.ToDecimal(sku.UnitPrice),
                    VolumePoints     = Convert.ToDecimal(sku.VolumePoints)
                };
                orderSkus.Add(toAdd);
            }
            return(orderSkus);
        }
 public SerializedOrderHolder(BTOrder btOrder, Order order)
 {
     BTOrder = btOrder;
     Order   = order;
 }
Ejemplo n.º 7
0
 public bool ValidateOrders(Order previousOrder, Order newOrder)
 {
     return(OrderProvider.ValidateOrders(previousOrder, newOrder));
 }
        private GdoOrderEmailSendData_V01 getDataEmailConfirmation(Order order, string emailType, string orderNumber)
        {
            var member = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
            GdoOrderEmailSendData_V01 orderData = null;

            if (order.EmailInfo == null)
            {
                order.EmailInfo = new ServiceProvider.SubmitOrderBTSvc.EmailInfo();
            }
            orderData = new GdoOrderEmailSendData_V01()
            {
                EmailType             = emailType,
                OrderId               = orderNumber,
                PaymentType           = GetPaymentType(order),
                BillingAddress        = GetAddress(order),
                DataKey               = orderNumber,
                DeliveryTimeEstimated = order.EmailInfo.DeliveryTimeEstimated ?? string.Empty,
                Distributor           = new Distributor
                {
                    Contact =
                        new ContactInfo
                    {
                        Email       = order.Email,
                        PhoneNumber = order.Shipment.Phone
                    },
                    DistributorId = order.DistributorID,
                    FirstName     = member.Value.FirstName,
                    LastName      = member.Value.LastName,
                    Locale        = order.Locale,
                    MiddleName    = member.Value.MiddleName,
                },
                Shipment = new Shipment
                {
                    FirstName      = order.Shipment.Recipient,
                    LastName       = "",
                    MiddleName     = "",
                    PickupName     = order.Shipment.Recipient,
                    ShippingDate   = DateTime.Now,
                    ShippingMethod = order.Shipment.ShippingMethodID
                },
                ShippingAddress             = GetAddress(order),
                SpecialInstructions         = order.EmailInfo.SpecialInstructions ?? string.Empty,
                Payments                    = GetOrderPayments(order, orderNumber).ToArray(),
                GrandTotal                  = order.Pricing.AmountDue,
                OrderMonth                  = order.OrderMonth,
                OrderSubmittedDate          = DateTime.Parse(DateUtils.GetCurrentLocalTime(order.Locale).ToString()),
                OrderSubmittedDateSpecified = true,
                Tax                     = order.Pricing.TaxAmount,
                Logistics               = Convert.ToDecimal(order.Pricing.LogisticsCharge),
                ICMS                    = Convert.ToDecimal(order.Pricing.IcmsTax),
                IPI                     = Convert.ToDecimal(order.Pricing.IpiTax),
                TotalCollateralRetail   = Convert.ToDecimal(order.Pricing.TotalCollateralRetail),
                TotalDiscountAmount     = Convert.ToDecimal(order.Pricing.DiscountedItemsTotal),
                TotalDiscountPercentage = Convert.ToDecimal(order.DiscountPercentage),
                PickupLocation          = order.EmailInfo.PickUpLocation,
                PickupTime              = string.Empty,
                TotalDiscountRetail     = Convert.ToDecimal(order.Pricing.TotalCollateralRetail),
                TotalEarnBase           = Convert.ToDecimal("0"),// calculated value
                TotalPackagingHandling  = order.Pricing.PHAmount,
                TotalProductRetail      = Convert.ToDecimal(order.Pricing.TotalProductRetail),
                TotalRetail             = Convert.ToDecimal(order.Pricing.TotalProductRetail),
                TotalPromotionalRetail  = Convert.ToDecimal(order.Pricing.TotalPromotionalRetail),
                TotalVolumePoints       = order.Pricing.VolumePoints,
                VolumePointsRate        = order.Pricing.VolumePointsRate ?? string.Empty,
                ShippingHandling        = order.Pricing.PHAmount,
                InvoiceOption           = order.EmailInfo.InvoiceOption,
                MarketingFund           = Convert.ToDecimal(order.Pricing.TotalMarketingFund),
                PaymentOption           = order.EmailInfo.PaymentOption,
                LocalTaxCharge          = Convert.ToDecimal(order.Pricing.LocalTaxCharge),
                TaxedNet                = Convert.ToDecimal(order.Pricing.TaxedNet),
                PurchaseType            = order.EmailInfo.PurchaseType ?? string.Empty,// HttpContext.GetGlobalResourceObject(string.Format("{0}_Rules", HLConfigManager.Platform),order.PurchaseCategory.ToString(), CultureInfo.CurrentCulture)as string
                HFFMessage              = order.EmailInfo.HffMessage ?? string.Empty,
                Locale                  = order.Locale,
                Messages                = GetOrderMessages(order, orderNumber).ToArray()
            };
            orderData.OrderLines = GetOrderSkus(order, orderNumber).ToArray();
            return(orderData);
        }
        private List <Message> GetOrderMessages(Order order, string orderNumber)
        {
            var             listMsg = new List <Message>();
            ResponseContext _responseContext;

            if (null != order.Messages)
            {
                listMsg.AddRange(order.Messages.Select(msg => new Message()
                {
                    MessageType  = msg.MessageType,
                    MessageValue = msg.MessageValue
                }));
            }

            if (order.Locale == "sr-RS")
            {
                try
                {
                    string        paymentGatewayLogs = string.Empty;
                    StringBuilder text = new StringBuilder();
                    PaymentGatewayRecordStatusType orderStatus = OrderProvider.GetPaymentGatewayRecordStatus(orderNumber);
                    if (orderStatus == PaymentGatewayRecordStatusType.Declined)
                    {
                        paymentGatewayLogs = OrderProvider.GetPaymentGatewayLog(orderNumber, PaymentGatewayLogEntryType.Response).Where(l => l.Contains("Error:=") || l.Contains("result:=") || l.Contains("Error=") || l.Contains("result=")).FirstOrDefault();
                        if (!string.IsNullOrEmpty(paymentGatewayLogs))
                        {
                            _responseContext = new ResponseContext(paymentGatewayLogs);
                            if (_responseContext.PostedValues.AllKeys.Contains("Error"))
                            {
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["paymentid"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "PaymentCode").ToString()) + " " + _responseContext.PostedValues["paymentid"] + "|");
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionCode").ToString()) + " |");
                                }
                            }
                            else
                            if (_responseContext.PostedValues.AllKeys.Contains("result"))
                            {
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["paymentid"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "PaymentCode").ToString()) + " " + _responseContext.PostedValues["paymentid"] + "|");
                                }
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["tranid"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionCode").ToString()) + " " + _responseContext.PostedValues["tranid"] + "|");
                                }
                            }
                            listMsg.Add(new Message {
                                MessageType = "aditionalInformation", MessageValue = text.ToString()
                            });
                        }
                    }
                    else
                    {
                        paymentGatewayLogs = OrderProvider.GetPaymentGatewayLog(orderNumber, PaymentGatewayLogEntryType.Response).Where(l => l.Contains("QueryString: Agency=NestPay") || l.Contains("QueryString: Agency:=NestPay")).FirstOrDefault();
                        if (!string.IsNullOrEmpty(paymentGatewayLogs))
                        {
                            _responseContext = new ResponseContext(paymentGatewayLogs);
                            if (_responseContext.PostedValues.AllKeys.Contains("oid"))
                            {
                                // order ID
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["oid"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "OrderIdForMail").ToString()) + " " + _responseContext.PostedValues["oid"] + "|");
                                }

                                // Authorization Code
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["AuthCode"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "AuthCode").ToString()) + " " + _responseContext.PostedValues["AuthCode"] + "|");
                                }

                                // Payment Status
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["Response"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "PaymentStatus").ToString()) + " " + _responseContext.PostedValues["Response"] + "|");
                                }

                                // Transaction Status Code
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["ProcReturnCode"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionStatusCode").ToString()) + " " + _responseContext.PostedValues["ProcReturnCode"] + "|");
                                }

                                // Transaction ID
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["TransId"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionId").ToString()) + " " + _responseContext.PostedValues["TransId"] + "|");
                                }

                                // Transaction Date
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["EXTRA.TRXDATE"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionDate").ToString()) + " " + _responseContext.PostedValues["EXTRA.TRXDATE"] + "|");
                                }

                                // Status code for the 3D transaction
                                if (!string.IsNullOrEmpty(_responseContext.PostedValues["mdStatus"]))
                                {
                                    text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "Transaction3DStatus").ToString()) + " " + _responseContext.PostedValues["mdStatus"] + "|");
                                }
                            }
                            listMsg.Add(new Message {
                                MessageType = "aditionalInformation", MessageValue = text.ToString()
                            });
                        }
                        else
                        {
                            paymentGatewayLogs = OrderProvider.GetPaymentGatewayLog(orderNumber, PaymentGatewayLogEntryType.Response).Where(l => l.Contains("result=CAPTURED") || l.Contains("result:=CAPTURED")).FirstOrDefault();
                            if (!string.IsNullOrEmpty(paymentGatewayLogs))
                            {
                                _responseContext = new ResponseContext(paymentGatewayLogs);
                                if (_responseContext.PostedValues.AllKeys.Contains("result"))
                                {
                                    if (!string.IsNullOrEmpty(_responseContext.PostedValues["paymentid"]))
                                    {
                                        text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "PaymentCode").ToString()) + " " + _responseContext.PostedValues["paymentid"] + "|");
                                    }
                                    if (!string.IsNullOrEmpty(_responseContext.PostedValues["tranid"]))
                                    {
                                        text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "TransactionCode").ToString()) + " " + _responseContext.PostedValues["tranid"] + "|");
                                    }
                                    if (!string.IsNullOrEmpty(_responseContext.PostedValues["auth"]))
                                    {
                                        text.Append(string.Format(HttpContext.GetGlobalResourceObject(string.Format("{0}_ErrorMessage", HLConfigManager.Platform), "AutorizationCode").ToString()) + " " + _responseContext.PostedValues["auth"] + "|");
                                    }
                                }
                                listMsg.Add(new Message {
                                    MessageType = "aditionalInformation", MessageValue = text.ToString()
                                });
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LoggerHelper.Error(string.Format("CommunicationSvcProvider: Error getting payment information for Order {0}, error: {1} .", orderNumber, ex.Message));
                }
            }
            return(listMsg);
        }