public ReturnBuilder RemoveReturnItem(RmaReturnItem returnItem, decimal returnQuantity) { if (returnItem == null) { throw new ArgumentNullException("returnItem"); } returnItem.RmaLineItems[0].ReturnQuantity -= returnQuantity; if (returnItem.RmaLineItems[0].ReturnQuantity <= 0) { RmaRequest.RmaReturnItems.Remove(returnItem); RmaReturnItems.Remove(returnItem); } var availableLineItem = AvailableForReturnLineItems.FirstOrDefault(x => x.LineItemId == returnItem.RmaLineItems[0].LineItemId); if (availableLineItem == null) { availableLineItem = _deletedLineItemList.FirstOrDefault(x => x.LineItemId == returnItem.RmaLineItems[0].LineItemId); // undelete AvailableForReturnLineItems.Add(availableLineItem); } availableLineItem.AvailableQuantity += returnQuantity; Recalculate(); return(this); }
public ReturnBuilder AddReturnItem(ReturnLineItem lineItem, decimal returnQuantity, string returnReason) { if (lineItem == null) { throw new ArgumentNullException("lineItem"); } var returnItem = RmaReturnItems.FirstOrDefault(x => x.RmaLineItems[0].LineItemId == lineItem.LineItemId && x.ReturnReason == returnReason); if (returnItem == null) { var rmaLineItem = CreateEntity <RmaLineItem>(); rmaLineItem.LineItemId = lineItem.LineItemId; rmaLineItem.LineItem = lineItem.LineItem; returnItem = CreateEntity <RmaReturnItem>(); returnItem.RmaLineItems.Add(rmaLineItem); returnItem.ItemState = RmaLineItemState.AwaitingReturn.ToString(); returnItem.ReturnReason = returnReason; RmaRequest.RmaReturnItems.Add(returnItem); RmaReturnItems.Add(returnItem); } returnItem.RmaLineItems[0].ReturnQuantity += returnQuantity; lineItem.AvailableQuantity -= returnQuantity; if (lineItem.AvailableQuantity == 0) { _deletedLineItemList.Add(lineItem); AvailableForReturnLineItems.Remove(lineItem); } Recalculate(); return(this); }