Example #1
0
        public bool StoreApplyForReturn(ReturnInfo returnInfo)
        {
            LineItemStatus lineItemStatus = LineItemStatus.Returned;

            returnInfo.HandleStatus = ReturnStatus.Returned;
            returnInfo.ApplyForTime = DateTime.Now;
            if (returnInfo.RefundType == RefundTypes.BackReturn)
            {
                lineItemStatus          = LineItemStatus.GetGoodsForReturn;
                returnInfo.HandleStatus = ReturnStatus.GetGoods;
            }
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("UPDATE Hishop_OrderItems SET RefundAmount = @RefundAmount,RealTotalPrice = (ItemAdjustedPrice * Quantity - @RefundAmount),Status = @ItemStatus WHERE OrderId = @OrderId AND SkuId = @SkuId;");
            base.database.ExecuteNonQuery(CommandType.Text, string.Format("DELETE FROM Hishop_OrderReturns WHERE OrderId = @OrderId AND SkuId = @SkuId;", returnInfo.OrderId, returnInfo.SkuId));
            int num = this.Add(returnInfo, null).ToInt(0);

            if (num > 0)
            {
                returnInfo.ReturnId = num;
                DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString());
                base.database.AddInParameter(sqlStringCommand, "RefundAmount", DbType.Decimal, returnInfo.RefundAmount);
                base.database.AddInParameter(sqlStringCommand, "ItemStatus", DbType.Int32, (int)lineItemStatus);
                base.database.AddInParameter(sqlStringCommand, "OrderId", DbType.String, returnInfo.OrderId);
                base.database.AddInParameter(sqlStringCommand, "SkuId", DbType.String, returnInfo.SkuId);
                return(base.database.ExecuteNonQuery(sqlStringCommand) > 0);
            }
            return(false);
        }
Example #2
0
        private SubmitOrderResult GetOrderResults()
        {
            var result    = new SubmitOrderResult();
            var lineItems = new List <LineItemStatus>();

            try
            {
                using (var cmd = new SqlCommand("usp_GetOrderLineItems", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@OrderID", SqlDbType.Int)
                    {
                        Value = id
                    });
                    var reader = cmd.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            var lineItem = new LineItemStatus
                            {
                                OrderLineItemId   = reader.GetString(OrderLineItemIdOrdinal),
                                ProductIdentifier = reader.GetString(ProductIdentifierOrdinal),
                                QtyReserved       = reader.GetInt32(QtyReservedOrdinal)
                            };
                            lineItems.Add(lineItem);
                        }
                    }
                    else
                    {
                        throw new NoLineItemsFoundException(orderNumber);
                    }
                }
                result.HasException = false;
                result.Exception    = null;
                result.OrderItems   = lineItems;
            }
            catch (SqlException ex)
            {
                result.HasException = true;
                result.Exception    = ExceptionFactory.BuildSqlException(ex);
            }
            catch (Exception ex)
            {
                result.HasException = true;
                result.Exception    = ExceptionFactory.BuildSystemException(ex);
            }

            return(result);
        }
 private void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
         LineItemInfo lineItemInfo = e.Item.DataItem as LineItemInfo;
         HtmlAnchor   htmlAnchor   = e.Item.FindControl("hylinkProductName") as HtmlAnchor;
         Literal      literal      = e.Item.FindControl("ltlSKUContent") as Literal;
         Literal      literal2     = e.Item.FindControl("ltlPrice") as Literal;
         Literal      literal3     = e.Item.FindControl("ltlProductCount") as Literal;
         HtmlAnchor   htmlAnchor2  = e.Item.FindControl("hyDetailLink") as HtmlAnchor;
         Label        label        = e.Item.FindControl("litSendCount") as Label;
         string       hRef         = lineItemInfo.IsValid ? ("ServiceMemberOrderDetails.aspx?OrderId=" + lineItemInfo.OrderId.ToNullString()) : ("MemberOrderDetails.aspx?OrderId=" + lineItemInfo.OrderId.ToNullString());
         htmlAnchor.InnerText = lineItemInfo.ItemDescription.ToNullString();
         htmlAnchor.HRef      = hRef;
         literal.Text         = lineItemInfo.SKUContent.ToNullString();
         literal2.Text        = lineItemInfo.ItemAdjustedPrice.ToDecimal(0).F2ToString("f2");
         literal3.Text        = lineItemInfo.Quantity.ToNullString();
         if (lineItemInfo.ShipmentQuantity > lineItemInfo.Quantity)
         {
             label.Text = "赠" + (lineItemInfo.ShipmentQuantity - lineItemInfo.Quantity).ToString();
         }
         htmlAnchor2.HRef = hRef;
         Literal literal4 = (Literal)e.Item.FindControl("litStatus");
         if (literal4 != null)
         {
             LineItemStatus status      = lineItemInfo.Status;
             string         text        = "";
             ReturnInfo     returnInfo  = TradeHelper.GetReturnInfo(lineItemInfo.OrderId, lineItemInfo.SkuId);
             ReplaceInfo    replaceInfo = TradeHelper.GetReplaceInfo(lineItemInfo.OrderId, lineItemInfo.SkuId);
             if (status == LineItemStatus.Normal)
             {
                 text = "";
             }
             else if (returnInfo != null)
             {
                 if (returnInfo.HandleStatus != ReturnStatus.Refused)
                 {
                     text = ((returnInfo.AfterSaleType != AfterSaleTypes.OnlyRefund) ? EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 1) : EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 3));
                 }
             }
             else if (replaceInfo != null && replaceInfo.HandleStatus != ReplaceStatus.Refused)
             {
                 text = EnumDescription.GetEnumDescription((Enum)(object)replaceInfo.HandleStatus, 1);
             }
             literal4.Text = text;
         }
     }
 }
