Commit eed710633ac42606a51ab020ac54b95f25dee957

Authored by Ronan Tavares Camargo
2 parents 9898e3f8 fce6165a
Exists in master

Merge branch 'tarefa-3822' of http://ferramentasgo.centralit.com.br:8080/scm/git…

…/cit-grp-almoxarifado into tarefa-3822
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java
@@ -2,6 +2,7 @@ package br.com.centralit.api.dao; @@ -2,6 +2,7 @@ package br.com.centralit.api.dao;
2 2
3 import java.util.Calendar; 3 import java.util.Calendar;
4 import java.util.Collection; 4 import java.util.Collection;
  5 +import java.util.List;
5 6
6 import com.googlecode.genericdao.search.SearchResult; 7 import com.googlecode.genericdao.search.SearchResult;
7 8
@@ -115,4 +116,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO { @@ -115,4 +116,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO {
115 RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); 116 RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante);
116 117
117 SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH); 118 SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH);
  119 +
  120 + List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH);
118 } 121 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java
@@ -6,6 +6,7 @@ import java.util.List; @@ -6,6 +6,7 @@ import java.util.List;
6 import br.com.centralit.api.model.EstruturaOrganizacional; 6 import br.com.centralit.api.model.EstruturaOrganizacional;
7 import br.com.centralit.api.model.MaterialConsumo; 7 import br.com.centralit.api.model.MaterialConsumo;
8 import br.com.centralit.api.model.RequisicaoConsumo; 8 import br.com.centralit.api.model.RequisicaoConsumo;
  9 +import br.com.centralit.api.model.RequisicaoConsumoItem;
9 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; 10 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
10 import br.com.centralit.framework.model.Dominio; 11 import br.com.centralit.framework.model.Dominio;
11 12
@@ -27,4 +28,6 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO { @@ -27,4 +28,6 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO {
27 */ 28 */
28 Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida); 29 Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida);
29 30
  31 + List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial);
  32 +
30 } 33 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java
@@ -335,4 +335,17 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements @@ -335,4 +335,17 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements
335 searchSeven.addFilterIn("requisicaoConsumoItens.materialConsumo.id", atendimentoVH.getIdsMaterais()); 335 searchSeven.addFilterIn("requisicaoConsumoItens.materialConsumo.id", atendimentoVH.getIdsMaterais());
336 } 336 }
337 } 337 }
  338 +
  339 + @Override
  340 + public List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH) {
  341 +
  342 + SearchSeven searchSeven = new SearchSeven();
  343 +
  344 + if (!UtilColecao.isVazio(atendimentoVH.getIdsRequisicao())) {
  345 +
  346 + searchSeven.addFilterIn("id", atendimentoVH.getIdsRequisicao());
  347 + }
  348 +
  349 + return this.search(searchSeven);
  350 + }
338 } 351 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java
@@ -188,5 +188,18 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme @@ -188,5 +188,18 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme
188 return UtilObjeto.isReferencia(result) ? result.longValue() : null; 188 return UtilObjeto.isReferencia(result) ? result.longValue() : null;
189 } 189 }
190 190
  191 + @Override
  192 + public List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial) {
  193 +
  194 + SearchSeven searchSeven = new SearchSeven();
  195 +
  196 + searchSeven.addFilterEqual("requisicaoConsumo.id", idRequisicao);
  197 +
  198 + searchSeven.addFilterEqual("materialConsumo.id", idMaterial);
  199 +
  200 + return this.search(searchSeven);
  201 +
  202 + }
  203 +
191 204
192 } 205 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoItemService.java
@@ -42,5 +42,7 @@ public interface RequisicaoConsumoItemService extends GenericService&lt;RequisicaoC @@ -42,5 +42,7 @@ public interface RequisicaoConsumoItemService extends GenericService&lt;RequisicaoC
42 * @return 42 * @return
43 */ 43 */
44 public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); 44 public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante);
  45 +
  46 + List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial);
45 47
46 } 48 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java
@@ -2,6 +2,7 @@ package br.com.centralit.api.service; @@ -2,6 +2,7 @@ package br.com.centralit.api.service;
2 2
3 import java.util.Calendar; 3 import java.util.Calendar;
4 import java.util.Collection; 4 import java.util.Collection;
  5 +import java.util.List;
