Commit be5ee056e8ac0f52e959940b61ca70f10c5fd9ca

Authored by maycon.silva
1 parent 069bedf9
Exists in master

Redmine #Correcao Homologacao 4599

cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
... ... @@ -95,6 +95,21 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
95 95 * @return
96 96 */
97 97 Collection<UnidadeProcesso> findProcesso(Processo processo);
  98 +
  99 + /**
  100 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  101 + *
  102 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  103 + *
  104 + * Método responsável por
  105 + *
  106 + * @author maycon.silva
  107 + *
  108 + * @param processo
  109 + * @return
  110 + */
  111 + public Collection<UnidadeProcesso> findByPorIdProcessoEmExecucao(Long idProcesso);
  112 +
98 113  
99 114 /**
100 115 * <p>
... ... @@ -114,5 +129,21 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
114 129 * @return UnidadeProcesso
115 130 */
116 131 UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade);
  132 +
  133 +
  134 + /**
  135 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  136 + *
  137 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  138 + *
  139 + * Método responsável por
  140 + *
  141 + * @author maycon.silva
  142 + *
  143 + * @param idProcesso
  144 + * @param idUnidade
  145 + * @return
  146 + */
  147 + UnidadeProcesso obterPorUnidadeEProcessoEmExecucao(Long idProcesso, Long idUnidade);
117 148  
118 149 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
... ... @@ -11,6 +11,8 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
11 11 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
12 12 import br.com.centralit.framework.util.UtilColecao;
13 13  
  14 +import com.googlecode.genericdao.search.Filter;
  15 +
14 16 /**
15 17 * <p>
16 18 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -75,10 +77,25 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
75 77 SearchSeven searchSeven = new SearchSeven();
76 78  
77 79 searchSeven.addFilterEqual("processo.id", idProcesso);
  80 +
  81 + searchSeven.addFilterOr(Filter.equal("concluido", false), Filter.isNull("concluido"));
78 82  
79 83 return this.search(searchSeven);
80 84  
81 85 }
  86 +
  87 + public Collection<UnidadeProcesso> findByPorIdProcessoEmExecucao(Long idProcesso) {
  88 +
  89 + SearchSeven searchSeven = new SearchSeven();
  90 +
  91 + searchSeven.addFilterEqual("processo.id", idProcesso);
  92 +
  93 + searchSeven.addFilterOr(Filter.equal("concluido", false), Filter.isNull("concluido"));
  94 +
  95 + return this.search(searchSeven);
  96 +
  97 + }
  98 +
82 99  
83 100 /**
84 101 *
... ... @@ -166,5 +183,19 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
166 183 return this.searchUnique(searchSeven);
167 184  
168 185 }
  186 +
  187 + public UnidadeProcesso obterPorUnidadeEProcessoEmExecucao(Long idProcesso, Long idUnidade) {
  188 +
  189 + SearchSeven searchSeven = new SearchSeven();
169 190  
  191 + searchSeven.addFilterEqual("processo.id", idProcesso);
  192 +
  193 + searchSeven.addFilterEqual("unidade.id", idUnidade);
  194 +
  195 + searchSeven.addFilterOr( Filter.isNull("concluido"));
  196 +
  197 + searchSeven.setMaxResults(1);
  198 +
  199 + return this.searchUnique(searchSeven);
  200 + }
170 201 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
... ... @@ -106,10 +106,6 @@ public class Processo extends PersistentObjectUnidade {
106 106 private Long idTask;
107 107  
108 108 @Transient
109   - @JsonView({ Views.ProcessoAutoCompleteView.class })
110   - private boolean anexado;
111   -
112   - @Transient
113 109 @JsonView({ Views.ProcessoEdit.class })
114 110 private boolean tramitado;
115 111  
... ... @@ -142,7 +138,7 @@ public class Processo extends PersistentObjectUnidade {
142 138  
143 139 /** Atributo status. */
144 140 @ManyToOne(fetch = FetchType.LAZY)
145   - @JsonView({ Views.ProcessoEdit.class, ViewsEcm.MetadadoProcessoView.class })
  141 + @JsonView({ Views.ProcessoEdit.class, Views.ProcessoAutoCompleteView.class, ViewsEcm.MetadadoProcessoView.class})
146 142 private Dominio status;
147 143  
148 144 /** Atributo tramitarDocumento. */
... ... @@ -151,7 +147,7 @@ public class Processo extends PersistentObjectUnidade {
151 147 private TramitarDocumento tramitarDocumento;
152 148  
153 149 /** Atributo tipoProcesso. */
154   - @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, ViewsEcm.MetadadoProcessoView.class })
  150 + @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, ViewsEcm.MetadadoProcessoView.class, Views.ProcessoAutoCompleteView.class})
