Commit ed8809737f34f31ce480cafc387d312aa0a832b9

Authored by ROGERIO CASSIMIRO DE SOUZA
1 parent 34e955e3
Exists in master

redmine #4110 merge da release-1.9.0 para master das novas branchs

citgrp-patrimonio-api/src/main/java/br/com/centralit/api/dao/EstruturaOrganizacionalPatrimonioDao.java
... ... @@ -87,7 +87,7 @@ public interface EstruturaOrganizacionalPatrimonioDao extends CitGenericDAO {
87 87 */
88 88 EstruturaOrganizacionalPatrimonio getAlmoxarifadoPadrao(Long idOrganizacao);
89 89  
90   - List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao);
  90 + List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao, long idUA);
91 91  
92 92 /**
93 93 * Método responsável por listar ids das estruturas organizacionais patrimônio definida como almoxarifado
... ...
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/dao/impl/EstruturaOrganizacionalPatrimonioDaoHibernate.java
... ... @@ -275,21 +275,20 @@ public class EstruturaOrganizacionalPatrimonioDaoHibernate extends CitGenericDAO
275 275 }
276 276  
277 277 @Override
278   - public List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao) {
  278 + public List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao, long idUA) {
279 279 StringBuilder strQuery = new StringBuilder();
280 280 strQuery.append("SELECT distinct ep.estruturaOrganizacional FROM EstruturaOrganizacionalPatrimonio ep where ");
281 281 strQuery.append("ep.isLocalizadoraDeBem IS TRUE and ep.isAlmoxarifado IS FALSE ");
  282 + if(idUA > 0)
  283 + strQuery.append(" AND ep.estruturaOrganizacional.estruturaOrganizacionalParent.id = :idUA ");
282 284 strQuery.append(" AND (LOWER(ep.estruturaOrganizacional.nome) like LOWER(:value) ");
283 285 strQuery.append(" OR LOWER(ep.estruturaOrganizacional.codigo) like LOWER(:value) ");
284 286 strQuery.append(" OR LOWER(ep.estruturaOrganizacional.localizacao.endereco.logradouro) like LOWER(:value) ");
285 287 strQuery.append(" OR LOWER(ep.estruturaOrganizacional.localizacao.codigo) like LOWER(:value) ");
286   - strQuery.append(" OR LOWER(ep.estruturaOrganizacional.classificacao) like LOWER(:value) ");
287   - strQuery.append(" OR LOWER(ep.estruturaOrganizacional.estruturaOrganizacionalParent.nome) like LOWER(:value) ");
288   - strQuery.append(" OR LOWER(ep.estruturaOrganizacional.estruturaOrganizacionalParent.codigo) like LOWER(:value)) ");
  288 + strQuery.append(" OR LOWER(ep.estruturaOrganizacional.classificacao) like LOWER(:value)) ");
289 289 strQuery.append(" AND (ep.estruturaOrganizacional.dataFim IS NULL OR ep.estruturaOrganizacional.dataFim > :dataHoje)");
290 290 strQuery.append(" AND ep.estruturaOrganizacional.dataInativo IS NULL AND ep.estruturaOrganizacional.dataBloqueio IS NULL");
291 291 strQuery.append(" AND ep.estruturaOrganizacional.organizacao.id = :organizacaoId");
292   -
293 292 strQuery.append(" OR ep.estruturaOrganizacional.id in ( ");
294 293 strQuery.append(" SELECT resp.estruturaOrganizacional.id FROM EstruturaOrganizacionalResponsavel resp ");
295 294 strQuery.append(" inner join resp.estruturaOrganizacional.dominioTipoEstruturaOrganizacional dom ");
... ... @@ -300,6 +299,10 @@ public class EstruturaOrganizacionalPatrimonioDaoHibernate extends CitGenericDAO
300 299 strQuery.append(" AND dom.chave = :chaveDominio ");
301 300 strQuery.append(" AND dom.codigo = :codigo ");
302 301 strQuery.append(" AND (resp.estruturaOrganizacional.dataFim IS NULL OR resp.estruturaOrganizacional.dataFim > :dataHoje))");
  302 +
  303 + if(idUA > 0)
  304 + strQuery.append(" AND ep.estruturaOrganizacional.estruturaOrganizacionalParent.id = :idUA ");
  305 +
303 306 strQuery.append(" ORDER BY ep.estruturaOrganizacional.nome ");
304 307  
305 308 TypedQuery<EstruturaOrganizacional> query = this.em().createQuery(strQuery.toString(), EstruturaOrganizacional.class);
... ... @@ -309,6 +312,8 @@ public class EstruturaOrganizacionalPatrimonioDaoHibernate extends CitGenericDAO
309 312 query.setParameter("chaveDominio", Dominio.TIPO_ESTRUTURA_ORGANIZACIONAL);
310 313 query.setParameter("codigo", Dominio.TIPO_UNIDADE_LOCALIZADORA);
311 314 query.setParameter("value", '%' + nome + '%');
  315 + if(idUA > 0)
  316 + query.setParameter("idUA", idUA);
312 317 query.setMaxResults(MAX_RESULT_AUTOCOMPLETE);
313 318  
314 319 return query.getResultList();
... ...
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/EstruturaOrganizacionalPatrimonioService.java
... ... @@ -151,7 +151,7 @@ public interface EstruturaOrganizacionalPatrimonioService extends GenericService
151 151 */
152 152 EstruturaOrganizacionalPatrimonio getAlmoxarifadoPadrao(Long idOrganizacao);
153 153  
154   - List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao);
  154 + List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao, long idUA);