Example #4
0
        private List <LineItemStatusChanges> BuildLineItemStatusChanges(IEnumerable <RMALineItem> rmaLineItemsToUpdate, HSOrderWorksheet worksheet, RMAType rmaType, bool isDenyingAll)
        {
            if (!rmaLineItemsToUpdate.Any())
            {
                return(new List <LineItemStatusChanges>());
            }
            IEnumerable <HSLineItem> orderWorksheetLineItems = worksheet.LineItems
                                                               .Where(li => rmaLineItemsToUpdate
                                                                      .Any(itemToUpdate => itemToUpdate.ID == li.ID));

            List <LineItemStatusChanges> lineItemStatusChangesList = new List <LineItemStatusChanges>();

            LineItemStatus actionCompleteType = rmaType == RMAType.Cancellation ? LineItemStatus.Canceled : LineItemStatus.Returned;
            LineItemStatus actionDeniedType   = rmaType == RMAType.Cancellation ? LineItemStatus.CancelDenied : LineItemStatus.ReturnDenied;

            foreach (HSLineItem lineItem in orderWorksheetLineItems)
            {
                RMALineItem correspondingRMALineItem = rmaLineItemsToUpdate.FirstOrDefault(li => li.ID == lineItem.ID);
                if (correspondingRMALineItem.QuantityProcessed == correspondingRMALineItem.QuantityRequested)
                {
                    if (isDenyingAll)
                    {
                        LineItemStatusChanges statusChangeToAdjust = lineItemStatusChangesList.FirstOrDefault(change => change.Status == actionDeniedType);
                        BuildStatusChangeToAdjust(statusChangeToAdjust, actionDeniedType, lineItemStatusChangesList, correspondingRMALineItem, isDenyingAll);
                    }
                    else
                    {
                        LineItemStatusChanges statusChangeToAdjust = lineItemStatusChangesList.FirstOrDefault(change => change.Status == actionCompleteType);
                        BuildStatusChangeToAdjust(statusChangeToAdjust, actionCompleteType, lineItemStatusChangesList, correspondingRMALineItem, isDenyingAll);
                    }
                }
                else
                {
                    int quantityToComplete = correspondingRMALineItem.QuantityProcessed;
                    int quantityToDeny     = correspondingRMALineItem.QuantityRequested - correspondingRMALineItem.QuantityProcessed;
                    LineItemStatusChanges statusChangeForComplete = lineItemStatusChangesList.FirstOrDefault(change => change.Status == actionCompleteType);
                    LineItemStatusChanges statusChangeForDeny     = lineItemStatusChangesList.FirstOrDefault(change => change.Status == actionDeniedType);

                    BuildStatusChangeToAdjust(statusChangeForComplete, actionCompleteType, lineItemStatusChangesList, correspondingRMALineItem, isDenyingAll, quantityToComplete);

                    BuildStatusChangeToAdjust(statusChangeForDeny, actionDeniedType, lineItemStatusChangesList, correspondingRMALineItem, isDenyingAll, quantityToDeny);
                }
            }

            return(lineItemStatusChangesList);
        }