155 151 @ManyToOne(fetch = FetchType.LAZY)
156 152 private TipoProcesso tipoProcesso;
157 153  
... ... @@ -867,14 +863,4 @@ public class Processo extends PersistentObjectUnidade {
867 863 return !UtilColecao.isVazio(this.getUnidadesProcesso()) && this.getUnidadesProcesso().size() > 1;
868 864 }
869 865  
870   - /**
871   - * Retorna o valor do atributo <code>anexado</code>
872   - *
873   - * @return <code>boolean</code>
874   - */
875   - public boolean isAnexado() {
876   -
877   - return !UtilColecao.isVazio(this.getAnexados()) && this.getAnexados().size() >= 1;
878   - }
879   -
880 866 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
... ... @@ -75,6 +75,20 @@ public interface UnidadeProcessoService extends GenericService&lt;UnidadeProcesso,
75 75 * @return
76 76 */
77 77 Collection<UnidadeProcesso> findByIdProcesso(Long idProcesso);
  78 +
  79 + /**
  80 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  81 + *
  82 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  83 + *
  84 + * Método responsável por
  85 + *
  86 + * @author maycon.silva
  87 + *
  88 + * @param idProcesso
  89 + * @return
  90 + */
  91 + Collection<UnidadeProcesso> findByPorIdProcessoEmExecucao(Long idProcesso);
78 92  
79 93 /**
80 94 * <p>
... ... @@ -168,5 +182,20 @@ public interface UnidadeProcessoService extends GenericService&lt;UnidadeProcesso,
168 182 * @param processo
169 183 */
170 184 void saveUnidadeProcesso(Processo processo);
  185 +
  186 + /**
  187 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  188 + *
  189 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  190 + *
  191 + * Método responsável por
  192 + *
  193 + * @author maycon.silva
  194 + *
  195 + * @param idProcesso
  196 + * @param idUnidade
  197 + * @return
  198 + */
  199 + UnidadeProcesso obterPorUnidadeEProcessoEmExecucao(Long idProcesso, Long idUnidade);
171 200  
172 201 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
... ... @@ -638,6 +638,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
638 638 entity.setVersaoAnterior(versaoAnterior);
639 639 entity.setEditor(this.getUsuario());
640 640 entity.setAutor(this.getUsuario());
  641 + entity.setOrigem(versaoAnterior.getOrigem());
641 642  
642 643 if (entity != null && entity.getNovaVersao()) {
643 644 entity.setVersaoDocumento(Math.floor(entity.getVersaoDocumento()) + 1);
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
... ... @@ -620,7 +620,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
620 620 // Verifica se o usuario logado está lotado na unidade.
621 621 if (UtilObjeto.isReferencia(this.getUsuario().getUnidade())) {
622 622  
623   - UnidadeProcesso unidadeProcesso = this.unidadeProcessoService.obterPorUnidadeEProcesso(processo.getId(), this.getUsuario().getUnidade().getId());
  623 + UnidadeProcesso unidadeProcesso = this.unidadeProcessoService.obterPorUnidadeEProcessoEmExecucao(processo.getId(), this.getUsuario().getUnidade().getId());
624 624 // Verifica se o processo foi enviado para essa unidade e se é o primeiro acesso
625 625 if (UtilObjeto.isReferencia(unidadeProcesso) && unidadeProcesso.getPrimeiroAcesso()) {
626 626  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
... ... @@ -266,6 +266,17 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
266 266  
267 267 return this.unidadeProcessoDao.findByIdProcesso(idProcesso);
268 268 }
  269 +
  270 + /**
  271 + *
  272 + */
  273 + @Override
  274 + public Collection<UnidadeProcesso> findByPorIdProcessoEmExecucao(Long idProcesso) {
  275 +
  276 + return this.unidadeProcessoDao.findByPorIdProcessoEmExecucao(idProcesso);
  277 + }
  278 +
  279 +
269 280  
270 281 /**
271 282 * <p>
... ... @@ -319,5 +330,14 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
319 330  
320 331 return this.unidadeProcessoDao.obterPorUnidadeEProcesso(idProcesso, idUnidade);
321 332 }
  333 +
  334 + /**
  335 + *
  336 + */
  337 + public UnidadeProcesso obterPorUnidadeEProcessoEmExecucao(Long idProcesso, Long idUnidade){
  338 +
  339 + return this.unidadeProcessoDao.obterPorUnidadeEProcessoEmExecucao(idProcesso, idUnidade);
  340 +
  341 + }
322 342  
323 343 }
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
... ... @@ -89,6 +89,29 @@ public class UnidadeProcessoController extends GenericController&lt;UnidadeProcesso
89 89  
90 90 return responseBody;
91 91 }
  92 +
  93 + /**
  94 + * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
  95 + *
  96 + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
  97 + *
  98 + * Método responsável por
  99 + *
  100 + * @author maycon.silva
  101 + *
  102 + * @param idProcesso
  103 + * @return
  104 + */
  105 + @RequestMapping(value = "/findByPorIdProcessoEmExecucao", method = RequestMethod.GET, produces = "application/json")
  106 + @ResponseBody
  107 + public ResponseBodyWrapper findByPorIdProcessoEmExecucao(@RequestParam(value = "idProcesso") Long idProcesso) {
  108 +
  109 + final Collection<UnidadeProcesso> list = this.unidadeProcessoService.findByPorIdProcessoEmExecucao(idProcesso);
  110 +
  111 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(list, Views.EnviarProcessoView.class);
  112 +
  113 + return responseBody;
  114 + }
