/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.cab.fixture; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.kuali.kfs.module.cab.CabConstants; import org.kuali.kfs.module.cab.businessobject.PurchasingAccountsPayableItemAsset; import org.kuali.kfs.module.cab.businessobject.PurchasingAccountsPayableLineAssetAccount; import org.kuali.rice.core.api.util.type.KualiDecimal; public enum PurchasingAccountsPayableItemAssetFixture { REC1 { public PurchasingAccountsPayableItemAsset newRecord() { PurchasingAccountsPayableItemAsset itemAsset = new PurchasingAccountsPayableItemAsset(); itemAsset.setAccountsPayableItemQuantity(new KualiDecimal(0.7)); itemAsset.setAccountsPayableLineItemIdentifier(new Integer(100)); itemAsset.setCapitalAssetBuilderLineNumber(new Integer(1)); itemAsset.setActivityStatusCode(CabConstants.ActivityStatusCode.NEW); return itemAsset; } }, REC2 { public PurchasingAccountsPayableItemAsset newRecord() { PurchasingAccountsPayableItemAsset itemAsset = new PurchasingAccountsPayableItemAsset(); itemAsset.setAccountsPayableItemQuantity(new KualiDecimal(2)); itemAsset.setAccountsPayableLineItemIdentifier(new Integer(101)); itemAsset.setCapitalAssetBuilderLineNumber(new Integer(1)); itemAsset.setActivityStatusCode(CabConstants.ActivityStatusCode.NEW); return itemAsset; } }, REC3 { public PurchasingAccountsPayableItemAsset newRecord() { PurchasingAccountsPayableItemAsset itemAsset = new PurchasingAccountsPayableItemAsset(); itemAsset.setAccountsPayableItemQuantity(new KualiDecimal(3)); itemAsset.setAccountsPayableLineItemIdentifier(new Integer(102)); itemAsset.setCapitalAssetBuilderLineNumber(new Integer(1)); itemAsset.setActivityStatusCode(CabConstants.ActivityStatusCode.NEW); return itemAsset; } }, REC4 { public PurchasingAccountsPayableItemAsset newRecord() { PurchasingAccountsPayableItemAsset itemAsset = new PurchasingAccountsPayableItemAsset(); itemAsset.setAccountsPayableLineItemIdentifier(new Integer(200)); itemAsset.setAccountsPayableItemQuantity(new KualiDecimal(4)); itemAsset.setCapitalAssetBuilderLineNumber(new Integer(1)); itemAsset.setActivityStatusCode(CabConstants.ActivityStatusCode.NEW); return itemAsset; } }; public abstract PurchasingAccountsPayableItemAsset newRecord(); public static List<PurchasingAccountsPayableItemAsset> createPurApItems() { List<PurchasingAccountsPayableItemAsset> itemAssets = new ArrayList<PurchasingAccountsPayableItemAsset>(); List<PurchasingAccountsPayableLineAssetAccount> newAccounts = PurchasingAccountsPayableLineAssetAccountFixture.createPurApAccounts(); Iterator iterator = newAccounts.iterator(); // build four item lines if (iterator.hasNext()) { PurchasingAccountsPayableLineAssetAccount newAccount1 = (PurchasingAccountsPayableLineAssetAccount)iterator.next(); PurchasingAccountsPayableItemAsset newItem1 = REC1.newRecord(); setAccountByItem(newAccount1, newItem1); newItem1.getPurchasingAccountsPayableLineAssetAccounts().add(newAccount1); newAccount1.setPurchasingAccountsPayableItemAsset(newItem1); itemAssets.add(newItem1); } if (iterator.hasNext()) { PurchasingAccountsPayableLineAssetAccount newAccount2 = (PurchasingAccountsPayableLineAssetAccount)iterator.next(); PurchasingAccountsPayableItemAsset newItem2 = REC1.newRecord(); setAccountByItem(newAccount2, newItem2); newItem2.getPurchasingAccountsPayableLineAssetAccounts().add(newAccount2); newAccount2.setPurchasingAccountsPayableItemAsset(newItem2); itemAssets.add(newItem2); } if (iterator.hasNext()) { PurchasingAccountsPayableLineAssetAccount newAccount3 = (PurchasingAccountsPayableLineAssetAccount)iterator.next(); PurchasingAccountsPayableItemAsset newItem3 = REC3.newRecord(); setAccountByItem(newAccount3, newItem3); newItem3.getPurchasingAccountsPayableLineAssetAccounts().add(newAccount3); newAccount3.setPurchasingAccountsPayableItemAsset(newItem3); itemAssets.add(newItem3); } if (iterator.hasNext()) { // add the 1st account to this item PurchasingAccountsPayableLineAssetAccount newAccount4 = (PurchasingAccountsPayableLineAssetAccount)iterator.next(); PurchasingAccountsPayableItemAsset newItem4 = REC4.newRecord(); setAccountByItem(newAccount4, newItem4); newItem4.getPurchasingAccountsPayableLineAssetAccounts().add(newAccount4); newAccount4.setPurchasingAccountsPayableItemAsset(newItem4); // add the 2nd account to this item if (iterator.hasNext()) { PurchasingAccountsPayableLineAssetAccount newAccount5 = (PurchasingAccountsPayableLineAssetAccount)iterator.next(); setAccountByItem(newAccount5, newItem4); newItem4.getPurchasingAccountsPayableLineAssetAccounts().add(newAccount5); newAccount5.setPurchasingAccountsPayableItemAsset(newItem4); } itemAssets.add(newItem4); } return itemAssets; } private static void setAccountByItem(PurchasingAccountsPayableLineAssetAccount newAccount, PurchasingAccountsPayableItemAsset newItem) { newAccount.setAccountsPayableLineItemIdentifier(newItem.getAccountsPayableLineItemIdentifier()); newAccount.setDocumentNumber(newItem.getDocumentNumber()); newAccount.setCapitalAssetBuilderLineNumber(newItem.getCapitalAssetBuilderLineNumber()); } }