155 155  
156 156 /**
157 157 * Método responsável por listar ids das estruturas organizacionais patrimônio definida como almoxarifado
... ...
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/EstruturaOrganizacionalPatrimonioServiceImpl.java
... ... @@ -357,8 +357,8 @@ public class EstruturaOrganizacionalPatrimonioServiceImpl extends GenericService
357 357 }
358 358  
359 359 @Override
360   - public List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao) {
361   - return this.estruturaOrganizacionalPatrimonioDao.listarLocalDestinoParaTransferencia(nome, idOrganizacao);
  360 + public List<EstruturaOrganizacional> listarLocalDestinoParaTransferencia(String nome, long idOrganizacao, long idUA) {
  361 + return this.estruturaOrganizacionalPatrimonioDao.listarLocalDestinoParaTransferencia(nome, idOrganizacao, idUA);
362 362 }
363 363  
364 364 /**
... ...
citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/EstruturaOrganizacionalPatrimonioController.java
... ... @@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
12 12 import org.springframework.web.bind.annotation.RequestParam;
13 13 import org.springframework.web.bind.annotation.ResponseBody;
14 14  
  15 +import com.google.common.base.Strings;
  16 +
15 17 import br.com.centralit.api.model.EstruturaOrganizacional;
16 18 import br.com.centralit.api.model.EstruturaOrganizacionalPatrimonio;
17 19 import br.com.centralit.api.service.EstruturaOrganizacionalPatrimonioService;
... ... @@ -211,9 +213,9 @@ public class EstruturaOrganizacionalPatrimonioController extends GenericControll
211 213  
212 214 @RequestMapping(value = "/listarLocalDestinoParaTransferencia", method = RequestMethod.GET, produces = "application/json")
213 215 @ResponseBody
214   - public ResponseBodyWrapper listarLocalDestinoParaTransferencia(@RequestParam(value = "nome") String nome, @RequestParam(value = "idOrganizacao") String idOrganizacao) {
  216 + public ResponseBodyWrapper listarLocalDestinoParaTransferencia(@RequestParam(value = "nome") String nome, @RequestParam(value = "idOrganizacao") String idOrganizacao, @RequestParam(value = "idUA", required = false) String idUA) {
215 217  
216   - ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH = new ResultResponseVH<List<EstruturaOrganizacional>>(this.estruturaOrganizacionalPatrimonioService.listarLocalDestinoParaTransferencia(nome, Long.parseLong(idOrganizacao)));
  218 + ResultResponseVH<List<EstruturaOrganizacional>> resultResponseVH = new ResultResponseVH<List<EstruturaOrganizacional>>(this.estruturaOrganizacionalPatrimonioService.listarLocalDestinoParaTransferencia(nome, Long.parseLong(idOrganizacao), Strings.isNullOrEmpty(idUA) ? 0 : Long.parseLong(idUA)));
217 219  
218 220 ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, Views.EstruturaOrganizacionalAutoCompleteSimplesView.class);
219 221  
... ...
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/EmissaoTermoResponsabilidadeController.js
... ... @@ -46,7 +46,7 @@ citApp.controller(&#39;EmissaoTermoResponsabilidadeController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;
46 46 };
47 47  
48 48 $scope.setEstrutura = function() {
49   -
  49 + $scope.estruturaOrganizacionalLocalizadora = null;
50 50 $scope.colaborador = null;
51 51 };
52 52  
... ...
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/EntradaController.js
... ... @@ -1639,13 +1639,22 @@ citApp.controller(&#39;EntradaController&#39;, [&#39;$scope&#39;, &#39;$timeout&#39;, &#39;FileUploader&#39;, &#39;E
1639 1639 //MOSTRA DETALHES DO BEM PATRIMONIAL
1640 1640 $scope.showCaracteristicaEspecifica = function(bemPatrimonial) {
1641 1641 BemPatrimonialTemporarioRepository.get(bemPatrimonial.id).then(function(result) {
1642   - bemPatrimonial.caracteristicas = result.originalElement.caracteristicas;
  1642 +
  1643 + if(bemPatrimonial.caracteristicas === undefined){
  1644 + bemPatrimonial.caracteristicas = result.originalElement.caracteristicas;
  1645 + }
  1646 +
1643 1647 if (bemPatrimonial.caracteristicas != undefined) {
1644   - bemPatrimonial.caracteristicas.forEach(function(caracteristica) {
  1648 + var contemGenerico = false;
  1649 + bemPatrimonial.caracteristicas.forEach(function(caracteristica) {
1645 1650 if (!caracteristica.materialCaracteristica.generico) {
1646   - bemPatrimonial.$show = !bemPatrimonial.$show;
  1651 + contemGenerico = true;
1647 1652 }
1648 1653 });
  1654 +
  1655 + if(contemGenerico){
  1656 + bemPatrimonial.$show = !bemPatrimonial.$show;
  1657 + }
1649 1658 }
1650 1659 });
1651 1660 };
... ...
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js
1 1 'use strict';
2   -citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', '$translate', 'TransferenciaRepository', 'EstruturaOrganizacionalPatrimonioRepository', 'BemPatrimonialRepository', 'PessoaRepository', 'FileUploader', 'PatrimonioService','DominioRepository',
3   - function TransferenciaController($scope, $filter, $timeout, $translate, TransferenciaRepository, EstruturaOrganizacionalPatrimonioRepository, BemPatrimonialRepository, PessoaRepository, FileUploader, PatrimonioService, DominioRepository) {
  2 +citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', '$translate', 'TransferenciaRepository', 'EstruturaOrganizacionalPatrimonioRepository', 'BemPatrimonialRepository', 'PessoaRepository', 'FileUploader', 'PatrimonioService','DominioRepository', 'EstruturaOrganizacionalRepository',
  3 + function TransferenciaController($scope, $filter, $timeout, $translate, TransferenciaRepository, EstruturaOrganizacionalPatrimonioRepository, BemPatrimonialRepository, PessoaRepository, FileUploader, PatrimonioService, DominioRepository, EstruturaOrganizacionalRepository) {
4 4  
5 5  
6 6 $scope.headers = [ {
... ... @@ -157,6 +157,7 @@ citApp.controller(&#39;TransferenciaController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$timeout&#39;, &#39;
157 157 $scope.resetForm = function() {
158 158 $scope.edit = true;
159 159 $scope.permiteAlterarTrans = false;
  160 + $scope.estruturaOrganizacionalAdm = null;
160 161 $scope.transferencia = {
161 162 estruturaOrganizacionalDestino : null,
162 163 dataTransferencia : $filter('date')(new Date(), "dd/MM/yyyy"),
... ... @@ -183,12 +184,28 @@ citApp.controller(&#39;TransferenciaController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$timeout&#39;, &#39;
183 184 $scope.resetForm();
184 185  
185 186 //#################### INÍCIO MÉTODOS AUTOCOMPLETE ESTRUTURA DESTINO ####################
  187 + // Método responsável por listar UA
  188 + $scope.findEstruturaOrganizacionalAdministrativa = function (value){
  189 + return EstruturaOrganizacionalRepository.listarEstruturasOrganizacionaisAdministrativasBusca(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  190 + return result;
  191 + });
  192 + };
  193 +
  194 + $scope.setEstruturaLocalizadora = function(item) {
  195 + $scope.estruturaOrganizacionalAdm = item;
  196 + $scope.transferencia.estruturaOrganizacionalDestino = null;
  197 + };
  198 +
186 199 // Método responsável por listar EstruturaOrganizacional através do nome digitado e o órgao do usuário logado
187 200 $scope.findEstrutura = function(value) {
188   - return EstruturaOrganizacionalPatrimonioRepository.listarLocalDestinoParaTransferencia(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  201 + return EstruturaOrganizacionalPatrimonioRepository.listarLocalDestinoParaTransferencia(value, $scope.usuarioLogado.organizacao.id, $scope.estruturaOrganizacionalAdm ? $scope.estruturaOrganizacionalAdm.id : null).then(function(result) {
189 202 return result;
190 203 });
191 204 };
  205 +
  206 + $scope.limparAutoCompleteEstruturaAdm = function(value){
  207 + $scope.estruturaOrganizacionalAdm = null;
  208 + };
192 209  
193 210 // Método responsável por limpar o auto complete Estrutura
194 211 $scope.limparAutoCompleteEstrutura = function(value) {
... ...
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/repository/EstruturaOrganizacionalPatrimonioRepository.js
... ... @@ -34,8 +34,8 @@ citApp.factory(&#39;EstruturaOrganizacionalPatrimonioRepository&#39;, [&#39;RestangularPatri
34 34 return restangularPatrimonio.one(this.route + "/getAlmoxarifadoPadrao").get({"idOrganizacao" : idOrganizacao});
35 35 };
36 36  
37   - this.listarLocalDestinoParaTransferencia = function(value, idOrganizacao) {
38   - return restangularPatrimonio.one(this.route).getList("listarLocalDestinoParaTransferencia", {nome : value, idOrganizacao : idOrganizacao}).then();
  37 + this.listarLocalDestinoParaTransferencia = function(value, idOrganizacao, idUA) {
  38 + return restangularPatrimonio.one(this.route).getList("listarLocalDestinoParaTransferencia", {nome : value, idOrganizacao : idOrganizacao, idUA : idUA}).then();
39 39 };
40 40  
41 41 this.listarIdsEstruturaPatrimonioComoAlmoxarifado = function(idOrganizacao) {
... ...
citgrp-patrimonio-web/src/main/webapp/html/transferencia/transferenciaEdit.html
... ... @@ -79,9 +79,21 @@
79 79 </div>
80 80 </div>
81 81  
  82 + <div class="row" ng-show="!transferencia.id">
  83 + <div class="col-sm-8">
  84 + <auto-complete ng-find="findEstruturaOrganizacionalAdministrativa(value)" ng-item="item.codigoENome + ' - ' + item.classificacao"
  85 + ng-id="transferencia.estruturaOrganizacionalAdm" ng-label="LABEL.UNIDADE_ADMINISTRATIVA" ng-model="estruturaOrganizacionalAdm"
  86 + form="transferenciaForm" ng-set-result="setEstruturaLocalizadora(item)" ng-acao-borracha="limparAutoCompleteEstruturaAdm(item)"></auto-complete>
  87 + </div>
  88 + </div>
  89 +
82 90 <div class="row">
83 91 <div class="col-sm-8">
84   - <auto-complete ng-find="findEstrutura(value)" form="transferenciaForm" ng-obrigatorio="true" ng-label="PATRIMONIO.LABEL.SELECIONE_LOCAL_DESTINO" ng-set-result="setEstrutura(item)" ng-acao-borracha="limparAutoCompleteEstrutura(item)" ng-item="item.codigoENome + ' - ' + item.classificacao" ng-id="transferencia.estruturaOrganizacionalDestino" ng-model="transferencia.estruturaOrganizacionalDestino" ng-disabled="!edit || permiteAlterarTrans" />
  92 + <auto-complete ng-find="findEstrutura(value)" form="transferenciaForm" ng-obrigatorio="true"
  93 + ng-label="PATRIMONIO.LABEL.SELECIONE_LOCAL_DESTINO" ng-set-result="setEstrutura(item)"
  94 + ng-acao-borracha="limparAutoCompleteEstrutura(item)" ng-item="item.codigoENome + ' - ' + item.classificacao"
  95 + ng-id="transferencia.estruturaOrganizacionalDestino" ng-model="transferencia.estruturaOrganizacionalDestino"
  96 + ng-disabled="!edit || permiteAlterarTrans" />
85 97 </div>
86 98 <div class="col-sm-4">
87 99 <label-input-data ng-id="transferencia.dataTransferencia" form="transferenciaForm" ng-disabled="!edit" ng-label="PATRIMONIO.LABEL.DATA_TRANSFERENCIA" ng-obrigatorio="edit" ng-model="transferencia.dataTransferencia" />
... ...