package com.megatim.fdxconsultation.core.impl.configuration; import com.bekosoftware.genericdaolayer.dao.ifaces.GenericDAO; import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer; import com.bekosoftware.genericmanagerlayer.core.impl.AbstractGenericManager; import com.megatim.fdxcommons.model.enumeration.TypeOperation; import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView; import com.megatim.fdxcommons.model.pojo.CriteriaFormRequest; import com.megatim.fdxcommons.tools.exceptions.CommonRessourceNotFoundException; import com.megatim.fdxconsultation.core.ifaces.administration.HistoriqueMotDePasseManager; import com.megatim.fdxconsultation.core.ifaces.configuration.CodeStatutHttpManager; import com.megatim.fdxconsultation.core.ifaces.message.systeme.MessageSystemeManager; import com.megatim.fdxconsultation.dao.ifaces.abstracts.PaginationWithCriteriaEntityDAO; import com.megatim.fdxconsultation.dao.ifaces.configuration.CodeStatutHttpDAO; import com.megatim.fdxconsultation.model.administration.User; import com.megatim.fdxconsultation.model.configuration.CodeStatutHttp; import com.megatim.fdxconsultation.reporting.model.configuration.CodeStatutHttpReporting; import com.megatim.fdxconsultation.model.dto.CodeStatutHttpDto; import com.megatim.fdxconsultation.model.mappers.MapStructMapper; import com.megatim.fdxconsultation.model.searchentities.CodeStatutHttpSearch; import com.megatim.fdxconsultation.tools.CommonsToolsEntity; import com.megatim.reporting.adhoc.dto.ReportConfiguration; import java.io.File; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.enterprise.context.Dependent; import javax.inject.Inject; import javax.transaction.Transactional; @Transactional @Dependent public class CodeStatutHttpManagerImpl extends AbstractGenericManager implements CodeStatutHttpManager { @Inject protected CodeStatutHttpDAO dao; @Inject protected HistoriqueMotDePasseManager historiqueMotDePasseManager; @Inject private MapStructMapper mapstructMapper; @Inject private MessageSystemeManager messageSystemeManager; /** * */ public CodeStatutHttpManagerImpl() { } @Override public GenericDAO getDao() { return dao; } @Override public String getEntityIdName() { return "id"; } @Override public CodeStatutHttpDto getById(Long id) { return mapToDetailDto(find(getEntityIdName(), id)); } @Override @Transactional public CodeStatutHttp modify(Long id, CodeStatutHttp entity, User connectedUser) { CodeStatutHttp actualEntity = find(getEntityIdName(), id); beforeModify(actualEntity, entity, connectedUser); update(id, actualEntity); return actualEntity; } @Override public CodeStatutHttpDto mapToDto(CodeStatutHttp entity) { return mapstructMapper.codeStatutHttpToCodeStatutHttpDto(entity); } @Override public CodeStatutHttpDto mapToDetailDto(CodeStatutHttp entity) { return mapstructMapper.codeStatutHttpToCodeStatutHttpDto(entity); } @Override public void beforeModify(CodeStatutHttp actualEntity, CodeStatutHttp requestEntity, User utilisateurConnecte) { if (actualEntity == null) { throw new CommonRessourceNotFoundException(CodeStatutHttp.class); } actualEntity.setDateDerniereModification(new Date()); if (utilisateurConnecte != null) { actualEntity.setUtilisateurModification(utilisateurConnecte.getUserName()); } actualEntity.setCode(requestEntity.getCode()); actualEntity.setLibelle(requestEntity.getLibelle()); } @Override public void beforeRemove(CodeStatutHttp entity, User utilisateurConnecte) { entity.setTypeOperation(TypeOperation.SUPPRIMER); entity.setDateSuppression(new Date()); if (utilisateurConnecte != null) { entity.setUtilisateurSuppression(utilisateurConnecte.getUserName()); } } @Override public void beforeAdd(CodeStatutHttp entity, User utilisateurConnecte) { entity.setDateCreation(new Date()); if (utilisateurConnecte != null) { entity.setUtilisateurCreation(utilisateurConnecte.getUserName()); } } @Override public CodeStatutHttp remove(Long id, User connectedUser) { CodeStatutHttp entity = find(getEntityIdName(), id); beforeRemove(entity, connectedUser); return update(id, entity); } @Override public Class getClazz() { return CodeStatutHttpReporting.class; } @Override public Map getParameters() { return new HashMap<>(); } @Override public List getDatas(CriteriaEntityFromView searchEntity) throws Exception { return CommonsToolsEntity.convertToCodeStatutHttpReporting(findAll(searchEntity, Arrays.asList(), Arrays.asList())); } @Override public File printAll(ReportConfiguration reportConfiguration, User userConnected) throws Exception { return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, false ); } @Override public File printOne(ReportConfiguration reportConfiguration, User userConnected) throws Exception { return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, true); } @Override public File exportExcelAll(ReportConfiguration reportConfiguration, User userConnected) throws Exception { return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, false); } @Override public File exportExcelOne(ReportConfiguration reportConfiguration, User userConnected) throws Exception { return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, true); } @Override public RestrictionsContainer construireRequete(CodeStatutHttpSearch searchEntity, TypeOperation typeOperation) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public PaginationWithCriteriaEntityDAO paginationWithCriteriaEntityDAO() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } /** * Methode permettant de recuperer le libellé via un code * @param code * @return */ @Override public String getLibelleByCode(String code){ List liste = findByUniqueProperty("code", code, null); String libelle = null; if(liste != null && !liste.isEmpty()){ libelle = liste.get(0).getLibelle(); } return libelle; } }