package com.megatim.fdxconsultation.core.impl.referentiel;
|
|
import com.megatim.fdxcommons.model.referentiel.Pays;
|
import com.megatim.fdxconsultation.core.ifaces.referentiel.PaysManager;
|
import com.megatim.fdxcommons.model.enumeration.OrderByType;
|
import com.megatim.fdxcommons.model.pojo.CriteriaEntity;
|
import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
|
import com.megatim.fdxcommons.tools.exceptions.CommonApplicationServerException;
|
import com.megatim.fdxconsultation.dao.ifaces.referentiel.PaysDAO;
|
import com.megatim.fdxcommons.model.pojo.CriteriaFormRequest;
|
import com.megatim.fdxcommons.model.pojo.OrderByDefinition;
|
import com.megatim.fdxconsultation.model.administration.User;
|
import com.megatim.fdxconsultation.reporting.model.referentiel.PaysReporting;
|
import com.megatim.fdxconsultation.tools.CommonTools;
|
import com.megatim.fdxconsultation.tools.CommonsToolsEntity;
|
import com.megatim.reporting.adhoc.dto.ReportConfiguration;
|
import java.io.File;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
import java.util.stream.Collectors;
|
import javax.ejb.EJB;
|
import javax.enterprise.context.Dependent;
|
import javax.persistence.EntityManager;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Dependent
|
public class PaysManagerImpl implements PaysManager {
|
|
@EJB
|
private PaysDAO dao;
|
|
@Override
|
public PaysDAO getDao() {
|
return dao;
|
}
|
|
@Override
|
public String getEntityIdName() {
|
return "code";
|
}
|
|
@Override
|
public Class<PaysReporting> getClazz() {
|
return PaysReporting.class;
|
}
|
|
@Override
|
public List<PaysReporting> getDatas(CriteriaEntityFromView criterion) throws Exception {
|
return CommonsToolsEntity.convertToPaysReporting(findAll(criterion, Arrays.asList("participants"), Arrays.asList()));
|
}
|
|
@Override
|
public Map<String, Object> getParameters() {
|
return new HashMap<>();
|
}
|
|
@Override
|
public List<Pays> findAll(CriteriaFormRequest criteriaFormRequest, List<String> fetchEagerFields) {
|
try {
|
List<String> fieldsNotFound = CommonTools.checkIfEntityField(Pays.class, fetchEagerFields);
|
if (!fieldsNotFound.isEmpty()) {
|
throw new Exception("Les champs suivants n'appartiennent pas à l'entité Pays : " + fieldsNotFound.stream().collect(Collectors.joining(",", "{", "}")));
|
}
|
|
CriteriaEntityFromView criterion = criteriaFormRequest != null ? criteriaFormRequest.getCriteria() : null;
|
return getDao().findAll(criterion, fetchEagerFields, Arrays.asList(new OrderByDefinition("dateCreation", OrderByType.DESC)));
|
} catch (Exception ex) {
|
Logger.getLogger(PaysManagerImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
|
throw new CommonApplicationServerException();
|
}
|
|
}
|
|
@Override
|
public List<Pays> findWithPagination(CriteriaFormRequest criteriaFormRequest, List<String> fetchEagerFields, int pageNumber, int pageSize) {
|
try {
|
List<String> fieldsNotFound = CommonTools.checkIfEntityField(Pays.class, fetchEagerFields);
|
if (!fieldsNotFound.isEmpty()) {
|
throw new Exception("Les champs suivants n'appartiennent pas à l'entité Pays : " + fieldsNotFound.stream().collect(Collectors.joining(",", "{", "}")));
|
}
|
|
CriteriaEntityFromView criterion = criteriaFormRequest != null ? criteriaFormRequest.getCriteria() : null;
|
return getDao().findWithPagination(criterion, fetchEagerFields, Arrays.asList(new OrderByDefinition("dateCreation", OrderByType.DESC)), pageNumber, pageSize);
|
} catch (Exception ex) {
|
Logger.getLogger(PaysManagerImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public Class<Pays> getManagedEntityClass() {
|
return Pays.class;
|
}
|
|
@Override
|
public EntityManager getEntityManager() {
|
return getDao().getEntityManager();
|
}
|
|
@Override
|
public File printAll(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, false);
|
}
|
|
@Override
|
public File printOne(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return generatePdf(finalReportConfiguration(reportConfiguration), userConnected, true);
|
}
|
|
@Override
|
public File exportExcelAll(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, false);
|
}
|
|
@Override
|
public File exportExcelOne(ReportConfiguration<CriteriaFormRequest> reportConfiguration, User userConnected) throws Exception {
|
return exportExcel(finalReportConfiguration(reportConfiguration), userConnected, true);
|
}
|
|
}
|