92 115  
93 116 /**
94 117 * <p>
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AnexarProcessoController.js
... ... @@ -59,8 +59,7 @@ citApp.controller(&#39;AnexarProcessoController&#39;, [&#39;$scope&#39;, &#39;UnidadeProcessoReposit
59 59  
60 60 //Buscar processo através do nup
61 61 $scope.findAutoCompleteProcesso = function(value){
62   - return ProcessoRepository.findAutoComplete('nup', value).then(function(result) {
63   -
  62 + return ProcessoRepository.findAutoComplete('nup', value).then(function(result) {
64 63 return $filter('idNotEqualProcessoAnexadoAndProcessoPai')(result, $scope.anexarProcessoVH.listaProcessoAnexado, $scope.$parent.$parent.processo);
65 64 });
66 65 };
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
... ... @@ -82,19 +82,21 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
82 82  
83 83 // ABRE ABA PARA CRIAR NOVO PROCESSO
84 84 $scope.novoProcesso = function () {
  85 +
  86 +
  87 + $scope.openWorkspaceIfNotOpen($translate.instant('ECM.LABEL.NOVOPROCESSO'), '/cit-ecm-web/html/processo/processoEdit.html', 'mod-orange');
  88 +
85 89  
86   - var workspace = angular.element( '#editProcessoEcm' ).scope().workspace;
87   - if ( workspace ) {
88   - angular.element( "#citapp-controller" ).scope().removeWorkspace( workspace.id );
89   - }
90   -
91   - $scope.openWorkspaceIfNotOpen( $translate.instant( 'ECM.LABEL.PROCESSO' ), '/cit-ecm-web/html/processo/processo.html', 'mod-orange' );
92   -
93   - $timeout( function () {
94   - angular.element( '#editProcessoEcm' ).scope().$showPageEditWorkspace( angular.element( '#editProcessoEcm' ).scope().workspace );
95   - angular.element( '#editProcessoEcm' ).scope().resetForm();
  90 +
  91 + $timeout(function() {
  92 + angular.element('#editProcessoEcm').scope().$showPageEditWorkspace(angular.element('#editProcessoEcm').scope().workspace);
  93 + $timeout(function(){
  94 + angular.element('#editProcessoEcm').scope().resetForm();
  95 + }, 1000);
96 96  
97   - }, 600 );
  97 + }, 300);
  98 +
  99 + angular.element("#citapp-controller").scope().removeWorkspace($scope.workspace.id);
98 100  
99 101 };
100 102  
... ... @@ -275,8 +277,8 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
275 277 $scope.isProcessoEdit = true;
276 278 $scope.isVersoesDocumento = false;
277 279  
278   - $timeout( function () {
279   - angular.element( '#editProcessoEcm' ).scope().getProcesso( $scope.processo, true );
  280 + $timeout( function () {
  281 + angular.element( '#editProcessoEditEcm' ).scope().getProcesso( $scope.processo, true );
280 282 angular.element( document.querySelector( '#topoMenu' ) ).remove();
281 283 angular.element( document.querySelector( '#cabecalhoProcesso' ) ).remove();
282 284 } );
... ... @@ -613,8 +615,6 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
613 615 angular.element( "#citapp-controller" ).scope().removeWorkspace( workspace.id );
614 616 }
615 617  
616   - $scope.tratimitado();
617   -
618 618 $scope.setLoading( false );
619 619 } );
620 620  
... ... @@ -665,7 +665,7 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
665 665 }
666 666 if($scope.usuarioLogado.unidade){
667 667  
668   - UnidadeProcessoRepository.findByIdProcesso($scope.idProcesso).then(function(result){
  668 + UnidadeProcessoRepository.findByPorIdProcessoEmExecucao($scope.idProcesso).then(function(result){
669 669  
670 670 $scope.processoUnidades = result;
671 671  
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ProcessoController.js
1 1 'use strict';
2 2  
3   -citApp.controller('ProcessoController', ['$scope', 'ProcessoRepository', 'DominioRepository', '$translate', '$timeout', 'TipoDocumentoRepository', 'EstruturaOrganizacionalRepository', 'PessoaRepository', 'NivelAcessoTipoProcessoRepository', 'TipoProcessoRepository', 'PlanoClassificacaoRepository', 'TipoProcessoPlanoClassificacaoRepository', '$filter', 'HipoteseLegalRepository', 'HistoricoAlteracaoProcessoRepository', function ProcessoController($scope, ProcessoRepository, DominioRepository, $translate, $timeout, TipoDocumentoRepository , EstruturaOrganizacionalRepository , PessoaRepository, NivelAcessoTipoProcessoRepository,TipoProcessoRepository ,PlanoClassificacaoRepository, TipoProcessoPlanoClassificacaoRepository, $filter, HipoteseLegalRepository, HistoricoAlteracaoProcessoRepository) {
  3 +citApp.controller('ProcessoController', ['$scope', 'ProcessoRepository', 'DominioRepository', '$translate', '$timeout', 'TipoDocumentoRepository', 'EstruturaOrganizacionalRepository', 'PessoaRepository', 'NivelAcessoTipoProcessoRepository', 'TipoProcessoRepository', 'PlanoClassificacaoRepository', 'TipoProcessoPlanoClassificacaoRepository', '$filter', 'HipoteseLegalRepository', 'HistoricoAlteracaoProcessoRepository','InteressadoProcessoRepository', function ProcessoController($scope, ProcessoRepository, DominioRepository, $translate, $timeout, TipoDocumentoRepository , EstruturaOrganizacionalRepository , PessoaRepository, NivelAcessoTipoProcessoRepository,TipoProcessoRepository ,PlanoClassificacaoRepository, TipoProcessoPlanoClassificacaoRepository, $filter, HipoteseLegalRepository, HistoricoAlteracaoProcessoRepository, InteressadoProcessoRepository) {
4 4  
5 5 $scope.processo = {};
6 6 $scope.assuntoPlanoClassificacao = null;
... ... @@ -8,16 +8,21 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
8 8 $scope.processo.tipoProtocolo = {
9 9 codigo : 1
10 10 };
  11 +
  12 + $scope.setForm = function(scope){
  13 + this.processoForm = scope.processoForm;
  14 + };
11 15  
12 16 // Limpa formulário para novo cadastro
13 17 $scope.resetForm = function() {
14 18 $scope.limparProcesso();
15   -
  19 +
16 20 $scope.edit = true;
17 21 $timeout(function(){
18 22 $scope.processoForm.$submitted = false;
19 23 $scope.processoForm.$setPristine();
20 24 });
  25 +
21 26 };
22 27  
23 28 // Atualiza pagina de pesquisa
... ... @@ -62,9 +67,11 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
62 67  
63 68 ProcessoRepository.save($scope.processo).then(function(result) {
64 69 $scope.processo = result.originalElement;
65   - $scope.showAlert("success", $translate.instant('ECM.MSG.SALVO_SUCESSO'), $translate.instant('ECM.MSG.O_PROCESSO') + " " + $scope.processo.nup);
66 70  
67 71 if(isNew){
  72 +
  73 + $scope.showAlert("success", $translate.instant('ECM.MSG.SALVO_SUCESSO'), $translate.instant('ECM.MSG.O_PROCESSO') + " " + $scope.processo.nup);
  74 +
68 75 var historicoAlteracaoProcesso = {
69 76 descricaoAcao : $translate.instant('ECM.MSG_HISTORICO_ECM.INCLUSAO_PROCESSO'),
70 77 processo : $scope.processo,
... ... @@ -76,7 +83,11 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
76 83 $scope.setLoadingSalva(false);
77 84  
78 85 });
  86 +
  87 + $scope.resetForm();
  88 +
79 89 } else {
  90 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
80 91 var historicoAlteracaoProcesso = {
81 92 descricaoAcao : $translate.instant('ECM.MSG_HISTORICO_ECM.ALTERACAO_METADADO_PROCESSO'),
82 93 processo : $scope.processo,
... ... @@ -89,8 +100,7 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
89 100  
90 101 });
91 102 }
92   - $scope.processoForm.$submitted = false;
93   - $scope.resetForm();
  103 + $scope.processoForm.$submitted = false;
94 104 });
95 105  
96 106 }else{
... ... @@ -103,8 +113,9 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
103 113 $scope.limparProcesso = function(){
104 114 $scope.processo = {};
105 115 $scope.assuntoPlanoClassificacao = null;
106   - $scope.sugestoes = null;
107 116 $scope.assuntoSelecionado = null;
  117 + $scope.sugestoes = [];
  118 + $scope.assuntos = [];
108 119 $scope.processo.tipoProtocolo = {
109 120 codigo : 1
110 121 };
... ... @@ -113,7 +124,9 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
113 124  
114 125 // Consulta entidade e mostra no formulario
115 126 $scope.getProcesso = function(processo, edit){
116   -
  127 +
  128 + $scope.processoForm = $scope.processoEditController.processoForm;
  129 +
117 130 $scope.setLoadingGet(true);
118 131  
119 132 ProcessoRepository.get(processo.id).then(function(result) {
... ... @@ -130,16 +143,12 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
130 143 $scope.setAssuntoModelByTipoAssunto = function(){
131 144 $scope.sugestoes = [];
132 145 $scope.assuntos = [];
133   - TipoProcessoPlanoClassificacaoRepository.findByIdJoin('tipoProcesso.id', $scope.processo.tipoProcesso.id).then(function(result){
134   - angular.forEach(result, function (item) {
135   - $scope.assuntos.push(item.planoClassificacao);
136   - });
137   - if($scope.processo.tipoAssunto == 1){
138   - $scope.sugestoes.push($scope.processo.assunto);
139   - }else if($scope.processo.tipoAssunto == 2 ) {
140   - $scope.assuntoSelecionado = $scope.processo.assunto;
141   - }
142   - });
  146 +
  147 + if($scope.processo.tipoAssunto == 1){
  148 + $scope.sugestoes.push($scope.processo.assunto);
  149 + }else if($scope.processo.tipoAssunto == 2 ) {
  150 + $scope.assuntoSelecionado = $scope.processo.assunto;
  151 + }
143 152  
144 153 };
145 154  
... ... @@ -177,6 +186,8 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
177 186  
178 187 $scope.findSugestaoAssunto = function(tipoProcesso){
179 188  
  189 + $scope.assuntos = [];
  190 +
180 191 TipoProcessoPlanoClassificacaoRepository.findPorTipoProcesso(tipoProcesso.id).then(function(result){
181 192  
182 193 angular.forEach(result, function (item) {
... ... @@ -191,6 +202,8 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
191 202 $scope.nivelAcessoList = [];
192 203  
193 204 $scope.assuntos = [];
  205 +
  206 + $scope.findSugestaoAssunto(tipoProcesso);
194 207  
195 208 NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(tipoProcesso.id).then(function(result) {
196 209  
... ... @@ -198,7 +211,6 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
198 211 //Setar o nivelAcessoTipoProcesso público.
199 212 $scope.processo.nivelAcesso = $.grep($scope.nivelAcessoList, function(e){ return e.nivelAcesso.codigo == 2; })[0].originalElement;
200 213  
201   - $scope.findSugestaoAssunto(tipoProcesso);
202 214 });
203 215 };
204 216  
... ... @@ -261,25 +273,46 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
261 273 $scope.processo.interessados.push({
262 274 interessado : item
263 275 });
  276 + //Limpa autoComplete de interessado
264 277 $timeout(function(){
265   - $scope.interessado = null;
  278 + if($scope.processoForm && $scope.processoForm['interessado']) {
  279 + $scope.processoForm['interessado'].$setViewValue('');
  280 + $scope.processoForm['interessado'].$render();
  281 + };
266 282 });
267 283 };
268 284  
269 285 $scope.removerInteressados = function(){
270 286 if($scope.interessadoChecked){
271   - $scope.$openModalConfirm({message: $translate.instant('MSG.DESEJA_EXCLUIR_ITENS'), callback: $scope.excluir, item: $scope.interessadoChecked});
  287 + $scope.$openModalConfirm({message: $translate.instant('MSG.DESEJA_EXCLUIR_ITENS'), callback: $scope.excluirInteressado, item: $scope.interessadoChecked});
  288 + }else{
  289 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'), " ", false);
272 290 }
273 291 };
274   -
275   - $scope.excluir = function() {
  292 +
  293 + //Setar o interessado para remoção.
  294 + $scope.setInteressadoRemocao = function(interessadoRemocao, $index){
  295 + $scope.interessadoChecked = interessadoRemocao;
  296 + $scope.interessadoChecked.$index = $index;
  297 + };
  298 +
  299 + //Remove o interessado
  300 + $scope.excluirInteressado = function() {
276 301 var obj = this.item;
277 302 if (obj.id) {
278   - $scope.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  303 + InteressadoProcessoRepository.remove(obj).then(function() {
  304 +
  305 + });
279 306 }
  307 + $scope.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
280 308 $scope.processo.interessados.splice(obj.$index, 1);
281 309 $scope.$modalConfirmInstance.dismiss('cancel');
  310 +
  311 + $scope.interessadoChecked = null;
282 312 };
  313 +
  314 +
  315 +
283 316  
284 317 DominioRepository.findAllDominio('tipoProtocoloNup').then(function(result) {
285 318 $scope.dominiosTipoProtocoloNup = result;
... ... @@ -296,17 +329,14 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
296 329 }, 600);
297 330  
298 331 };
299   -
300   -/* $scope.update_select = function(sugestao) {
301   - console.log($scope.selection);
302   - };*/
  332 +
