/**
* 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.commissionings;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.faces.component.UIData;
import javax.faces.model.SelectItem;
import org.acegisecurity.acls.domain.BasePermission;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import com.autentia.tnt.bean.BaseBean;
import com.autentia.tnt.bean.NavigationResults;
import com.autentia.tnt.businessobject.BillPaymentMode;
import com.autentia.tnt.businessobject.Collaborator;
import com.autentia.tnt.businessobject.Commissioning;
import com.autentia.tnt.businessobject.CommissioningChange;
import com.autentia.tnt.businessobject.CommissioningDelay;
import com.autentia.tnt.businessobject.CommissioningFile;
import com.autentia.tnt.businessobject.CommissioningPaymentData;
import com.autentia.tnt.businessobject.CommissioningStatus;
import com.autentia.tnt.businessobject.Objective;
import com.autentia.tnt.businessobject.ObjectiveState;
import com.autentia.tnt.businessobject.Project;
import com.autentia.tnt.businessobject.User;
import com.autentia.tnt.dao.SortCriteria;
import com.autentia.tnt.dao.search.CommissioningSearch;
import com.autentia.tnt.mail.DefaultMailService;
import com.autentia.tnt.mail.MailService;
import com.autentia.tnt.manager.activity.ObjectiveManager;
import com.autentia.tnt.manager.admin.ProjectManager;
import com.autentia.tnt.manager.admin.UserManager;
import com.autentia.tnt.manager.commissioning.CommissioningManager;
import com.autentia.tnt.manager.contacts.CollaboratorManager;
import com.autentia.tnt.manager.security.AuthenticationManager;
import com.autentia.tnt.manager.security.impl.fixed.IWorkFlowConfiguration;
import com.autentia.tnt.manager.workflow.Field;
import com.autentia.tnt.manager.workflow.State;
import com.autentia.tnt.manager.workflow.WorkFlow;
import com.autentia.tnt.manager.workflow.Field.Permission;
import com.autentia.tnt.upload.Uploader;
import com.autentia.tnt.upload.UploaderFactory;
import com.autentia.tnt.util.ConfigurationUtil;
import com.autentia.tnt.util.FacesUtils;
import com.autentia.tnt.util.FileUtil;
import com.autentia.tnt.util.ReportUtil;
import com.autentia.tnt.util.SpringUtils;
public class CommissioningBean extends BaseBean {
private static final long serialVersionUID = 14353454354355L;
/* Commissioning - generated by stajanov (do not edit/delete) */
/** Envio de correos */
private MailService mailService;
/** Logger */
private static final Log log = LogFactory.getLog(CommissioningBean.class);
/** Active search object */
private CommissioningSearch search = new CommissioningSearch();
/** Manager */
private static CommissioningManager manager = CommissioningManager
.getDefault();
/** Manager */
private static ObjectiveManager objectiveManager = ObjectiveManager
.getDefault();
/** Manager */
private static AuthenticationManager authManager = AuthenticationManager
.getDefault();
/** Upload service */
private static final Uploader uploader = UploaderFactory
.getInstance("commissioning");
/** Active Commissioning object */
private Commissioning commissioning;
/** Commissioning delay to fill */
private CommissioningDelay commissioningDelay;
/** Default sort column */
private String sortColumn = "insertDate";
/** Default sort order */
private boolean sortAscending = false;
private WorkFlow workFlow;
/** Uploaded file object */
private UploadedFile uploadFile;
private Collaborator selectedCollaborator;
/** Changes Datatable only for showing texts purposes **/
private UIData changesDataTable;
public UIData getChangesDataTable() {
return changesDataTable;
}
public void setChangesDataTable(UIData changesDataTable) {
this.changesDataTable = changesDataTable;
}
/**
* Returns the current change in changes data table "old value"
*
* @return
*/
public String getChangeOldValue() {
String oldValue = ((CommissioningChange)changesDataTable.getRowData()).getOldValue();
return getChangeValue(oldValue);
}
/**
* Returns the current change in changes data table "new value"
*
* @return
*/
public String getChangeNewValue() {
String newValue = ((CommissioningChange)changesDataTable.getRowData()).getNewValue();
return getChangeValue(newValue);
}
private String getChangeValue(String changeValue) {
String strReturn = changeValue;
if (changeValue != null) {
if (changeValue.equals("true")) {
strReturn = FacesUtils.formatMessage("msg.yes");
} else if (changeValue.equals("false")) {
strReturn = FacesUtils.formatMessage("msg.no");
} else if (changeValue.indexOf(BillPaymentMode.CARD.name()) != -1
|| changeValue.indexOf(BillPaymentMode.CHECK.name()) != -1
|| changeValue.indexOf(BillPaymentMode.MONEY.name()) != -1
|| changeValue.indexOf(BillPaymentMode.PROMISSORYNOTE.name()) != -1
|| changeValue.indexOf(BillPaymentMode.RECEIPT.name()) != -1
|| changeValue.indexOf(BillPaymentMode.TRANSFER.name()) != -1
|| changeValue.indexOf(BillPaymentMode.UNKNOWN.name()) != -1) {
int i = changeValue.indexOf("]");
if (i != -1) {
String user = changeValue.substring(0, i + 2);
changeValue = changeValue.substring(i + 2);
strReturn = user + FacesUtils.formatMessage("BillPaymentMode." + changeValue);
}
}
}
return strReturn;
}
public CommissioningBean() {
super();
// las busquedas por defecto de pedidos no eliminados
search.setStartDeleteDate(null);
mailService = new DefaultMailService(ConfigurationUtil.getDefault());
final IWorkFlowConfiguration wf = (IWorkFlowConfiguration) SpringUtils
.getSpringBean("securityConfiguration");
workFlow = wf.getWorkFlowMatrix().get("Commissioning");
}
/**
* List commissionings. Order depends on Faces parameter sort.
*
* @return the list of all commissionings sorted by requested criterion
*/
public List<Commissioning> getAll() {
return manager.getAllEntities(search, new SortCriteria(sortColumn,
sortAscending));
}
// Getters to list possible values of related entities
/**
* Get the list of all revisers
*
* @return the list of all revisers
*/
public List<SelectItem> getAllRevisers() {
List<User> refs = UserManager.getDefault().getAllEntities(null,
new SortCriteria("name", true));
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
for (User ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
/**
* Get the list of all projects
*
* @return the list of all projects
*/
public List<SelectItem> getProjects() {
List<Project> refs = ProjectManager.getDefault().getAllEntities(null,
new SortCriteria("name"));
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
for (Project ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
/**
* Get the list of all PaymentMode values
*
* @return the list of all PaymentMode values
*/
public List<SelectItem> getPaymentModes() {
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
BillPaymentMode[] vals = BillPaymentMode.values();
for (BillPaymentMode val : vals) {
ret.add(new SelectItem(val, FacesUtils
.formatMessage("BillPaymentMode." + val.name())));
}
return ret;
}
public String getStatusFormatted() {
if (this.getStatus() != null) {
return FacesUtils.formatMessage("CommissioningStatus."
+ this.getStatus().name());
} else {
return "";
}
}
/**
* Get the list of all Status values
*
* @return the list of all Status values
*/
public List<SelectItem> getStatuss() {
ArrayList<SelectItem> ret = new ArrayList<SelectItem>();
CommissioningStatus[] vals = CommissioningStatus.values();
for (CommissioningStatus val : vals) {
ret.add(new SelectItem(val, FacesUtils
.formatMessage("CommissioningStatus." + val.name())));
}
return ret;
}
// Methods to create/remove instances of one-to-many entities (slave
// entities)
/**
* Whether or not create button is available for user
*
* @return true if user can create objects of type Commissioning
*/
public boolean isCreateAvailable() {
return SpringUtils
.isRolePermissionGranted(com.autentia.tnt.manager.security.Permission
.Entity_Create(Commissioning.class));
}
/**
* Whether or not edit button is available for user
*
* @return true if user can edit current object
*/
public boolean isEditAvailable() {
return SpringUtils.isAclPermissionGranted(commissioning,
BasePermission.WRITE);
}
/**
* Whether or not delete button is available for user
*
* @return true if user can delete current object
*/
public boolean isDeleteAvailable() {
if (commissioning == null)
return false;
return (commissioning.getId() != null)
&& SpringUtils.isAclPermissionGranted(commissioning,
BasePermission.DELETE);
}
/**
* Go to create page
*
* @return forward to CREATE page
*/
public String create() {
commissioning = new Commissioning();
// when we create a new commissioning status is created
// and default reviser is actual user
commissioning.setStatus(CommissioningStatus.CREATED);
commissioning.setRequestDate(new Date());
final Set<User> revisers = new HashSet<User>();
revisers.add(authManager.getCurrentPrincipal().getUser());
commissioning.setRevisers(revisers);
return NavigationResults.CREATE;
}
/**
* Go to detail page
*
* @return forward to DETAIL page
*/
public String detail() {
Integer id = Integer.parseInt(FacesUtils.getRequestParameter(ROW_ID));
commissioning = manager.getEntityById(id);
commissioningDelay = new CommissioningDelay();
commissioningDelay.setOriginalDate(commissioning.getDeliveryDate());
commissioningDelay.setStatus(commissioning.getStatus());
return SpringUtils.isAclPermissionGranted(commissioning,
BasePermission.WRITE) ? NavigationResults.EDIT
: NavigationResults.DETAIL;
}
public String showHistory() {
Integer id = Integer.parseInt(FacesUtils.getRequestParameter(ROW_ID));
commissioning = manager.getEntityById(id);
return "changes";
}
/**
* Save bean and stay on it
*
* @return forward to list page
*/
public String save() {
// reloads the page with the message errors if validation is not
// possible
if (!validateTextFields()) {
return NavigationResults.EDIT;
}
// Handle uploads for file field
String result = doBeforeSave();
if (result != null) {
return result;
}
// performs saving
if (commissioning.getId() == null) {
manager.insertEntity(commissioning);
} else {
manager.updateEntity(commissioning);
}
// Calls an after save action
return doAfterSave(NavigationResults.LIST);
}
@Override
public String doBeforeSave() {
String result = super.doBeforeSave();
// performs file upload
try {
if (uploadFile != null) {
String fileName = FileUtil.getFileName(uploadFile.getName());
if (uploader.exists(Integer.toString(commissioning.getId()),
fileName)) {
// el fichero ya existe y lo versionamos
fileName = uploader.version(Integer.toString(commissioning
.getId()), fileName, uploadFile);
} else {
uploader.store(Integer.toString(commissioning.getId()),
uploadFile);
}
final CommissioningFile file = new CommissioningFile();
file.setInsertDate(new Date());
file.setUser(authManager.getCurrentPrincipal().getUser());
file.setCommissioning(commissioning);
file.setFile(fileName);
file.setFileMime(uploadFile.getContentType());
commissioning.getFiles().add(file);
}
} catch (IOException e) {
log.error("save - exception uploading field file", e);
FacesUtils.addErrorMessage("commissioning:file", "error.fileTransfer", uploadFile.getName());
return NavigationResults.EDIT;
}
return result;
}
/**
* Valida que el contenido de las cajas de texto no exceda del tamaño de que
* disponen los campos en base de datos
*/
private boolean validateTextFields() {
boolean allValidationPassed = true;
if (commissioning.getName() != null
&& commissioning.getName().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.name"));
}
if (commissioning.getScope() != null
&& commissioning.getScope().length() >= 512) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.scope"));
}
if (commissioning.getContent() != null
&& commissioning.getContent().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.content"));
}
if (commissioning.getProducts() != null
&& commissioning.getProducts().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.products"));
}
if (commissioning.getNotes() != null
&& commissioning.getNotes().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.notes"));
}
if (commissioning.getDevelopedActivities() != null
&& commissioning.getDevelopedActivities().length() >= 1024) {
allValidationPassed = false;
FacesUtils
.addErrorMessage(
null,
"commissioning.error.textFieldTooLong",
FacesUtils
.formatMessage("commissioning.developedActivities"));
}
if (commissioning.getDifficultiesAppeared() != null
&& commissioning.getDifficultiesAppeared().length() >= 1024) {
allValidationPassed = false;
FacesUtils
.addErrorMessage(
null,
"commissioning.error.textFieldTooLong",
FacesUtils
.formatMessage("commissioning.difficultiesAppeared"));
}
if (commissioning.getResults() != null
&& commissioning.getResults().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.results"));
}
if (commissioning.getConclusions() != null
&& commissioning.getConclusions().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.conclusions"));
}
if (commissioning.getEvaluation() != null
&& commissioning.getEvaluation().length() >= 1024) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.textFieldTooLong", FacesUtils
.formatMessage("commissioning.evaluation"));
}
return allValidationPassed;
}
private boolean validatePaymentMode() {
boolean allValidationPassed = true;
for (CommissioningPaymentData paymentData : commissioning
.getCollaboratorsPaymentData()) {
if (paymentData.getBankAccount().equals("")
&& paymentData.getBillNumber().equals("")
|| !paymentData.getBankAccount().equals("")
&& !paymentData.getBillNumber().equals("")) {
allValidationPassed = false;
FacesUtils.addErrorMessage(null,
"commissioning.error.justSinglePaymentMode",
paymentData.getCollaborator().getName());
}
}
return allValidationPassed;
}
public String addCollaborator() {
final Collaborator collab = getSelectedCollaborator();
try {
if (!commissioning.getCollaboratorsPaymentData().contains(collab))
{
CommissioningPaymentData newCollab = new CommissioningPaymentData();
newCollab.setCollaborator(collab);
newCollab.setCommissioning(commissioning);
newCollab.setPaymentMode(BillPaymentMode.UNKNOWN);
newCollab.setBillNumber("");
newCollab.setBankAccount("");
commissioning.getCollaboratorsPaymentData().add(newCollab);
// Add to history if commissioning is in a valid STATUS
if (commissioning.getStatus() == CommissioningStatus.CONFIRMED
|| commissioning.getStatus() == CommissioningStatus.VALIDATED) {
commissioning.getHistory().add(
manager.getChange("commissioning.collaborator.add", "",
newCollab.getCollaborator().getName(), commissioning));
}
}
} catch (Exception e) {
log.info(e.getCause());
}
return NavigationResults.EDIT;
}
// private List<String> commissioningPaymentDeletedName = new ArrayList<String>(0);
public String deleteCollaborator() {
UIData table = (UIData) FacesUtils
.getComponent("commissioning:collaborators");
CommissioningPaymentData toDelete = (CommissioningPaymentData) table
.getRowData();
commissioning.getCollaboratorsPaymentData().remove(toDelete);
return NavigationResults.EDIT;
}
public String deleteFile() {
UIData table = (UIData) FacesUtils.getComponent("commissioning:list");
CommissioningFile toDelete = (CommissioningFile) table.getRowData();
commissioning.getFiles().remove(toDelete);
return null;
}
/**
* Delete bean and go back to beans list
*
* @return forward to LIST page
*/
public String delete() {
// borrado logico de la entidad
commissioning.setDeleteDate(new Date());
manager.updateEntity(commissioning);
commissioning = null;
return NavigationResults.LIST;
}
/**
* Go back to beans list
*
* @return forward to LIST page
*/
public String list() {
return NavigationResults.LIST;
}
/**
* Reset search criteria
*
* @return forward to LIST page
*/
public String reset() {
search.reset();
return 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 isCommissioningSelected() {
return commissioning != 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 CommissioningSearch getSearch() {
return search;
}
public Date getSearchStartRequestDate() {
return search.getStartRequestDate();
}
public void setSearchStartRequestDate(Date val) {
if (val != null) {
search.setStartRequestDate(val);
} else {
search.unsetStartRequestDate();
}
}
public boolean isSearchStartRequestDateValid() {
return search.isStartRequestDateSet();
}
public void setSearchStartRequestDateValid(boolean val) {
if (val) {
search.setStartRequestDate(search.getStartRequestDate());
} else {
search.unsetStartRequestDate();
}
}
public Date getSearchEndRequestDate() {
return search.getEndRequestDate();
}
public void setSearchEndRequestDate(Date val) {
if (val != null) {
search.setEndRequestDate(val);
} else {
search.unsetEndRequestDate();
}
}
public boolean isSearchEndRequestDateValid() {
return search.isEndRequestDateSet();
}
public void setSearchEndRequestDateValid(boolean val) {
if (val) {
search.setEndRequestDate(search.getEndRequestDate());
} else {
search.unsetEndRequestDate();
}
}
public String getSearchName() {
return search.getName();
}
public void setSearchName(String val) {
if (search.isNameSet()) {
search.setName(val);
}
}
public boolean isSearchNameValid() {
return search.isNameSet();
}
public void setSearchNameValid(boolean val) {
if (val) {
search.setName(search.getName());
} else {
search.unsetName();
}
}
public String getSearchScope() {
return search.getScope();
}
public void setSearchScope(String val) {
if (search.isScopeSet()) {
search.setScope(val);
}
}
public boolean isSearchScopeValid() {
return search.isScopeSet();
}
public void setSearchScopeValid(boolean val) {
if (val) {
search.setScope(search.getScope());
} else {
search.unsetScope();
}
}
public String getSearchContent() {
return search.getContent();
}
public void setSearchContent(String val) {
if (search.isContentSet()) {
search.setContent(val);
}
}
public boolean isSearchContentValid() {
return search.isContentSet();
}
public void setSearchContentValid(boolean val) {
if (val) {
search.setContent(search.getContent());
} else {
search.unsetContent();
}
}
public String getSearchProducts() {
return search.getProducts();
}
public void setSearchProducts(String val) {
if (search.isProductsSet()) {
search.setProducts(val);
}
}
public boolean isSearchProductsValid() {
return search.isProductsSet();
}
public void setSearchProductsValid(boolean val) {
if (val) {
search.setProducts(search.getProducts());
} else {
search.unsetProducts();
}
}
public Date getSearchStartDeliveryDate() {
return search.getStartDeliveryDate();
}
public void setSearchStartDeliveryDate(Date val) {
if (val != null) {
search.setStartDeliveryDate(val);
} else {
search.unsetStartDeliveryDate();
}
}
public boolean isSearchStartDeliveryDateValid() {
return search.isStartDeliveryDateSet();
}
public void setSearchStartDeliveryDateValid(boolean val) {
if (val) {
search.setStartDeliveryDate(search.getStartDeliveryDate());
} else {
search.unsetStartDeliveryDate();
}
}
public Date getSearchEndDeliveryDate() {
return search.getEndDeliveryDate();
}
public void setSearchEndDeliveryDate(Date val) {
if (val != null) {
search.setEndDeliveryDate(val);
} else {
search.unsetEndDeliveryDate();
}
}
public boolean isSearchEndDeliveryDateValid() {
return search.isEndDeliveryDateSet();
}
public void setSearchEndDeliveryDateValid(boolean val) {
if (val) {
search.setEndDeliveryDate(search.getEndDeliveryDate());
} else {
search.unsetEndDeliveryDate();
}
}
public BigDecimal getSearchBudget() {
return search.getBudget();
}
public void setSearchBudget(BigDecimal val) {
if (search.isBudgetSet()) {
search.setBudget(val);
}
}
public boolean isSearchBudgetValid() {
return search.isBudgetSet();
}
public void setSearchBudgetValid(boolean val) {
if (val) {
search.setBudget(search.getBudget());
} else {
search.unsetBudget();
}
}
public String getSearchNotes() {
return search.getNotes();
}
public void setSearchNotes(String val) {
if (search.isNotesSet()) {
search.setNotes(val);
}
}
public boolean isSearchNotesValid() {
return search.isNotesSet();
}
public void setSearchNotesValid(boolean val) {
if (val) {
search.setNotes(search.getNotes());
} else {
search.unsetNotes();
}
}
public java.lang.Boolean getSearchAuthorSignature() {
return search.getAuthorSignature();
}
public void setSearchAuthorSignature(java.lang.Boolean val) {
if (search.isAuthorSignatureSet()) {
search.setAuthorSignature(val);
}
}
public boolean isSearchAuthorSignatureValid() {
return search.isAuthorSignatureSet();
}
public void setSearchAuthorSignatureValid(boolean val) {
if (val) {
search.setAuthorSignature(search.getAuthorSignature());
} else {
search.unsetAuthorSignature();
}
}
public java.lang.Boolean getSearchReviserSignature() {
return search.getReviserSignature();
}
public void setSearchReviserSignature(java.lang.Boolean val) {
if (search.isReviserSignatureSet()) {
search.setReviserSignature(val);
}
}
public boolean isSearchReviserSignatureValid() {
return search.isReviserSignatureSet();
}
public void setSearchReviserSignatureValid(boolean val) {
if (val) {
search.setReviserSignature(search.getReviserSignature());
} else {
search.unsetReviserSignature();
}
}
public java.lang.Boolean getSearchAdminSignature() {
return search.getAdminSignature();
}
public void setSearchAdminSignature(java.lang.Boolean val) {
if (search.isAdminSignatureSet()) {
search.setAdminSignature(val);
}
}
public boolean isSearchAdminSignatureValid() {
return search.isAdminSignatureSet();
}
public void setSearchAdminSignatureValid(boolean val) {
if (val) {
search.setAdminSignature(search.getAdminSignature());
} else {
search.unsetAdminSignature();
}
}
public java.lang.Boolean getSearchDeleted() {
return search.getDeleted();
}
public void setSearchDeleted(java.lang.Boolean val) {
if (search.isDeletedSet()) {
search.setDeleted(val);
}
}
public boolean isSearchDeletedValid() {
return search.isDeletedSet();
}
public void setSearchDeletedValid(boolean val) {
if (val) {
search.setDeleted(search.getDeleted());
} else {
search.unsetDeleted();
}
}
public java.lang.Boolean getSearchJustifyInformation() {
return search.getJustifyInformation();
}
public void setSearchJustifyInformation(java.lang.Boolean val) {
if (search.isJustifyInformationSet()) {
search.setJustifyInformation(val);
}
}
public boolean isSearchJustifyInformationValid() {
return search.isJustifyInformationSet();
}
public void setSearchJustifyInformationValid(boolean val) {
if (val) {
search.setJustifyInformation(search.getJustifyInformation());
} else {
search.unsetJustifyInformation();
}
}
public String getSearchDevelopedActivities() {
return search.getDevelopedActivities();
}
public void setSearchDevelopedActivities(String val) {
if (search.isDevelopedActivitiesSet()) {
search.setDevelopedActivities(val);
}
}
public boolean isSearchDevelopedActivitiesValid() {
return search.isDevelopedActivitiesSet();
}
public void setSearchDevelopedActivitiesValid(boolean val) {
if (val) {
search.setDevelopedActivities(search.getDevelopedActivities());
} else {
search.unsetDevelopedActivities();
}
}
public String getSearchDifficultiesAppeared() {
return search.getDifficultiesAppeared();
}
public void setSearchDifficultiesAppeared(String val) {
if (search.isDifficultiesAppearedSet()) {
search.setDifficultiesAppeared(val);
}
}
public boolean isSearchDifficultiesAppearedValid() {
return search.isDifficultiesAppearedSet();
}
public void setSearchDifficultiesAppearedValid(boolean val) {
if (val) {
search.setDifficultiesAppeared(search.getDifficultiesAppeared());
} else {
search.unsetDifficultiesAppeared();
}
}
public String getSearchResults() {
return search.getResults();
}
public void setSearchResults(String val) {
if (search.isResultsSet()) {
search.setResults(val);
}
}
public boolean isSearchResultsValid() {
return search.isResultsSet();
}
public void setSearchResultsValid(boolean val) {
if (val) {
search.setResults(search.getResults());
} else {
search.unsetResults();
}
}
public String getSearchConclusions() {
return search.getConclusions();
}
public void setSearchConclusions(String val) {
if (search.isConclusionsSet()) {
search.setConclusions(val);
}
}
public boolean isSearchConclusionsValid() {
return search.isConclusionsSet();
}
public void setSearchConclusionsValid(boolean val) {
if (val) {
search.setConclusions(search.getConclusions());
} else {
search.unsetConclusions();
}
}
public String getSearchEvaluation() {
return search.getEvaluation();
}
public void setSearchEvaluation(String val) {
if (search.isEvaluationSet()) {
search.setEvaluation(val);
}
}
public boolean isSearchEvaluationValid() {
return search.isEvaluationSet();
}
public void setSearchEvaluationValid(boolean val) {
if (val) {
search.setEvaluation(search.getEvaluation());
} else {
search.unsetEvaluation();
}
}
public CommissioningStatus getSearchStatus() {
return search.getStatus();
}
public void setSearchStatus(CommissioningStatus val) {
if (search.isStatusSet()) {
search.setStatus(val);
}
}
public boolean isSearchStatusValid() {
return search.isStatusSet();
}
public void setSearchStatusValid(boolean val) {
if (val) {
search.setStatus(search.getStatus());
} else {
search.unsetStatus();
}
}
public Date getSearchStartInsertDate() {
return search.getStartInsertDate();
}
public void setSearchStartInsertDate(Date val) {
if (val != null) {
search.setStartInsertDate(val);
} else {
search.unsetStartInsertDate();
}
}
public boolean isSearchStartInsertDateValid() {
return search.isStartInsertDateSet();
}
public void setSearchStartInsertDateValid(boolean val) {
if (val) {
search.setStartInsertDate(search.getStartInsertDate());
} else {
search.unsetStartInsertDate();
}
}
public Date getSearchEndInsertDate() {
return search.getEndInsertDate();
}
public void setSearchEndInsertDate(Date val) {
if (val != null) {
search.setEndInsertDate(val);
} else {
search.unsetEndInsertDate();
}
}
public boolean isSearchEndInsertDateValid() {
return search.isEndInsertDateSet();
}
public void setSearchEndInsertDateValid(boolean val) {
if (val) {
search.setEndInsertDate(search.getEndInsertDate());
} else {
search.unsetEndInsertDate();
}
}
public Date getSearchStartUpdateDate() {
return search.getStartUpdateDate();
}
public void setSearchStartUpdateDate(Date val) {
if (val != null) {
search.setStartUpdateDate(val);
} else {
search.unsetStartUpdateDate();
}
}
public boolean isSearchStartUpdateDateValid() {
return search.isStartUpdateDateSet();
}
public void setSearchStartUpdateDateValid(boolean val) {
if (val) {
search.setStartUpdateDate(search.getStartUpdateDate());
} else {
search.unsetStartUpdateDate();
}
}
public Date getSearchEndUpdateDate() {
return search.getEndUpdateDate();
}
public void setSearchEndUpdateDate(Date val) {
if (val != null) {
search.setEndUpdateDate(val);
} else {
search.unsetEndUpdateDate();
}
}
public boolean isSearchEndUpdateDateValid() {
return search.isEndUpdateDateSet();
}
public void setSearchEndUpdateDateValid(boolean val) {
if (val) {
search.setEndUpdateDate(search.getEndUpdateDate());
} else {
search.unsetEndUpdateDate();
}
}
public Project getSearchProject() {
return search.getProject();
}
public void setSearchProject(Project val) {
if (search.isProjectSet()) {
search.setProject(val);
}
}
public boolean isSearchProjectValid() {
return search.isProjectSet();
}
public void setSearchProjectValid(boolean val) {
if (val) {
search.setProject(search.getProject());
} else {
search.unsetProject();
}
}
// Getters and setters to handle uploads
// Getters and setters to manipulate active Commissioning object
public java.lang.Integer getId() {
return commissioning.getId();
}
public Date getRequestDate() {
return commissioning.getRequestDate();
}
public void setRequestDate(Date requestDate) {
commissioning.setRequestDate(requestDate);
}
public String getName() {
return commissioning.getName();
}
public void setName(String name) {
commissioning.setName(name);
}
public String getScope() {
return commissioning.getScope();
}
public void setScope(String scope) {
commissioning.setScope(scope);
}
public String getContent() {
return commissioning.getContent();
}
public void setContent(String content) {
commissioning.setContent(content);
}
public String getProducts() {
return commissioning.getProducts();
}
public void setProducts(String products) {
commissioning.setProducts(products);
}
public Date getDeliveryDate() {
return commissioning.getDeliveryDate();
}
public void setDeliveryDate(Date deliveryDate) {
commissioning.setDeliveryDate(deliveryDate);
}
public BigDecimal getBudget() {
return commissioning.getBudget();
}
public void setBudget(BigDecimal budget) {
commissioning.setBudget(budget);
}
public String getNotes() {
return commissioning.getNotes();
}
public void setNotes(String notes) {
commissioning.setNotes(notes);
}
public boolean isAuthorSignature() {
return commissioning.isAuthorSignature();
}
public void setAuthorSignature(boolean authorSignature) {
commissioning.setAuthorSignature(authorSignature);
}
public boolean isReviserSignature() {
return commissioning.isReviserSignature();
}
public void setReviserSignature(boolean reviserSignature) {
commissioning.setReviserSignature(reviserSignature);
}
public boolean isAdminSignature() {
return commissioning.isAdminSignature();
}
public void setAdminSignature(boolean adminSignature) {
commissioning.setAdminSignature(adminSignature);
}
public boolean isJustifyInformation() {
return commissioning.isJustifyInformation();
}
public void setJustifyInformation(boolean justifyInformation) {
commissioning.setJustifyInformation(justifyInformation);
}
public String getDevelopedActivities() {
return commissioning.getDevelopedActivities();
}
public void setDevelopedActivities(String developedActivities) {
commissioning.setDevelopedActivities(developedActivities);
}
public String getDifficultiesAppeared() {
return commissioning.getDifficultiesAppeared();
}
public void setDifficultiesAppeared(String difficultiesAppeared) {
commissioning.setDifficultiesAppeared(difficultiesAppeared);
}
public String getResults() {
return commissioning.getResults();
}
public void setResults(String results) {
commissioning.setResults(results);
}
public String getConclusions() {
return commissioning.getConclusions();
}
public void setConclusions(String conclusions) {
commissioning.setConclusions(conclusions);
}
public String getEvaluation() {
return commissioning.getEvaluation();
}
public void setEvaluation(String evaluation) {
commissioning.setEvaluation(evaluation);
}
public CommissioningStatus getStatus() {
return commissioning.getStatus();
}
public void setStatus(CommissioningStatus status) {
commissioning.setStatus(status);
}
public String getNextAction() {
if (commissioning.getStatus().equals(CommissioningStatus.CREATED)) {
return FacesUtils.getMessage("CommissioningStatus.action.aprove");
} else if (commissioning.getStatus()
.equals(CommissioningStatus.APROVED)) {
return FacesUtils.getMessage("CommissioningStatus.action.accept");
} else if (commissioning.getStatus().equals(
CommissioningStatus.ACCEPTED)) {
return FacesUtils.getMessage("CommissioningStatus.action.confirm");
} else if (commissioning.getStatus().equals(
CommissioningStatus.CONFIRMED)) {
return FacesUtils.getMessage("CommissioningStatus.action.validate");
} else if (commissioning.getStatus().equals(
CommissioningStatus.VALIDATED)) {
return FacesUtils.getMessage("CommissioningStatus.action.finalice");
} else {
return "";
}
}
public void setNextAction() {
// do nothing ...
}
public Date getInsertDate() {
return commissioning.getInsertDate();
}
public void setInsertDate(Date insertDate) {
commissioning.setInsertDate(insertDate);
}
public Date getUpdateDate() {
return commissioning.getUpdateDate();
}
public void setUpdateDate(Date updateDate) {
commissioning.setUpdateDate(updateDate);
}
public Project getProject() {
return commissioning.getProject();
}
public void setProject(Project project) {
commissioning.setProject(project);
}
/* Commissioning - generated by stajanov (do not edit/delete) */
public List<CommissioningPaymentData> getCollaboratorsPaymentDAta() {
return commissioning.getCollaboratorsPaymentData() == null ? null
: new ArrayList<CommissioningPaymentData>(commissioning
.getCollaboratorsPaymentData());
}
public void setCollaborators(List<CommissioningPaymentData> collaborators) {
commissioning
.setCollaboratorsPaymentData(new HashSet<CommissioningPaymentData>(
collaborators));
}
public List<SelectItem> getAllCollaborators() {
final List<Collaborator> refs = CollaboratorManager.getDefault()
.getAllEntities(null, new SortCriteria("insertDate"));
final List<SelectItem> ret = new ArrayList<SelectItem>();
for (Collaborator ref : refs) {
ret.add(new SelectItem(ref, ref.getName()));
}
return ret;
}
public List<User> getRevisers() {
return commissioning.getRevisers() == null ? null
: new ArrayList<User>(commissioning.getRevisers());
}
public void setRevisers(List<User> users) {
commissioning.setRevisers(new HashSet<User>(users));
}
public boolean getCanPerformNextFlowStep() {
final State st = workFlow
.getNextState(commissioning.getStatus().name());
final int rolId = authManager.getCurrentPrincipal().getRoleId();
boolean iHavePermission = false;
if (st != null) {
if (rolId == ConfigurationUtil.getDefault().getRoleAdminId()) {
iHavePermission = st.isPermAdmin();
}
if (rolId == ConfigurationUtil.getDefault().getRoleSupervisorId()) {
iHavePermission = st.isPermSuper();
}
if (rolId == ConfigurationUtil.getDefault().getRoleUserId()) {
iHavePermission = st.isPermUser();
}
if (rolId == ConfigurationUtil.getDefault().getRoleStaffId()) {
iHavePermission = st.isPermStaff();
}
if (rolId == ConfigurationUtil.getDefault().getRoleClientId()) {
iHavePermission = st.isPermCli();
}
if (rolId == ConfigurationUtil.getDefault().getRoleProjectManagerId()) {
iHavePermission = st.isPermProjectManager();
}
}
return iHavePermission && !commissioning.getStatus().equals(nextStep());
}
/**
*
*
* @return
*/
public String nextFlowStep() {
if (!validateTextFields()) {
return NavigationResults.EDIT;
}
if (getCanPerformNextFlowStep()) {
switch (nextStep()) {
case ACCEPTED:
doAccept();
break;
case APROVED:
doAprove();
break;
case CONFIRMED:
if(!validatePaymentMode()) {
return NavigationResults.EDIT;
}
doConfirm();
break;
case FINALIZED:
doFinalize();
break;
case VALIDATED:
doValidate();
break;
}
}
return save();
}
protected CommissioningStatus nextStep() {
if (CommissioningStatus.FINALIZED == commissioning.getStatus()) {
return CommissioningStatus.FINALIZED;
}
final State st = workFlow
.getNextState(commissioning.getStatus().name());
return st != null ? CommissioningStatus.valueOf(st.getName()
.toUpperCase()) : null;
}
private Permission getFieldPermission(String fieldName) {
final State st = workFlow.getState(commissioning.getStatus().name());
final Field f = st.getField(fieldName);
final int rolId = authManager.getCurrentPrincipal().getRoleId();
Permission permission = Permission.NONE;
if (rolId == ConfigurationUtil.getDefault().getRoleAdminId()) {
permission = f.getPermAdmin();
}
if (rolId == ConfigurationUtil.getDefault().getRoleSupervisorId()) {
permission = f.getPermSuper();
}
if (rolId == ConfigurationUtil.getDefault().getRoleUserId()) {
permission = f.getPermUser();
}
if (rolId == ConfigurationUtil.getDefault().getRoleStaffId()) {
permission = f.getPermStaff();
}
if (rolId == ConfigurationUtil.getDefault().getRoleClientId()) {
permission = f.getPermCli();
}
return permission;
}
protected void doAprove() {
if (log.isDebugEnabled()) {
log.debug("doing approve action");
}
// se crea un objetivo para los usuario que estan relacionados con el
createObjetives();
// send mail with attachments to the collaborators
sendMailToCollaborators();
commissioning.setAdminSignature(true);
commissioning.setStatus(CommissioningStatus.APROVED);
}
private void createObjetives() {
for (final User user : commissioning.getRevisers()) {
final Objective objective = new Objective();
objective.setUser(user);
objective.setProject(commissioning.getProject());
objective.setStartDate(commissioning.getRequestDate());
objective.setEndDate(commissioning.getDeliveryDate());
objective.setState(ObjectiveState.PENDING);
objective.setName(FacesUtils.formatMessage(
"commissioning.automaticObjectiveName", commissioning
.getName()));
objectiveManager.insertEntity(objective);
}
FacesUtils.addInfoMessage(null, "commissioning.info.objectiveCreated");
}
protected void doAccept() {
if (log.isDebugEnabled()) {
log.debug("doing accepting action");
}
commissioning.setStatus(CommissioningStatus.ACCEPTED);
}
private void sendMailToCollaborators() {
for (CommissioningPaymentData collaboratorPaymentData : commissioning
.getCollaboratorsPaymentData()) {
try {
final InputStream is = ReportUtil
.getReportWithoutDatabaseConnectionAsInputStream(
"document/ficha.de.proyecto",
populateReportProperties(commissioning, collaboratorPaymentData));
if (is != null) {
final Map<InputStream, String> oses = new HashMap<InputStream, String>();
oses.put(is, "ficha_proyecto.pdf");
mailService.sendOutputStreams(collaboratorPaymentData
.getCollaborator().getEMail(), ConfigurationUtil
.getDefault().getCommissioningMailSubject(),
ConfigurationUtil.getDefault()
.getCommissioningMailBody(), oses);
FacesUtils.addInfoMessage(null, "commissioning.info.mailSentToCollaborator",collaboratorPaymentData.getCollaborator()
.getName(), collaboratorPaymentData
.getCollaborator().getEMail());
} else {
log.warn("the report resume cannot be created");
FacesUtils.addErrorMessage(null,
"commissioning.error.projectReportCannotBeCreated");
}
} catch (Exception e) {
log.warn(
"emails cannot be sent to the collaborators: " + e,
e);
FacesUtils
.addErrorMessage(
null,
"commissioning.error.mailNotSentToCollaborator",
collaboratorPaymentData.getCollaborator()
.getName(), collaboratorPaymentData
.getCollaborator().getEMail());
}
}
}
/**
* Puebla los parámetros a enviar al informe. No lo pongo en el manager
* porque da problemas con acegi
*/
private Map<String, Object> populateReportProperties(
final Commissioning commissioning, final CommissioningPaymentData commissioningPaymentData) {
final Map<String, Object> properties = new HashMap<String, Object>();
properties.put("projectName", this.getReportProjectName());
properties.put("projectContent", this.getReportProjectContent());
properties.put("projectPurpose", this.getReportProjectPurpose());
properties.put("endDate", this.getReportEndDate());
properties.put("budget", this.getReportBudget());
properties.put("day", this.getReportDay());
properties.put("month", this.getReportMonth());
properties.put("year", this.getReportYear());
properties.put("collaboratorName", commissioningPaymentData.getCollaborator().getName());
properties.put("revisorName", this.getRevisorName());
return properties;
}
public String getReportProjectName() {
return commissioning.getProject().getName();
}
public String getReportProjectContent() {
return commissioning.getContent();
}
public String getReportProjectPurpose() {
return commissioning.getScope();
}
public String getRevisorName() {
String name = "";
if (commissioning.getRevisers() == null || commissioning.getRevisers().isEmpty() || commissioning.getRevisers().size() > 1) {
name = "";
} else {
for (User reviser: commissioning.getRevisers()) {
name = reviser.getName();
}
}
return name;
}
public String getReportEndDate() {
final SimpleDateFormat completeDateFormatter = new SimpleDateFormat(
"EEEEE, d MMMMM yyyy");
return completeDateFormatter.format(commissioning.getDeliveryDate());
}
public String getReportBudget() {
return commissioning.getBudget().toString();
}
public Integer getReportDay() {
final Calendar today = Calendar.getInstance();
return today.get(Calendar.DATE);
}
public String getReportMonth() {
final Calendar today = Calendar.getInstance();
final SimpleDateFormat justMonthFormatter = new SimpleDateFormat("MMMMM");
return justMonthFormatter.format(today.getTime());
}
public Integer getReportYear() {
final Calendar today = Calendar.getInstance();
return today.get(Calendar.YEAR);
}
protected void doConfirm() {
if (log.isDebugEnabled()) {
log.debug("doing approve action");
}
commissioning.setAuthorSignature(true);
commissioning.setStatus(CommissioningStatus.CONFIRMED);
}
protected void doValidate() {
if (log.isDebugEnabled()) {
log.debug("doing approve action");
}
commissioning.setReviserSignature(true);
commissioning.setStatus(CommissioningStatus.VALIDATED);
}
protected void doFinalize() {
if (log.isDebugEnabled()) {
log.debug("doing approve action");
}
commissioning.setStatus(CommissioningStatus.FINALIZED);
}
public String getCommissioningFlowKey() {
return "CommissioningStatus.flow." + commissioning.getStatus().name();
}
public String delay() {
commissioning = manager.getEntityById(commissioning.getId());
commissioning.setDeliveryDate(commissioningDelay.getDelayedToDate());
commissioning.getCommissioningDelays().add(commissioningDelay);
commissioningDelay.setCommissioning(commissioning);
commissioningDelay.setInsertDate(new Date());
commissioningDelay.setUpdateDate(new Date());
commissioningDelay.setOriginalDate(commissioning.getDeliveryDate());
commissioningDelay.setStatus(commissioning.getStatus());
// se crean nuevos objetivos por haberse generado retrasos
createObjetives();
manager.updateEntity(commissioning);
// como hemos guardado pero seguimos en edición refrescamos los cambios del pedido volviendo a inicializarlos
commissioning.initChanges();
// se oculta el panel de inserción de nuevos retrasos
hideAddDelay();
return SpringUtils.isAclPermissionGranted(commissioning,
BasePermission.WRITE) ? NavigationResults.EDIT
: NavigationResults.DETAIL;
}
public boolean getHasCommissionDelays() {
return commissioning.getCommissioningDelays() != null
&& commissioning.getCommissioningDelays().size() > 0;
}
public CommissioningDelay getCommissioningDelay() {
return commissioningDelay;
}
public void setCommissioningDelay(CommissioningDelay commissioningDelay) {
this.commissioningDelay = commissioningDelay;
}
public Set<CommissioningDelay> getCommissioningDelays() {
return commissioning.getCommissioningDelays();
}
public boolean isRenderRequestDate() {
return getFieldPermission("requestDate") != Permission.NONE;
}
public boolean isRenderStatus() {
return getFieldPermission("status") != Permission.NONE;
}
public boolean isRenderName() {
return getFieldPermission("name") != Permission.NONE;
}
public boolean isRenderScope() {
return getFieldPermission("scope") != Permission.NONE;
}
public boolean isRenderContent() {
return getFieldPermission("content") != Permission.NONE;
}
public boolean isRenderProducts() {
return getFieldPermission("products") != Permission.NONE;
}
public boolean isRenderDeliveryDate() {
return getFieldPermission("deliveryDate") != Permission.NONE;
}
public boolean isRenderBudget() {
return getFieldPermission("budget") != Permission.NONE;
}
public boolean isRenderPaymentMode() {
return getFieldPermission("paymentMode") != Permission.NONE;
}
public boolean isRenderNotes() {
return getFieldPermission("notes") != Permission.NONE;
}
public boolean isRenderAuthorSignature() {
return getFieldPermission("authorSignature") != Permission.NONE;
}
public boolean isRenderReviserSignature() {
return getFieldPermission("reviserSignature") != Permission.NONE;
}
public boolean isRenderAdminSignature() {
return getFieldPermission("adminSignature") != Permission.NONE;
}
public boolean isRenderJustifyInformation() {
return getFieldPermission("justifyInformation") != Permission.NONE;
}
public boolean isRenderDevelopedActivities() {
return (getFieldPermission("developedActivities") != Permission.NONE)
&& isJustifyInformation();
}
public boolean isRenderResults() {
return (getFieldPermission("results") != Permission.NONE)
& isJustifyInformation();
}
public boolean isRenderConclusions() {
return (getFieldPermission("conclusions") != Permission.NONE)
&& isJustifyInformation();
}
public boolean isRenderEvaluation() {
return (getFieldPermission("evaluation") != Permission.NONE)
&& isJustifyInformation();
}
public boolean isRenderProject() {
return getFieldPermission("project") != Permission.NONE;
}
public boolean isRenderRevisers() {
return getFieldPermission("revisers") != Permission.NONE;
}
public boolean isRenderCollaborators() {
return getFieldPermission("collaborators") != Permission.NONE;
}
public boolean isRenderDifficultiesAppeared() {
return (getFieldPermission("difficultiesAppeared") != Permission.NONE)
&& isJustifyInformation();
}
public boolean isEditRequestDate() {
return getFieldPermission("requestDate") == Permission.EDIT;
}
public boolean isEditStatus() {
return getFieldPermission("status") == Permission.EDIT;
}
public boolean isAddDelay() {
return getFieldPermission("addDelay") == Permission.EDIT
&& (commissioning.getId() != null);
}
public boolean isChangeCollaborators() {
return getFieldPermission("changeCollaborators") == Permission.EDIT;
}
public boolean isEditName() {
return getFieldPermission("name") == Permission.EDIT;
}
public boolean isEditScope() {
return getFieldPermission("scope") == Permission.EDIT;
}
public boolean isEditContent() {
return getFieldPermission("content") == Permission.EDIT;
}
public boolean isEditProducts() {
return getFieldPermission("products") == Permission.EDIT;
}
public boolean isEditDeliveryDate() {
return getFieldPermission("deliveryDate") == Permission.EDIT;
}
public boolean isEditBudget() {
return getFieldPermission("budget") == Permission.EDIT;
}
public boolean isEditPaymentMode() {
return getFieldPermission("paymentMode") == Permission.EDIT;
}
public boolean isEditNotes() {
return getFieldPermission("notes") == Permission.EDIT;
}
public boolean isEditAuthorSignature() {
return getFieldPermission("authorSignature") == Permission.EDIT;
}
public boolean isEditReviserSignature() {
return getFieldPermission("reviserSignature") == Permission.EDIT;
}
public boolean isEditAdminSignature() {
return getFieldPermission("adminSignature") == Permission.EDIT;
}
public boolean isEditJustifyInformation() {
return getFieldPermission("justifyInformation") == Permission.EDIT;
}
public boolean isEditDevelopedActivities() {
return getFieldPermission("developedActivities") == Permission.EDIT;
}
public boolean isEditResults() {
return getFieldPermission("results") == Permission.EDIT;
}
public boolean isEditConclusions() {
return getFieldPermission("conclusions") == Permission.EDIT;
}
public boolean isEditEvaluation() {
return getFieldPermission("evaluation") == Permission.EDIT;
}
public boolean isEditProject() {
return getFieldPermission("project") == Permission.EDIT;
}
public boolean isEditRevisers() {
return getFieldPermission("revisers") == Permission.EDIT;
}
public boolean isEditCollaborators() {
return getFieldPermission("collaborators") == Permission.EDIT;
}
public boolean isEditDifficultiesAppeared() {
return getFieldPermission("difficultiesAppeared") == Permission.EDIT;
}
public void setMailService(MailService mailService) {
this.mailService = mailService;
}
/**
* @return
* @see com.autentia.tnt.businessobject.Commissioning#getHistory()
*/
public Set<CommissioningChange> getHistory() {
return commissioning.getHistory();
}
// Getters and setters to handle uploads
public void setUploadFile(UploadedFile uploadFile) {
this.uploadFile = uploadFile;
}
public UploadedFile getUploadFile() {
return uploadFile;
}
/**
* @return
* @see com.autentia.tnt.businessobject.Commissioning#getFiles()
*/
public Set<CommissioningFile> getFiles() {
return commissioning.getFiles();
}
/**
* @param files
* @see com.autentia.tnt.businessobject.Commissioning#setFiles(java.util.Set)
*/
public void setFiles(Set<CommissioningFile> files) {
commissioning.setFiles(files);
}
public Set<CommissioningPaymentData> getCollaboratorsPaymentData() {
return commissioning.getCollaboratorsPaymentData();
}
public void setCollaboratorsPaymentData(
Set<CommissioningPaymentData> collaboratorsPaymentData) {
commissioning.setCollaboratorsPaymentData(collaboratorsPaymentData);
}
public boolean isCanInsertDelay() {
return commissioning.getStatus() == CommissioningStatus.ACCEPTED
|| commissioning.getStatus() == CommissioningStatus.CONFIRMED;
}
/**
* @return the selectedCollaborator
*/
public Collaborator getSelectedCollaborator() {
return selectedCollaborator;
}
/**
* @param selectedCollaborator
* the selectedCollaborator to set
*/
public void setSelectedCollaborator(Collaborator selectedCollaborator) {
this.selectedCollaborator = selectedCollaborator;
}
public boolean getPuedoImprimir() {
return (commissioning.getId() != null);
}
private boolean showAddDelayPanel = false;
public void showAddDelay() {
showAddDelayPanel = true;
FacesUtils.renderResponse();
}
public void hideAddDelay() {
showAddDelayPanel = false;
commissioningDelay = new CommissioningDelay();
FacesUtils.renderResponse();
}
public boolean isShowAddDelayPanel() {
return showAddDelayPanel;
}
public void setShowAddDelayPanel(boolean showAddDelayPanel) {
this.showAddDelayPanel = showAddDelayPanel;
}
// ---------------------
// seleccion de tecnicos
// ---------------------
private User selectedReviser;
public User getSelectedReviser() {
return selectedReviser;
}
public void setSelectedReviser(User selectedReviser) {
this.selectedReviser = selectedReviser;
}
public String addReviser() {
commissioning.getRevisers().add(selectedReviser);
return NavigationResults.EDIT;
}
public Set<User> getCommissioningRevisers () {
return commissioning.getRevisers();
}
public void setCommissioningRevisers(Set<User> revisers) {
commissioning.setRevisers(revisers);
}
public String deleteReviser() {
final UIData table = (UIData) FacesUtils.getComponent("commissioning:revisers");
final User toDelete = (User) table.getRowData();
commissioning.getRevisers().remove(toDelete);
return NavigationResults.EDIT;
}
public boolean isNew() {
boolean ret = false;
if (commissioning == null || commissioning.getId() == null) {
ret = true;
}
return ret;
}
}