Commit 56fc3e9ee4c0fa79cbe8252051cfb1faf8d6c13d
1 parent
ddef4fa3
Exists in
master
[Redmine #4982]Busca avançada para atendimento requisição de consumo
Showing
9 changed files
with
343 additions
and
6 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoDao.java
@@ -3,9 +3,12 @@ package br.com.centralit.api.dao; | @@ -3,9 +3,12 @@ package br.com.centralit.api.dao; | ||
3 | import java.util.Calendar; | 3 | import java.util.Calendar; |
4 | import java.util.Collection; | 4 | import java.util.Collection; |
5 | 5 | ||
6 | +import com.googlecode.genericdao.search.SearchResult; | ||
7 | + | ||
6 | import br.com.centralit.api.model.EstruturaOrganizacional; | 8 | import br.com.centralit.api.model.EstruturaOrganizacional; |
7 | import br.com.centralit.api.model.MaterialConsumo; | 9 | import br.com.centralit.api.model.MaterialConsumo; |
8 | import br.com.centralit.api.model.RequisicaoConsumo; | 10 | import br.com.centralit.api.model.RequisicaoConsumo; |
11 | +import br.com.centralit.api.viewHelper.AtendimentoVH; | ||
9 | import br.com.centralit.api.viewHelper.RequisicaoVH; | 12 | import br.com.centralit.api.viewHelper.RequisicaoVH; |
10 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; | 13 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
11 | 14 | ||
@@ -110,4 +113,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO { | @@ -110,4 +113,6 @@ public interface RequisicaoConsumoDao extends CitGenericDAO { | ||
110 | * @return | 113 | * @return |
111 | */ | 114 | */ |
112 | RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); | 115 | RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); |
116 | + | ||
117 | + SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH); | ||
113 | } | 118 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoDaoHibernate.java
1 | package br.com.centralit.api.dao.impl; | 1 | package br.com.centralit.api.dao.impl; |
2 | 2 | ||
3 | import java.math.BigDecimal; | 3 | import java.math.BigDecimal; |
4 | +import java.util.ArrayList; | ||
4 | import java.util.Calendar; | 5 | import java.util.Calendar; |
5 | import java.util.Collection; | 6 | import java.util.Collection; |
6 | import java.util.HashSet; | 7 | import java.util.HashSet; |
@@ -9,6 +10,12 @@ import java.util.Set; | @@ -9,6 +10,12 @@ import java.util.Set; | ||
9 | 10 | ||
10 | import org.springframework.stereotype.Repository; | 11 | import org.springframework.stereotype.Repository; |
11 | 12 | ||
13 | +import com.googlecode.genericdao.search.Field; | ||
14 | +import com.googlecode.genericdao.search.Filter; | ||
15 | +import com.googlecode.genericdao.search.Search; | ||
16 | +import com.googlecode.genericdao.search.SearchResult; | ||
17 | +import com.googlecode.genericdao.search.Sort; | ||
18 | + | ||
12 | import br.com.centralit.api.dao.RequisicaoConsumoDao; | 19 | import br.com.centralit.api.dao.RequisicaoConsumoDao; |
13 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; | 20 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; |
14 | import br.com.centralit.api.model.DominioAlmoxarifado; | 21 | import br.com.centralit.api.model.DominioAlmoxarifado; |
@@ -16,6 +23,7 @@ import br.com.centralit.api.model.EstruturaOrganizacional; | @@ -16,6 +23,7 @@ import br.com.centralit.api.model.EstruturaOrganizacional; | ||
16 | import br.com.centralit.api.model.MaterialConsumo; | 23 | import br.com.centralit.api.model.MaterialConsumo; |
17 | import br.com.centralit.api.model.RequisicaoConsumo; | 24 | import br.com.centralit.api.model.RequisicaoConsumo; |
18 | import br.com.centralit.api.model.RequisicaoConsumoItem; | 25 | import br.com.centralit.api.model.RequisicaoConsumoItem; |
26 | +import br.com.centralit.api.viewHelper.AtendimentoVH; | ||
19 | import br.com.centralit.api.viewHelper.RequisicaoVH; | 27 | import br.com.centralit.api.viewHelper.RequisicaoVH; |
20 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; | 28 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; |
21 | import br.com.centralit.framework.dao.arquitetura.SearchSeven; | 29 | import br.com.centralit.framework.dao.arquitetura.SearchSeven; |
@@ -23,9 +31,6 @@ import br.com.centralit.framework.util.UtilColecao; | @@ -23,9 +31,6 @@ import br.com.centralit.framework.util.UtilColecao; | ||
23 | import br.com.centralit.framework.util.UtilObjeto; | 31 | import br.com.centralit.framework.util.UtilObjeto; |
24 | import br.com.centralit.framework.util.UtilString; | 32 | import br.com.centralit.framework.util.UtilString; |
25 | 33 | ||
26 | -import com.googlecode.genericdao.search.Filter; | ||
27 | -import com.googlecode.genericdao.search.Sort; | ||
28 | - | ||
29 | /** | 34 | /** |
30 | * <p> | 35 | * <p> |
31 | * <img src="http://centralit.com.br/images/logo_central.png"> | 36 | * <img src="http://centralit.com.br/images/logo_central.png"> |
@@ -281,4 +286,53 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements | @@ -281,4 +286,53 @@ public class RequisicaoConsumoDaoHibernate extends CitGenericDAOImpl implements | ||
281 | 286 | ||
282 | return this.searchUnique(searchSeven); | 287 | return this.searchUnique(searchSeven); |
283 | } | 288 | } |
289 | + | ||
290 | + @SuppressWarnings({ "unchecked", "rawtypes" }) | ||
291 | + @Override | ||
292 | + public SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH) { | ||
293 | + | ||
294 | + SearchSeven searchSeven = new SearchSeven(atendimentoVH.getSearchParams()); | ||
295 | + searchSeven.setResultMode(Search.RESULT_SINGLE); | ||
296 | + | ||
297 | + searchSeven.setDistinct(true); | ||
298 | + | ||
299 | + addFilterMaterialConsumo(atendimentoVH, searchSeven); | ||
300 | + addFilterUnidadeRequisitante(atendimentoVH, searchSeven); | ||
301 | + | ||
302 | + List<Field> fields = new ArrayList<Field>(); | ||
303 | + List<Sort> sorts = new ArrayList<Sort>(); | ||
304 | + fields.add(new Field("id")); | ||
305 | + sorts.add(new Sort("id")); | ||
306 | + searchSeven.setFields(fields); | ||
307 | + searchSeven.setSorts(sorts); | ||
308 | + List<Long> ids = this.search(searchSeven); | ||
309 | + | ||
310 | + SearchResult result = new SearchResult(); | ||
311 | + result.setTotalCount(this.count(searchSeven)); | ||
312 | + | ||
313 | + fields = new ArrayList<Field>(); | ||
314 | + searchSeven = new SearchSeven(atendimentoVH.getSearchParams()); | ||
315 | + searchSeven.setResultMode(Search.RESULT_MAP); | ||
316 | + for (String field : atendimentoVH.getSearchParams().getFields()) { | ||
317 | + fields.add(new Field(field)); | ||
318 | + } | ||
319 | + searchSeven.setFields(fields); | ||
320 | + searchSeven.addFilterIn("id", ids); | ||
321 | + searchSeven.setFirstResult(0); | ||
322 | + result.setResult(this.search(searchSeven)); | ||
323 | + | ||
324 | + return result; | ||
325 | + } | ||
326 | + | ||
327 | + private void addFilterUnidadeRequisitante(AtendimentoVH atendimentoVH, SearchSeven searchSeven) { | ||
328 | + if(!UtilColecao.isVazio(atendimentoVH.getIdsUnidadesRequisitantes())){ | ||
329 | + searchSeven.addFilterIn("unidadeRequisitante.id", atendimentoVH.getIdsUnidadesRequisitantes()); | ||
330 | + } | ||
331 | + } | ||
332 | + | ||
333 | + private void addFilterMaterialConsumo(AtendimentoVH atendimentoVH, SearchSeven searchSeven) { | ||
334 | + if(!UtilColecao.isVazio(atendimentoVH.getIdsMaterais())){ | ||
335 | + searchSeven.addFilterIn("requisicaoConsumoItens.materialConsumo.id", atendimentoVH.getIdsMaterais()); | ||
336 | + } | ||
337 | + } | ||
284 | } | 338 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java
@@ -3,9 +3,12 @@ package br.com.centralit.api.service; | @@ -3,9 +3,12 @@ package br.com.centralit.api.service; | ||
3 | import java.util.Calendar; | 3 | import java.util.Calendar; |
4 | import java.util.Collection; | 4 | import java.util.Collection; |
5 | 5 | ||
6 | +import com.googlecode.genericdao.search.SearchResult; | ||
7 | + | ||
6 | import br.com.centralit.api.model.EstruturaOrganizacional; | 8 | import br.com.centralit.api.model.EstruturaOrganizacional; |
7 | import br.com.centralit.api.model.MaterialConsumo; | 9 | import br.com.centralit.api.model.MaterialConsumo; |
8 | import br.com.centralit.api.model.RequisicaoConsumo; | 10 | import br.com.centralit.api.model.RequisicaoConsumo; |
11 | +import br.com.centralit.api.viewHelper.AtendimentoVH; | ||
9 | import br.com.centralit.api.viewHelper.RequisicaoVH; | 12 | import br.com.centralit.api.viewHelper.RequisicaoVH; |
10 | import br.com.centralit.framework.service.arquitetura.GenericService; | 13 | import br.com.centralit.framework.service.arquitetura.GenericService; |
11 | 14 | ||
@@ -121,4 +124,6 @@ public interface RequisicaoConsumoService extends GenericService<RequisicaoConsu | @@ -121,4 +124,6 @@ public interface RequisicaoConsumoService extends GenericService<RequisicaoConsu | ||
121 | */ | 124 | */ |
122 | RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); | 125 | RequisicaoConsumo findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante); |
123 | 126 | ||
127 | + SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH); | ||
128 | + | ||
124 | } | 129 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java
@@ -11,6 +11,8 @@ import org.springframework.security.core.context.SecurityContextHolder; | @@ -11,6 +11,8 @@ import org.springframework.security.core.context.SecurityContextHolder; | ||
11 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
12 | import org.springframework.validation.Validator; | 12 | import org.springframework.validation.Validator; |
13 | 13 | ||
14 | +import com.googlecode.genericdao.search.SearchResult; | ||
15 | + | ||
14 | import br.com.centralit.api.dao.RequisicaoConsumoDao; | 16 | import br.com.centralit.api.dao.RequisicaoConsumoDao; |
15 | import br.com.centralit.api.model.DominioAlmoxarifado; | 17 | import br.com.centralit.api.model.DominioAlmoxarifado; |
16 | import br.com.centralit.api.model.EstruturaOrganizacional; | 18 | import br.com.centralit.api.model.EstruturaOrganizacional; |
@@ -27,6 +29,7 @@ import br.com.centralit.api.service.ModuloService; | @@ -27,6 +29,7 @@ import br.com.centralit.api.service.ModuloService; | ||
27 | import br.com.centralit.api.service.RequisicaoConsumoItemService; | 29 | import br.com.centralit.api.service.RequisicaoConsumoItemService; |
28 | import br.com.centralit.api.service.RequisicaoConsumoService; | 30 | import br.com.centralit.api.service.RequisicaoConsumoService; |
29 | import br.com.centralit.api.service.UsuarioService; | 31 | import br.com.centralit.api.service.UsuarioService; |
32 | +import br.com.centralit.api.viewHelper.AtendimentoVH; | ||
30 | import br.com.centralit.api.viewHelper.RequisicaoVH; | 33 | import br.com.centralit.api.viewHelper.RequisicaoVH; |
31 | import br.com.centralit.framework.exception.BusinessException; | 34 | import br.com.centralit.framework.exception.BusinessException; |
32 | import br.com.centralit.framework.exception.CodigoErro; | 35 | import br.com.centralit.framework.exception.CodigoErro; |
@@ -512,4 +515,9 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<RequisicaoC | @@ -512,4 +515,9 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<RequisicaoC | ||
512 | entity.setNumeroRequisicao(codigo); | 515 | entity.setNumeroRequisicao(codigo); |
513 | } | 516 | } |
514 | 517 | ||
518 | + @Override | ||
519 | + public SearchResult filtrarRequisicoesAtendimento(AtendimentoVH atendimentoVH) { | ||
520 | + return this.requisicaoConsumoDao.filtrarRequisicoesAtendimento(atendimentoVH); | ||
521 | + } | ||
522 | + | ||
515 | } | 523 | } |
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java
@@ -13,14 +13,19 @@ import org.springframework.web.bind.annotation.RequestMethod; | @@ -13,14 +13,19 @@ import org.springframework.web.bind.annotation.RequestMethod; | ||
13 | import org.springframework.web.bind.annotation.RequestParam; | 13 | import org.springframework.web.bind.annotation.RequestParam; |
14 | import org.springframework.web.bind.annotation.ResponseBody; | 14 | import org.springframework.web.bind.annotation.ResponseBody; |
15 | 15 | ||
16 | +import com.googlecode.genericdao.search.SearchResult; | ||
17 | + | ||
16 | import br.com.centralit.api.framework.json.ViewsAdmMateriais; | 18 | import br.com.centralit.api.framework.json.ViewsAdmMateriais; |
17 | import br.com.centralit.api.framework.json.ViewsAlmoxarifado; | 19 | import br.com.centralit.api.framework.json.ViewsAlmoxarifado; |
18 | import br.com.centralit.api.model.RequisicaoConsumo; | 20 | import br.com.centralit.api.model.RequisicaoConsumo; |
19 | import br.com.centralit.api.service.RequisicaoConsumoService; | 21 | import br.com.centralit.api.service.RequisicaoConsumoService; |
22 | +import br.com.centralit.api.viewHelper.AtendimentoVH; | ||
20 | import br.com.centralit.api.viewHelper.RequisicaoVH; | 23 | import br.com.centralit.api.viewHelper.RequisicaoVH; |
21 | import br.com.centralit.framework.controller.GenericController; | 24 | import br.com.centralit.framework.controller.GenericController; |
22 | import br.com.centralit.framework.json.ResponseBodyWrapper; | 25 | import br.com.centralit.framework.json.ResponseBodyWrapper; |
23 | import br.com.centralit.framework.json.Views; | 26 | import br.com.centralit.framework.json.Views; |
27 | +import br.com.centralit.framework.view.GridVH; | ||
28 | +import br.com.centralit.framework.view.ResultResponseVH; | ||
24 | 29 | ||
25 | /** | 30 | /** |
26 | * <p> | 31 | * <p> |
@@ -199,4 +204,21 @@ public class RequisicaoConsumoController extends GenericController<RequisicaoCon | @@ -199,4 +204,21 @@ public class RequisicaoConsumoController extends GenericController<RequisicaoCon | ||
199 | 204 | ||
200 | return responseBody; | 205 | return responseBody; |
201 | } | 206 | } |
207 | + | ||
208 | + @RequestMapping(value = "/filtrarRequisicoesAtendimento", method = RequestMethod.POST, produces = "application/json") | ||
209 | + @ResponseBody | ||
210 | + public ResponseBodyWrapper filtrarRequisicoesAtendimento(@RequestBody AtendimentoVH atendimentoVH) { | ||
211 | + SearchResult searchResult = requisicaoConsumoService.filtrarRequisicoesAtendimento(atendimentoVH); | ||
212 | + | ||
213 | + GridVH gridVH = new GridVH(); | ||
214 | + gridVH.setObjects(searchResult.getResult()); | ||
215 | + gridVH.addTotalItensTotalPages(atendimentoVH.getSearchParams(), Long.valueOf(searchResult.getTotalCount())); | ||
216 | + | ||
217 | + ResultResponseVH resultResponseVH = new ResultResponseVH(gridVH); | ||
218 | + | ||
219 | + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getListView()); | ||
220 | + | ||
221 | + return responseBody; | ||
222 | + } | ||
223 | + | ||
202 | } | 224 | } |
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -325,6 +325,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | @@ -325,6 +325,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | ||
325 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.EXCLUIR_ATENDIMENTO", "Excluir atendimento", dominio, modulo)); | 325 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.EXCLUIR_ATENDIMENTO", "Excluir atendimento", dominio, modulo)); |
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 | } | 329 | } |
329 | 330 | ||
330 | private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { | 331 | private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | -citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'AtendimentoRequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'RequisicaoConsumoRepository', | ||
4 | - function AtendimentoRequisicaoConsumoListController($scope, AtendimentoRequisicaoConsumoRepository, $translate, $timeout, DominioRepository, RequisicaoConsumoRepository) { | 3 | +citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'AtendimentoRequisicaoConsumoRepository', '$translate', |
4 | + '$timeout', 'DominioRepository', 'RequisicaoConsumoRepository', | ||
5 | + 'EstruturaOrganizacionalAlmoxarifadoRepository','MaterialConsumoRepository','$filter', | ||
6 | + function AtendimentoRequisicaoConsumoListController($scope, AtendimentoRequisicaoConsumoRepository, $translate, | ||
7 | + $timeout, DominioRepository, RequisicaoConsumoRepository, EstruturaOrganizacionalAlmoxarifadoRepository, MaterialConsumoRepository, $filter) { | ||
5 | $scope.$showAdvancedFilters = false; | 8 | $scope.$showAdvancedFilters = false; |
6 | $scope.listaSelecionados = []; | 9 | $scope.listaSelecionados = []; |
7 | $scope.resetForm = function() { | 10 | $scope.resetForm = function() { |
@@ -10,6 +13,8 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -10,6 +13,8 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | ||
10 | 13 | ||
11 | $scope.recarregar = function() { | 14 | $scope.recarregar = function() { |
12 | 15 | ||
16 | + $scope.filtrarCustomizado = false; | ||
17 | + | ||
13 | // DEFINE CABEÇALHOS DA LISTAGEM | 18 | // DEFINE CABEÇALHOS DA LISTAGEM |
14 | $scope.headers = [ {title : $translate.instant('ALMOXARIFADO.LABEL.NUMERO_REQUISICAO'), value : 'numeroRequisicao' } , | 19 | $scope.headers = [ {title : $translate.instant('ALMOXARIFADO.LABEL.NUMERO_REQUISICAO'), value : 'numeroRequisicao' } , |
15 | {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } , | 20 | {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } , |
@@ -175,4 +180,126 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -175,4 +180,126 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | ||
175 | 180 | ||
176 | }; | 181 | }; |
177 | 182 | ||
183 | + $scope.findEstruturaOrganizacionalUR = function(value){ | ||
184 | + return EstruturaOrganizacionalAlmoxarifadoRepository.findEstruturaOrganizacionalUR(value, | ||
185 | + $scope.usuarioLogado.organizacao.id).then(function(result) { | ||
186 | + return $filter('idNotEqual')(result, $scope.listaUnidadesRequisitantesSelecionadas, 'id'); | ||
187 | + }); | ||
188 | + }; | ||
189 | + | ||
190 | + $scope.findMateriaisConsumoByOrganizacao = function(value){ | ||
191 | + return MaterialConsumoRepository.findMateriaisConsumoByOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { | ||
192 | + return $filter('idNotEqual')(result, $scope.listaMateriaisConsumoSelecionados, "id"); | ||
193 | + }); | ||
194 | + }; | ||
195 | + | ||
196 | + $scope.setUnidadeRequisitante = function(item){ | ||
197 | + $scope.listaUnidadesRequisitantesSelecionadas.push(item); | ||
198 | + $timeout(function(){ | ||
199 | + $scope.filtroAtendimento.unidadeRequisitanteSelecao = null; | ||
200 | + }); | ||
201 | + }; | ||
202 | + | ||
203 | + $scope.selectAllUnidadesRequisitantes = function(check){ | ||
204 | + angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (item) { | ||
205 | + item.$checkedChBox = $scope.filtroAtendimento.unidadeRequisitanteSelectedAll; | ||
206 | + }); | ||
207 | + }; | ||
208 | + | ||
209 | + $scope.selectAllMaterialConsumo = function(check){ | ||
210 | + angular.forEach($scope.listaMateriaisConsumoSelecionados, function (item) { | ||
211 | + item.$checkedChBox = $scope.filtroAtendimento.materialConsumoSelectedAll; | ||
212 | + }); | ||
213 | + }; | ||
214 | + | ||
215 | + $scope.setMaterialConsumoItens = function(item){ | ||
216 | + $scope.listaMateriaisConsumoSelecionados.push(item); | ||
217 | + $timeout(function(){ | ||
218 | + $scope.filtroAtendimento.materialConsumoItem = null; | ||
219 | + }); | ||
220 | + }; | ||
221 | + | ||
222 | + $scope.removerUnidadeRequisitanteSelecionada = function(){ | ||
223 | + | ||
224 | + if($scope.filtroAtendimento.unidadeRequisitanteSelectedAll){ | ||
225 | + $scope.listaUnidadesRequisitantesSelecionadas = []; | ||
226 | + $scope.filtroAtendimento.unidadeRequisitanteSelectedAll = false; | ||
227 | + }else{ | ||
228 | + $scope.listaUnidadesRequisitantesSelecionadas.forEach(function(item, key) { | ||
229 | + if (item.$checkedChBox) { | ||
230 | + $scope.listaUnidadesRequisitantesSelecionadas.splice($scope.listaUnidadesRequisitantesSelecionadas.indexOf(item), 1); | ||
231 | + } | ||
232 | + }); | ||
233 | + } | ||
234 | + | ||
235 | + }; | ||
236 | + | ||
237 | + $scope.removerMaterialConsumoSelecionado = function(){ | ||
238 | + | ||
239 | + if($scope.filtroAtendimento.materialConsumoSelectedAll){ | ||
240 | + $scope.listaMateriaisConsumoSelecionados = []; | ||
241 | + $scope.filtroAtendimento.materialConsumoSelectedAll = false; | ||
242 | + }else{ | ||
243 | + angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) { | ||
244 | + if(value.$checkedChBox){ | ||
245 | + $scope.listaMateriaisConsumoSelecionados.splice($scope.listaMateriaisConsumoSelecionados.indexOf(value), 1); | ||
246 | + } | ||
247 | + }); | ||
248 | + } | ||
249 | + }; | ||
250 | + | ||
251 | + | ||
252 | + $scope.atendimentoAvancado = function(){ | ||
253 | + $scope.filtroAtendimento = {unidadeRequisitanteSelectedAll : false , materialConsumoSelectedAll : false}; | ||
254 | + $scope.listaUnidadesRequisitantesSelecionadas = []; | ||
255 | + $scope.listaMateriaisConsumoSelecionados = []; | ||
256 | + $scope.$openModal('modal-busca-avancada-requisicao.html', 'md'); | ||
257 | + }; | ||
258 | + | ||
259 | + $scope.filtrarRequisicoes = function(){ | ||
260 | + $scope.setLoading(true); | ||
261 | + var atendimentoVH = {searchParams : $scope.filterCriteria}; | ||
262 | + var idsUnidadeRequisitante = []; | ||
263 | + | ||
264 | + if($scope.listaUnidadesRequisitantesSelecionadas && $scope.listaUnidadesRequisitantesSelecionadas.length > 0){ | ||
265 | + angular.forEach($scope.listaUnidadesRequisitantesSelecionadas, function (value) { | ||
266 | + idsUnidadeRequisitante.push(value.id); | ||
267 | + }); | ||
268 | + atendimentoVH.idsUnidadesRequisitantes = idsUnidadeRequisitante; | ||
269 | + } | ||
270 | + | ||
271 | + var idsMateriaisConsumo = []; | ||
272 | + | ||
273 | + if($scope.listaMateriaisConsumoSelecionados && $scope.listaMateriaisConsumoSelecionados.length > 0){ | ||
274 | + angular.forEach($scope.listaMateriaisConsumoSelecionados, function (value) { | ||
275 | + idsMateriaisConsumo.push(value.id); | ||
276 | + }); | ||
277 | + atendimentoVH.idsMaterais = idsMateriaisConsumo; | ||
278 | + } | ||
279 | + | ||
280 | + return RequisicaoConsumoRepository.filtrarRequisicoesAtendimento(atendimentoVH).then(function(result){ | ||
281 | + if(result){ | ||
282 | + | ||
283 | + $scope.atendimentoRequisicaoConsumoList = result.originalElement.objects; | ||
284 | + | ||
285 | + $scope.setTotalPages = result.originalElement.totalPages; | ||
286 | + $scope.setTotalItens = result.originalElement.totalItens; | ||
287 | + | ||
288 | + if(!$scope.filtersCopy){ | ||
289 | + $scope.filtersCopy = angular.copy($scope.filterCriteria.filters); | ||
290 | + } | ||
291 | + $scope.filtrarCustomizado = true; | ||
292 | + if($scope.setTotalItens == 0){ | ||
293 | + $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false); | ||
294 | + } | ||
295 | + | ||
296 | + } else { | ||
297 | + $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false); | ||
298 | + } | ||
299 | + $scope.$modalInstance.dismiss('cancel'); | ||
300 | + $scope.setLoading(false); | ||
301 | + }); | ||
302 | + | ||
303 | + }; | ||
304 | + | ||
178 | }]); | 305 | }]); |
179 | \ No newline at end of file | 306 | \ No newline at end of file |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js
@@ -22,6 +22,10 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr | @@ -22,6 +22,10 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr | ||
22 | this.atenderRequisicoes = function(idsRequisicaoConsumo){ | 22 | this.atenderRequisicoes = function(idsRequisicaoConsumo){ |
23 | return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(idsRequisicaoConsumo).then(); | 23 | return restangularAlmoxarifado.all(this.route + "/atenderRequisicoes").post(idsRequisicaoConsumo).then(); |
24 | }; | 24 | }; |
25 | + | ||
26 | + this.filtrarRequisicoesAtendimento = function(atendimentoVH) { | ||
27 | + return this.restangular.all(this.route+ "/filtrarRequisicoesAtendimento").post(atendimentoVH); | ||
28 | + }; | ||
25 | } | 29 | } |
26 | 30 | ||
27 | AbstractRepository.extend(RequisicaoConsumoRepository); | 31 | AbstractRepository.extend(RequisicaoConsumoRepository); |
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
@@ -40,9 +40,120 @@ | @@ -40,9 +40,120 @@ | ||
40 | </div><!-- .bar-buttons-action --> | 40 | </div><!-- .bar-buttons-action --> |
41 | 41 | ||
42 | <breadcrumb ng-workspace="workspace"></breadcrumb> | 42 | <breadcrumb ng-workspace="workspace"></breadcrumb> |
43 | + | ||
44 | + <div class="row" style="margin-bottom: 10px; margin-top: 5px !important;"> | ||
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;"> | ||
47 | + <translate>LABEL.BUSCA_AVANCADA</translate> | ||
48 | + </button> | ||
49 | + </div> | ||
50 | + </div> | ||
43 | 51 | ||
44 | <list-view ng-lista="atendimentoRequisicaoConsumoList" ng-repository="RequisicaoConsumoRepository" ng-use-custom-remove="false" | 52 | <list-view ng-lista="atendimentoRequisicaoConsumoList" ng-repository="RequisicaoConsumoRepository" ng-use-custom-remove="false" |
45 | ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="atendimentoRequisicaoConsumoChecked" | 53 | ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="atendimentoRequisicaoConsumoChecked" |
46 | - ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true"></list-view> | 54 | + ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true" |
55 | + set-total-pages="setTotalPages" set-total-itens="setTotalItens" | ||
56 | + use-custom-filter-temp="filtrarCustomizado" ng-custom-filter="filtrarRequisicoes()"></list-view> | ||
47 | 57 | ||
48 | </div><!-- .page-content --> | 58 | </div><!-- .page-content --> |
59 | + | ||
60 | + | ||
61 | +<script type="text/ng-template" id="modal-busca-avancada-requisicao.html"> | ||
62 | + <form name="formDialogBuscaAvancadaRequisicao" novalidate > | ||
63 | + <div class="modal-header"> | ||
64 | + <button class="btn btn-clear" type="button" title="{{$translate.instant('ALMOXARIFADO.LABEL.FILTRAR')}}" alt="{{$translate.instant('ALMOXARIFADO.LABEL.FILTRAR')}}" ng-click="filtrarRequisicoes();"> | ||
65 | + <i class="fa fa-plus-circle yellow-dark"></i> | ||
66 | + <translate>ALMOXARIFADO.LABEL.FILTRAR</translate> | ||
67 | + </button> | ||
68 | + | ||
69 | + <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> | ||
71 | + <translate>LABEL.CANCELAR</translate> | ||
72 | + </button> | ||
73 | + </div> | ||
74 | + | ||
75 | + <div class="modal-body"> | ||
76 | + <div class="row"> | ||
77 | + <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" /> | ||
82 | + </div> | ||
83 | + </div> | ||
84 | + <div class="row" ng-show="listaUnidadesRequisitantesSelecionadas.length > 0"> | ||
85 | + <div class="col-sm-12"> | ||
86 | + <div class="panel panel-default"> | ||
87 | + <div class="panel-heading clearfix"> | ||
88 | + <button class="btn btn-clear" type="button" ng-click="removerUnidadeRequisitanteSelecionada()"> | ||
89 | + <i class="fa fa-times red"></i> | ||
90 | + <translate>LABEL.REMOVER</translate> | ||
91 | + </button> | ||
92 | + </div> | ||
93 | + <table class="table table-bordered table-striped"> | ||
94 | + <thead> | ||
95 | + <tr> | ||
96 | + <th style="width: 3%;" class="text-center"> | ||
97 | + <input type="checkbox" ng-model="filtroAtendimento.unidadeRequisitanteSelectedAll" ng-click="selectAllUnidadesRequisitantes(unidadeRequisitanteSelectedAll)"/> | ||
98 | + </th> | ||
99 | + <th style="text-align: center"> | ||
100 | + <translate>ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE</translate> | ||
101 | + </th> | ||
102 | + </tr> | ||
103 | + </thead> | ||
104 | + <tbody ng-repeat="unidadeRequisitanteSelecionada in listaUnidadesRequisitantesSelecionadas"> | ||
105 | + <tr> | ||
106 | + <td class="text-center"> | ||
107 | + <input type="checkbox" ng-checked="unidadeRequisitanteSelecionada.$checkedChBox" ng-model="unidadeRequisitanteSelecionada.$checkedChBox"/> | ||
108 | + </td> | ||
109 | + <td> | ||
110 | + {{unidadeRequisitanteSelecionada.nome}} | ||
111 | + </td> | ||
112 | + </tr> | ||
113 | + </tbody> | ||
114 | + </table> | ||
115 | + </div> | ||
116 | + </div> | ||
117 | + </div> | ||
118 | + <div class="row"> | ||
119 | + <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)" /> | ||
122 | + </div> | ||
123 | + </div> | ||
124 | + <div class="row" ng-show="listaMateriaisConsumoSelecionados.length > 0"> | ||
125 | + <div class="col-sm-12"> | ||
126 | + <div class="panel panel-default"> | ||
127 | + <div class="panel-heading clearfix"> | ||
128 | + <button class="btn btn-clear" type="button" ng-click="removerMaterialConsumoSelecionado(materialConsumoSelectedAll)"> | ||
129 | + <i class="fa fa-times red"></i> | ||
130 | + <translate>LABEL.REMOVER</translate> | ||
131 | + </button> | ||
132 | + </div> | ||
133 | + <table class="table table-bordered table-striped"> | ||
134 | + <thead> | ||
135 | + <tr> | ||
136 | + <th style="width: 3%;" class="text-center"> | ||
137 | + <input type="checkbox" ng-model="filtroAtendimento.materialConsumoSelectedAll" ng-click="selectAllMaterialConsumo(materialConsumoSelectedAll)"/> | ||
138 | + </th> | ||
139 | + <th style="text-align: center"> | ||
140 | + <translate>ALMOXARIFADO.LABEL.MATERIAL_CONSUMO</translate> | ||
141 | + </th> | ||
142 | + </tr> | ||
143 | + </thead> | ||
144 | + <tbody ng-repeat="materialConsumoSelecionado in listaMateriaisConsumoSelecionados"> | ||
145 | + <tr> | ||
146 | + <td class="text-center"> | ||
147 | + <input type="checkbox" ng-checked="materialConsumoSelecionado.$checkedChBox" ng-model="materialConsumoSelecionado.$checkedChBox"/> | ||
148 | + </td> | ||
149 | + <td> | ||
150 | + {{materialConsumoSelecionado.codigoEDescricao}} | ||
151 | + </td> | ||
152 | + </tr> | ||
153 | + </tbody> | ||
154 | + </table> | ||
155 | + </div> | ||
156 | + </div> | ||
157 | + </div> | ||
158 | + </form> | ||
159 | +</script> |