303 333  
304 334 $scope.setAssunto = function(itens){
305 335  
  336 + $scope.processo.tipoAssunto = 1;
306 337 if(itens.length > 1){
307 338  
308 339 $scope.processo.assunto = itens[itens.length - 1];
309   - $scope.processo.tipoAssunto = 1;
310 340 $scope.sugestoes = [];
311 341 $scope.sugestoes.push($scope.assunto);
312 342  
... ... @@ -321,5 +351,14 @@ citApp.controller(&#39;ProcessoController&#39;, [&#39;$scope&#39;, &#39;ProcessoRepository&#39;, &#39;Domini
321 351 $scope.processo.tipoAssunto = 2;
322 352 $scope.processo.assunto = assuntoSelecionado;
323 353 };
  354 +
  355 + $scope.inicializarProcesso = function(){
  356 + $scope.resetForm();
  357 + $timeout(function() {
  358 + $scope.processoForm = $scope.processoNewController.processoForm;
  359 + });
  360 + };
  361 +
  362 + $scope.inicializarProcesso();
324 363  
325 364 }]);
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js
... ... @@ -18,6 +18,11 @@ citApp.factory(&#39;UnidadeProcessoRepository&#39;, [&#39;RestangularEcm&#39;, &#39;AbstractReposito
18 18  
19 19 };
20 20  
  21 + this.findByPorIdProcessoEmExecucao = function(idProcesso) {
  22 + return restangularEcm.one(this.route).getList("findByPorIdProcessoEmExecucao", {"idProcesso": idProcesso}).then();
  23 + };
  24 +
  25 +
