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); }
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; } } }
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); }
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); }
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); }
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); }
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); }
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); }
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 } }); } }
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)); } } }
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, }); }
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; } } }
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}')"); } } }
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; }