5 6
6 import com.googlecode.genericdao.search.SearchResult; 7 import com.googlecode.genericdao.search.SearchResult;
7 8
@@ -126,4 +127,6 @@ public interface RequisicaoConsumoService extends GenericService&lt;RequisicaoConsu @@ -126,4 +127,6 @@ public interface RequisicaoConsumoService extends GenericService&lt;RequisicaoConsu
126 127
127 SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH); 128 SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH);
128 129
  130 + List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH);
  131 +
129 } 132 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java
@@ -148,4 +148,10 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi @@ -148,4 +148,10 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi
148 return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado, statusParcialmenteAtendida, statusAtendida); 148 return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado, statusParcialmenteAtendida, statusAtendida);
149 } 149 }
150 150
  151 +
  152 + @Override
  153 + public List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial) {
  154 + return this.requisicaoConsumoItemDao.findItensRequisicaoPorMaterial(idRequisicao, idMaterial);
  155 + }
  156 +
151 } 157 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java
@@ -112,7 +112,7 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC @@ -112,7 +112,7 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
112 /** Atributo centroCustoService. */ 112 /** Atributo centroCustoService. */
113 @Autowired 113 @Autowired
114 private CentroCustoService centroCustoService; 114 private CentroCustoService centroCustoService;
115 - 115 +
116 @Autowired 116 @Autowired
117 public RequisicaoConsumoServiceImpl( RequisicaoConsumoDao requisicaoConsumoDao, @Qualifier("requisicaoConsumoValidator") Validator validator ) { 117 public RequisicaoConsumoServiceImpl( RequisicaoConsumoDao requisicaoConsumoDao, @Qualifier("requisicaoConsumoValidator") Validator validator ) {
118 118
@@ -520,4 +520,9 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC @@ -520,4 +520,9 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
520 return this.requisicaoConsumoDao.filtrarRequisicoesAtendimento(atendimentoVH); 520 return this.requisicaoConsumoDao.filtrarRequisicoesAtendimento(atendimentoVH);
521 } 521 }
522 522
  523 + @Override
  524 + public List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH) {
  525 + return this.requisicaoConsumoDao.findRequisicoesParaAtendimento(atendimentoVH);
  526 + }
  527 +
523 } 528 }
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java
1 package br.com.centralit.controller; 1 package br.com.centralit.controller;
2 2
3 -import java.util.Collection; 3 +import java.util.ArrayList;
4 import java.util.List; 4 import java.util.List;
5 5
6 import org.apache.commons.lang3.SerializationUtils; 6 import org.apache.commons.lang3.SerializationUtils;
@@ -18,12 +18,15 @@ import com.googlecode.genericdao.search.SearchResult; @@ -18,12 +18,15 @@ import com.googlecode.genericdao.search.SearchResult;
18 import br.com.centralit.api.framework.json.ViewsAdmMateriais; 18 import br.com.centralit.api.framework.json.ViewsAdmMateriais;
19 import br.com.centralit.api.framework.json.ViewsAlmoxarifado; 19 import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
20 import br.com.centralit.api.model.RequisicaoConsumo; 20 import br.com.centralit.api.model.RequisicaoConsumo;
  21 +import br.com.centralit.api.model.RequisicaoConsumoItem;
  22 +import br.com.centralit.api.service.RequisicaoConsumoItemService;
21 import br.com.centralit.api.service.RequisicaoConsumoService; 23 import br.com.centralit.api.service.RequisicaoConsumoService;
22 import br.com.centralit.api.viewHelper.AtendimentoVH; 24 import br.com.centralit.api.viewHelper.AtendimentoVH;
23 import br.com.centralit.api.viewHelper.RequisicaoVH; 25 import br.com.centralit.api.viewHelper.RequisicaoVH;
24 import br.com.centralit.framework.controller.GenericController; 26 import br.com.centralit.framework.controller.GenericController;
25 import br.com.centralit.framework.json.ResponseBodyWrapper; 27 import br.com.centralit.framework.json.ResponseBodyWrapper;
26 import br.com.centralit.framework.json.Views; 28 import br.com.centralit.framework.json.Views;
  29 +import br.com.centralit.framework.util.UtilColecao;
27 import br.com.centralit.framework.view.GridVH; 30 import br.com.centralit.framework.view.GridVH;
28 import br.com.centralit.framework.view.ResultResponseVH; 31 import br.com.centralit.framework.view.ResultResponseVH;
29 32
@@ -65,6 +68,9 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon @@ -65,6 +68,9 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon
65 68
66 /** Atributo requisicaoConsumoService. */ 69 /** Atributo requisicaoConsumoService. */
67 private RequisicaoConsumoService requisicaoConsumoService; 70 private RequisicaoConsumoService requisicaoConsumoService;
  71 +
  72 + @Autowired
  73 + private RequisicaoConsumoItemService requisicaoConsumoItemService;