21 26 }
22 27  
23 28 AbstractRepository.extend(UnidadeProcessoRepository);
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html
... ... @@ -25,34 +25,5 @@
25 25  
26 26 <div ng-include src="'/cit-ecm-web/html/processo/metadadoProcessoView.html'" ng-show="isVisualizarMetadadoProcesso" />
27 27  
  28 +<div ng-include src="'/cit-ecm-web/html/processo/processoMetadadoEdit.html'" ng-show="isProcessoEdit" />
28 29  
29   -
30   -<div id="widget-processo" ng-show="isProcessoEdit" class="widget-box margin-bottom">
31   - <div class="widget-header">
32   - <h2 class="widget-title">
33   - <translate>ECM.LABEL.PROCESSO</translate>
34   - </h2>
35   -
36   - <div class="widget-toolbar">
37   - <a href="#void" ng-click="closeWidget('widget-processo')"> <i class="fa fa-close"></i>
38   - </a>
39   - </div>
40   - </div>
41   - <div class="widget-body">
42   - <div class="widget-main clearfix">
43   - <div ng-include src="'/cit-ecm-web/html/processo/processoEdit.html'" />
44   - </div>
45   - </div>
46   -
47   - <div class="row">
48   - <div style="margin-top: -38px; margin-left: 17px;" class="col-md-12">
49   - <button class="btn btn-sm btn-primary" ng-click="saveOrUpdateProcessoECM()" ng-show="true">
50   - <translate>LABEL.SALVAR</translate>
51   - </button>
52   -
53   - <button class="btn btn-sm btn-primary" ng-click="closeWidget('widget-processo')" ng-show="true">
54   - <translate>LABEL.CANCELAR</translate>
55   - </button>
56   - </div>
57   - </div>
58   -</div>
59 30 \ No newline at end of file
... ...
cit-ecm-web/src/main/webapp/html/historicoAlteracaoProcesso/historicoAlteracaoProcesso.html
... ... @@ -3,7 +3,7 @@
3 3 <h2 class="widget-title">
4 4 <translate>ECM.LABEL.HISTORICO_ALTERACAO_PROCESSO</translate>
5 5 </h2>
6   - <div class="col-sm-9 text-right">
  6 + <div class="widget-toolbar">
