Commit 0283220090bbedde2178fe918c8775b898443983
1 parent
1bb0d511
Exists in
master
[Redmine Atendimento #4788]Validação remoção local estoque do material
Showing
3 changed files
with
44 additions
and
23 deletions
Show diff stats
cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java
... | ... | @@ -245,6 +245,7 @@ public class StartupListenerAdmMaterial extends UtilStartup implements Applicati |
245 | 245 | internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.EDITA_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL", "Para definir esse endereço de estoque como não sendo principal, primeiramente informe outro endereço de estoque como principal para o almoxarifado.", dominio, modulo)); |
246 | 246 | internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO", "Este endereço de estoque é o principal do almoxarifado ", dominio, modulo)); |
247 | 247 | internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_ESTOQUE_JA_VINCULADO_MATERIAL", "Este endereço de estoque já possui vínculo ao material.", dominio, modulo)); |
248 | + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_VINCULADO_ENTRADA_ALMOX_ITEM", "Não é possível remover esse vínculo de endereço de estoque com o material, pois o endereço selecionado foi utilizado em um item de entrada do almoxarifado.", dominio, modulo)); | |
248 | 249 | } |
249 | 250 | |
250 | 251 | } |
251 | 252 | \ No newline at end of file | ... | ... |
cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js
... | ... | @@ -696,7 +696,8 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi |
696 | 696 | $scope.MaterialLocalEstoqueRepository = $injector.get(["MaterialLocalEstoqueRepository"]); |
697 | 697 | $scope.EstruturaOrganizacionalAlmoxarifadoRepository = $injector.get(["EstruturaOrganizacionalAlmoxarifadoRepository"]); |
698 | 698 | $scope.EnderecoEstoqueRepository = $injector.get(["EnderecoEstoqueRepository"]); |
699 | - | |
699 | + $scope.EntradaAlmoxarifadoItemRepository = $injector.get(["EntradaAlmoxarifadoItemRepository"]); | |
700 | + | |
700 | 701 | $scope.EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){ |
701 | 702 | $scope.almoxarifadoTemp = result.originalElement.estruturaOrganizacional; |
702 | 703 | }); |
... | ... | @@ -740,10 +741,20 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi |
740 | 741 | return; |
741 | 742 | } |
742 | 743 | } |
743 | - $scope.MaterialLocalEstoqueRepository.remove($scope.matEndEstoqueCheck).then(function(result) { | |
744 | - $scope.listaLocaisEstoqueMaterial(); | |
745 | - $scope.setLoading(false); | |
744 | + | |
745 | + $scope.EntradaAlmoxarifadoItemRepository.existeItemVinculadoAMaterialLocalEstoque($scope.matEndEstoqueCheck.id).then(function(result) { | |
746 | + if(result){ | |
747 | + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_VINCULADO_ENTRADA_ALMOX_ITEM')); | |
748 | + $scope.setLoading(false); | |
749 | + $scope.$modalConfirmInstance.dismiss('cancel'); | |
750 | + return; | |
751 | + } | |
752 | + $scope.MaterialLocalEstoqueRepository.remove($scope.matEndEstoqueCheck).then(function(result) { | |
753 | + $scope.listaLocaisEstoqueMaterial(); | |
754 | + $scope.setLoading(false); | |
755 | + }); | |
746 | 756 | }); |
757 | + | |
747 | 758 | $scope.$modalConfirmInstance.dismiss('cancel'); |
748 | 759 | }); |
749 | 760 | } |
... | ... | @@ -771,22 +782,27 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi |
771 | 782 | }); |
772 | 783 | }; |
773 | 784 | |
774 | - $scope.salvarMaterialEnderecoEstoque = function(materialLocalEstoque, almoxarifadoTemp){ | |
775 | - $scope.almoxarifadoTemp = almoxarifadoTemp; | |
776 | - $scope.setLoading(true); | |
777 | - if(!materialLocalEstoque.materialEstoque){ | |
778 | - materialLocalEstoque.materialEstoque = {material : $scope.material}; | |
779 | - } | |
780 | - materialLocalEstoque.endereco.estoque = {almoxarifado : $scope.almoxarifadoTemp}; | |
781 | - $scope.MaterialLocalEstoqueRepository.save(materialLocalEstoque).then(function(result) { | |
782 | - if( result.originalElement.localPrincipal){ | |
783 | - $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO') + $scope.almoxarifadoTemp.codigoENome); | |
785 | + $scope.salvarMaterialEnderecoEstoque = function(formDialogMaterialEnderecoEstoque, materialLocalEstoque, almoxarifadoTemp){ | |
786 | + formDialogMaterialEnderecoEstoque.$submitted = true; | |
787 | + if (formDialogMaterialEnderecoEstoque.$invalid) { | |
788 | + $scope.showAlert('error', $translate.instant('MSG.MN001')); | |
789 | + } else { | |
790 | + $scope.almoxarifadoTemp = almoxarifadoTemp; | |
791 | + $scope.setLoading(true); | |
792 | + if(!materialLocalEstoque.materialEstoque){ | |
793 | + materialLocalEstoque.materialEstoque = {material : $scope.material}; | |
784 | 794 | } |
785 | - $scope.$modalInstance.dismiss('cancel'); | |
786 | - $scope.listaLocaisEstoqueMaterial(); | |
787 | - $scope.editEnderecoEstoque = false; | |
788 | - $scope.setLoading(false); | |
789 | - }); | |
795 | + materialLocalEstoque.endereco.estoque = {almoxarifado : $scope.almoxarifadoTemp}; | |
796 | + $scope.MaterialLocalEstoqueRepository.save(materialLocalEstoque).then(function(result) { | |
797 | + if( result.originalElement.localPrincipal){ | |
798 | + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO') + $scope.almoxarifadoTemp.codigoENome); | |
799 | + } | |
800 | + $scope.$modalInstance.dismiss('cancel'); | |
801 | + $scope.listaLocaisEstoqueMaterial(); | |
802 | + $scope.editEnderecoEstoque = false; | |
803 | + $scope.setLoading(false); | |
804 | + }); | |
805 | + } | |
790 | 806 | }; |
791 | 807 | |
792 | 808 | $scope.listaLocaisEstoqueMaterial = function(){ |
... | ... | @@ -795,6 +811,7 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi |
795 | 811 | $scope.MaterialLocalEstoqueRepository.listarMaterialEstoquePorMaterial($scope.material.id).then(function(result) { |
796 | 812 | $scope.listaMaterialEnderecoEstoque = result; |
797 | 813 | $scope.matEndEstoqueCheck = null; |
814 | + $scope.alternaTipoNumericoUnidadeMedida(); | |
798 | 815 | $scope.setLoading(false); |
799 | 816 | }); |
800 | 817 | }; | ... | ... |
cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html
... | ... | @@ -81,9 +81,12 @@ |
81 | 81 | <td> |
82 | 82 | {{matEndEstoque.endereco.estoque.almoxarifado.codigoENome}} |
83 | 83 | </td> |
84 | - <td> | |
84 | + <td ng-if="showInteiro"> | |
85 | 85 | {{matEndEstoque.capacidade}} |
86 | 86 | </td> |
87 | + <td ng-if="showDecimal"> | |
88 | + {{matEndEstoque.capacidade | number:2}} | |
89 | + </td> | |
87 | 90 | <td> |
88 | 91 | {{matEndEstoque.localPrincipal | booleanSimNao}} |
89 | 92 | </td> |
... | ... | @@ -105,7 +108,7 @@ |
105 | 108 | <script type="text/ng-template" id="modal-material-endereco-estoque.html"> |
106 | 109 | <form name="formDialogMaterialEnderecoEstoque" novalidate > |
107 | 110 | <div class="modal-header"> |
108 | - <button title="{{$translate.instant('LABEL.SALVAR')}}" alt="{{$translate.instant('LABEL.SALVAR')}}" ng-click="salvarMaterialEnderecoEstoque(materialLocalEstoque, almoxarifadoTemp)" class="btn btn-clear" type="button"> | |
111 | + <button title="{{$translate.instant('LABEL.SALVAR')}}" alt="{{$translate.instant('LABEL.SALVAR')}}" ng-click="salvarMaterialEnderecoEstoque(formDialogMaterialEnderecoEstoque, materialLocalEstoque, almoxarifadoTemp)" class="btn btn-clear" type="button"> | |
109 | 112 | <i class="fa fa-save green"></i> |
110 | 113 | <translate>LABEL.SALVAR</translate> |
111 | 114 | </button> |
... | ... | @@ -127,10 +130,10 @@ |
127 | 130 | <auto-complete ng-id="materialLocalEstoque.endereco" ng-label="ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE" ng-model="materialLocalEstoque.endereco" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="true" ng-find="findAutoCompleteEndereco(value, almoxarifadoTemp)" ng-item="item.descricao" /> |
128 | 131 | </div> |
129 | 132 | |
130 | - <div class="col-md-5" ng-show="showInteiro"> | |
133 | + <div class="col-md-5" ng-if="showInteiro"> | |
131 | 134 | <label-input-number ng-id="materialLocalEstoque.capacidade" ng-model="materialLocalEstoque.capacidade" ng-custom-maxlength="4" ng-type="text" ng-label="LABEL.CAPACIDADE" ng-obrigatorio="showInteiro" form="formDialogMaterialEnderecoEstoque"/> |
132 | 135 | </div> |
133 | - <div class="col-md-5" ng-show="showDecimal"> | |
136 | + <div class="col-md-5" ng-if="showDecimal"> | |
134 | 137 | <label-input-decimal ng-precisao="decimal" ng-custom-maxlength="9" ng-evento-blur="aplicarValidacaoDecimal" ng-id="materialLocalEstoque.capacidade" ng-model="materialLocalEstoque.capacidade" ng-label="LABEL.CAPACIDADE" ng-obrigatorio="showDecimal" form="formDialogMaterialEnderecoEstoque"/> |
135 | 138 | </div> |
136 | 139 | </div> | ... | ... |