Example #5
0
        public bool CanChangeStatusTo(LineItemStatus status)
        {
            switch (status)
            {
            case LineItemStatus.Open:
                return(CanOpen());

            case LineItemStatus.Cancelled:
                return(CanCancel());

            case LineItemStatus.Closed:
                return(CanClose());

            case LineItemStatus.ClosedShort:
                return(CanCloseShort());
            }
            return(false);
        }
Example #6
0
        public static ILineItemState GetStateForStatus(LineItemStatus status)
        {
            switch (status)
            {
            case LineItemStatus.Open:
                return(new LineItemOpen());

            case LineItemStatus.Closed:
                return(new LineItemClosed());

            case LineItemStatus.ClosedShort:
                return(new LineItemClosedShort());

            case LineItemStatus.Cancelled:
                return(new LineItemCancelled());
            }

            return(null);
        }
Example #7
0
        public bool ValidateCurrentQuantities(List <HSLineItem> previousLineItemStates, LineItemStatusChange lineItemStatusChange, LineItemStatus lineItemStatusChangingTo)
        {
            var relatedLineItems = previousLineItemStates.Where(previousState => previousState.ID == lineItemStatusChange.ID);

            if (relatedLineItems.Count() != 1)
            {
                // if the lineitem is not found on the order, invalid change
                return(false);
            }

            var existingLineItem = relatedLineItems.First();

            var existingStatusByQuantity = existingLineItem.xp.StatusByQuantity;

            if (existingStatusByQuantity == null)
            {
                return(false);
            }

            var countCanBeChanged   = 0;
            var validPreviousStates = LineItemStatusConstants.ValidPreviousStateLineItemChangeMap[lineItemStatusChangingTo];

            foreach (KeyValuePair <LineItemStatus, int> entry in existingStatusByQuantity)
            {
                if (validPreviousStates.Contains(entry.Key))
                {
                    countCanBeChanged += entry.Value;
                }
            }
            return(countCanBeChanged >= lineItemStatusChange.Quantity);
        }
Example #8
0
        private Dictionary <LineItemStatus, int> BuildNewLineItemStatusByQuantity(LineItemStatusChange lineItemStatusChange, HSLineItem existingLineItem, LineItemStatus newLineItemStatus)
        {
            Dictionary <LineItemStatus, int> statusDictionary = existingLineItem.xp.StatusByQuantity;
            var quantitySetting = lineItemStatusChange.Quantity;

            // increment
            statusDictionary[newLineItemStatus] += quantitySetting;


            var validPreviousStates = LineItemStatusConstants.ValidPreviousStateLineItemChangeMap[newLineItemStatus];

            // decrement
            foreach (LineItemStatus status in validPreviousStates)
            {
                if (statusDictionary[status] != 0)
                {
                    if (statusDictionary[status] <= quantitySetting)
                    {
                        quantitySetting         -= statusDictionary[status];
                        statusDictionary[status] = 0;
                    }
                    else
                    {
                        statusDictionary[status] -= quantitySetting;
                        quantitySetting           = 0;
                    }
                }
            }


            return(statusDictionary);
        }
Example #9
0
        private List <LineItemClaim> GetUpdatedChangeRequests(List <LineItemClaim> existinglineItemStatusChangeRequests, LineItemStatusChange lineItemStatusChange, int QuantitySetting, LineItemStatus newLineItemStatus, Dictionary <LineItemStatus, int> lineItemStatuses)
        {
            if (newLineItemStatus == LineItemStatus.Returned || newLineItemStatus == LineItemStatus.Canceled)
            {
                // go through the return requests and resolve each request until there aren't enough returned or canceled items
                // to resolve an additional request
                var numberReturnedOrCanceled = lineItemStatuses[newLineItemStatus];
                var currentClaimIndex        = 0;
                while (numberReturnedOrCanceled > 0 && currentClaimIndex < existinglineItemStatusChangeRequests.Count())
                {
                    if (existinglineItemStatusChangeRequests[currentClaimIndex].Quantity <= numberReturnedOrCanceled)
                    {
                        existinglineItemStatusChangeRequests[currentClaimIndex].IsResolved = true;
                        numberReturnedOrCanceled -= existinglineItemStatusChangeRequests[currentClaimIndex].Quantity;
                        currentClaimIndex++;
                    }
                    else
                    {
                        currentClaimIndex++;
                    }
                }
            }
            else
            {
                existinglineItemStatusChangeRequests.Add(new LineItemClaim()
                {
                    Comment    = lineItemStatusChange.Comment,
                    Reason     = lineItemStatusChange.Reason,
                    IsResolved = false,
                    Quantity   = QuantitySetting
                });
            }

            return(existinglineItemStatusChangeRequests);
        }