7 7 <button class="btn btn-clear" title="{{$translate.instant('LABEL.ATUALIZAR')}}" alt="{{$translate.instant('LABEL.ATUALIZAR')}}" ng-click="closeWidget()">
8 8 <i class="fa fa-refresh purple"></i>
9 9 <translate>LABEL.ATUALIZAR</translate>
... ... @@ -11,6 +11,7 @@
11 11 </div>
12 12  
13 13 </div>
  14 +
14 15 <div class="widget-body">
15 16 <div class="widget-main clearfix">
16 17 <div class="timeline" style="height: 420px; overflow: auto;">
... ...
cit-ecm-web/src/main/webapp/html/processo/processoEdit.html
1   -<div id="editProcessoEcm" class="page-content clearfix" ng-controller="ProcessoController">
2   - <div id="topoMenu" class="bar-buttons-action fixed">
3   - <div class="row">
4   - <div class="col-sm-8 text-left">
5   -
6   - <button class="btn btn-clear" ng-click="saveOrUpdate()" ng-show="edit">
7   - <i class="fa fa-save green"></i>
8   - <translate>LABEL.SALVAR</translate>
9   - </button>
10   -
11   - <button class="btn btn-clear" ng-click="resetForm()" ng-show="edit">
12   - <i class="fa fa-eraser yellow-dark"></i>
13   - <translate>LABEL.LIMPAR</translate>
14   - </button>
15   -
16   - <button class="btn btn-clear" ng-show="!edit" ng-click="edit = true">
17   - <i class="fa fa-pencil blue"></i>
18   - <translate>LABEL.EDITAR</translate>
19   - </button>
20   -
21   - </div>
22   - <!-- .col -->
23   -
24   - <div class="col-sm-4 text-right">
25   -
26   - <favorito />
27   -
28   - <help-button workspace="workspace" />
29   -
30   - </div>
31   - <!-- .col -->
32   - </div>
33   - <!-- .row -->
34   - </div>
35   -
36   - <breadcrumb ng-workspace="workspace"></breadcrumb>
37   -
38   - <form name="processoForm" autocomplete="off" novalidate>
39   - <p>
40   - <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small>
41   - </p>
42   -
43   - <fieldset>
44   -
45   - <legend>
46   - <translate>ECM.LABEL.DADOS_PROCESSO</translate>
47   - </legend>
48   -
49   - <div class="row">
50   - <div class="col-md-6">
51   - <div class="row">
52   - <div class="col-md-4 ">
53   -
54   - <label-input-radio ng-id="processo.tipoProtocolo.codigo" ng-label="ECM.LABEL.TIPOPROTOCOLO" list="dominiosTipoProtocoloNup" ng-disabled='!edit' text="descricao" value="codigo"
55   - ng-model="processo.tipoProtocolo.codigo" form="processoForm" ></label-input-radio>
56   -
57   - </div>
58   - <div class="col-md-8" ng-show='processo.tipoProtocolo.codigo == 2'>
59   - <div class='form-group' ng-class="{'has-error': processoForm['protocolo'].$error.required && (!processoForm['protocolo'].$pristine || processoForm.$submitted)}">
60   - <label class='control-label'> <translate>ECM.LABEL.PROTOCOLO</translate> <span class='red'>*</span>
61   - </label> <i ng-show="processoForm['protocolo'].$error.required && !processoForm['protocolo'].$pristine || processoForm.$submitted" class='fa fa-warning red'
62   - tooltip="{{$translate.instant('ECM.LABEL.PROTOCOLO') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i> <input ng-required="processo.tipoProtocolo.codigo == 2"
63   - class="form-control" numbers-only id="protocolo" ng-show='processo.tipoProtocolo.codigo == 2' ng-label="LABEL.PROTOCOLO" ng-disabled='!edit' ng-model="processo.nup" form="processoForm" />
64   - </div>
65   - </div>
66   - </div>
67   - </div>
68   - </div>
  1 +<div id="editProcessoEcm" class="page-content clearfix" ng-controller="ProcessoController as processoNewController">
