/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.tnt.bean.account; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.ResourceBundle; import javax.faces.component.UIComponent; import javax.faces.component.html.HtmlDataTable; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.event.ValueChangeEvent; import javax.faces.model.SelectItem; import org.acegisecurity.acls.domain.BasePermission; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.autentia.tnt.bean.BaseBean; import com.autentia.tnt.bean.NavigationResults; import com.autentia.tnt.businessobject.Account; import com.autentia.tnt.businessobject.AccountEntryType; import com.autentia.tnt.businessobject.Frequency; import com.autentia.tnt.businessobject.Organization; import com.autentia.tnt.businessobject.PeriodicalAccountEntry; import com.autentia.tnt.dao.SortCriteria; import com.autentia.tnt.dao.search.PeriodicalAccountEntrySearch; import com.autentia.tnt.manager.account.AccountEntryTypeManager; import com.autentia.tnt.manager.account.AccountManager; import com.autentia.tnt.manager.account.PeriodicalAccountEntryManager; import com.autentia.tnt.manager.admin.FrequencyManager; import com.autentia.tnt.manager.contacts.OrganizationManager; import com.autentia.tnt.manager.security.Permission; import com.autentia.tnt.upload.Uploader; import com.autentia.tnt.upload.UploaderFactory; import com.autentia.tnt.util.FacesUtils; import com.autentia.tnt.util.SpringUtils; public class PeriodicalAccountEntryBean extends BaseBean { /** * Reset search criteria * @return forward to LIST page */ public String reset(){ search.reset(); return list(); } /** * Go to edit page * @return forward to EDIT page */ public String copy() { Integer id = Integer.parseInt( FacesUtils.getRequestParameter(ROW_ID) ); periodicalAccountEntry = manager.copy(id); return NavigationResults.COPY_ENTRY; } private int accountSelected = ALL_ACCOUNTS; public static int ALL_ACCOUNTS = -1; public int getAccountSelected() { return accountSelected; } public void setAccountSelected(int accountSelected) { this.accountSelected = accountSelected; } public List<SelectItem> getAllAccounts() { FacesContext context = FacesContext.getCurrentInstance(); Locale locale = context.getViewRoot().getLocale(); ResourceBundle bundle = ResourceBundle.getBundle("com.autentia.tnt.resources.messages", locale); ArrayList <SelectItem> ret = new ArrayList<SelectItem>(); ret.add(new SelectItem(Integer.valueOf(ALL_ACCOUNTS),bundle.getString("accountEntry.allaccounts"))); List<Account> refs = AccountManager.getDefault().getAllEntities(null,new SortCriteria("name")); for( Account ref : refs ) { ret.add( new SelectItem( ref.getId(), ref.getName() ) ); } return ret; } /* PeriodicalAccountEntry - generated by stajanov (do not edit/delete) */ /** * Whether or not create button is available for user * @return true if user can create objects of type PeriodicalAccountEntry */ public boolean isCreateAvailable() { return SpringUtils.isRolePermissionGranted(Permission.Entity_Create(PeriodicalAccountEntry.class)); } /** * Whether or not edit button is available for user * @return true if user can edit current object */ public boolean isEditAvailable() { return SpringUtils.isAclPermissionGranted(periodicalAccountEntry,BasePermission.WRITE); } /** * Whether or not delete button is available for user * @return true if user can delete current object */ public boolean isDeleteAvailable() { return (periodicalAccountEntry.getId()!=null) && SpringUtils.isAclPermissionGranted(periodicalAccountEntry,BasePermission.DELETE); } /** Active search object */ private PeriodicalAccountEntrySearch search = new PeriodicalAccountEntrySearch(); /** Manager */ private static PeriodicalAccountEntryManager manager = PeriodicalAccountEntryManager.getDefault(); /** Handle an ABC pager letter click: filter objects by specified starting letter */ public void letterClicked() { if( letter!=null ) { UIComponent comp = FacesUtils.getComponent("periodicalAccountEntrys:list"); HtmlDataTable tabla = (HtmlDataTable) comp; tabla.setFirst(0); search.setConcept( letter+"%" ); } else { search.unsetConcept(); } } public Character getLetter() { return letter; } public void setLetter( Character letter ) { this.letter = letter; } /** Quick search letter for ABC pager control */ private Character letter; /** Logger */ private static final Log log = LogFactory.getLog(PeriodicalAccountEntryBean.class); /** Upload service */ private static final Uploader uploader = UploaderFactory.getInstance("periodicalAccountEntry"); /** Active PeriodicalAccountEntry object */ private PeriodicalAccountEntry periodicalAccountEntry; /** Default sort column */ private String sortColumn = "date"; /** Default sort order */ private boolean sortAscending = false; /** * List periodicalAccountEntrys. Order depends on Faces parameter sort. * @return the list of all periodicalAccountEntrys sorted by requested criterion */ public List<PeriodicalAccountEntry> getAll() { if(accountSelected!=ALL_ACCOUNTS) { search.setAccount(AccountManager.getDefault().getEntityById(accountSelected)); } else { search.unsetAccount(); } return manager.getAllEntities(search, new SortCriteria( sortColumn, sortAscending )); } // Getters to list possible values of related entities /** * Get the list of all accounts * @return the list of all accounts */ public List<SelectItem> getAccounts() { ArrayList<SelectItem> ret = new ArrayList<SelectItem>(); List<Account> refs = AccountManager.getDefault().getAllEntities(null,new SortCriteria("name")); for( Account ref : refs ) { ret.add( new SelectItem( ref, ref.getName() ) ); } return ret; } /** * Get the list of all frequencys * @return the list of all frequencys */ public List<SelectItem> getFrequencys() { ArrayList<SelectItem> ret = new ArrayList<SelectItem>(); List<Frequency> refs = FrequencyManager.getDefault().getAllEntities(null,new SortCriteria("name")); for( Frequency ref : refs ) { ret.add( new SelectItem( ref, ref.getName() ) ); } return ret; } // Getters to list possible values of enum fields // Methods to create/remove instances of one-to-many entities (slave entities) /** * Go to create page * @return forward to CREATE page */ public String create() { periodicalAccountEntry = new PeriodicalAccountEntry(); return NavigationResults.CREATE; } /** * Go to edit page * @return forward to EDIT page */ public String edit() { Integer id = Integer.parseInt( FacesUtils.getRequestParameter(ROW_ID) ); periodicalAccountEntry = manager.getEntityById(id); return NavigationResults.EDIT; } /** * Go to detail page * @return forward to DETAIL page */ public String detail(){ Integer id = Integer.parseInt( FacesUtils.getRequestParameter(ROW_ID) ); periodicalAccountEntry = manager.getEntityById(id); return SpringUtils.isAclPermissionGranted( periodicalAccountEntry, BasePermission.WRITE ) ? NavigationResults.EDIT : NavigationResults.DETAIL; } /** * Save bean and stay on it * @return forward to list page */ public String save() { doBeforeSave(); if( periodicalAccountEntry.getId()==null ) { manager.insertEntity(periodicalAccountEntry); } else { manager.updateEntity(periodicalAccountEntry); } // Calls an after save action String result = doAfterSave(NavigationResults.LIST); // Unselect object periodicalAccountEntry = null; return result; } /** * Delete bean and go back to beans list * @return forward to LIST page */ public String delete() { manager.deleteEntity(periodicalAccountEntry); periodicalAccountEntry = null; return NavigationResults.LIST; } /** * Go back to beans list * @return forward to LIST page */ public String list() { return NavigationResults.LIST; } /** * Go to search page * @return forward to SEARCH page */ public String search() { return NavigationResults.SEARCH; } /** * Check if we have an active object. * @return true is an object is selected */ public boolean isPeriodicalAccountEntrySelected() { return periodicalAccountEntry!=null; } // Getters and setters to manipulate sorting public boolean isSortAscending() { return sortAscending; } public void setSortAscending(boolean sortAscending) { this.sortAscending = sortAscending; } public String getSortColumn() { return sortColumn; } public void setSortColumn(String sortColumn) { this.sortColumn = sortColumn; } // Getters and setters to handle search public PeriodicalAccountEntrySearch getSearch() { return search; } public String getSearchConcept() { return search.getConcept(); } public void setSearchConcept( String val ) { if( search.isConceptSet() ) { search.setConcept( val ); } } public boolean isSearchConceptValid() { return search.isConceptSet(); } public void setSearchConceptValid( boolean val ) { if( val ) { search.setConcept( search.getConcept() ); } else { search.unsetConcept(); } } public Date getSearchStartDate() { return search.getStartDate(); } public void setSearchStartDate( Date val ) { if( val!=null ) { search.setStartDate( val ); } else { search.unsetStartDate(); } } public boolean isSearchStartDateValid() { return search.isStartDateSet(); } public void setSearchStartDateValid( boolean val ) { if( val ) { search.setStartDate( search.getStartDate() ); } else { search.unsetStartDate(); } } public Date getSearchEndDate() { return search.getEndDate(); } public void setSearchEndDate( Date val ) { if( val!=null ) { search.setEndDate( val ); } else { search.unsetEndDate(); } } public boolean isSearchEndDateValid() { return search.isEndDateSet(); } public void setSearchEndDateValid( boolean val ) { if( val ) { search.setEndDate( search.getEndDate() ); } else { search.unsetEndDate(); } } public BigDecimal getSearchStartAmount() { return search.getStartAmount(); } public void setSearchStartAmount( BigDecimal val ) { if( val!=null ) { search.setStartAmount( val ); } else { search.unsetStartAmount(); } } public boolean isSearchStartAmountValid() { return search.isStartAmountSet(); } public void setSearchStartAmountValid( boolean val ) { if( val ) { search.setStartAmount( search.getStartAmount() ); } else { search.unsetStartAmount(); } } public BigDecimal getSearchEndAmount() { return search.getEndAmount(); } public void setSearchEndAmount( BigDecimal val ) { if( val!=null ) { search.setEndAmount( val ); } else { search.unsetEndAmount(); } } public boolean isSearchEndAmountValid() { return search.isEndAmountSet(); } public void setSearchEndAmountValid( boolean val ) { if( val ) { search.setEndAmount( search.getEndAmount() ); } else { search.unsetEndAmount(); } } public BigDecimal getSearchStartRise() { return search.getStartRise(); } public void setSearchStartRise( BigDecimal val ) { if( val!=null ) { search.setStartRise( val ); } else { search.unsetStartRise(); } } public boolean isSearchStartRiseValid() { return search.isStartRiseSet(); } public void setSearchStartRiseValid( boolean val ) { if( val ) { search.setStartRise( search.getStartRise() ); } else { search.unsetStartRise(); } } public BigDecimal getSearchEndRise() { return search.getEndRise(); } public void setSearchEndRise( BigDecimal val ) { if( val!=null ) { search.setEndRise( val ); } else { search.unsetEndRise(); } } public boolean isSearchEndRiseValid() { return search.isEndRiseSet(); } public void setSearchEndRiseValid( boolean val ) { if( val ) { search.setEndRise( search.getEndRise() ); } else { search.unsetEndRise(); } } public String getSearchObservations() { return search.getObservations(); } public void setSearchObservations( String val ) { if( search.isObservationsSet() ) { search.setObservations( val ); } } public boolean isSearchObservationsValid() { return search.isObservationsSet(); } public void setSearchObservationsValid( boolean val ) { if( val ) { search.setObservations( search.getObservations() ); } else { search.unsetObservations(); } } public Account getSearchAccount() { return search.getAccount(); } public void setSearchAccount( Account val ) { if( search.isAccountSet() ) { search.setAccount( val ); } } public boolean isSearchAccountValid() { return search.isAccountSet(); } public void setSearchAccountValid( boolean val ) { if( val ) { search.setAccount( search.getAccount() ); } else { search.unsetAccount(); } } public Organization getSearchOrganization() { return search.getOrganization(); } public void setSearchOrganization( Organization val ) { if( search.isOrganizationSet() ) { search.setOrganization( val ); } } public boolean isSearchOrganizationValid() { return search.isOrganizationSet(); } public void setSearchOrganizationValid( boolean val ) { if( val ) { search.setOrganization( search.getOrganization() ); } else { search.unsetOrganization(); } } public AccountEntryType getSearchType() { return search.getType(); } public void setSearchType( AccountEntryType val ) { if( search.isTypeSet() ) { search.setType( val ); } } public boolean isSearchTypeValid() { return search.isTypeSet(); } public void setSearchTypeValid( boolean val ) { if( val ) { search.setType( search.getType() ); } else { search.unsetType(); } } public Frequency getSearchFrequency() { return search.getFrequency(); } public void setSearchFrequency( Frequency val ) { if( search.isFrequencySet() ) { search.setFrequency( val ); } } public boolean isSearchFrequencyValid() { return search.isFrequencySet(); } public void setSearchFrequencyValid( boolean val ) { if( val ) { search.setFrequency( search.getFrequency() ); } else { search.unsetFrequency(); } } // Getters and setters to handle uploads // Getters and setters to manipulate active PeriodicalAccountEntry object public java.lang.Integer getId() { return periodicalAccountEntry.getId(); } public String getConcept() { return periodicalAccountEntry.getConcept(); } public void setConcept( String concept ) { periodicalAccountEntry.setConcept( concept ); } public Date getDate() { return periodicalAccountEntry.getDate(); } public void setDate( Date date ) { periodicalAccountEntry.setDate( date ); } public BigDecimal getAmount() { return periodicalAccountEntry.getAmount(); } public void setAmount( BigDecimal amount ) { periodicalAccountEntry.setAmount( amount ); } public BigDecimal getRise() { return periodicalAccountEntry.getRise(); } public void setRise( BigDecimal rise ) { periodicalAccountEntry.setRise( rise ); } public String getObservations() { return periodicalAccountEntry.getObservations(); } public void setObservations( String observations ) { periodicalAccountEntry.setObservations( observations ); } public Account getAccount() { return periodicalAccountEntry.getAccount(); } public void setAccount( Account account ) { periodicalAccountEntry.setAccount( account ); } public AccountEntryType getType() { return periodicalAccountEntry.getType(); } public void setType( AccountEntryType type ) { periodicalAccountEntry.setType( type ); } public Frequency getFrequency() { return periodicalAccountEntry.getFrequency(); } public void setFrequency( Frequency frequency ) { periodicalAccountEntry.setFrequency( frequency ); } /* PeriodicalAccountEntry - generated by stajanov (do not edit/delete) */ public void valueTypeChanged(ValueChangeEvent event ) { this.setType((AccountEntryType) event.getNewValue()); FacesUtils.renderResponse(); } /** * Get the list of all types * @return the list of all types */ public List<SelectItem> getTypes() { ArrayList<SelectItem> ret = new ArrayList<SelectItem>(); List<AccountEntryType> refs = AccountEntryTypeManager.getDefault().getAllEntities(null,new SortCriteria("name")); for( AccountEntryType ref : refs ) { ret.add( new SelectItem( ref, ref.getName() ) ); } ret.add(0,new SelectItem("")); return ret; } /** * Get the list of all organizations * @return the list of all organizations */ public List<SelectItem> getOrganizations() { ArrayList<SelectItem> ret = new ArrayList<SelectItem>(); List<Organization> refs = OrganizationManager.getDefault().getAllEntities(null,new SortCriteria("name")); ret.add(new SelectItem(null, FacesUtils.formatMessage("organization.unknown" ))); for (Organization ref : refs) { ret.add(new SelectItem(ref, ref.getName())); } return ret; } public Organization getOrganization() { return periodicalAccountEntry.getOrganization(); } public void setOrganization( Organization organization ) { periodicalAccountEntry.setOrganization( organization ); } /** * Carlos, desde aquĆ­ */ public void onSelectedOrganizationChanged(ValueChangeEvent event) { setSelectedOrganization((Organization) event.getNewValue()); FacesUtils.renderResponse(); } public void onEditSelected(ActionEvent event) { setSelectedOrganization(null); } public void setSelectedOrganization(Organization organization) { this.setOrganization(organization); } public Organization getSelectedOrganization() { return this.getOrganization(); } }