/*
* @(#)ExpenditureTrackingSystem.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;
import java.util.List;
import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.servlet.http.HttpServletRequest;
import module.dashBoard.domain.DashBoardPanel;
import module.dashBoard.servlet.WidgetRegistry.WidgetAditionPredicate;
import module.finance.util.Money;
import module.organization.domain.OrganizationalModel;
import module.organization.domain.Party;
import module.organization.domain.Unit;
import module.organization.presentationTier.actions.OrganizationModelAction;
import module.workflow.widgets.ProcessListWidget;
import org.fenixedu.bennu.core.domain.Bennu;
import org.fenixedu.bennu.core.domain.User;
import org.fenixedu.bennu.core.domain.groups.PersistentGroup;
import org.fenixedu.bennu.core.security.Authenticate;
import org.jfree.base.modules.ModuleInitializeException;
import org.jfree.base.modules.ModuleInitializer;
import pt.ist.expenditureTrackingSystem.domain.acquisitions.search.SearchProcessValues;
import pt.ist.expenditureTrackingSystem.domain.acquisitions.search.SearchProcessValuesArray;
import pt.ist.expenditureTrackingSystem.domain.acquisitions.simplified.SimplifiedProcedureProcess;
import pt.ist.expenditureTrackingSystem.domain.acquisitions.simplified.SimplifiedProcedureProcess.ProcessClassification;
import pt.ist.expenditureTrackingSystem.presentationTier.actions.organization.OrganizationModelPlugin.ExpendituresView;
import pt.ist.expenditureTrackingSystem.util.AquisitionsPendingProcessCounter;
import pt.ist.expenditureTrackingSystem.util.RefundPendingProcessCounter;
import pt.ist.fenixWebFramework.servlets.filters.contentRewrite.RequestChecksumFilter;
import pt.ist.fenixWebFramework.servlets.filters.contentRewrite.RequestChecksumFilter.ChecksumPredicate;
import pt.ist.fenixframework.Atomic;
/**
*
* @author Diogo Figueiredo
* @author Pedro Santos
* @author João Neves
* @author Bruno Santos
* @author Paulo Abrantes
* @author Luis Cruz
* @author Pedro Amaral
*
*/
public class ExpenditureTrackingSystem extends ExpenditureTrackingSystem_Base implements ModuleInitializer {
public static WidgetAditionPredicate EXPENDITURE_TRACKING_PANEL_PREDICATE = new WidgetAditionPredicate() {
@Override
public boolean canBeAdded(DashBoardPanel panel, User userAdding) {
return (DashBoardPanel.class.isAssignableFrom(panel.getClass()));
}
};
public static WidgetAditionPredicate EXPENDITURE_SERVICES_ONLY_PREDICATE = new WidgetAditionPredicate() {
@Override
public boolean canBeAdded(DashBoardPanel panel, User userAdding) {
return EXPENDITURE_TRACKING_PANEL_PREDICATE.canBeAdded(panel, userAdding)
&& (isAcquisitionCentralGroupMember(userAdding)
|| !userAdding.getExpenditurePerson().getAccountingUnits().isEmpty() || !userAdding
.getExpenditurePerson().getProjectAccountingUnits().isEmpty());
}
};
static {
ProcessListWidget.register(new AquisitionsPendingProcessCounter());
ProcessListWidget.register(new RefundPendingProcessCounter());
registerChecksumFilterException();
OrganizationModelAction.partyViewHookManager.register(new ExpendituresView());
}
public static ExpenditureTrackingSystem getInstance() {
final Bennu bennu = Bennu.getInstance();
if (bennu.getExpenditureTrackingSystem() == null) {
createSystem();
}
return Bennu.getInstance().getExpenditureTrackingSystem();
}
private static void registerChecksumFilterException() {
RequestChecksumFilter.registerFilterRule(new ChecksumPredicate() {
@Override
public boolean shouldFilter(HttpServletRequest request) {
return !(request.getQueryString() != null && request.getQueryString().contains(
"method=calculateShareValuesViaAjax"));
}
});
RequestChecksumFilter.registerFilterRule(new ChecksumPredicate() {
@Override
public boolean shouldFilter(HttpServletRequest httpServletRequest) {
return !(httpServletRequest.getRequestURI().endsWith("/acquisitionSimplifiedProcedureProcess.do")
&& httpServletRequest.getQueryString() != null && httpServletRequest.getQueryString().contains(
"method=checkSupplierLimit"));
}
});
RequestChecksumFilter.registerFilterRule(new ChecksumPredicate() {
@Override
public boolean shouldFilter(HttpServletRequest httpServletRequest) {
return !(httpServletRequest.getRequestURI().endsWith("/viewRCISTAnnouncements.do"))
&& !(httpServletRequest.getRequestURI().endsWith("/viewAcquisitionAnnouncements.do"));
}
});
}
private ExpenditureTrackingSystem() {
super();
setBennu(Bennu.getInstance());
setAcquisitionRequestDocumentCounter(0);
new MyOwnProcessesSearch();
// final SavedSearch savedSearch = new PendingProcessesSearch();
// for (final Person person : getPeopleSet()) {
// person.setDefaultSearch(savedSearch);
// }
setRegisterDiaryNumbersAndTransactionNumbers(Boolean.TRUE);
setRequireCommitmentNumber(Boolean.FALSE);
setAcquisitionCentralGroup(RoleType.ACQUISITION_CENTRAL.group().toPersistentGroup());
setFundCommitmentManagerGroup(RoleType.FUND_COMMITMENT_MANAGER.group().toPersistentGroup());
setAcquisitionCentralManagerGroup(RoleType.ACQUISITION_CENTRAL_MANAGER.group().toPersistentGroup());
setAccountingManagerGroup(RoleType.ACCOUNTING_MANAGER.group().toPersistentGroup());
setProjectAccountingManagerGroup(RoleType.PROJECT_ACCOUNTING_MANAGER.group().toPersistentGroup());
setTreasuryMemberGroup(RoleType.TREASURY_MANAGER.group().toPersistentGroup());
setSupplierManagerGroup(RoleType.SUPPLIER_MANAGER.group().toPersistentGroup());
setSupplierFundAllocationManagerGroup(RoleType.SUPPLIER_FUND_ALLOCATION_MANAGER.group().toPersistentGroup());
setStatisticsViewerGroup(RoleType.STATISTICS_VIEWER.group().toPersistentGroup());
setAcquisitionsUnitManagerGroup(RoleType.AQUISITIONS_UNIT_MANAGER.group().toPersistentGroup());
setAcquisitionsProcessAuditorGroup(RoleType.ACQUISITION_PROCESS_AUDITOR.group().toPersistentGroup());
setSearchProcessValuesArray(new SearchProcessValuesArray(SearchProcessValues.values()));
setAcquisitionCreationWizardJsp("creationWizardPublicInstitution.jsp");
}
public String nextAcquisitionRequestDocumentID() {
final String prefix = getInstitutionalRequestDocumentPrefix();
return prefix + getAndUpdateNextAcquisitionRequestDocumentCountNumber();
}
public Integer nextAcquisitionRequestDocumentCountNumber() {
return getAndUpdateNextAcquisitionRequestDocumentCountNumber();
}
private Integer getAndUpdateNextAcquisitionRequestDocumentCountNumber() {
setAcquisitionRequestDocumentCounter(getAcquisitionRequestDocumentCounter().intValue() + 1);
return getAcquisitionRequestDocumentCounter();
}
@Atomic
public static void createSystem() {
if (Bennu.getInstance().getExpenditureTrackingSystem() == null) {
new ExpenditureTrackingSystem();
}
}
public static boolean isAcquisitionCentralGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
final PersistentGroup group = system == null ? null : system.getAcquisitionCentralGroup();
return group != null && group.isMember(user);
}
public static boolean isFundCommitmentManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasFundCommitmentManagerGroup() && system.getFundCommitmentManagerGroup().isMember(user);
}
public static boolean isAcquisitionCentralManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasAcquisitionCentralManagerGroup()
&& system.getAcquisitionCentralManagerGroup().isMember(user);
}
public static boolean isAccountingManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasAccountingManagerGroup() && system.getAccountingManagerGroup().isMember(user);
}
public static boolean isProjectAccountingManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasProjectAccountingManagerGroup()
&& system.getProjectAccountingManagerGroup().isMember(user);
}
public static boolean isTreasuryMemberGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasTreasuryMemberGroup() && system.getTreasuryMemberGroup().isMember(user);
}
public static boolean isSupplierManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasSupplierManagerGroup() && system.getSupplierManagerGroup().isMember(user);
}
public static boolean isSupplierFundAllocationManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasSupplierFundAllocationManagerGroup()
&& system.getSupplierFundAllocationManagerGroup().isMember(user);
}
public static boolean isStatisticsViewerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasStatisticsViewerGroup() && system.getStatisticsViewerGroup().isMember(user);
}
public static boolean isAcquisitionsUnitManagerGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasAcquisitionsUnitManagerGroup()
&& system.getAcquisitionsUnitManagerGroup().isMember(user);
}
public static boolean isAcquisitionsProcessAuditorGroupMember(final User user) {
final ExpenditureTrackingSystem system = getInstance();
return system != null && system.hasAcquisitionsProcessAuditorGroup()
&& system.getAcquisitionsProcessAuditorGroup().isMember(user);
}
public static boolean isAcquisitionCentralGroupMember() {
final User user = Authenticate.getUser();
return isAcquisitionCentralGroupMember(user);
}
public static boolean isFundCommitmentManagerGroupMember() {
final User user = Authenticate.getUser();
return isFundCommitmentManagerGroupMember(user);
}
public static boolean isAcquisitionCentralManagerGroupMember() {
final User user = Authenticate.getUser();
return isAcquisitionCentralManagerGroupMember(user);
}
public static boolean isAccountingManagerGroupMember() {
final User user = Authenticate.getUser();
return isAccountingManagerGroupMember(user);
}
public static boolean isProjectAccountingManagerGroupMember() {
final User user = Authenticate.getUser();
return isProjectAccountingManagerGroupMember(user);
}
public static boolean isTreasuryMemberGroupMember() {
final User user = Authenticate.getUser();
return isTreasuryMemberGroupMember(user);
}
public static boolean isSupplierManagerGroupMember() {
final User user = Authenticate.getUser();
return isSupplierManagerGroupMember(user);
}
public static boolean isSupplierFundAllocationManagerGroupMember() {
final User user = Authenticate.getUser();
return isSupplierFundAllocationManagerGroupMember(user);
}
public static boolean isStatisticsViewerGroupMember() {
final User user = Authenticate.getUser();
return isStatisticsViewerGroupMember(user);
}
public static boolean isAcquisitionsUnitManagerGroupMember() {
final User user = Authenticate.getUser();
return isAcquisitionsUnitManagerGroupMember(user);
}
public static boolean isAcquisitionsProcessAuditorGroupMember() {
final User user = Authenticate.getUser();
return isAcquisitionsProcessAuditorGroupMember(user);
}
public static boolean isManager() {
final User user = Authenticate.getUser();
return RoleType.MANAGER.group().isMember(user);
}
public boolean contains(final SearchProcessValues values) {
return getSearchProcessValuesArray() != null && getSearchProcessValuesArray().contains(values);
}
public SortedSet<ProcessClassification> getAllowdProcessClassifications(final Class processType) {
final SortedSet<ProcessClassification> classifications = new TreeSet<SimplifiedProcedureProcess.ProcessClassification>();
for (final SearchProcessValues searchProcessValues : getSearchProcessValuesArray().getSearchProcessValues()) {
if (processType != null && processType == searchProcessValues.getSearchClass()
&& searchProcessValues.getSearchClassification() != null) {
classifications.add(searchProcessValues.getSearchClassification());
}
}
return classifications;
}
@Atomic
public void saveConfiguration(final String institutionalProcessNumberPrefix, final String institutionalRequestDocumentPrefix,
final String acquisitionCreationWizardJsp, final SearchProcessValuesArray array,
final Boolean invoiceAllowedToStartAcquisitionProcess, final Boolean requireFundAllocationPriorToAcquisitionRequest,
final Boolean registerDiaryNumbersAndTransactionNumbers, final Money maxValueStartedWithInvoive,
final Money valueRequireingTopLevelAuthorization, final String documentationUrl, final String documentationLabel,
final Boolean requireCommitmentNumber, final Boolean processesNeedToBeReverified, final String createSupplierUrl,
final String createSupplierLabel) {
setInstitutionalProcessNumberPrefix(institutionalProcessNumberPrefix);
setInstitutionalRequestDocumentPrefix(institutionalRequestDocumentPrefix);
setAcquisitionCreationWizardJsp(acquisitionCreationWizardJsp);
setSearchProcessValuesArray(array);
setInvoiceAllowedToStartAcquisitionProcess(invoiceAllowedToStartAcquisitionProcess);
setRequireFundAllocationPriorToAcquisitionRequest(requireFundAllocationPriorToAcquisitionRequest);
setRegisterDiaryNumbersAndTransactionNumbers(registerDiaryNumbersAndTransactionNumbers);
setMaxValueStartedWithInvoive(maxValueStartedWithInvoive);
setValueRequireingTopLevelAuthorization(valueRequireingTopLevelAuthorization);
setDocumentationUrl(documentationUrl);
setDocumentationLabel(documentationLabel);
setRequireCommitmentNumber(requireCommitmentNumber);
setProcessesNeedToBeReverified(processesNeedToBeReverified);
setCreateSupplierUrl(createSupplierUrl);
setCreateSupplierLabel(createSupplierLabel);
}
public static boolean isInvoiceAllowedToStartAcquisitionProcess() {
final ExpenditureTrackingSystem system = getInstance();
final Boolean invoiceAllowedToStartAcquisitionProcess = system.getInvoiceAllowedToStartAcquisitionProcess();
return invoiceAllowedToStartAcquisitionProcess != null && invoiceAllowedToStartAcquisitionProcess.booleanValue();
}
public boolean hasProcessPrefix() {
final String prefix = getInstitutionalProcessNumberPrefix();
return prefix != null && !prefix.isEmpty();
}
public boolean checkSupplierLimitsByCPV() {
return getCheckSupplierLimitsByCPV() != null && getCheckSupplierLimitsByCPV().booleanValue();
}
public boolean processesNeedToBeReverified() {
final Boolean b = getProcessesNeedToBeReverified();
return b != null && b.booleanValue();
}
public boolean isCommitmentNumberRequired() {
if (getRequireCommitmentNumber() == null) {
return false;
} else {
return getRequireCommitmentNumber();
}
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.CPVReference> getCPVReferences() {
return getCPVReferencesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.SavedSearch> getSystemSearches() {
return getSystemSearchesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.DeliveryInfo> getDeliveryInfos() {
return getDeliveryInfosSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.RequestItem> getRequestItems() {
return getRequestItemsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.AccountingUnit> getAccountingUnits() {
return getAccountingUnitsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.authorizations.AuthorizationLog> getAuthorizationLogs() {
return getAuthorizationLogsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.CPVReference> getPriorityCPVReferences() {
return getPriorityCPVReferencesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.Person> getPeople() {
return getPeopleSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.PaymentProcessYear> getPaymentProcessYears() {
return getPaymentProcessYearsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.Options> getOptions() {
return getOptionsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.refund.Refundee> getRefundees() {
return getRefundeesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.SavedSearch> getSavedSearches() {
return getSavedSearchesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.Financer> getFinancers() {
return getFinancersSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.DashBoard> getDashBoards() {
return getDashBoardsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.announcements.Announcement> getAnnouncements() {
return getAnnouncementsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.processes.GenericProcess> getProcesses() {
return getProcessesSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.Unit> getTopLevelUnits() {
return getTopLevelUnitsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.authorizations.Authorization> getAuthorizations() {
return getAuthorizationsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.acquisitions.Acquisition> getAcquisitions() {
return getAcquisitionsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.Supplier> getSuppliers() {
return getSuppliersSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.organization.Unit> getUnits() {
return getUnitsSet();
}
@Deprecated
public java.util.Set<pt.ist.expenditureTrackingSystem.domain.ProcessState> getProcessStates() {
return getProcessStatesSet();
}
@Deprecated
public boolean hasAnyCPVReferences() {
return !getCPVReferencesSet().isEmpty();
}
@Deprecated
public boolean hasAnySystemSearches() {
return !getSystemSearchesSet().isEmpty();
}
@Deprecated
public boolean hasAnyDeliveryInfos() {
return !getDeliveryInfosSet().isEmpty();
}
@Deprecated
public boolean hasAnyRequestItems() {
return !getRequestItemsSet().isEmpty();
}
@Deprecated
public boolean hasAnyAccountingUnits() {
return !getAccountingUnitsSet().isEmpty();
}
@Deprecated
public boolean hasAnyAuthorizationLogs() {
return !getAuthorizationLogsSet().isEmpty();
}
@Deprecated
public boolean hasAnyPriorityCPVReferences() {
return !getPriorityCPVReferencesSet().isEmpty();
}
@Deprecated
public boolean hasAnyPeople() {
return !getPeopleSet().isEmpty();
}
@Deprecated
public boolean hasAnyPaymentProcessYears() {
return !getPaymentProcessYearsSet().isEmpty();
}
@Deprecated
public boolean hasAnyOptions() {
return !getOptionsSet().isEmpty();
}
@Deprecated
public boolean hasAnyRefundees() {
return !getRefundeesSet().isEmpty();
}
@Deprecated
public boolean hasAnySavedSearches() {
return !getSavedSearchesSet().isEmpty();
}
@Deprecated
public boolean hasAnyFinancers() {
return !getFinancersSet().isEmpty();
}
@Deprecated
public boolean hasAnyDashBoards() {
return !getDashBoardsSet().isEmpty();
}
@Deprecated
public boolean hasAnyAnnouncements() {
return !getAnnouncementsSet().isEmpty();
}
@Deprecated
public boolean hasAnyProcesses() {
return !getProcessesSet().isEmpty();
}
@Deprecated
public boolean hasAnyTopLevelUnits() {
return !getTopLevelUnitsSet().isEmpty();
}
@Deprecated
public boolean hasAnyAuthorizations() {
return !getAuthorizationsSet().isEmpty();
}
@Deprecated
public boolean hasAnyAcquisitions() {
return !getAcquisitionsSet().isEmpty();
}
@Deprecated
public boolean hasAnySuppliers() {
return !getSuppliersSet().isEmpty();
}
@Deprecated
public boolean hasAnyUnits() {
return !getUnitsSet().isEmpty();
}
@Deprecated
public boolean hasAnyProcessStates() {
return !getProcessStatesSet().isEmpty();
}
@Deprecated
public boolean hasAcquisitionRequestDocumentCounter() {
return getAcquisitionRequestDocumentCounter() != null;
}
@Deprecated
public boolean hasSearchProcessValuesArray() {
return getSearchProcessValuesArray() != null;
}
@Deprecated
public boolean hasAcquisitionCreationWizardJsp() {
return getAcquisitionCreationWizardJsp() != null;
}
@Deprecated
public boolean hasInstitutionalProcessNumberPrefix() {
return getInstitutionalProcessNumberPrefix() != null;
}
@Deprecated
public boolean hasInstitutionalRequestDocumentPrefix() {
return getInstitutionalRequestDocumentPrefix() != null;
}
@Deprecated
public boolean hasInvoiceAllowedToStartAcquisitionProcess() {
return getInvoiceAllowedToStartAcquisitionProcess() != null;
}
@Deprecated
public boolean hasRequireFundAllocationPriorToAcquisitionRequest() {
return getRequireFundAllocationPriorToAcquisitionRequest() != null;
}
@Deprecated
public boolean hasRegisterDiaryNumbersAndTransactionNumbers() {
return getRegisterDiaryNumbersAndTransactionNumbers() != null;
}
@Deprecated
public boolean hasRequireCommitmentNumber() {
return getRequireCommitmentNumber() != null;
}
@Deprecated
public boolean hasMaxValueStartedWithInvoive() {
return getMaxValueStartedWithInvoive() != null;
}
@Deprecated
public boolean hasValueRequireingTopLevelAuthorization() {
return getValueRequireingTopLevelAuthorization() != null;
}
@Deprecated
public boolean hasDocumentationUrl() {
return getDocumentationUrl() != null;
}
@Deprecated
public boolean hasDocumentationLabel() {
return getDocumentationLabel() != null;
}
@Deprecated
public boolean hasCheckSupplierLimitsByCPV() {
return getCheckSupplierLimitsByCPV() != null;
}
@Deprecated
public boolean hasInstitutionManagementEmail() {
return getInstitutionManagementEmail() != null;
}
@Deprecated
public boolean hasTreasuryMemberGroup() {
return getTreasuryMemberGroup() != null;
}
@Deprecated
public boolean hasAcquisitionCentralGroup() {
return getAcquisitionCentralGroup() != null;
}
@Deprecated
public boolean hasOrganizationalAccountabilityType() {
return getOrganizationalAccountabilityType() != null;
}
@Deprecated
public boolean hasProjectPartyType() {
return getProjectPartyType() != null;
}
@Deprecated
public boolean hasAcquisitionCentralManagerGroup() {
return getAcquisitionCentralManagerGroup() != null;
}
@Deprecated
public boolean hasProjectAccountingManagerGroup() {
return getProjectAccountingManagerGroup() != null;
}
@Deprecated
public boolean hasUnitPartyType() {
return getUnitPartyType() != null;
}
@Deprecated
public boolean hasCostCenterPartyType() {
return getCostCenterPartyType() != null;
}
@Deprecated
public boolean hasStatisticsViewerGroup() {
return getStatisticsViewerGroup() != null;
}
@Deprecated
public boolean hasAccountingManagerGroup() {
return getAccountingManagerGroup() != null;
}
@Deprecated
public boolean hasFundCommitmentManagerGroup() {
return getFundCommitmentManagerGroup() != null;
}
@Deprecated
public boolean hasAcquisitionsProcessAuditorGroup() {
return getAcquisitionsProcessAuditorGroup() != null;
}
@Deprecated
public boolean hasOrganizationalMissionAccountabilityType() {
return getOrganizationalMissionAccountabilityType() != null;
}
@Deprecated
public boolean hasAcquisitionsUnitManagerGroup() {
return getAcquisitionsUnitManagerGroup() != null;
}
@Deprecated
public boolean hasSupplierManagerGroup() {
return getSupplierManagerGroup() != null;
}
@Deprecated
public boolean hasSupplierFundAllocationManagerGroup() {
return getSupplierFundAllocationManagerGroup() != null;
}
@Deprecated
public boolean hasSubProjectPartyType() {
return getSubProjectPartyType() != null;
}
public interface InfoProvider {
public String getTitle();
public Map<String, String> getLinks(String page, Object object);
public List<List<String>> getSummary(String page, Object object);
}
static private InfoProvider infoProvider;
static public void registerInfoProvider(InfoProvider aInfoProvider) {
infoProvider = aInfoProvider;
}
static public InfoProvider getInfoProvider() {
return infoProvider;
}
@Override
public void performInit() throws ModuleInitializeException {
// TODO Auto-generated method stub
}
@Atomic
public void selectOrganizationalModel(final OrganizationalModel model) {
getTopLevelUnitsSet().clear();
for (final Party p : model.getPartiesSet()) {
if (p.isUnit()) {
final Unit unit = (Unit) p;
if (unit.getExpenditureUnit() == null) {
final pt.ist.expenditureTrackingSystem.domain.organization.Unit exUnit = new pt.ist.expenditureTrackingSystem.domain.organization.Unit();
unit.setExpenditureUnit(exUnit);
getTopLevelUnitsSet().add(exUnit);
} else {
getTopLevelUnitsSet().add(unit.getExpenditureUnit());
}
}
}
}
}