Commit 0283220090bbedde2178fe918c8775b898443983

Authored by erick.sato
1 parent 1bb0d511
Exists in master

[Redmine Atendimento #4788]Validação remoção local estoque do material

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>
... ...