69 2  
  3 + <div id="newProcesso" ng-if="!processo.id">
  4 + <div class="bar-buttons-action fixed">
70 5 <div class="row">
71   - <div class="col-md-6">
72   - <auto-complete ng-id="processo.tipoProcesso" ng-set-result="constroiRelacionamentoTipoProcesso(item)" ng-label="ECM.LABEL.TIPOPROCESSO" ng-model="processo.tipoProcesso" form="processoForm"
73   - ng-find="findAutoCompleteTipoProcesso(value)" ng-item="item.nome" ng-obrigatorio='true' ng-disabled='!edit' />
74   - </div>
75   - </div>
76   -
77   - <div class="row" ng-show='processo.tipoProcesso.id'>
78   - <div class="col-md-6">
79   - <auto-complete ng-id="assuntoSelecionado" ng-disabled='sugestoes' ng-label="ECM.LABEL.ASSUNTO" ng-set-result='setTipoAssunto(item)' ng-model="assuntoSelecionado" form="processoForm"
80   - ng-find="findAutoCompleteAssunto(value)" ng-item="item.assunto" ng-obrigatorio='{{!sugestoes}}' />
  6 + <div class="col-sm-8 text-left">
81 7  
82   - </div>
83   - </div>
  8 + <button class="btn btn-clear" ng-click="saveOrUpdate()" ng-show="edit">
  9 + <i class="fa fa-save green"></i>
  10 + <translate>LABEL.SALVAR</translate>
  11 + </button>
84 12  
85   - <div class="row" ng-show='processo.tipoProcesso.id'>
86   - <div class="col-md-6">
87   - <div class="form-group">
88   - <div class="input-group">
89   - <select class="form-control typeahead-wide" ng-model="sugestoes" ng-change="setAssunto(sugestoes)" multiple id="sugestoes" ng-disabled='assuntoSelecionado.id' ng-multiple="false"
90   - ng-options="sugestao as sugestao.assunto for sugestao in assuntos track by sugestao.id">
91   - </select> <span ng-show="sugestoes" class="input-group-addon" ng-click="sugestoes = null" ng-class="{'hover-directive' : (($hover == true) && !disabled)}" ng-mouseover="$hover = true"
92   - ng-mouseout="$hover = false"> <i class="fa fa-eraser bigger-110"></i>
93   - </span> <span class="input-group-addon" style="visibility: hidden;"> <i class="fa fa-search bigger-110"></i></span>
94   - </div>
95   -
96   - </div>
97   - </div>
98   - </div>
  13 + <button class="btn btn-clear" ng-click="resetForm()" ng-show="edit">
  14 + <i class="fa fa-eraser yellow-dark"></i>
  15 + <translate>LABEL.LIMPAR</translate>
  16 + </button>
99 17  
100   - <div class="row" ng-show='processo.tipoProcesso.id'>
  18 + <button class="btn btn-clear" ng-show="!edit" ng-click="edit = true">
  19 + <i class="fa fa-pencil blue"></i>
  20 + <translate>LABEL.EDITAR</translate>
  21 + </button>
101 22  
102   - <div class="col-md-6">
103   - <label-select ng-id="processo.nivelAcesso" ng-label="ECM.LABEL.NIVEL_ACESSO" ng-model="processo.nivelAcesso" ng-custom-change='setHipoteseLegal(processo.nivelAcesso.id)' form="processoForm"
104   - ng-obrigatorio="true" ng-disabled="!edit" ng-custom-options="nivelAcessoTipoProcesso.originalElement as nivelAcessoTipoProcesso.nivelAcesso.descricao for nivelAcessoTipoProcesso "
105   - track-by="track by nivelAcessoTipoProcesso.id" ng-list="nivelAcessoList" show-selecione='false'/>
106 23 </div>
  24 +
  25 + <div class="col-sm-4 text-right">
