Commit eed710633ac42606a51ab020ac54b95f25dee957
Exists in
master
Merge branch 'tarefa-3822' of http://ferramentasgo.centralit.com.br:8080/scm/git…
…/cit-grp-almoxarifado into tarefa-3822
Showing
14 changed files
with
157 additions
and
52 deletions
Show diff stats
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<RequisicaoC | @@ -42,5 +42,7 @@ public interface RequisicaoConsumoItemService extends GenericService<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<RequisicaoConsu | @@ -126,4 +127,6 @@ public interface RequisicaoConsumoService extends GenericService<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<Requisi | @@ -148,4 +148,10 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl<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<RequisicaoC | @@ -112,7 +112,7 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<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<RequisicaoC | @@ -520,4 +520,9 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<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<RequisicaoCon | @@ -65,6 +68,9 @@ public class RequisicaoConsumoController extends GenericController<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<RequisicaoCon | @@ -197,10 +203,22 @@ public class RequisicaoConsumoController extends GenericController<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( 'AtendimentoRequisicaoConsumoController', | @@ -289,22 +289,24 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
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( 'AtendimentoRequisicaoConsumoController', | @@ -323,9 +325,9 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
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('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -14,7 +14,9 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', '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('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -40,6 +42,12 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', '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('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -103,7 +111,16 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', '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('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -251,21 +268,25 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', '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('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -274,12 +295,12 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', '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('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr | @@ -19,8 +19,8 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', '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">×</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> |