001// -------------------------------------------------------------------------------- 002// Copyright 2002-2024 Echo Three, LLC 003// 004// Licensed under the Apache License, Version 2.0 (the "License"); 005// you may not use this file except in compliance with the License. 006// You may obtain a copy of the License at 007// 008// http://www.apache.org/licenses/LICENSE-2.0 009// 010// Unless required by applicable law or agreed to in writing, software 011// distributed under the License is distributed on an "AS IS" BASIS, 012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013// See the License for the specific language governing permissions and 014// limitations under the License. 015// -------------------------------------------------------------------------------- 016 017package com.echothree.model.control.wishlist.server.transfer; 018 019import com.echothree.model.control.associate.common.transfer.AssociateReferralTransfer; 020import com.echothree.model.control.inventory.common.transfer.InventoryConditionTransfer; 021import com.echothree.model.control.inventory.server.control.InventoryControl; 022import com.echothree.model.control.item.common.transfer.ItemTransfer; 023import com.echothree.model.control.item.server.control.ItemControl; 024import com.echothree.model.control.offer.common.transfer.OfferUseTransfer; 025import com.echothree.model.control.offer.server.control.OfferUseControl; 026import com.echothree.model.control.uom.common.transfer.UnitOfMeasureTypeTransfer; 027import com.echothree.model.control.uom.server.control.UomControl; 028import com.echothree.model.control.wishlist.common.transfer.WishlistLineTransfer; 029import com.echothree.model.control.wishlist.common.transfer.WishlistTransfer; 030import com.echothree.model.control.wishlist.common.transfer.WishlistPriorityTransfer; 031import com.echothree.model.control.wishlist.server.control.WishlistControl; 032import com.echothree.model.data.order.server.entity.Order; 033import com.echothree.model.data.order.server.entity.OrderLine; 034import com.echothree.model.data.order.server.entity.OrderLineDetail; 035import com.echothree.model.data.user.server.entity.UserVisit; 036import com.echothree.model.data.wishlist.server.entity.WishlistLine; 037import com.echothree.util.server.persistence.Session; 038import com.echothree.util.server.string.AmountUtils; 039 040public class WishlistLineTransferCache 041 extends BaseWishlistTransferCache<OrderLine, WishlistLineTransfer> { 042 043 InventoryControl inventoryControl = Session.getModelController(InventoryControl.class); 044 ItemControl itemControl = Session.getModelController(ItemControl.class); 045 OfferUseControl offerUseControl = Session.getModelController(OfferUseControl.class); 046 UomControl uomControl = Session.getModelController(UomControl.class); 047 048 /** Creates a new instance of WishlistLineTransferCache */ 049 public WishlistLineTransferCache(UserVisit userVisit, WishlistControl wishlistControl) { 050 super(userVisit, wishlistControl); 051 052 setIncludeEntityInstance(true); 053 } 054 055 public WishlistLineTransfer getWishlistLineTransfer(OrderLine orderLine) { 056 WishlistLineTransfer wishlistLineTransfer = get(orderLine); 057 058 if(wishlistLineTransfer == null) { 059 OrderLineDetail orderLineDetail = orderLine.getLastDetail(); 060 WishlistLine wishlistLine = wishlistControl.getWishlistLine(orderLine); 061 Order order = orderLineDetail.getOrder(); 062 WishlistTransfer wishlist = wishlistControl.getWishlistTransfer(userVisit, order); 063 Integer orderLineSequence = orderLineDetail.getOrderLineSequence(); 064 ItemTransfer item = itemControl.getItemTransfer(userVisit, orderLineDetail.getItem()); 065 InventoryConditionTransfer inventoryCondition = inventoryControl.getInventoryConditionTransfer(userVisit, orderLineDetail.getInventoryCondition()); 066 UnitOfMeasureTypeTransfer unitOfMeasureType = uomControl.getUnitOfMeasureTypeTransfer(userVisit, orderLineDetail.getUnitOfMeasureType()); 067 Long quantity = orderLineDetail.getQuantity(); 068 Long unformattedUnitAmount = orderLineDetail.getUnitAmount(); 069 String unitAmount = AmountUtils.getInstance().formatPriceLine(order.getLastDetail().getCurrency(), unformattedUnitAmount); 070 String description = orderLineDetail.getDescription(); 071 OfferUseTransfer offerUse = offerUseControl.getOfferUseTransfer(userVisit, wishlistLine.getOfferUse()); 072 WishlistPriorityTransfer wishlistPriority = wishlistControl.getWishlistPriorityTransfer(userVisit, wishlistLine.getWishlistPriority()); 073 AssociateReferralTransfer associateReferral = null; // TODO 074 String comment = wishlistLine.getComment(); 075 076 wishlistLineTransfer = new WishlistLineTransfer(wishlist, orderLineSequence, item, inventoryCondition, unitOfMeasureType, quantity, 077 unformattedUnitAmount, unitAmount, description, offerUse, wishlistPriority, associateReferral, comment); 078 put(orderLine, wishlistLineTransfer); 079 } 080 081 return wishlistLineTransfer; 082 } 083 084}