Example #10
0
        private PartialLineItem BuildNewPartialLineItem(LineItemStatusChange lineItemStatusChange, List <HSLineItem> previousLineItemStates, LineItemStatus newLineItemStatus)
        {
            var existingLineItem = previousLineItemStates.First(li => li.ID == lineItemStatusChange.ID);
            var StatusByQuantity = BuildNewLineItemStatusByQuantity(lineItemStatusChange, existingLineItem, newLineItemStatus);

            if (newLineItemStatus == LineItemStatus.ReturnRequested || newLineItemStatus == LineItemStatus.Returned)
            {
                var returnRequests = existingLineItem.xp.Returns ?? new List <LineItemClaim>();
                return(new PartialLineItem()
                {
                    xp = new
                    {
                        Returns = GetUpdatedChangeRequests(returnRequests, lineItemStatusChange, lineItemStatusChange.Quantity, newLineItemStatus, StatusByQuantity),
                        StatusByQuantity
                    }
                });
            }
            else if (newLineItemStatus == LineItemStatus.CancelRequested || newLineItemStatus == LineItemStatus.Canceled)
            {
                var cancelRequests = existingLineItem.xp.Cancelations ?? new List <LineItemClaim>();
                return(new PartialLineItem()
                {
                    xp = new
                    {
                        Cancelations = GetUpdatedChangeRequests(cancelRequests, lineItemStatusChange, lineItemStatusChange.Quantity, newLineItemStatus, StatusByQuantity),
                        StatusByQuantity
                    }
                });
            }
            else
            {
                return(new PartialLineItem()
                {
                    xp = new
                    {
                        StatusByQuantity
                    }
                });
            }
        }
Example #11
0
        protected void listProduct_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                LineItemStatus lineItemStatus = (LineItemStatus)DataBinder.Eval(e.Item.DataItem, "Status");
                string         text           = (string)DataBinder.Eval(e.Item.DataItem, "StatusText");
                string         orderId        = (string)DataBinder.Eval(e.Item.DataItem, "OrderId");
                OrderInfo      orderInfo      = TradeHelper.GetOrderInfo(orderId);
                string         text2          = DataBinder.Eval(e.Item.DataItem, "SkuId").ToString();
                LineItemInfo   lineItemInfo   = orderInfo.LineItems[text2];
                if (lineItemStatus == LineItemStatus.Normal)
                {
                    text = TradeHelper.GetOrderItemSatusText(lineItemInfo.Status);
                }
                OrderStatus orderStatus = orderInfo.OrderStatus;
                DateTime    finishDate  = orderInfo.FinishDate;
                string      gateway     = orderInfo.Gateway;
                HtmlAnchor  htmlAnchor  = (HtmlAnchor)e.Item.FindControl("lkbtnAfterSalesApply");
                Label       label       = (Label)e.Item.FindControl("ItemLogistics");
                HtmlAnchor  htmlAnchor2 = (HtmlAnchor)e.Item.FindControl("lkbtnViewMessage");
                htmlAnchor.Attributes.Add("OrderId", orderInfo.OrderId);
                htmlAnchor.Attributes.Add("SkuId", text2);
                htmlAnchor.Attributes.Add("GateWay", gateway);
                ReplaceInfo replaceInfo = lineItemInfo.ReplaceInfo;
                ReturnInfo  returnInfo  = lineItemInfo.ReturnInfo;
                Literal     literal     = (Literal)e.Item.FindControl("litStatusText");
                if (literal != null && (replaceInfo != null || returnInfo != null))
                {
                    if (returnInfo != null)
                    {
                        if (returnInfo.AfterSaleType == AfterSaleTypes.OnlyRefund)
                        {
                            literal.Text = "<a href=\"UserReturnsApplyDetails?ReturnsId=" + returnInfo.ReturnId + "\" class=\"aslink\">" + EnumDescription.GetEnumDescription((Enum)(object)lineItemStatus, 3) + "</a>";
                        }
                        else
                        {
                            literal.Text = "<a href=\"UserReturnsApplyDetails?ReturnsId=" + returnInfo.ReturnId + "\" class=\"aslink\">" + EnumDescription.GetEnumDescription((Enum)(object)lineItemStatus, 2) + "</a>";
                        }
                    }
                    else
                    {
                        literal.Text = "<a href=\"UserReplaceApplyDetails?ReplaceId=" + replaceInfo.ReplaceId + "\" class=\"aslink\">" + EnumDescription.GetEnumDescription((Enum)(object)lineItemStatus, 2) + "</a>";
                    }
                }
                SiteSettings masterSettings = SettingsManager.GetMasterSettings();
                HtmlAnchor   htmlAnchor3    = htmlAnchor;
                int          visible;
                if (orderInfo.OrderType != OrderType.ServiceOrder)
                {
                    switch (orderStatus)
                    {
                    case OrderStatus.Finished:
                        visible = ((!orderInfo.IsServiceOver) ? 1 : 0);
                        break;

                    default:
                        visible = 0;
                        break;

                    case OrderStatus.SellerAlreadySent:
                        visible = 1;
                        break;
                    }
                }
                else
                {
                    visible = 0;
                }
                htmlAnchor3.Visible = ((byte)visible != 0);
                if (htmlAnchor.Visible)
                {
                    htmlAnchor.Visible = ((returnInfo == null || returnInfo.HandleStatus == ReturnStatus.Refused) && (replaceInfo == null || replaceInfo.HandleStatus == ReplaceStatus.Refused || replaceInfo.HandleStatus == ReplaceStatus.Replaced));
                }
            }
        }