68 74
69 @Autowired 75 @Autowired
70 public RequisicaoConsumoController(RequisicaoConsumoService requisicaoConsumoService) { 76 public RequisicaoConsumoController(RequisicaoConsumoService requisicaoConsumoService) {
@@ -197,10 +203,22 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon @@ -197,10 +203,22 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon
197 */ 203 */
198 @RequestMapping(value = "/atenderRequisicoes", method = RequestMethod.POST, produces = "application/json") 204 @RequestMapping(value = "/atenderRequisicoes", method = RequestMethod.POST, produces = "application/json")
199 @ResponseBody 205 @ResponseBody
200 - public ResponseBodyWrapper atenderRequisicoes (@RequestBody Collection<Long> requisicoesIds) { 206 + public ResponseBodyWrapper atenderRequisicoes (@RequestBody AtendimentoVH atendimentoVH) {
  207 +
  208 + List<RequisicaoConsumo> requisicoes = this.requisicaoConsumoService.findRequisicoesParaAtendimento(atendimentoVH);
  209 +
  210 + if(!UtilColecao.isVazio(atendimentoVH.getIdsMaterais())){
  211 + for (RequisicaoConsumo requisicaoConsumo : requisicoes) {
  212 + List<RequisicaoConsumoItem> itens = new ArrayList<RequisicaoConsumoItem>();
  213 + for (Long idMaterial : atendimentoVH.getIdsMaterais()) {
  214 + itens.addAll(this.requisicaoConsumoItemService.findItensRequisicaoPorMaterial(requisicaoConsumo.getId(), idMaterial));
  215 +
  216 + }
  217 + requisicaoConsumo.setRequisicaoConsumoItens(itens);
  218 + }
  219 + }
201 220
202 - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.requisicaoConsumoService.findList((List<Long>) requisicoesIds),  
203 - ViewsAdmMateriais.RequisicaoConsumoEditView.class); 221 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(requisicoes, ViewsAdmMateriais.RequisicaoConsumoEditView.class);
204 222
205 return responseBody; 223 return responseBody;
206 } 224 }
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -326,6 +326,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat @@ -326,6 +326,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
326 326
327 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.STATUS_ATUAL", "Status atual", dominio, modulo)); 327 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.STATUS_ATUAL", "Status atual", dominio, modulo));
328 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.FILTRAR", "Filtrar", dominio, modulo)); 328 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.FILTRAR", "Filtrar", dominio, modulo));
  329 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.LIMPAR_BUSCA_AVANCADA", "Limpar busca avançada", dominio, modulo));
329 } 330 }
330 331
331 private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { 332 private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
@@ -411,6 +412,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat @@ -411,6 +412,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
411 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.CONFIRMA_EXCLUSAO_ATENDIMENTO_REQUISICAO", "Confirma exclusão dos atendimentos selecionados?", dominio, modulo)); 412 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.CONFIRMA_EXCLUSAO_ATENDIMENTO_REQUISICAO", "Confirma exclusão dos atendimentos selecionados?", dominio, modulo));
412 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.NAO_PERMITIDO_ATENDER_REQUISICAO_FINALIZADA", "Atendimento não permitido pois há requisições finalizadas selecionadas para atendimento. Desmarque as requisições finalizadas e clique novamente em 'Atender'.", dominio, modulo)); 413 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.NAO_PERMITIDO_ATENDER_REQUISICAO_FINALIZADA", "Atendimento não permitido pois há requisições finalizadas selecionadas para atendimento. Desmarque as requisições finalizadas e clique novamente em 'Atender'.", dominio, modulo));
413 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.DATA_FINALIZACAO_FORA_REFERENCIA", "Exclusão não permitida. Data de finalização da requisição %s fora da referência vigente.", dominio, modulo)); 414 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.DATA_FINALIZACAO_FORA_REFERENCIA", "Exclusão não permitida. Data de finalização da requisição %s fora da referência vigente.", dominio, modulo));
  415 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO", "O atendimento será realizado para os materiais selecionados na busca avançada.", dominio, modulo));
