Commit da0498cb17e208f48bfe31e84746fa764da907b5
1 parent
51a91f60
Exists in
master
[Redmine Atendimento #4740]Endereço Estoque
Showing
12 changed files
with
222 additions
and
38 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EnderecoEstoqueDao.java
1 | 1 | package br.com.centralit.api.dao; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
5 | +import br.com.centralit.api.model.EnderecoEstoque; | |
3 | 6 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
4 | 7 | |
5 | 8 | public interface EnderecoEstoqueDao extends CitGenericDAO { |
6 | 9 | |
7 | - boolean enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque);} | |
10 | + List<EnderecoEstoque> enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque);} | ... | ... |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java
... | ... | @@ -32,12 +32,12 @@ public class EnderecoEstoqueDaoHibernate extends CitGenericDAOImpl implements En |
32 | 32 | } |
33 | 33 | |
34 | 34 | @Override |
35 | - public boolean enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque) { | |
35 | + public List<EnderecoEstoque> enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque) { | |
36 | 36 | |
37 | 37 | SearchSeven searchSeven = new SearchSeven(this.persistentClass); |
38 | 38 | |
39 | 39 | searchSeven.addFilterEqual("endeEstoqSuperior.id", idEnderecoEstoque); |
40 | 40 | |
41 | - return this.count(searchSeven) > 0 ? Boolean.TRUE : Boolean.FALSE; | |
41 | + return this.search(searchSeven); | |
42 | 42 | } |
43 | 43 | } | ... | ... |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java
... | ... | @@ -76,11 +76,11 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { |
76 | 76 | @JsonView({ Views.EnderecoEstoqueView.class }) |
77 | 77 | private String codigo; |
78 | 78 | |
79 | - @Column(name = "sigla", length = 30, nullable = false, updatable = true) | |
79 | + @Column(name = "sigla", length = 30, updatable = true) | |
80 | 80 | @JsonView({ Views.EnderecoEstoqueView.class }) |
81 | 81 | private String sigla; |
82 | 82 | |
83 | - @Column(name = "descricao", length = 400) | |
83 | + @Column(name = "descricao", length = 400, nullable = false) | |
84 | 84 | @JsonView({ Views.EnderecoEstoqueView.class }) |
85 | 85 | private String descricao; |
86 | 86 | ... | ... |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EnderecoEstoqueService.java
1 | 1 | package br.com.centralit.api.service; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
3 | 5 | import br.com.centralit.api.model.EnderecoEstoque; |
4 | 6 | import br.com.centralit.framework.service.arquitetura.GenericService; |
5 | 7 | |
6 | 8 | public interface EnderecoEstoqueService extends GenericService<EnderecoEstoque, Long> { |
7 | - | |
8 | - boolean enderecoEstoqueSuperiorVinculado(Long id); | |
9 | - | |
9 | + | |
10 | + List<EnderecoEstoque> enderecoEstoqueSuperiorVinculado(Long id); | |
11 | + | |
10 | 12 | } | ... | ... |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java
... | ... | @@ -82,7 +82,8 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl<EnderecoEstoq |
82 | 82 | public EnderecoEstoque merge(EnderecoEstoque enderecoEstoque) { |
83 | 83 | |
84 | 84 | if(enderecoEstoque.getAcomodaMaterial()){ |
85 | - if(this.enderecoEstoqueSuperiorVinculado(enderecoEstoque.getId())){ | |
85 | + List<EnderecoEstoque> vinculosEndEstoque = this.enderecoEstoqueSuperiorVinculado(enderecoEstoque.getId()); | |
86 | + if(!UtilColecao.isVazio(vinculosEndEstoque)){ | |
86 | 87 | throw new BusinessException("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", CodigoErro.REGRA_NEGOCIO.getValue()); |
87 | 88 | } |
88 | 89 | } |
... | ... | @@ -93,18 +94,13 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl<EnderecoEstoq |
93 | 94 | } |
94 | 95 | |
95 | 96 | @Override |
96 | - public boolean remove(EnderecoEstoque entity) { | |
97 | + public boolean removeById(Long id) { | |
97 | 98 | |
98 | - if (!UtilColecao.isVazio(entity.getMateriais())) { | |
99 | - for (MaterialLocalEstoque materialLocalEstoque : entity.getMateriais()) { | |
100 | - if(materialLocalEstoque.getQuantidade() != null && !materialLocalEstoque.getQuantidade().equals(new BigDecimal("0"))){ | |
101 | - throw new BusinessException("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA", CodigoErro.REGRA_NEGOCIO.getValue()); | |
102 | - } | |
103 | - } | |
104 | - | |
99 | + List<EnderecoEstoque> vinculos = this.enderecoEstoqueSuperiorVinculado(id); | |
100 | + for (EnderecoEstoque enderecoEstoque : vinculos) { | |
101 | + super.remove(enderecoEstoque); | |
105 | 102 | } |
106 | - | |
107 | - return super.remove(entity); | |
103 | + return super.removeById(id); | |
108 | 104 | } |
109 | 105 | |
110 | 106 | @Override |
... | ... | @@ -128,7 +124,7 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl<EnderecoEstoq |
128 | 124 | } |
129 | 125 | |
130 | 126 | @Override |
131 | - public boolean enderecoEstoqueSuperiorVinculado(Long id) { | |
127 | + public List<EnderecoEstoque> enderecoEstoqueSuperiorVinculado(Long id) { | |
132 | 128 | return this.enderecoEstoqueDao.enderecoEstoqueSuperiorVinculado(id); |
133 | 129 | } |
134 | 130 | ... | ... |
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java
1 | 1 | package br.com.centralit.controller; |
2 | 2 | |
3 | +import java.util.List; | |
4 | + | |
3 | 5 | import org.springframework.beans.factory.annotation.Autowired; |
4 | 6 | import org.springframework.stereotype.Controller; |
5 | 7 | import org.springframework.web.bind.annotation.RequestMapping; |
... | ... | @@ -8,18 +10,38 @@ import org.springframework.web.bind.annotation.RequestParam; |
8 | 10 | import org.springframework.web.bind.annotation.ResponseBody; |
9 | 11 | |
10 | 12 | import br.com.centralit.api.model.EnderecoEstoque; |
13 | +import br.com.centralit.api.service.DominioService; | |
11 | 14 | import br.com.centralit.api.service.EnderecoEstoqueService; |
15 | +import br.com.centralit.api.service.InternacionalizacaoService; | |
12 | 16 | import br.com.centralit.framework.controller.GenericController; |
13 | 17 | import br.com.centralit.framework.json.ResponseBodyWrapper; |
14 | 18 | import br.com.centralit.framework.json.Views; |
15 | 19 | import br.com.centralit.framework.json.Views.EnderecoEstoqueView; |
20 | +import br.com.centralit.framework.model.Dominio; | |
21 | +import br.com.centralit.framework.util.UtilColecao; | |
22 | +import br.com.centralit.framework.util.UtilObjeto; | |
16 | 23 | |
17 | 24 | @Controller |
18 | 25 | @RequestMapping("/rest/enderecoEstoque") |
19 | 26 | public class EnderecoEstoqueController extends GenericController<EnderecoEstoque>{ |
20 | 27 | |
28 | + @Autowired | |
29 | + private InternacionalizacaoService internacionalizacaoService; | |
30 | + | |
31 | + @Autowired | |
32 | + private DominioService dominioService; | |
33 | + | |
21 | 34 | private EnderecoEstoqueService enderecoEstoqueService; |
22 | 35 | |
36 | + private Dominio idioma; | |
37 | + | |
38 | + public Dominio getIdioma() { | |
39 | + if(!UtilObjeto.isReferencia(idioma)){ | |
40 | + idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO); | |
41 | + } | |
42 | + return idioma; | |
43 | + } | |
44 | + | |
23 | 45 | @Autowired |
24 | 46 | public EnderecoEstoqueController(EnderecoEstoqueService enderecoEstoqueService) { |
25 | 47 | super(enderecoEstoqueService); |
... | ... | @@ -35,6 +57,50 @@ public class EnderecoEstoqueController extends GenericController<EnderecoEstoque |
35 | 57 | return responseBody; |
36 | 58 | } |
37 | 59 | |
60 | + @RequestMapping(value = "/enderecoEstoqueIsSuperior", method = RequestMethod.GET, produces = "application/json") | |
61 | + @ResponseBody | |
62 | + public boolean enderecoEstoqueIsSuperior(@RequestParam(value = "idEnderecoEstoque") Long idEnderecoEstoque) { | |
63 | + | |
64 | + return !UtilColecao.isVazio(this.enderecoEstoqueService.enderecoEstoqueSuperiorVinculado(idEnderecoEstoque)); | |
65 | + } | |
66 | + | |
67 | + @RequestMapping(value = "/enderecoEstoqueSuperiorEFilhosTemVinculoMaterial", method = RequestMethod.GET, produces = "application/json") | |
68 | + @ResponseBody | |
69 | + public ResponseBodyWrapper enderecoEstoqueSuperiorEFilhosTemVinculoMaterial(@RequestParam(value = "idEnderecoEstoque") Long idEnderecoEstoque) { | |
70 | + StringBuilder mensagemValidacao = new StringBuilder(); | |
71 | + | |
72 | + EnderecoEstoque enderecoEstoque = this.enderecoEstoqueService.find(idEnderecoEstoque); | |
73 | + | |
74 | + if(!UtilColecao.isVazio(enderecoEstoque.getMateriais())){ | |
75 | + mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR", this.getIdioma())); | |
76 | + mensagemValidacao.append(": "); | |
77 | + mensagemValidacao.append(enderecoEstoque.getDescricao()); | |
78 | + mensagemValidacao.append("<p>"); | |
79 | + mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", this.getIdioma())); | |
80 | + mensagemValidacao.append("</p>"); | |
81 | + } | |
82 | + | |
83 | + List<EnderecoEstoque> vinculos = this.enderecoEstoqueService.enderecoEstoqueSuperiorVinculado(idEnderecoEstoque); | |
84 | + if(!UtilColecao.isVazio(vinculos)){ | |
85 | + for (EnderecoEstoque enderecoEstoqueFilho : vinculos) { | |
86 | + if(!UtilColecao.isVazio(enderecoEstoqueFilho.getMateriais())){ | |
87 | + mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", this.getIdioma())); | |
88 | + mensagemValidacao.append(": "); | |
89 | + mensagemValidacao.append(enderecoEstoqueFilho.getDescricao()); | |
90 | + mensagemValidacao.append("<p>"); | |
91 | + mensagemValidacao.append(this.internacionalizacaoService.getTranslate("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", this.getIdioma())); | |
92 | + mensagemValidacao.append("</p>"); | |
93 | + } | |
94 | + } | |
95 | + } | |
96 | + | |
97 | + if(mensagemValidacao.length() > 0){ | |
98 | + mensagemValidacao.insert(0, this.internacionalizacaoService.getTranslate("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", this.getIdioma()) + "<br>"); | |
99 | + } | |
100 | + | |
101 | + return new ResponseBodyWrapper(mensagemValidacao.toString(), getEditView()); | |
102 | + } | |
103 | + | |
38 | 104 | @Override |
39 | 105 | public Class<EnderecoEstoqueView> getEditView() { |
40 | 106 | ... | ... |
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... | ... | @@ -298,6 +298,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat |
298 | 298 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO", "Desc. Endereço Superior", dominio, modulo)); |
299 | 299 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ACOMODA_MATERIAL", "Acomoda Materiais", dominio, modulo)); |
300 | 300 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_TODOS_MATERIAL", "Adicionar endereço para todos os materiais", dominio, modulo)); |
301 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", "Existe materiais vinculados", dominio, modulo)); | |
302 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de Estoque vinculado ao endereço superior", dominio, modulo)); | |
301 | 303 | |
302 | 304 | } |
303 | 305 | |
... | ... | @@ -321,7 +323,10 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat |
321 | 323 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.QUANTIDADE_ZERADA_NEGATIVA", "A quantidade a atender está zerada ou vazia do seguinte material: ", dominio, modulo)); |
322 | 324 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA", "O endereço não pode ser removido, pois está vinculado a um material de consumo", dominio, modulo)); |
323 | 325 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", "Não foi permitido atualizar o registro, o endereço em questão é um endereço superior de outros endereços, logo não é possivel indicar o endereço como uma acomodação de materiais.", dominio, modulo)); |
324 | - | |
326 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_REMOVER_ENDERECO_ESTOQUE_END_SUPERIOR_VINCULO", "Remoção não permitida. O endereço de estoque a ser removido tem vínculo como endereço superior de outros endereços. Para remover este endereço, desvincule primeiramente dos demais endereços.", dominio, modulo)); | |
327 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA_MOTIVO", "Remoção endereço estoque negada, pelos motivos", dominio, modulo)); | |
328 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_IS_SUPERIOR_REMOVER", "O endereço de estoque a ser removido, foi vinculado como superior a outros endereço. Caso prossiga com a operação, também será removido todos os endereços vinculados a este. Deseja continuar?", dominio, modulo)); | |
329 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_TODOS_MATERIAIS", "A definição de endereço de estoque para todos os materias não poderá ser desfeita após salvar o registro. Deseja realmente adicionar este endereço para todos os materiais?", dominio, modulo)); | |
325 | 330 | } |
326 | 331 | |
327 | 332 | private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { | ... | ... |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js
... | ... | @@ -5,7 +5,7 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi |
5 | 5 | |
6 | 6 | $scope.resetForm = function() { |
7 | 7 | $scope.bloquearAcomodacaoMaterial = false; |
8 | - $scope.bloquearAcomodacaoMaterial = false; | |
8 | + $scope.bloquearEnderecoTotalMaterial = false; | |
9 | 9 | $scope.enderecoEstoque = {}; |
10 | 10 | EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){ |
11 | 11 | $scope.estruturaAlmoxarifadoPadrao = {}; |
... | ... | @@ -25,21 +25,48 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi |
25 | 25 | angular.element('#searchEnderecoEstoque').scope().fetchResult(); |
26 | 26 | }; |
27 | 27 | |
28 | - // MODAL QUE CONFIRMA REMOVER DA CIDADE | |
28 | + function removerEnderecoEstoque(){ | |
29 | + | |
30 | + EnderecoEstoqueRepository.enderecoEstoqueSuperiorEFilhosTemVinculoMaterial($scope.enderecoEstoqueChecked.id).then(function(result) { | |
31 | + if(result && result.length > 0){ | |
32 | + $scope.showAlert('warning', result); | |
33 | + }else{ | |
34 | + $scope.$openModalConfirm({ | |
35 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | |
36 | + callback: function () { | |
37 | + EnderecoEstoqueRepository.remove($scope.enderecoEstoqueChecked).then(function() { | |
38 | + | |
39 | + $scope.$modalConfirmInstance.dismiss('cancel'); | |
40 | + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); | |
41 | + angular.element('#searchEnderecoEstoque').scope().fetchResult(); | |
42 | + | |
43 | + $scope.resetForm(); | |
44 | + }); | |
45 | + } | |
46 | + }); | |
47 | + } | |
48 | + }); | |
49 | + | |
50 | + } | |
51 | + | |
29 | 52 | $scope.remove = function(enderecoEstoque){ |
30 | - $scope.enderecoEstoque = enderecoEstoque; | |
31 | - $scope.$openModalConfirm({ | |
32 | - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | |
33 | - callback: function () { | |
34 | - EnderecoEstoqueRepository.remove($scope.enderecoEstoque).then(function() { | |
35 | - | |
36 | - $scope.$modalConfirmInstance.dismiss('cancel'); | |
37 | - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); | |
38 | - angular.element('#searchEnderecoEstoque').scope().fetchResult(); | |
39 | - | |
40 | - $scope.resetForm(); | |
41 | - }); | |
42 | - } | |
53 | + $scope.enderecoEstoqueChecked = enderecoEstoque; | |
54 | + if(!$scope.enderecoEstoqueChecked) { | |
55 | + $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | |
56 | + return; | |
57 | + } | |
58 | + | |
59 | + EnderecoEstoqueRepository.enderecoEstoqueIsSuperior($scope.enderecoEstoqueChecked.id).then(function(result) { | |
60 | + if(result){ | |
61 | + $scope.$openModalConfirm({ | |
62 | + message: $translate.instant('ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_IS_SUPERIOR_REMOVER'), | |
63 | + callback: function () { | |
64 | + removerEnderecoEstoque(); | |
65 | + } | |
66 | + }); | |
67 | + }else{ | |
68 | + removerEnderecoEstoque(); | |
69 | + } | |
43 | 70 | }); |
44 | 71 | }; |
45 | 72 | |
... | ... | @@ -95,16 +122,26 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi |
95 | 122 | $scope.validaEnderecoTodosMaterial = function(){ |
96 | 123 | $timeout(function(){ |
97 | 124 | if($scope.enderecoEstoque.enderTodoMaterial){ |
98 | - $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_TODOS_MATERIAIS'), " ", false); | |
125 | + $scope.$openModal('modalConfirmEnderecoTodosMaterial.html', 'md'); | |
99 | 126 | } |
100 | 127 | }); |
101 | 128 | } |
102 | 129 | |
130 | + $scope.confirmaEnderecoTodosMaterial = function(){ | |
131 | + $scope.enderecoEstoque.enderTodoMaterial = true; | |
132 | + }; | |
133 | + | |
134 | + $scope.negaEnderecoTodosMaterial = function(){ | |
135 | + $scope.enderecoEstoque.enderTodoMaterial = false; | |
136 | + }; | |
137 | + | |
103 | 138 | $scope.verificaBloquearAcomodacaoMaterial = function(){ |
104 | 139 | if(!$scope.edit){ |
105 | 140 | $scope.bloquearAcomodacaoMaterial = true; |
106 | 141 | }else if($scope.enderecoEstoque.materiais && $scope.enderecoEstoque.materiais.length > 0 && $scope.enderecoEstoque.id){ |
107 | 142 | $scope.bloquearAcomodacaoMaterial = true; |
143 | + }else{ | |
144 | + $scope.bloquearAcomodacaoMaterial = false; | |
108 | 145 | } |
109 | 146 | }; |
110 | 147 | |
... | ... | @@ -113,6 +150,8 @@ citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueReposi |
113 | 150 | $scope.bloquearEnderecoTotalMaterial = true; |
114 | 151 | }else if($scope.enderecoEstoque.enderTodoMaterial && $scope.enderecoEstoque.id){ |
115 | 152 | $scope.bloquearEnderecoTotalMaterial = true; |
153 | + }else{ | |
154 | + $scope.bloquearEnderecoTotalMaterial = false; | |
116 | 155 | } |
117 | 156 | }; |
118 | 157 | ... | ... |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueListController.js
... | ... | @@ -40,4 +40,51 @@ citApp.controller('EnderecoEstoqueListController', ['$scope', 'EnderecoEstoqueRe |
40 | 40 | angular.element('#editEnderecoEstoque').scope().getEnderecoEstoque(enderecoEstoque, edit); |
41 | 41 | $scope.$showPageEditWorkspace($scope.workspace); |
42 | 42 | }; |
43 | + | |
44 | + function removerEnderecoEstoque(){ | |
45 | + | |
46 | + EnderecoEstoqueRepository.enderecoEstoqueSuperiorEFilhosTemVinculoMaterial($scope.enderecoEstoqueChecked.id).then(function(result) { | |
47 | + if(result && result.length > 0){ | |
48 | + $scope.showAlert('warning', result); | |
49 | + }else{ | |
50 | + $scope.$openModalConfirm({ | |
51 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | |
52 | + callback: function () { | |
53 | + EnderecoEstoqueRepository.remove($scope.enderecoEstoqueChecked).then(function() { | |
54 | + | |
55 | + $scope.$modalConfirmInstance.dismiss('cancel'); | |
56 | + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); | |
57 | + angular.element('#searchEnderecoEstoque').scope().fetchResult(); | |
58 | + | |
59 | + $scope.resetForm(); | |
60 | + }); | |
61 | + } | |
62 | + }); | |
63 | + } | |
64 | + }); | |
65 | + | |
66 | + } | |
67 | + | |
68 | + $scope.removeEnderecoEstoque = function(){ | |
69 | + | |
70 | + if(!$scope.enderecoEstoqueChecked) { | |
71 | + $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | |
72 | + return; | |
73 | + } | |
74 | + | |
75 | + EnderecoEstoqueRepository.enderecoEstoqueIsSuperior($scope.enderecoEstoqueChecked.id).then(function(result) { | |
76 | + if(result){ | |
77 | + $scope.$openModalConfirm({ | |
78 | + message: $translate.instant('ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_IS_SUPERIOR_REMOVER'), | |
79 | + callback: function () { | |
80 | + removerEnderecoEstoque(); | |
81 | + $scope.$modalConfirmInstance.dismiss('cancel'); | |
82 | + } | |
83 | + }); | |
84 | + }else{ | |
85 | + removerEnderecoEstoque(); | |
86 | + } | |
87 | + }); | |
88 | + }; | |
89 | + | |
43 | 90 | }]); |
44 | 91 | \ No newline at end of file | ... | ... |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/EnderecoEstoqueRepository.js
... | ... | @@ -4,6 +4,15 @@ citApp.factory('EnderecoEstoqueRepository', ['RestangularAlmoxarifado', 'Abstrac |
4 | 4 | |
5 | 5 | function EnderecoEstoqueRepository() { |
6 | 6 | AbstractRepository.call(this, restangularAlmoxarifado, 'rest/enderecoEstoque'); |
7 | + | |
8 | + this.enderecoEstoqueIsSuperior = function(idEnderecoEstoque) { | |
9 | + return restangularAlmoxarifado.one(this.route + "/enderecoEstoqueIsSuperior").get({'idEnderecoEstoque': idEnderecoEstoque}).then(); | |
10 | + }; | |
11 | + | |
12 | + this.enderecoEstoqueSuperiorEFilhosTemVinculoMaterial = function(idEnderecoEstoque) { | |
13 | + return restangularAlmoxarifado.one(this.route + "/enderecoEstoqueSuperiorEFilhosTemVinculoMaterial").get({'idEnderecoEstoque': idEnderecoEstoque}).then(); | |
14 | + }; | |
15 | + | |
7 | 16 | } |
8 | 17 | |
9 | 18 | AbstractRepository.extend(EnderecoEstoqueRepository); | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html
... | ... | @@ -87,7 +87,24 @@ |
87 | 87 | </div><!-- .page-content --> |
88 | 88 | |
89 | 89 | |
90 | +<script type="text/ng-template" id="modalConfirmEnderecoTodosMaterial.html"> | |
91 | + <div class="modal-header"> | |
92 | + <button class="btn btn-clear" ng-click="confirmaEnderecoTodosMaterial(); $dismiss('cancel');"> | |
93 | + <i class="fa fa-check blue"></i> | |
94 | + <translate>LABEL.CONFIRMAR</translate> | |
95 | + </button> | |
90 | 96 | |
97 | + <button ng-click="negaEnderecoTodosMaterial(); $dismiss('cancel');" class="btn btn-clear"> | |
98 | + <i class="fa fa-times red"></i> | |
99 | + <translate>LABEL.CANCELAR</translate> | |
100 | + </button> | |
101 | + </div><!-- .modal-header --> | |
102 | + | |
103 | + <div class="modal-body"> | |
104 | + <h2 class="title-modal blue"><translate>LABEL.CONFIRMACAO</translate></h2> | |
105 | + <translate>ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_TODOS_MATERIAIS</translate> | |
106 | + </div><!-- .modal-body --> | |
107 | +</script> | |
91 | 108 | |
92 | 109 | |
93 | 110 | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueList.html
... | ... | @@ -18,7 +18,7 @@ |
18 | 18 | <translate>LABEL.EDITAR</translate> |
19 | 19 | </button> |
20 | 20 | |
21 | - <button class="btn btn-clear" ng-click="remove();"> | |
21 | + <button class="btn btn-clear" ng-click="removeEnderecoEstoque();"> | |
22 | 22 | <i class="fa fa-times red"></i> |
23 | 23 | <translate>LABEL.REMOVER</translate> |
24 | 24 | </button> | ... | ... |