use of com.tomasio.projects.trainning.dto.FaseDTO in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method calculateCustoRealizadoInstrutores.
@Override
@Transactional(readOnly = true)
public Map<String, BigDecimal> calculateCustoRealizadoInstrutores(TurmaEfetivaDTO[] turmas) {
Map<String, BigDecimal> result = new HashMap();
MatriculaDAO matriculaDAO = factory.getMatriculaDAO();
PessoaDAO pessoaDAO = factory.getPessoaDAO();
String parameterDiaria = ConfigHelper.getValue("custos.diaria");
String parameterPassagem = ConfigHelper.getValue("custos.passagem");
BigDecimal diaria = new BigDecimal(parameterDiaria);
BigDecimal passagem = new BigDecimal(parameterPassagem);
OrganizacaoDAO organizacaoDAO = factory.getOrganizacaoDAO();
BigDecimal transporteRealizado = new BigDecimal(0.00);
BigDecimal diariasRealizado = new BigDecimal(0.00);
try {
for (TurmaEfetivaDTO turma : turmas) {
if (turma.isCancelado()) {
continue;
}
List<Matricula> instrucoes = matriculaDAO.findAllInstrutores(turma.getId());
for (Matricula matricula : instrucoes) {
if (matricula.isCancelada()) {
continue;
}
matricula.getIndicacao().getId();
IndicacaoInstrutorDTO indicacao = (IndicacaoInstrutorDTO) matricula.getIndicacao().createDTO();
int intervalo = 0;
Interval instrucaoInterval = null;
if (indicacao.getPeriodo() != null && indicacao.getPeriodo().getDataInicio() != null && indicacao.getPeriodo().getDataTermino() != null) {
DateTime dataInicioInstrucao = new DateTime(indicacao.getPeriodo().getDataInicio().getTime());
DateTime dataTerminoInstrucao = new DateTime(indicacao.getPeriodo().getDataTermino().getTime());
if (dataInicioInstrucao.isAfter(dataTerminoInstrucao)) {
continue;
}
instrucaoInterval = new Interval(dataInicioInstrucao, dataTerminoInstrucao);
Days d = Days.daysBetween(dataInicioInstrucao, dataTerminoInstrucao);
intervalo = d.getDays() + 2;
}
if (intervalo <= 0) {
continue;
}
if (intervalo > 50) {
intervalo = 50;
}
Pessoa pessoa = pessoaDAO.find(indicacao.getPessoa().getId());
if (pessoa.getOrganizacao() != null) {
Organizacao organizacaoInstrutor = organizacaoDAO.find(pessoa.getOrganizacao().getId());
if (organizacaoInstrutor.createDTO() instanceof ExternoDTO) {
continue;
}
FaseDTO[] fases = turma.getFases();
for (FaseDTO fase : fases) {
if (fase.getDataInicio() != null && fase.getDataTermino() != null) {
DateTime dataInicioFase = new DateTime(fase.getDataInicio().getTime());
DateTime dataTerminoFase = new DateTime(fase.getDataTermino().getTime());
if (dataTerminoFase.isBefore(dataInicioFase)) {
continue;
}
Interval faseInterval = new Interval(dataInicioFase, dataTerminoFase);
if (faseInterval.contains(instrucaoInterval) || instrucaoInterval.contains(faseInterval)) {
Organizacao organizacaoLocal = organizacaoDAO.find(fase.getLocal().getId());
if (!organizacaoInstrutor.getCidade().getId().equals(organizacaoLocal.getCidade().getId())) {
diariasRealizado = diariasRealizado.add(diaria.multiply(new BigDecimal(intervalo)));
transporteRealizado = transporteRealizado.add(passagem);
}
}
}
}
}
}
}
} catch (DAOException ex) {
Logger.getLogger(AtividadesEnsinoServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
}
result.put("transporte", transporteRealizado);
result.put("diarias", diariasRealizado);
result.put("total", transporteRealizado.add(diariasRealizado));
return result;
}
use of com.tomasio.projects.trainning.dto.FaseDTO in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method calculateCustoPrevistoAdministrativo.
@Override
@Transactional(readOnly = true)
public BigDecimal calculateCustoPrevistoAdministrativo(TurmaEfetivaDTO[] turmas) {
BigDecimal result = new BigDecimal(0);
DistribuicaoDAO distribuicaoDAO = factory.getDistribuicaoDAO();
String parameterIcea = ConfigHelper.getValue("custos.icea");
BigDecimal custoIndividualIcea = new BigDecimal(parameterIcea);
OrganizacaoDAO organizacaoDAO = factory.getOrganizacaoDAO();
try {
for (TurmaEfetivaDTO turma : turmas) {
List<Distribuicao> vagas = distribuicaoDAO.findAll(turma.getId());
FaseDTO[] fases = turma.getFases();
for (FaseDTO fase : fases) {
if ("PRESENCIAL".equals(fase.getTipoFase())) {
int intervalo = 0;
if (fase.getDataInicio() != null && fase.getDataTermino() != null) {
DateTime dataInicio = new DateTime(fase.getDataInicio().getTime());
DateTime dataTermino = new DateTime(fase.getDataTermino().getTime());
Days d = Days.daysBetween(dataInicio, dataTermino);
intervalo = d.getDays() + 2;
}
if (intervalo <= 0) {
continue;
}
int countVagas = 0;
for (Distribuicao vaga : vagas) {
if (vaga.isReserva()) {
continue;
}
countVagas++;
}
BigDecimal custoTurma = custoIndividualIcea.multiply(new BigDecimal(intervalo)).multiply(new BigDecimal(countVagas));
result = result.add(custoTurma);
}
}
}
} catch (DAOException ex) {
Logger.getLogger(AtividadesEnsinoServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return result;
}
use of com.tomasio.projects.trainning.dto.FaseDTO in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method calculateCustoRealizadoAdministrativo.
@Override
@Transactional(readOnly = true)
public BigDecimal calculateCustoRealizadoAdministrativo(TurmaEfetivaDTO[] turmas) {
BigDecimal result = new BigDecimal(0);
MatriculaDAO matriculaDAO = factory.getMatriculaDAO();
String parameterIcea = ConfigHelper.getValue("custos.icea");
BigDecimal custoIndividualIcea = new BigDecimal(parameterIcea);
try {
for (TurmaEfetivaDTO turma : turmas) {
if (turma.isCancelado()) {
continue;
}
List<Matricula> alunos = matriculaDAO.findAllAlunos(turma.getId());
FaseDTO[] fases = turma.getFases();
for (FaseDTO fase : fases) {
if ("PRESENCIAL".equals(fase.getTipoFase())) {
int intervalo = 0;
if (fase.getDataInicio() != null && fase.getDataTermino() != null) {
DateTime dataInicio = new DateTime(fase.getDataInicio().getTime());
DateTime dataTermino = new DateTime(fase.getDataTermino().getTime());
Days d = Days.daysBetween(dataInicio, dataTermino);
intervalo = d.getDays() + 1;
}
if (intervalo <= 0) {
continue;
}
BigDecimal custoTurma = custoIndividualIcea.multiply(new BigDecimal(intervalo)).multiply(new BigDecimal(alunos.size()));
result = result.add(custoTurma);
}
}
}
} catch (DAOException ex) {
Logger.getLogger(AtividadesEnsinoServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return result;
}
use of com.tomasio.projects.trainning.dto.FaseDTO in project trainning by fernandotomasio.
the class ImportTurmasEfetivasFromPlanejamento method main.
public static void main(String[] args) {
Long planejamentoId = 714644L;
ApplicationContext context = new ClassPathXmlApplicationContext("service-context.xml");
AtividadesEnsinoService atividadesService = (AtividadesEnsinoService) context.getBean("atividadesEnsinoService");
TrainningService trainningService = (TrainningService) context.getBean("trainningService");
PlanningService planningService = (PlanningService) context.getBean("planningService");
try {
PlanejamentoDTO planejamento = planningService.findPlanejamento(planejamentoId);
TurmaPlanejadaDTO[] turmasPlanejadas = planningService.findAllTurmasPlanejadas(planejamentoId, null, null, null);
for (TurmaPlanejadaDTO turmaPlanejadaDTO : turmasPlanejadas) {
TurmaEfetivaDTO turmaEfetiva = new TurmaEfetivaDTO();
turmaEfetiva.setCurso(trainningService.findCurso(turmaPlanejadaDTO.getCurso().getId()));
turmaEfetiva.setResponsavelId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setOrganizacaoGestoraId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelMatriculaId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelConclusaoId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setResponsavelPreMatriculaId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelSelecaoId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelApresentacaoId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setNumeroTurma(turmaPlanejadaDTO.getNumeroTurma());
Set<FaseDTO> fasesDTO = new HashSet<FaseDTO>(Arrays.asList(turmaPlanejadaDTO.getFases()));
FaseDTO[] fasesArray = new FaseDTO[fasesDTO.size()];
int i = 0;
for (FaseDTO faseDTO : fasesDTO) {
fasesArray[i] = faseDTO;
i++;
}
turmaEfetiva.setFases(fasesArray);
turmaEfetiva.setTurmaPlanejadaId(turmaPlanejadaDTO.getId());
turmaEfetiva.setNumeroTurma(turmaPlanejadaDTO.getNumeroTurma());
turmaEfetiva.setQuantidadeVagas(turmaPlanejadaDTO.getQuantidadeVagas());
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dataInicio = turmaPlanejadaDTO.getDataInicio();
Date startIndicacoes = null;
Date endIndicacoes = null;
if (dataInicio != null) {
calendar.setTime(dataInicio);
try {
startIndicacoes = df.parse("01/02/2017");
calendar.add(Calendar.DATE, -20);
endIndicacoes = df.parse(df.format(calendar.getTime()));
} catch (ParseException ex) {
Logger.getLogger(ImportTurmasEfetivasFromPlanejamento.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
startIndicacoes = df.parse("01/02/2017");
endIndicacoes = df.parse("31/12/2017");
} catch (ParseException ex) {
Logger.getLogger(ImportTurmasEfetivasFromPlanejamento.class.getName()).log(Level.SEVERE, null, ex);
}
}
PeriodoDTO periodoIndicacoes = new PeriodoDTO();
periodoIndicacoes.setDataInicio(startIndicacoes);
periodoIndicacoes.setDataTermino(endIndicacoes);
turmaEfetiva.setPeriodoIndicacao(periodoIndicacoes);
// TODO: QuantidadeVagas?
// TODO: periodoIndicacao?
// TreinamentoPlanejadoDTO [] treinamentosPlanejados = turmaPlanejadaDTO.getTreinamentosPlanejados();
// for (TreinamentoPlanejadoDTO treinamentoPlanejadoDTO : treinamentosPlanejados) {
// DistribuicaoDTO distribuicao = new DistribuicaoDTO();
// distribuicao.setOrganizacao(treinamentoPlanejadoDTO.getOrganizacao());
// distribuicao.setQuantidadeVagas(treinamentoPlanejadoDTO.getQuantidade());
// distribuicao.setReserva(false);
// //turmaEfetiva.getDistribuicoes().add(distribuicao);
//
// }
Date exercicio = planejamento.getExercicio();
turmaEfetiva.setExercicio(exercicio);
Long turmaId = atividadesService.createTurmaEfetiva(turmaEfetiva);
System.out.println("Criada Turma " + turmaId);
// Distribuição de Vagas
DistribuicaoDTO[] distribuicoes = planningService.findAllDistribuicoes(turmaPlanejadaDTO.getId());
for (DistribuicaoDTO distribuicaoPlanejada : distribuicoes) {
DistribuicaoDTO distribuicaoEfetiva = new DistribuicaoDTO();
distribuicaoEfetiva.setOrganizacao(distribuicaoPlanejada.getOrganizacao());
distribuicaoEfetiva.setPrioridade(distribuicaoPlanejada.getPrioridade());
distribuicaoEfetiva.setQuantidadeVagas(distribuicaoPlanejada.getQuantidadeVagas());
distribuicaoEfetiva.setReserva(distribuicaoPlanejada.isReserva());
distribuicaoEfetiva.setTurma(atividadesService.findTurmaEfetiva(turmaId));
atividadesService.createDistribuicao(distribuicaoEfetiva);
}
}
System.out.println("Finalizado");
} catch (Exception e) {
}
}
use of com.tomasio.projects.trainning.dto.FaseDTO in project trainning by fernandotomasio.
the class TCATrainningDocumentODF method createAnexo2.
private void createAnexo2(List<TurmaPlanejadaDTO> turmasPlanejadas, Map<Long, CursoDTO> cursosMap) {
Map<Long, List<TurmaDTO>> turmasMap = // ReportUtil.buildTurmasMapByCurso(turmasPlanejadas);
null;
Map<Long, AnotacaoDTO[]> anotacoesMap = new HashMap<Long, AnotacaoDTO[]>();
// ReportUtil.arrangeAnotacoesMapByTurmas(turmasPlanejadas, anotacoesMap);
// ReportUtil.getCursos(cursosMap);
List<CursoDTO> cursos = null;
try {
for (CursoDTO curso : cursos) {
if (curso == null) {
continue;
}
odt.newParagraph(curso.getCodigo() + " - " + curso.getDescricao());
odt.newParagraph();
List<TurmaDTO> turmas = turmasMap.get(curso.getId());
FolhaRostoDTO folha = planningService.findFolhaRosto(curso.getCodigo());
if (folha == null) {
System.out.println("folha nula" + curso.getCodigo());
} else {
odt.newParagraph("FOLHA DE ROSTO:");
OdfTable folhaDeRostoTable = OdfTable.newTable(odt, 5, 1);
OdfTableCell objetivoCell = folhaDeRostoTable.getCellByPosition(0, 0);
objetivoCell.setStringValue("OBJETIVO: \n" + folha.getObjetivo());
OdfTableCell nivelCell = folhaDeRostoTable.getCellByPosition(0, 1);
nivelCell.setStringValue(folha.getNivel());
String numero = "";
if (curso.getDuracao() == 1) {
numero = "dia útil";
} else {
numero = "dias úteis";
}
OdfTableCell duracaoCell = folhaDeRostoTable.getCellByPosition(0, 2);
duracaoCell.setStringValue("DURAÇÃO: " + NumberConverterHelper.convert(curso.getDuracao()) + " " + numero);
OdfTableCell requisitosCell = folhaDeRostoTable.getCellByPosition(0, 3);
requisitosCell.setStringValue("PRÉ-REQUISITOS: \n" + folha.getPreRequisitos());
OdfTableCell disciplinasCell = folhaDeRostoTable.getCellByPosition(0, 4);
disciplinasCell.setStringValue("DISCIPLINAS: \n" + folha.getDisciplinas());
}
odt.newParagraph();
odt.newParagraph("TURMAS PLANEJADAS:");
if (turmas != null) {
for (TurmaDTO turma : turmas) {
TurmaPlanejadaDTO turmaPlanejada = (TurmaPlanejadaDTO) turma;
String textTurma = "";
if (turmaPlanejada.getNumeroTurma() < 10) {
textTurma = " - TU 0";
} else {
textTurma = " - TU ";
}
odt.newParagraph(curso.getCodigo() + textTurma + String.valueOf(turmaPlanejada.getNumeroTurma()));
odt.newParagraph("Local de Realização: " + turmaPlanejada.getLocal());
Calendar calendar = Calendar.getInstance();
calendar.setTime(turma.getDataInicio());
calendar.add(Calendar.DAY_OF_MONTH, -30);
odt.newParagraph("Prazo para Indicação: " + df.format(calendar.getTime()));
odt.newParagraph("Vagas: " + String.valueOf(turma.getQuantidadeVagas()));
odt.newParagraph("Período: ");
FaseDTO[] fases = turmaPlanejada.getFases();
OdfTable fasesTable = OdfTable.newTable(odt, fases.length + 1, 4);
OdfTableCell modadidadeHeader = fasesTable.getCellByPosition(0, 0);
modadidadeHeader.setStringValue("Modalidade");
modadidadeHeader.setHorizontalAlignment("center");
OdfTableCell localHeader = fasesTable.getCellByPosition(1, 0);
localHeader.setStringValue("Local");
localHeader.setHorizontalAlignment("center");
OdfTableCell inicioHeader = fasesTable.getCellByPosition(2, 0);
inicioHeader.setStringValue("Início");
inicioHeader.setHorizontalAlignment("center");
OdfTableCell terminoHeader = fasesTable.getCellByPosition(3, 0);
terminoHeader.setStringValue("Término");
terminoHeader.setHorizontalAlignment("center");
for (int i = 0; i < fases.length; i++) {
String local = "A DEFINIR";
if (fases[i].getLocal() != null) {
local = fases[i].getLocal().getSigla();
}
String dataInicio = "A DEFINIR";
if (fases[i].getDataInicio() != null) {
dataInicio = df.format(fases[i].getDataInicio());
}
String dataTermino = "A DEFINIR";
if (fases[i].getDataTermino() != null) {
dataTermino = df.format(fases[i].getDataTermino());
}
OdfTableCell modadidadeCell = fasesTable.getCellByPosition(0, i + 1);
modadidadeCell.setStringValue(fases[i].getDescricao());
OdfTableCell localCell = fasesTable.getCellByPosition(1, i + 1);
localCell.setStringValue(local);
localCell.setHorizontalAlignment("center");
OdfTableCell inicioCell = fasesTable.getCellByPosition(2, i + 1);
inicioCell.setStringValue(dataInicio);
inicioCell.setHorizontalAlignment("center");
OdfTableCell terminoCell = fasesTable.getCellByPosition(3, i + 1);
terminoCell.setStringValue(dataTermino);
terminoCell.setHorizontalAlignment("center");
}
odt.newParagraph("Distribuição de Vagas:");
TreinamentoPlanejadoDTO[] treinamentosPlanejados = null;
// turmaPlanejada.getTreinamentosPlanejados();
Arrays.sort(treinamentosPlanejados, new Comparator<TreinamentoPlanejadoDTO>() {
@Override
public int compare(TreinamentoPlanejadoDTO o1, TreinamentoPlanejadoDTO o2) {
return o1.getOrganizacao().getSigla().compareTo(o2.getOrganizacao().getSigla());
}
});
OdfTable planejadosTable = OdfTable.newTable(odt, treinamentosPlanejados.length + 1, 2);
OdfTableCell unidadeHeader = planejadosTable.getCellByPosition(0, 0);
unidadeHeader.setStringValue("Organização");
unidadeHeader.setHorizontalAlignment("center");
OdfTableCell vagasHeader = planejadosTable.getCellByPosition(1, 0);
vagasHeader.setStringValue("Vagas");
vagasHeader.setHorizontalAlignment("center");
for (int i = 0; i < treinamentosPlanejados.length; i++) {
OdfTableCell unidadeCell = planejadosTable.getCellByPosition(0, i + 1);
unidadeCell.setStringValue(treinamentosPlanejados[i].getOrganizacao().getSigla());
OdfTableCell vagasCell = planejadosTable.getCellByPosition(1, i + 1);
vagasCell.setStringValue(String.valueOf(treinamentosPlanejados[i].getQuantidade()));
vagasCell.setHorizontalAlignment("center");
}
AnotacaoDTO[] listAnotacoes = anotacoesMap.get(turma.getId());
String anotacao = "";
if (anotacoesMap.get(turma.getId()) != null) {
for (AnotacaoDTO anotacaoDTO : listAnotacoes) {
if (!anotacaoDTO.isVisibleInTca()) {
anotacao += anotacaoDTO.getTexto() + "\n";
}
}
}
if (listAnotacoes != null && listAnotacoes.length > 0) {
odt.newParagraph("Observações: " + anotacao);
}
odt.newParagraph();
}
}
}
} catch (Exception ex) {
Logger.getLogger(TCATrainningDocumentODF.class.getName()).log(Level.SEVERE, null, ex);
}
}
Aggregations