414 416
415 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO", "Remover requisição deste atendimento", dominio, modulo)); 417 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO", "Remover requisição deste atendimento", dominio, modulo));
416 418
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -289,22 +289,24 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -289,22 +289,24 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
289 }); 289 });
290 }; 290 };
291 291
292 - $scope.prepararAtendimentoRequisicoes = function(listaSelecionados) { 292 + $scope.prepararAtendimentoRequisicoes = function(atendimentoVH) {
293 $scope.edit = true; 293 $scope.edit = true;
294 $scope.atendimentos = []; 294 $scope.atendimentos = [];
295 $scope.idsRequisicoesSelecionados = []; 295 $scope.idsRequisicoesSelecionados = [];
296 $scope.atendimentoRequisicaoConsumo.dataAtendimento = new Date(); 296 $scope.atendimentoRequisicaoConsumo.dataAtendimento = new Date();
297 $scope.requisicoesSelecionadas = []; 297 $scope.requisicoesSelecionadas = [];
298 - $scope.requisicoesSelecionadas = listaSelecionados;  
299 - listaSelecionados.forEach(function(requisicao){  
300 - $scope.idsRequisicoesSelecionados.push(requisicao.id);  
301 - }); 298 + $scope.requisicoesSelecionadas = atendimentoVH.requisicoesSelecionadas;
  299 +
  300 + delete atendimentoVH.requisicoesSelecionadas;
  301 +
  302 + $scope.idsRequisicoesSelecionados = atendimentoVH.idsRequisicao;
  303 +
302 if ($scope.idsRequisicoesSelecionados && $scope.requisicoesSelecionadas && $scope.idsRequisicoesSelecionados.length > 0) { 304 if ($scope.idsRequisicoesSelecionados && $scope.requisicoesSelecionadas && $scope.idsRequisicoesSelecionados.length > 0) {
303 305
304 if (verificarSelecaoRequisicaoAtendida()) { 306 if (verificarSelecaoRequisicaoAtendida()) {
305 $scope.showAlert("warning", $translate.instant('ALMOXARIFADO.MSG.REQUISICAO_JA_ATENDIDA')); 307 $scope.showAlert("warning", $translate.instant('ALMOXARIFADO.MSG.REQUISICAO_JA_ATENDIDA'));
306 } else { 308 } else {
307 - iniciarAtendimentoRequisicoes(); 309 + iniciarAtendimentoRequisicoes(atendimentoVH);
308 } 310 }
309 } else { 311 } else {
310 $scope.showAlert("warning", $translate.instant('MSG.NENHUM_ITEM_SELECIONADO')); 312 $scope.showAlert("warning", $translate.instant('MSG.NENHUM_ITEM_SELECIONADO'));
@@ -323,9 +325,9 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -323,9 +325,9 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
323 return hasRequisicaoAtendida; 325 return hasRequisicaoAtendida;
324 } 326 }
325 327
326 - function iniciarAtendimentoRequisicoes() { 328 + function iniciarAtendimentoRequisicoes(atendimentoVH) {
327 $scope.setLoadingPesquisa(true); 329 $scope.setLoadingPesquisa(true);
328 - RequisicaoConsumoRepository.atenderRequisicoes($scope.idsRequisicoesSelecionados).then(function(result){ 330 + RequisicaoConsumoRepository.atenderRequisicoes(atendimentoVH).then(function(result){
329 result.forEach(function (requisicao) { 331 result.forEach(function (requisicao) {
330 $scope.addRequisicaoConsumoAoAtendimento(requisicao.originalElement); 332 $scope.addRequisicaoConsumoAoAtendimento(requisicao.originalElement);
331 }); 333 });
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js
@@ -14,7 +14,9 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten @@ -14,7 +14,9 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
14 $scope.recarregar = function() { 14 $scope.recarregar = function() {
15 15
16 $scope.filtrarCustomizado = false; 16 $scope.filtrarCustomizado = false;
17 - 17 + $scope.atendimentoVH = {};
  18 + $scope.listaUnidadesRequisitantesSelecionadas = [];
  19 + $scope.listaMateriaisConsumoSelecionados = [];
18 // DEFINE CABEÇALHOS DA LISTAGEM 20 // DEFINE CABEÇALHOS DA LISTAGEM
19 $scope.headers = [ {title : $translate.instant('ALMOXARIFADO.LABEL.NUMERO_REQUISICAO'), value : 'numeroRequisicao' } , 21 $scope.headers = [ {title : $translate.instant('ALMOXARIFADO.LABEL.NUMERO_REQUISICAO'), value : 'numeroRequisicao' } ,
20 {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } , 22 {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } ,
@@ -40,6 +42,12 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten @@ -40,6 +42,12 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
40 }; 42 };
41 43
42 $scope.recarregar(); 44 $scope.recarregar();
  45 +
  46 + $scope.limparBuscaAvancada = function(){
  47 + $scope.atendimentoVH = {};
  48 + $scope.listaUnidadesRequisitantesSelecionadas = [];
  49 + $scope.listaMateriaisConsumoSelecionados = [];
  50 + };
43 51
44 DominioRepository.findAllDominio('tipoStatusRequisicao').then(function(result) { 52 DominioRepository.findAllDominio('tipoStatusRequisicao').then(function(result) {
45 var listaDominio = []; 53 var listaDominio = [];
@@ -103,7 +111,16 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten @@ -103,7 +111,16 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
103 }); 111 });
104 112
105 if(permiteAtender){ 113 if(permiteAtender){
106 - angular.element('#editAtendimentoRequisicaoConsumo').scope().prepararAtendimentoRequisicoes($scope.listaSelecionados); 114 +
  115 + var idsRequisicoesSelecionados = [];
  116 + $scope.listaSelecionados.forEach(function(requisicao){
  117 + idsRequisicoesSelecionados.push(requisicao.id);
  118 + });
  119 + $scope.atendimentoVH.idsRequisicao = idsRequisicoesSelecionados;
  120 + $scope.atendimentoVH.requisicoesSelecionadas = $scope.listaSelecionados;
  121 + $scope.listaSelecionados = [];
  122 + angular.element('#editAtendimentoRequisicaoConsumo').scope().prepararAtendimentoRequisicoes($scope.atendimentoVH);
  123 + $scope.recarregar();
107 } 124 }
108 }; 125 };
109 126
@@ -251,21 +268,25 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten @@ -251,21 +268,25 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
251 268
252 $scope.atendimentoAvancado = function(){ 269 $scope.atendimentoAvancado = function(){
253 $scope.filtroAtendimento = {unidadeRequisitanteSelectedAll : false , materialConsumoSelectedAll : false}; 270 $scope.filtroAtendimento = {unidadeRequisitanteSelectedAll : false , materialConsumoSelectedAll : false};
254 - $scope.listaUnidadesRequisitantesSelecionadas = [];  
255 - $scope.listaMateriaisConsumoSelecionados = []; 271 + if(!$scope.listaUnidadesRequisitantesSelecionadas){
  272 + $scope.listaUnidadesRequisitantesSelecionadas = [];
  273 + }
  274 + if(!$scope.listaMateriaisConsumoSelecionados){
  275 + $scope.listaMateriaisConsumoSelecionados = [];
  276 + }
256 $scope.$openModal('modal-busca-avancada-requisicao.html', 'md'); 277 $scope.$openModal('modal-busca-avancada-requisicao.html', 'md');
257 }; 278 };
258 279
259 $scope.filtrarRequisicoes = function(){ 280 $scope.filtrarRequisicoes = function(){
260 $scope.setLoading(true); 281 $scope.setLoading(true);
261 - var atendimentoVH = {searchParams : $scope.filterCriteria}; 282 + $scope.atendimentoVH = {searchParams : $scope.filterCriteria};
262 var idsUnidadeRequisitante = []; 283 var idsUnidadeRequisitante = [];
263 284
264 if($scope.listaUnidadesRequisitantesSelecionadas && $scope.listaUnidadesRequisitantesSelecionadas.length > 0){ 285 if($scope.listaUnidadesRequisitantesSelecionadas && $scope.listaUnidadesRequisitantesSelecionadas.length > 0){
265 angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (value) { 286 angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (value) {
266 idsUnidadeRequisitante.push(value.id); 287 idsUnidadeRequisitante.push(value.id);
267 }); 288 });
268 - atendimentoVH.idsUnidadesRequisitantes = idsUnidadeRequisitante; 289 + $scope.atendimentoVH.idsUnidadesRequisitantes = idsUnidadeRequisitante;
269 } 290 }
270 291
271 var idsMateriaisConsumo = []; 292 var idsMateriaisConsumo = [];
@@ -274,12 +295,12 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten @@ -274,12 +295,12 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
274 angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) { 295 angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) {
275 idsMateriaisConsumo.push(value.id); 296 idsMateriaisConsumo.push(value.id);
276 }); 297 });
277 - atendimentoVH.idsMaterais = idsMateriaisConsumo; 298 + $scope.atendimentoVH.idsMaterais = idsMateriaisConsumo;
278 } 299 }
279 300
280 - return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento(atendimentoVH).then(function(result){ 301 + return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento($scope.atendimentoVH).then(function(result){
281 if(result){ 302 if(result){
282 - 303 + $scope.listaSelecionados = [];
283 $scope.atendimentoRequisicaoConsumoList = result.originalElement.objects; 304 $scope.atendimentoRequisicaoConsumoList = result.originalElement.objects;
284 305
285 $scope.setTotalPages = result.originalElement.totalPages; 306 $scope.setTotalPages = result.originalElement.totalPages;
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js
@@ -19,8 +19,8 @@ citApp.factory(&#39;RequisicaoConsumoRepository&#39;, [&#39;RestangularAlmoxarifado&#39;, &#39;Abstr @@ -19,8 +19,8 @@ citApp.factory(&#39;RequisicaoConsumoRepository&#39;, [&#39;RestangularAlmoxarifado&#39;, &#39;Abstr
19 return restangularAlmoxarifado.all(this.route + "/finalizarRequisicoes").post(requisicaoVH).then(); 19 return restangularAlmoxarifado.all(this.route + "/finalizarRequisicoes").post(requisicaoVH).then();
20 }; 20 };
21 21
22 - this.atenderRequisicoes = function(idsRequisicaoConsumo){  
23 - return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(idsRequisicaoConsumo).then(); 22 + this.atenderRequisicoes = function(atendimentoVH){
  23 + return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(atendimentoVH).then();
24 }; 24 };
25 25
26 this.filtrarRequisicoesAtendimento = function(atendimentoVH) { 26 this.filtrarRequisicoesAtendimento = function(atendimentoVH) {
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
@@ -41,13 +41,20 @@ @@ -41,13 +41,20 @@
41 41
42 <breadcrumb ng-workspace="workspace"></breadcrumb> 42 <breadcrumb ng-workspace="workspace"></breadcrumb>
43 43
44 - <div class="row" style="margin-bottom: 10px; margin-top: 5px !important;"> 44 + <div class="row" style="margin-bottom: 10px">
45 <div class="col-sm-2 text-left"> 45 <div class="col-sm-2 text-left">
46 <button class="btn btn-sm btn-primary" type="button" ng-click="atendimentoAvancado();" style="margin-top: 26px;"> 46 <button class="btn btn-sm btn-primary" type="button" ng-click="atendimentoAvancado();" style="margin-top: 26px;">
47 <translate>LABEL.BUSCA_AVANCADA</translate> 47 <translate>LABEL.BUSCA_AVANCADA</translate>
48 </button> 48 </button>
49 </div> 49 </div>
50 </div> 50 </div>
  51 +
  52 + <div class="alert alert-warning" title="{{$translate.instant('ALMOXARIFADO.LABEL.LIMPAR_BUSCA_AVANCADA')}}" alt="{{$translate.instant('ALMOXARIFADO.LABEL.LIMPAR_BUSCA_AVANCADA')}}"
  53 + role="alert" ng-show="atendimentoVH.idsMaterais && atendimentoVH.idsMaterais.length > 0">
  54 + <a class="close" data-dismiss="alert" ng-click="limparBuscaAvancada()" aria-label="close">&times;</a>
  55 + <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
  56 + <translate>ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO</span></translate>
  57 + </div>
51 58
52 <list-view ng-lista="atendimentoRequisicaoConsumoList" ng-repository="RequisicaoConsumoRepository" ng-use-custom-remove="false" 59 <list-view ng-lista="atendimentoRequisicaoConsumoList" ng-repository="RequisicaoConsumoRepository" ng-use-custom-remove="false"
53 ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="atendimentoRequisicaoConsumoChecked" 60 ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="atendimentoRequisicaoConsumoChecked"
@@ -66,6 +73,11 @@ @@ -66,6 +73,11 @@
66 <translate>ALMOXARIFADO.LABEL.FILTRAR</translate> 73 <translate>ALMOXARIFADO.LABEL.FILTRAR</translate>
67 </button> 74 </button>
68 75
  76 + <button title="{{$translate.instant('LABEL.LIMPAR')}}" alt="{{$translate.instant('LABEL.LIMPAR')}}" ng-click="limparBuscaAvancada()" class="btn btn-clear" type="button">
  77 + <i class="fa fa-eraser"></i>
  78 + <translate>LABEL.LIMPAR</translate>
  79 + </button>
  80 +
69 <button title="{{$translate.instant('LABEL.CANCELAR')}}" alt="{{$translate.instant('LABEL.CANCELAR')}}" ng-click="$dismiss('cancel');" class="btn btn-clear" type="button"> 81 <button title="{{$translate.instant('LABEL.CANCELAR')}}" alt="{{$translate.instant('LABEL.CANCELAR')}}" ng-click="$dismiss('cancel');" class="btn btn-clear" type="button">
70 <i class="fa fa-times red"></i> 82 <i class="fa fa-times red"></i>
71 <translate>LABEL.CANCELAR</translate> 83 <translate>LABEL.CANCELAR</translate>
@@ -73,19 +85,18 @@ @@ -73,19 +85,18 @@
73 </div> 85 </div>
74 86
75 <div class="modal-body"> 87 <div class="modal-body">
  88 +
76 <div class="row"> 89 <div class="row">
77 <div class="col-md-12"> 90 <div class="col-md-12">
78 - <auto-complete ng-id="filtroAtendimento.unidadeRequisitanteSelecao" ng-label="ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE"  
79 - ng-model="filtroAtendimento.unidadeRequisitanteSelecao" form="formDialogBuscaAvancadaRequisicao"  
80 - ng-find="findEstruturaOrganizacionalUR(value)" ng-set-result="setUnidadeRequisitante(item);"  
81 - ng-item="item.nome + ' - ' + item.classificacao" /> 91 + <auto-complete ng-id="materialConsumoItem" ng-label="ALMOXARIFADO.LABEL.MATERIAL_CONSUMO" ng-model="filtroAtendimento.materialConsumoItem"
  92 + ng-find="findMateriaisConsumoByOrganizacao(value)" ng-item="item.codigoEDescricao" ng-set-result="setMaterialConsumoItens(item)" />
82 </div> 93 </div>
83 - </div>  
84 - <div class="row" ng-show="listaUnidadesRequisitantesSelecionadas.length > 0"> 94 + </div>
  95 + <div class="row" ng-show="listaMateriaisConsumoSelecionados.length > 0">
85 <div class="col-sm-12"> 96 <div class="col-sm-12">
86 <div class="panel panel-default"> 97 <div class="panel panel-default">
87 <div class="panel-heading clearfix"> 98 <div class="panel-heading clearfix">
88 - <button class="btn btn-clear" type="button" ng-click="removerUnidadeRequisitanteSelecionada()"> 99 + <button class="btn btn-clear" type="button" ng-click="removerMaterialConsumoSelecionado(materialConsumoSelectedAll)">
89 <i class="fa fa-times red"></i> 100 <i class="fa fa-times red"></i>
90 <translate>LABEL.REMOVER</translate> 101 <translate>LABEL.REMOVER</translate>
91 </button> 102 </button>
@@ -94,38 +105,40 @@ @@ -94,38 +105,40 @@
94 <thead> 105 <thead>
95 <tr> 106 <tr>
96 <th style="width: 3%;" class="text-center"> 107 <th style="width: 3%;" class="text-center">
97 - <input type="checkbox" ng-model="filtroAtendimento.unidadeRequisitanteSelectedAll" ng-click="selectAllUnidadesRequisitantes(unidadeRequisitanteSelectedAll)"/> 108 + <input type="checkbox" ng-model="filtroAtendimento.materialConsumoSelectedAll" ng-click="selectAllMaterialConsumo(materialConsumoSelectedAll)"/>
98 </th> 109 </th>
99 <th style="text-align: center"> 110 <th style="text-align: center">
100 - <translate>ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE</translate> 111 + <translate>ALMOXARIFADO.LABEL.MATERIAL_CONSUMO</translate>
101 </th> 112 </th>
102 </tr> 113 </tr>
103 </thead> 114 </thead>
104 - <tbody ng-repeat="unidadeRequisitanteSelecionada in listaUnidadesRequisitantesSelecionadas"> 115 + <tbody ng-repeat="materialConsumoSelecionado in listaMateriaisConsumoSelecionados">
105 <tr> 116 <tr>
106 <td class="text-center"> 117 <td class="text-center">
107 - <input type="checkbox" ng-checked="unidadeRequisitanteSelecionada.$checkedChBox" ng-model="unidadeRequisitanteSelecionada.$checkedChBox"/> 118 + <input type="checkbox" ng-checked="materialConsumoSelecionado.$checkedChBox" ng-model="materialConsumoSelecionado.$checkedChBox"/>
108 </td> 119 </td>
109 <td> 120 <td>
110 - {{unidadeRequisitanteSelecionada.nome}} 121 + {{materialConsumoSelecionado.codigoEDescricao}}
111 </td> 122 </td>
112 </tr> 123 </tr>
113 </tbody> 124 </tbody>
114 </table> 125 </table>
115 - </div>  
116 - </div> 126 + </div>
  127 + </div>
117 </div> 128 </div>
118 <div class="row"> 129 <div class="row">
119 <div class="col-md-12"> 130 <div class="col-md-12">
120 - <auto-complete ng-id="materialConsumoItem" ng-label="ALMOXARIFADO.LABEL.MATERIAL_CONSUMO" ng-model="filtroAtendimento.materialConsumoItem"  
121 - ng-find="findMateriaisConsumoByOrganizacao(value)" ng-item="item.codigoEDescricao" ng-set-result="setMaterialConsumoItens(item)" /> 131 + <auto-complete ng-id="filtroAtendimento.unidadeRequisitanteSelecao" ng-label="ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE"
  132 + ng-model="filtroAtendimento.unidadeRequisitanteSelecao" form="formDialogBuscaAvancadaRequisicao"
  133 + ng-find="findEstruturaOrganizacionalUR(value)" ng-set-result="setUnidadeRequisitante(item);"
  134 + ng-item="item.nome + ' - ' + item.classificacao" />
122 </div> 135 </div>
123 - </div>  
124 - <div class="row" ng-show="listaMateriaisConsumoSelecionados.length > 0"> 136 + </div>
  137 + <div class="row" ng-show="listaUnidadesRequisitantesSelecionadas.length > 0">
125 <div class="col-sm-12"> 138 <div class="col-sm-12">
126 <div class="panel panel-default"> 139 <div class="panel panel-default">
127 <div class="panel-heading clearfix"> 140 <div class="panel-heading clearfix">
128 - <button class="btn btn-clear" type="button" ng-click="removerMaterialConsumoSelecionado(materialConsumoSelectedAll)"> 141 + <button class="btn btn-clear" type="button" ng-click="removerUnidadeRequisitanteSelecionada()">
129 <i class="fa fa-times red"></i> 142 <i class="fa fa-times red"></i>
130 <translate>LABEL.REMOVER</translate> 143 <translate>LABEL.REMOVER</translate>
131 </button> 144 </button>
@@ -134,26 +147,27 @@ @@ -134,26 +147,27 @@
134 <thead> 147 <thead>
135 <tr> 148 <tr>
136 <th style="width: 3%;" class="text-center"> 149 <th style="width: 3%;" class="text-center">
137 - <input type="checkbox" ng-model="filtroAtendimento.materialConsumoSelectedAll" ng-click="selectAllMaterialConsumo(materialConsumoSelectedAll)"/> 150 + <input type="checkbox" ng-model="filtroAtendimento.unidadeRequisitanteSelectedAll" ng-click="selectAllUnidadesRequisitantes(unidadeRequisitanteSelectedAll)"/>
138 </th> 151 </th>
139 <th style="text-align: center"> 152 <th style="text-align: center">
140 - <translate>ALMOXARIFADO.LABEL.MATERIAL_CONSUMO</translate> 153 + <translate>ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE</translate>
141 </th> 154 </th>
142 </tr> 155 </tr>
143 </thead> 156 </thead>
144 - <tbody ng-repeat="materialConsumoSelecionado in listaMateriaisConsumoSelecionados"> 157 + <tbody ng-repeat="unidadeRequisitanteSelecionada in listaUnidadesRequisitantesSelecionadas">
145 <tr> 158 <tr>
146 <td class="text-center"> 159 <td class="text-center">
147 - <input type="checkbox" ng-checked="materialConsumoSelecionado.$checkedChBox" ng-model="materialConsumoSelecionado.$checkedChBox"/> 160 + <input type="checkbox" ng-checked="unidadeRequisitanteSelecionada.$checkedChBox" ng-model="unidadeRequisitanteSelecionada.$checkedChBox"/>
148 </td> 161 </td>
149 <td> 162 <td>
150 - {{materialConsumoSelecionado.codigoEDescricao}} 163 + {{unidadeRequisitanteSelecionada.nome}}
151 </td> 164 </td>
152 </tr> 165 </tr>
153 </tbody> 166 </tbody>
154 </table> 167 </table>
155 - </div>  
156 - </div>  
157 - </div> 168 + </div>
  169 + </div>
  170 + </div>
  171 + </div>
158 </form> 172 </form>
159 </script> 173 </script>