Example #12
0
        private void BuildStatusChangeToAdjust(LineItemStatusChanges statusChangeToAdjust, LineItemStatus lineItemStatus, List <LineItemStatusChanges> lineItemStatusChangesList, RMALineItem correspondingRMALineItem, bool isDenyingAll, int?overriddenQuantity = null)
        {
            int?quantityToChange = overriddenQuantity != null ? overriddenQuantity : correspondingRMALineItem.QuantityProcessed;

            if ((int)quantityToChange == 0)
            {
                return;
            }

            if (statusChangeToAdjust == null)
            {
                LineItemStatusChanges newStatusChange = new LineItemStatusChanges()
                {
                    Status = lineItemStatus, Changes = new List <LineItemStatusChange>()
                };
                lineItemStatusChangesList.Add(newStatusChange);
                statusChangeToAdjust = lineItemStatusChangesList.FirstOrDefault(change => change.Status == lineItemStatus);
            }

            decimal?refundAmount = null;

            if (!isDenyingAll)
            {
                refundAmount = correspondingRMALineItem.LineTotalRefund;
            }

            statusChangeToAdjust.Changes.Add(new LineItemStatusChange()
            {
                ID       = correspondingRMALineItem.ID,
                Quantity = (int)quantityToChange,
                Comment  = correspondingRMALineItem.Comment,
                Refund   = refundAmount,
                QuantityRequestedForRefund = correspondingRMALineItem.QuantityRequested,
            });
        }
