/* * @(#)CreateAcquisitionProcessBean.java * * Copyright 2009 Instituto Superior Tecnico * Founding Authors: Luis Cruz, Nuno Ochoa, Paulo Abrantes * * https://fenix-ashes.ist.utl.pt/ * * This file is part of the Expenditure Tracking Module. * * The Expenditure Tracking Module is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License as published by the Free Software Foundation, either version * 3 of the License, or (at your option) any later version. * * The Expenditure Tracking Module 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the Expenditure Tracking Module. If not, see <http://www.gnu.org/licenses/>. * */ package pt.ist.expenditureTrackingSystem.domain.dto; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.List; import module.mission.domain.MissionProcess; import module.mission.domain.MissionSystem; import pt.ist.expenditureTrackingSystem.domain.acquisitions.AcquisitionProcess; import pt.ist.expenditureTrackingSystem.domain.acquisitions.AcquisitionRequest; import pt.ist.expenditureTrackingSystem.domain.acquisitions.simplified.SimplifiedProcedureProcess; import pt.ist.expenditureTrackingSystem.domain.acquisitions.simplified.SimplifiedProcedureProcess.ProcessClassification; import pt.ist.expenditureTrackingSystem.domain.organization.Person; import pt.ist.expenditureTrackingSystem.domain.organization.Supplier; import pt.ist.expenditureTrackingSystem.domain.organization.Unit; /** * * @author Pedro Santos * @author Luis Cruz * @author Paulo Abrantes * */ public class CreateAcquisitionProcessBean implements Serializable { private boolean isForMission = false; private MissionProcess missionProcess; private Unit requestingUnit; private boolean requestUnitPayingUnit; private List<Supplier> suppliers; private Person requester; private Supplier supplierToAdd; private ProcessClassification classification; private String simpleDescription; private boolean isUnderMandatorySupplierScope; public CreateAcquisitionProcessBean(ProcessClassification classification) { setRequestingUnit(null); setSupplier(null); setSupplierToAdd(null); setRequestUnitPayingUnit(true); setClassification(classification); setUnderMandatorySupplierScope(false); } public CreateAcquisitionProcessBean(AcquisitionRequest acquisitionRequest) { setSupplierToAdd(null); setRequestingUnit(acquisitionRequest.getRequestingUnit()); setSuppliers(acquisitionRequest.getSuppliers()); if (acquisitionRequest.getPayingUnits().contains(acquisitionRequest.getRequestingUnit())) { setRequestUnitPayingUnit(true); } AcquisitionProcess process = acquisitionRequest.getProcess(); if (process instanceof SimplifiedProcedureProcess) { setClassification(((SimplifiedProcedureProcess) process).getProcessClassification()); } } public Unit getRequestingUnit() { return requestingUnit; } public void setRequestingUnit(Unit requestingUnit) { this.requestingUnit = requestingUnit; } public boolean isRequestUnitPayingUnit() { return requestUnitPayingUnit; } public void setRequestUnitPayingUnit(boolean requestUnitPayingUnit) { this.requestUnitPayingUnit = requestUnitPayingUnit; } public void setSupplier(Supplier supplier) { this.suppliers = new ArrayList<Supplier>(); this.suppliers.add(supplier); } public Supplier getSupplier() { return this.suppliers.isEmpty() ? null : this.suppliers.get(0); } public void setSuppliers(Collection<Supplier> suppliers) { this.suppliers = new ArrayList<Supplier>(); for (Supplier supplier : suppliers) { this.suppliers.add(supplier); } } public List<Supplier> getSuppliers() { List<Supplier> suppliers = new ArrayList<Supplier>(); for (Supplier supplier : this.suppliers) { if (supplier != null) { suppliers.add(supplier); } } return suppliers; } public void setRequester(Person requester) { this.requester = requester; } public Person getRequester() { return requester; } public Supplier getSupplierToAdd() { return supplierToAdd; } public void setSupplierToAdd(Supplier supplierToAdd) { this.supplierToAdd = supplierToAdd; } public void addSupplierToList(Supplier supplier) { if (this.suppliers == null) { this.suppliers = new ArrayList<Supplier>(); } this.suppliers.add(supplier); } public void removeSupplierFromList(int index) { if (this.suppliers != null && index < this.suppliers.size()) { this.suppliers.remove(index); } } public ProcessClassification getClassification() { return classification; } public void setClassification(ProcessClassification classification) { this.classification = classification; } public boolean isForMission() { return isForMission; } public boolean getIsForMission() { return isForMission; } public void setIsForMission(boolean isForMission) { this.isForMission = isForMission; } public void setForMission(boolean isForMission) { this.isForMission = isForMission; } public MissionProcess getMissionProcess() { return missionProcess; } public void setMissionProcess(MissionProcess missionProcess) { this.missionProcess = missionProcess; } public String getContractSimpleDescription() { return simpleDescription; } public void setContractSimpleDescription(String simpleDescription) { this.simpleDescription = simpleDescription; } public boolean isUnderMandatorySupplierScope() { return isUnderMandatorySupplierScope; } public boolean getIsUnderMandatorySupplierScope() { return isUnderMandatorySupplierScope; } public void setIsUnderMandatorySupplierScope(boolean isUnderMandatorySupplierScope) { setUnderMandatorySupplierScope(isUnderMandatorySupplierScope); } public void setUnderMandatorySupplierScope(boolean isUnderMandatorySupplierScope) { this.isUnderMandatorySupplierScope = isUnderMandatorySupplierScope; if (isUnderMandatorySupplierScope) { final MissionSystem system = MissionSystem.getInstance(); // If there is only 1 mandatory supplier then help out the user and fill this in automatically if (system.getMandatorySupplierSet().size() == 1) { setSupplier(system.getMandatorySupplierSet().iterator().next()); } } } }