001// -------------------------------------------------------------------------------- 002// Copyright 2002-2026 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.inventory.server.transfer; 018 019import javax.inject.Inject; 020import com.echothree.model.control.inventory.common.transfer.InventoryDispositionAdjustmentTransfer; 021import com.echothree.model.control.inventory.server.control.InventoryDispositionAdjustmentControl; 022import com.echothree.model.control.inventory.server.control.InventoryDispositionControl; 023import com.echothree.model.control.inventory.server.control.InventoryAdjustmentTypeControl; 024import com.echothree.model.control.inventory.server.control.InventoryBucketTypeControl; 025import com.echothree.model.data.inventory.server.entity.InventoryDispositionAdjustment; 026import com.echothree.model.data.user.server.entity.UserVisit; 027import javax.enterprise.context.RequestScoped; 028 029@RequestScoped 030public class InventoryDispositionAdjustmentTransferCache 031 extends BaseInventoryTransferCache<InventoryDispositionAdjustment, InventoryDispositionAdjustmentTransfer> { 032 033 @Inject 034 InventoryDispositionAdjustmentControl inventoryDispositionAdjustmentControl; 035 036 @Inject 037 InventoryDispositionControl inventoryDispositionControl; 038 039 @Inject InventoryAdjustmentTypeControl inventoryAdjustmentTypeControl; 040 @Inject InventoryBucketTypeControl inventoryBucketTypeControl; 041 042 /** Creates a new instance of InventoryDispositionAdjustmentTransferCache */ 043 protected InventoryDispositionAdjustmentTransferCache() { 044 super(); 045 046 setIncludeEntityInstance(true); 047 } 048 049 @Override 050 public InventoryDispositionAdjustmentTransfer getTransfer(UserVisit userVisit, InventoryDispositionAdjustment inventoryDispositionAdjustment) { 051 var inventoryDispositionAdjustmentTransfer = get(inventoryDispositionAdjustment); 052 053 if(inventoryDispositionAdjustmentTransfer == null) { 054 var inventoryDispositionAdjustmentDetail = inventoryDispositionAdjustment.getLastDetail(); 055 var inventoryDisposition = inventoryDispositionControl.getInventoryDispositionTransfer(userVisit, 056 inventoryDispositionAdjustmentDetail.getInventoryDisposition()); 057 var inventoryAdjustmentType = inventoryAdjustmentTypeControl.getInventoryAdjustmentTypeTransfer(userVisit, 058 inventoryDispositionAdjustmentDetail.getInventoryAdjustmentType()); 059 var inventoryBucketType = inventoryBucketTypeControl.getInventoryBucketTypeTransfer(userVisit, 060 inventoryDispositionAdjustmentDetail.getInventoryBucketType()); 061 var inventoryDispositionAdjustmentName = inventoryDispositionAdjustmentDetail.getInventoryDispositionAdjustmentName(); 062 var isDefault = inventoryDispositionAdjustmentDetail.getIsDefault(); 063 var sortOrder = inventoryDispositionAdjustmentDetail.getSortOrder(); 064 var description = inventoryDispositionAdjustmentControl.getBestInventoryDispositionAdjustmentDescription(inventoryDispositionAdjustment, 065 getLanguage(userVisit)); 066 067 inventoryDispositionAdjustmentTransfer = new InventoryDispositionAdjustmentTransfer(inventoryDisposition, 068 inventoryAdjustmentType, inventoryBucketType, 069 inventoryDispositionAdjustmentName, isDefault, sortOrder, description); 070 put(userVisit, inventoryDispositionAdjustment, inventoryDispositionAdjustmentTransfer); 071 } 072 073 return inventoryDispositionAdjustmentTransfer; 074 } 075 076}