Example #13
0
        public static LineItemProductData MapToTemplateProduct(HSLineItem lineItem, LineItemStatusChange lineItemStatusChange, LineItemStatus status)
        {
            decimal lineTotal = 0M;

            if (status == LineItemStatus.ReturnDenied || status == LineItemStatus.CancelDenied && lineItemStatusChange.QuantityRequestedForRefund != lineItemStatusChange.Quantity)
            {
                int     quantityApproved      = lineItemStatusChange.QuantityRequestedForRefund - lineItemStatusChange.Quantity;
                decimal costPerUnitAfterTaxes = (decimal)(lineItemStatusChange.Refund / quantityApproved);
                lineTotal = Math.Round(costPerUnitAfterTaxes * lineItemStatusChange.Quantity, 2);
            }
            else
            {
                lineTotal = lineItemStatusChange.Refund ?? lineItem.LineTotal;
            }
            return(new LineItemProductData
            {
                ProductName = lineItem?.Product?.Name,
                ImageURL = lineItem?.xp?.ImageUrl,
                ProductID = lineItem?.ProductID,
                Quantity = lineItem?.Quantity,
                LineTotal = lineTotal,
                QuantityChanged = lineItemStatusChange?.Quantity,
                MessageToBuyer = lineItemStatusChange.Comment
            });
        }
        protected void orderItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                LineItemStatus lineItemStatus = (LineItemStatus)DataBinder.Eval(e.Item.DataItem, "Status");
                string         text           = DataBinder.Eval(e.Item.DataItem, "SkuId").ToString();
                OrderStatus    orderStatus    = this.order.OrderStatus;
                DateTime       finishDate     = this.order.FinishDate;
                string         gateway        = this.order.Gateway;
                LineItemInfo   lineItemInfo   = this.order.LineItems[text];
                HtmlAnchor     htmlAnchor     = (HtmlAnchor)e.Item.FindControl("lkbtnAfterSalesApply");
                Label          label          = (Label)e.Item.FindControl("Logistics");
                HtmlAnchor     htmlAnchor2    = (HtmlAnchor)e.Item.FindControl("lkbtnViewMessage");
                htmlAnchor.Attributes.Add("OrderId", this.order.OrderId);
                htmlAnchor.Attributes.Add("SkuId", text);
                htmlAnchor.Attributes.Add("GateWay", gateway);
                ReplaceInfo replaceInfo = lineItemInfo.ReplaceInfo;
                ReturnInfo  returnInfo  = lineItemInfo.ReturnInfo;
                string      text2       = (string)DataBinder.Eval(e.Item.DataItem, "StatusText");
                if (lineItemStatus == LineItemStatus.Normal)
                {
                    text2 = "";
                }
                else if (returnInfo != null)
                {
                    text2 = ((returnInfo.AfterSaleType != AfterSaleTypes.OnlyRefund) ? EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 1) : EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 3));
                }
                else if (replaceInfo != null)
                {
                    text2 = EnumDescription.GetEnumDescription((Enum)(object)replaceInfo.HandleStatus, 1);
                }
                SiteSettings masterSettings = SettingsManager.GetMasterSettings();
                HtmlAnchor   htmlAnchor3    = htmlAnchor;
                int          visible;
                switch (orderStatus)
                {
                case OrderStatus.Finished:
                    visible = ((!this.order.IsServiceOver) ? 1 : 0);
                    break;

                default:
                    visible = 0;
                    break;

                case OrderStatus.SellerAlreadySent:
                    visible = 1;
                    break;
                }
                htmlAnchor3.Visible = ((byte)visible != 0);
                if (htmlAnchor.Visible)
                {
                    htmlAnchor.Visible = (this.order.LineItems.Count >= 1 && (returnInfo == null || returnInfo.HandleStatus == ReturnStatus.Refused) && (replaceInfo == null || replaceInfo.HandleStatus == ReplaceStatus.Refused));
                }
                Literal literal = (Literal)e.Item.FindControl("litStatusText");
                if (literal != null && lineItemStatus != 0)
                {
                    if (returnInfo != null && (lineItemStatus == LineItemStatus.DeliveryForReturn || lineItemStatus == LineItemStatus.GetGoodsForReturn || lineItemStatus == LineItemStatus.MerchantsAgreedForReturn || lineItemStatus == LineItemStatus.ReturnApplied || lineItemStatus == LineItemStatus.Returned || lineItemStatus == LineItemStatus.ReturnsRefused))
                    {
                        literal.Text = "<a href=\"/User/UserReturnsApplyDetails?ReturnsId=" + returnInfo.ReturnId + "\">" + text2 + "</a>";
                    }
                    else if (replaceInfo != null)
                    {
                        literal.Text = "<a href=\"/User/UserReplaceApplyDetails?ReplaceId=" + replaceInfo.ReplaceId + "\">" + text2 + "</a>";
                    }
                }
                int num;
                if (replaceInfo != null && (replaceInfo.HandleStatus == ReplaceStatus.Replaced || replaceInfo.HandleStatus == ReplaceStatus.UserDelivery || replaceInfo.HandleStatus == ReplaceStatus.MerchantsDelivery))
                {
                    label.Attributes.Add("action", "replace");
                    AttributeCollection attributes = label.Attributes;
                    num = replaceInfo.ReplaceId;
                    attributes.Add("ReplaceId", num.ToString());
                    label.Visible = true;
                }
                if (returnInfo != null && returnInfo.AfterSaleType == AfterSaleTypes.ReturnAndRefund && (returnInfo.HandleStatus == ReturnStatus.Deliverying || returnInfo.HandleStatus == ReturnStatus.Returned || returnInfo.HandleStatus == ReturnStatus.GetGoods))
                {
                    label.Attributes.Add("action", "return");
                    AttributeCollection attributes2 = label.Attributes;
                    num = returnInfo.ReturnId;
                    attributes2.Add("returnId", num.ToString());
                    label.Visible = true;
                }
            }
        }