107 26  
108   - <div class="col-md-6">
109   - <div class="form-group" ng-show='processo.nivelAcesso.nivelAcesso.codigo == 0'>
110   - <label class="control-label block" ng-class="{'has-error': processoForm['processo.sigilo.id'].$error.required && (!processoForm['processo.sigilo.id'].$pristine || processoForm.$submitted)}">
111   - <translate>ECM.LABEL.SIGILO</translate> <span class="red">*</span> <i
112   - ng-show="processoForm['processo.sigilo.id'].$error.required && (!processoForm['processo.sigilo.id'].$pristine || processoForm.$submitted)" class='fa fa-warning red'
113   - tooltip="{{$translate.instant('ECM.LABEL.SIGILO') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i>
114   - </label>
115   -
116   - <div class="radio-inline" ng-repeat="sigiloTipoProcesso in processo.nivelAcesso.sigilos">
117   - <label> <input type="radio" required="processo.nivelAcesso.nivelAcesso.codigo == 1" name="processo.sigilo.id" id="processo.tipoSigilo.id" ng-disabled="!edit"
118   - ng-value="sigiloTipoProcesso.sigilo.id" ng-model="processo.sigilo.id" ng-change='setHipoteseLegal(processo.sigilo.id)' /> {{sigiloTipoProcesso.sigilo.tipoSigilo.descricao}}
119   - </label>
120   - </div>
121   - </div>
122   - </div>
  27 + <favorito />
123 28  
124   - </div>
125   -
126   - <div class="row">
127   - <div class="col-sm-6" ng-show='processo.nivelAcesso.nivelAcesso.codigo == 1 || processo.sigilo.id'>
128   - <label-select ng-id="processo.hipoteseLegal" ng-model="processo.hipoteseLegal" ng-label="ECM.LABEL.HIPOTESELEGAL" ng-obrigatorio='false' form="processoForm" ng-list="hipoteses"
129   - ng-custom-options="hipoteseLegal.originalElement as hipoteseLegal.nome for hipoteseLegal" ng-obrigatorio='true' track-by="track by hipoteseLegal.id" ng-disabled='!edit'> </label-select>
130   - </div>
131   - </div>
132   -
133   -
134   - <div class="row">
135   -
136   - <div class="col-md-6">
137   -
138   - <label-text-area ng-id="processo.assuntoComplementar" ng-label="ECM.LABEL.ASSUNTOCOMPLEMENTAR" ng-model="processo.assuntoComplementar" form="processoForm" />
139   -
140   - </div>
141   -
142   - <div class="col-md-6">
143   -
144   - <label-text-area ng-id="processo.observacaoGeral" ng-label="ECM.LABEL.OBSERVACAOGERAL" ng-model="processo.observacaoGeral" form="processoForm" />
  29 + <help-button workspace="workspace" />
145 30  
146 31 </div>
147 32  
148 33 </div>
149 34  
150   - <fieldset>
151   -
152   - <legend>
153   - <translate>ECM.LABEL.INTERESSADOS</translate>
154   - </legend>
155   -
156   - <div class="row">
157   -
158   - <div class="col-md-12">
159   -
160   - <div class="row">
161   - <div class="col-sm-6">
162   - <auto-complete ng-id="interessado" ng-label="ECM.LABEL.INTERESSADO" ng-model="interessado" ng-find="findAutoCompleteInteressados(value)" ng-item="item.nome"
163   - ng-set-result="setInteressados(item)" ng-show='edit' button-new-show="true" button-new-action="novaPessoa();" />
164   - </div>
165   - </div>
166   -
167   - <div class="row">
168   - <div class="col-sm-6">
169   - <div class="panel panel-default">
170   - <div class="panel-heading clearfix">
171   - <button class="btn btn-clear" type="button" ng-hide="!edit" ng-click="removerInteressados()" ng-show='edit'>
172   - <i class="fa fa-times red"></i>
173   - <translate>LABEL.REMOVER</translate>
174   - </button>
175   - </div>
176   - <table class="table table-striped table-bordered table-hover">
177   - <thead>
178   - <tr>
179   - <th width="5%" class="text-center"></th>
180   -
181   - <th class="text-center"><translate>LABEL.NOME</translate></th>
182   -
183   - </tr>
184   - </thead>
185   - <tbody>
186   - <tr ng-repeat="interessadoList in processo.interessados">
187   - <td class="text-center"><input type="radio" name="interessadoChecked" ng-value="interessadoList" ng-model="$parent.interessadoChecked" ng-click="interessadoList.$index = $index" /></td>
188   -
189   - <td class="text-center">{{interessadoList.interessado.nome}}</td>
190   - </tr>
191   - <tr ng-hide="processo.interessados.length > 0">
192   - <td colspan="3" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td>
193   - </tr>
194   - </tbody>
195   - </table>
196   - </div>
197   - </div>
198   - </div>
199   - </div>
200   - </div>
201   - </fieldset>
202   - </fieldset>
  35 + </div>
  36 +
  37 + <breadcrumb ng-workspace="workspace"></breadcrumb>
  38 +
  39 + </div>
  40 +
  41 + <form id="processoNewController.processoForm" name="processoNewController.processoForm" autocomplete="off" novalidate>
  42 + <div ng-include src="'/cit-ecm-web/html/processo/metadadoProcessoEdit.html'" />
203 43 </form>
  44 +
204 45 </div>
  46 +
205 47 <!-- .page-content -->
206 48  
207 49  
... ...