diff --git a/siga/src/main/java/br/gov/jfrj/siga/vraptor/DpLotacaoController.java b/siga/src/main/java/br/gov/jfrj/siga/vraptor/DpLotacaoController.java index f9720627e2a..ab8ba9a66f9 100644 --- a/siga/src/main/java/br/gov/jfrj/siga/vraptor/DpLotacaoController.java +++ b/siga/src/main/java/br/gov/jfrj/siga/vraptor/DpLotacaoController.java @@ -42,6 +42,7 @@ import br.gov.jfrj.siga.dp.DpPessoa; import br.gov.jfrj.siga.dp.dao.CpDao; import br.gov.jfrj.siga.dp.dao.DpLotacaoDaoFiltro; +import br.gov.jfrj.siga.dp.dao.DpPessoaDaoFiltro; import br.gov.jfrj.siga.model.GenericoSelecao; import br.gov.jfrj.siga.model.Selecionavel; @@ -398,12 +399,25 @@ public void editarGravar(final Long id, final String nmLotacao, final Long idOrg @Post("/app/lotacao/ativarInativar") public void ativarInativar(final Long id) throws Exception { DpLotacao lotacao = dao().consultar(id, DpLotacao.class, false); - + // ativar if (lotacao.getDataFimLotacao() != null && !"".equals(lotacao.getDataFimLotacao())) { DpLotacao lotacaoNova = new DpLotacao(); - Cp.getInstance().getBL().copiaLotacao(lotacao, lotacaoNova); + Cp.getInstance().getBL().copiaLotacao(lotacao, lotacaoNova); dao().gravarComHistorico(lotacaoNova, lotacao, null, getIdentidadeCadastrante()); + + // setar a nova lotacao nos usuarios + DpPessoaDaoFiltro dpPessoaFiltro = new DpPessoaDaoFiltro(); + dpPessoaFiltro.setBuscarFechadas(true); // obter usuarios inativos. preciso obter os ativos também? + dpPessoaFiltro.setLotacao(lotacao); + List pessoas = CpDao.getInstance().consultarPorFiltro(dpPessoaFiltro, 0, 0); + + for (DpPessoa pessoa : pessoas) { + final DpPessoa pessoaNova = DpPessoa.novaInstanciaBaseadaEm(pessoa); // a nova instancia é criada ativa + pessoaNova.setLotacao(lotacaoNova); + dao().gravarComHistorico(pessoaNova, pessoa, dao().consultarDataEHoraDoServidor(), getIdentidadeCadastrante()); + } + } else {// inativar Integer qtdePessoa = CpDao.getInstance().pessoasPorLotacao(id, Boolean.TRUE, Boolean.FALSE).size(); long qtdeDocumentoCriadosPosse = dao().consultarQtdeDocCriadosPossePorDpLotacao(lotacao.getIdInicial()); diff --git a/siga/src/main/webapp/WEB-INF/page/dpLotacao/lista.jsp b/siga/src/main/webapp/WEB-INF/page/dpLotacao/lista.jsp index bb0f1e3e3bb..d2853515317 100644 --- a/siga/src/main/webapp/WEB-INF/page/dpLotacao/lista.jsp +++ b/siga/src/main/webapp/WEB-INF/page/dpLotacao/lista.jsp @@ -97,7 +97,6 @@ Sigla Externa Unidade Receptora - Suspensa Opções @@ -110,7 +109,6 @@ ${lotacao.sigla} ${lotacao.unidadeReceptora == true ? 'SIM' : 'NÃO'} ${lotacao.isExternaLotacao == 1 ? 'SIM' : 'NÃO'} - ${lotacao.isSuspensa == 1 ? 'SIM' : 'NÃO'} @@ -153,6 +151,14 @@ + + + +