Example #15
0
 private void rptOrderProducts_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
         HtmlAnchor htmlAnchor  = (HtmlAnchor)e.Item.FindControl("lnkProductReview");
         Literal    literal     = (Literal)e.Item.FindControl("litPrice");
         Literal    literal2    = (Literal)e.Item.FindControl("ltlProductCount");
         HtmlAnchor htmlAnchor2 = (HtmlAnchor)e.Item.FindControl("lkbtnApplyAfterSale");
         HtmlAnchor htmlAnchor3 = (HtmlAnchor)e.Item.FindControl("hylinkProductName");
         Literal    literal3    = (Literal)e.Item.FindControl("ltlSKUContent");
         HtmlAnchor htmlAnchor4 = (HtmlAnchor)e.Item.FindControl("lkbtnItemStatus");
         Label      label       = e.Item.FindControl("litSendCount") as Label;
         string     text        = DataBinder.Eval(e.Item.DataItem, "SkuId").ToString();
         int        num         = 0;
         int.TryParse(DataBinder.Eval(e.Item.DataItem, "ProductId").ToString(), out num);
         LineItemInfo lineItemInfo = this.order.LineItems[text];
         literal.Text = lineItemInfo.ItemAdjustedPrice.F2ToString("f2");
         Literal literal4 = literal2;
         int     num2     = lineItemInfo.Quantity;
         literal4.Text = num2.ToString();
         if (lineItemInfo.ShipmentQuantity > lineItemInfo.Quantity)
         {
             Label label2 = label;
             num2        = lineItemInfo.ShipmentQuantity - lineItemInfo.Quantity;
             label2.Text = "赠" + num2.ToString();
         }
         htmlAnchor3.InnerText = lineItemInfo.ItemDescription;
         if (this.order.StoreId > 0)
         {
             HtmlAnchor htmlAnchor5 = htmlAnchor;
             HtmlAnchor htmlAnchor6 = htmlAnchor3;
             string     text4       = htmlAnchor5.HRef = (htmlAnchor6.HRef = $"ServiceProductDetails.aspx?ProductId={num}&StoreId={this.order.StoreId}");
         }
         else
         {
             HtmlAnchor htmlAnchor7 = htmlAnchor;
             HtmlAnchor htmlAnchor8 = htmlAnchor3;
             string     text4       = htmlAnchor7.HRef = (htmlAnchor8.HRef = $"ServiceProductDetails.aspx?ProductId={num}");
         }
         htmlAnchor2.HRef = "ApplyReturn?OrderId=" + this.order.OrderId + "&SkuId=" + lineItemInfo.SkuId;
         literal3.Text    = lineItemInfo.SKUContent;
         LineItemStatus lineItemStatus = (LineItemStatus)DataBinder.Eval(e.Item.DataItem, "Status");
         string         text7          = (string)DataBinder.Eval(e.Item.DataItem, "StatusText");
         ReplaceInfo    replaceInfo    = lineItemInfo.ReplaceInfo;
         ReturnInfo     returnInfo     = lineItemInfo.ReturnInfo;
         if (lineItemStatus == LineItemStatus.Normal)
         {
             text7 = "";
         }
         else if (returnInfo != null)
         {
             text7 = ((returnInfo.AfterSaleType != AfterSaleTypes.OnlyRefund) ? EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 1) : EnumDescription.GetEnumDescription((Enum)(object)returnInfo.HandleStatus, 3));
         }
         else if (replaceInfo != null)
         {
             text7 = ((replaceInfo.HandleStatus == ReplaceStatus.Replaced) ? "" : EnumDescription.GetEnumDescription((Enum)(object)replaceInfo.HandleStatus, 1));
         }
         Literal literal5 = (Literal)e.Item.FindControl("litStatusText");
         if (literal5 != null)
         {
             literal5.Text = text7;
         }
         if (lineItemInfo.Status != 0 && this.order.OrderStatus != OrderStatus.Refunded && this.order.OrderStatus != OrderStatus.Closed)
         {
             string innerText = "";
             if (lineItemInfo.ReturnInfo != null && (lineItemInfo.Status == LineItemStatus.RefundApplied || lineItemInfo.Status == LineItemStatus.Refunded || lineItemInfo.Status == LineItemStatus.RefundRefused || lineItemInfo.Status == LineItemStatus.ReturnApplied || lineItemInfo.Status == LineItemStatus.Returned || lineItemInfo.Status == LineItemStatus.ReturnsRefused || lineItemInfo.Status == LineItemStatus.MerchantsAgreedForReturn || lineItemInfo.Status == LineItemStatus.GetGoodsForReturn || lineItemInfo.Status == LineItemStatus.DeliveryForReturn))
             {
                 innerText           = ((lineItemInfo.ReturnInfo.AfterSaleType != AfterSaleTypes.ReturnAndRefund) ? EnumDescription.GetEnumDescription((Enum)(object)lineItemInfo.ReturnInfo.HandleStatus, 2) : EnumDescription.GetEnumDescription((Enum)(object)lineItemInfo.ReturnInfo.HandleStatus, 0));
                 htmlAnchor4.Visible = true;
                 AttributeCollection attributes = htmlAnchor4.Attributes;
                 num2 = lineItemInfo.ReturnInfo.ReturnId;
                 attributes.Add("returnsId", num2.ToString());
             }
             else if (lineItemInfo.ReplaceInfo != null && lineItemInfo.ReplaceInfo.HandleStatus != ReplaceStatus.Replaced)
             {
                 innerText           = EnumDescription.GetEnumDescription((Enum)(object)lineItemInfo.ReplaceInfo.HandleStatus, 0);
                 htmlAnchor4.Visible = true;
                 AttributeCollection attributes2 = htmlAnchor4.Attributes;
                 num2 = lineItemInfo.ReplaceInfo.ReplaceId;
                 attributes2.Add("replaceId", num2.ToString());
             }
             htmlAnchor4.InnerText = innerText;
         }
         OrderStatus orderStatus = this.order.OrderStatus;
         DateTime    finishDate  = this.order.FinishDate;
         string      gateway     = this.order.Gateway;
         htmlAnchor2.Attributes.Add("OrderId", this.order.OrderId);
         htmlAnchor2.Attributes.Add("SkuId", text);
         htmlAnchor2.Attributes.Add("GateWay", gateway);
         SiteSettings masterSettings = SettingsManager.GetMasterSettings();
         htmlAnchor2.Visible = false;
         if (this.order.OrderStatus == OrderStatus.WaitBuyerPay && ((!this.order.DepositDate.HasValue && this.order.PreSaleId > 0) || this.order.PreSaleId <= 0))
         {
             this.btnOrderCancel.Visible = true;
             this.btnOrderCancel.Attributes.Add("onclick", $"closeOrder('{this.order.OrderId}')");
         }
     }
 }
Example #16
0
        private SubmitOrderResult GetOrderResults()
        {
            var result = new SubmitOrderResult();
            var lineItems = new List<LineItemStatus>();

            try
            {
                using (var cmd = new SqlCommand("usp_GetOrderLineItems", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@OrderID", SqlDbType.Int) { Value = id });
                    var reader = cmd.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            var lineItem = new LineItemStatus
                            {
                                OrderLineItemId = reader.GetString(OrderLineItemIdOrdinal),
                                ProductIdentifier = reader.GetString(ProductIdentifierOrdinal),
                                QtyReserved = reader.GetInt32(QtyReservedOrdinal)
                            };
                            lineItems.Add(lineItem);
                        }
                    }
                    else
                    {
                        throw new NoLineItemsFoundException(orderNumber);
                    }
                }
                result.HasException = false;
                result.Exception = null;
                result.OrderItems = lineItems;

            }
            catch (SqlException ex)
            {
                result.HasException = true;
                result.Exception = ExceptionFactory.BuildSqlException(ex);
            }
            catch (Exception ex)
            {
                result.HasException = true;
                result.Exception = ExceptionFactory.BuildSystemException(ex);
            }

            return result;
        }