Commit 18389550cff3a7b6f882e0668866adb7dd94f904

Authored by erick.sato
1 parent 49ac5de9
Exists in master

[Redmine Atendimento #4788]Cadastro de material local estoque

cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java
@@ -79,6 +79,11 @@ public class InicializarAdmMateriaisServiceImpl extends UtilStartup { @@ -79,6 +79,11 @@ public class InicializarAdmMateriaisServiceImpl extends UtilStartup {
79 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/MaterialConsumoTipoUnidadeMedidaEntradaRepository.min.js", dominioJS, menuMaterial)); 79 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/MaterialConsumoTipoUnidadeMedidaEntradaRepository.min.js", dominioJS, menuMaterial));
80 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.js", dominioJS, menuMaterial)); 80 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.js", dominioJS, menuMaterial));
81 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.min.js", dominioJS, menuMaterial)); 81 filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.min.js", dominioJS, menuMaterial));
  82 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.js", dominioJS, menuMaterial));
  83 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.min.js", dominioJS, menuMaterial));
  84 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.js", dominioJS, menuMaterial));
  85 + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.min.js", dominioJS, menuMaterial));
  86 +
82 menuMaterial.setIncludes(filesMenuFileMaterial); 87 menuMaterial.setIncludes(filesMenuFileMaterial);
83 this.menuService.mergeIfNotExist(menuMaterial); 88 this.menuService.mergeIfNotExist(menuMaterial);
84 // Menu Classificação de materiais 89 // Menu Classificação de materiais
cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.15.0/01-cit-adm-materiais-v1.15.0-postgres.sql
@@ -1467,4 +1467,20 @@ VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, @@ -1467,4 +1467,20 @@ VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true,
1467 INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id) 1467 INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
1468 VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialEnderecoEstoqueRepository.min.js', 1468 VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialEnderecoEstoqueRepository.min.js',
1469 (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO')); 1469 (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1470 +
  1471 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1472 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.js',
  1473 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1474 +
  1475 +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id)
  1476 +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.min.js',
  1477 + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO'));
  1478 +
  1479 +
  1480 +ALTER TABLE alm_me_localestoque ALTER COLUMN unidadeMedidaEntrada_id DROP NOT NULL;
  1481 +ALTER TABLE alm_me_localestoque ADD COLUMN localPrincipal BOOLEAN;
  1482 +
  1483 +
  1484 +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_jsrcjmbvm7pnw3ql1hoiyhamj;
  1485 +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_qnx0r3sv9yxte5bholpq15k4p;
1470 -- ERICK FIM 04/05/2016 1486 -- ERICK FIM 04/05/2016
1471 \ No newline at end of file 1487 \ No newline at end of file
cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java
@@ -239,6 +239,11 @@ public class StartupListenerAdmMaterial extends UtilStartup implements Applicati @@ -239,6 +239,11 @@ public class StartupListenerAdmMaterial extends UtilStartup implements Applicati
239 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.FECHAMENTO_ENTRADAS_INCOMPLETAS", "Existem entradas de bens incompletas neste mês de referência! Por favor concluir as mesmas antes de realizar o fechamento do mês!", dominio, modulo)); 239 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.FECHAMENTO_ENTRADAS_INCOMPLETAS", "Existem entradas de bens incompletas neste mês de referência! Por favor concluir as mesmas antes de realizar o fechamento do mês!", dominio, modulo));
240 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.INFO_MSG_FECHAMENTO_MES_NOTIFICA_FIM", "Fechamento do mês de referência em execução. Quando o processo terminar, você será notificado!", dominio, modulo)); 240 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.INFO_MSG_FECHAMENTO_MES_NOTIFICA_FIM", "Fechamento do mês de referência em execução. Quando o processo terminar, você será notificado!", dominio, modulo));
241 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.CONFIRMA_ALTERAR_PADRAO", "Já foi definido uma Unidae de medida de entrada como padrão! Deseja Alterar?", dominio, modulo)); 241 internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.CONFIRMA_ALTERAR_PADRAO", "Já foi definido uma Unidae de medida de entrada como padrão! Deseja Alterar?", dominio, modulo));
  242 +
  243 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL", "O endereço selecionado para remoção está definido como principal de um almoxarifado. Para remover este endereço de estoque, informe outro endereço de estoque como principal para o almoxarifado.", dominio, modulo));
  244 + 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));
  245 + 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));
  246 + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_ESTOQUE_JA_VINCULADO_MATERIAL", "Este endereço de estoque já possui vínculo ao material.", dominio, modulo));
242 } 247 }
243 248
244 } 249 }
245 \ No newline at end of file 250 \ No newline at end of file
cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js
@@ -58,6 +58,7 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi @@ -58,6 +58,7 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi
58 58
59 configurarDadosClassificacaoMaterial(); 59 configurarDadosClassificacaoMaterial();
60 verificaMaterialConsumoSetGenerico(); 60 verificaMaterialConsumoSetGenerico();
  61 + $scope.verificaAlmoxarifadoAtivo();
61 $scope.setLoading(false); 62 $scope.setLoading(false);
62 }); 63 });
63 }; 64 };
@@ -689,13 +690,131 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi @@ -689,13 +690,131 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi
689 } 690 }
690 }; 691 };
691 692
692 - $scope.almoxarifadoAtivo = $scope.isModuloAtivo("/cit-almoxarifado-web");  
693 - if($scope.almoxarifadoAtivo){  
694 - $scope.MaterialEnderecoEstoqueRepository = $injector.get(["MaterialEnderecoEstoqueRepository"]); 693 + $scope.verificaAlmoxarifadoAtivo = function(){
  694 + $scope.almoxarifadoAtivo = $scope.isModuloAtivo("/cit-almoxarifado-web");
  695 + if($scope.almoxarifadoAtivo){
  696 + $scope.MaterialLocalEstoqueRepository = $injector.get(["MaterialLocalEstoqueRepository"]);
  697 + $scope.EstruturaOrganizacionalAlmoxarifadoRepository = $injector.get(["EstruturaOrganizacionalAlmoxarifadoRepository"]);
  698 + $scope.EnderecoEstoqueRepository = $injector.get(["EnderecoEstoqueRepository"]);
  699 +
  700 + $scope.EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){
  701 + $scope.almoxarifadoTemp = result.originalElement.estruturaOrganizacional;
  702 + });
  703 + if($scope.material && $scope.material.id){
  704 + $scope.listaLocaisEstoqueMaterial();
  705 + }
  706 + $scope.editEnderecoEstoque = false;
  707 + }
695 } 708 }
696 709
  710 +
697 $scope.adicionarEnderecoEstoque = function(){ 711 $scope.adicionarEnderecoEstoque = function(){
698 - $scope.$openModal('modal-material-endereco-estoque.html', 'md'); 712 + $scope.$openModal('modal-material-endereco-estoque.html', 'lg');
699 }; 713 };
700 - 714 +
  715 + $scope.editarEnderecoEstoque = function(){
  716 + if(!$scope.matEndEstoqueCheck){
  717 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  718 + }else{
  719 + $scope.editEnderecoEstoque = true;
  720 + $scope.materialLocalEstoque = $scope.matEndEstoqueCheck;
  721 + $scope.$openModal('modal-material-endereco-estoque.html', 'lg');
  722 + }
  723 + };
  724 +
  725 + $scope.removerEnderecoEstoque = function(){
  726 + if(!$scope.matEndEstoqueCheck){
  727 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  728 + }else{
  729 + $scope.$openModalConfirm({message: $translate.instant('LABEL.CONFIRMA_EXCLUSAO'), callback: function() {
  730 + $scope.setLoading(true);
  731 + $scope.MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado($scope.material.id, $scope.matEndEstoqueCheck.endereco.estoque.almoxarifado.id).then(function(result) {
  732 + if(result && result.length > 1){
  733 + if($scope.matEndEstoqueCheck.localPrincipal){
  734 + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL'));
  735 + $scope.setLoading(false);
  736 + $scope.$modalConfirmInstance.dismiss('cancel');
  737 + return;
  738 + }
  739 + }
  740 + $scope.MaterialLocalEstoqueRepository.remove($scope.matEndEstoqueCheck).then(function(result) {
  741 + $scope.listaLocaisEstoqueMaterial();
  742 + $scope.setLoading(false);
  743 + });
  744 + $scope.$modalConfirmInstance.dismiss('cancel');
  745 + });
  746 + }
  747 + });
  748 + }
  749 + };
  750 +
  751 + $scope.checkMatEndEstoque = function(materialLocalEstoque){
  752 + $scope.matEndEstoqueCheck = materialLocalEstoque.originalElement;
  753 + };
  754 +
  755 + $scope.findAutoCompleteAlmoxarifado = function(value){
  756 + return $scope.EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  757 + return result;
  758 + });
  759 + };
  760 +
  761 + $scope.findAutoCompleteEndereco = function(value, almoxarifado){
  762 + var idAlmoxarifado = 0;
  763 + if(almoxarifado){
  764 + idAlmoxarifado = almoxarifado.id;
  765 + }
  766 + return $scope.EnderecoEstoqueRepository.listarEnderecosEstoque(value, idAlmoxarifado).then(function(result) {
  767 + return result;
  768 + });
  769 + };
  770 +
  771 + $scope.salvarMaterialEnderecoEstoque = function(materialLocalEstoque){
  772 + $scope.setLoading(true);
  773 + if(!materialLocalEstoque.materialEstoque){
  774 + materialLocalEstoque.materialEstoque = {material : $scope.material};
  775 + }
  776 + materialLocalEstoque.endereco.estoque = {almoxarifado : $scope.almoxarifadoTemp};
  777 + $scope.MaterialLocalEstoqueRepository.save(materialLocalEstoque).then(function(result) {
  778 + if( result.originalElement.localPrincipal){
  779 + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO') + $scope.almoxarifadoTemp.codigoENome);
  780 + }
  781 + $scope.$modalInstance.dismiss('cancel');
  782 + $scope.listaLocaisEstoqueMaterial();
  783 + $scope.editEnderecoEstoque = false;
  784 + $scope.setLoading(false);
  785 + });
  786 + };
  787 +
  788 + $scope.listaLocaisEstoqueMaterial = function(){
  789 + $scope.setLoading(true);
  790 + $scope.listaMaterialEnderecoEstoque = [];
  791 + $scope.MaterialLocalEstoqueRepository.listarMaterialEstoquePorMaterial($scope.material.id).then(function(result) {
  792 + $scope.listaMaterialEnderecoEstoque = result;
  793 + $scope.matEndEstoqueCheck = null;
  794 + $scope.setLoading(false);
  795 + });
  796 + };
  797 +
  798 + $scope.bloquearEnderecoEstoque = function(){
  799 + if(!$scope.matEndEstoqueCheck){
  800 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  801 + }else{
  802 + $scope.matEndEstoqueCheck.dataBloqueio = new Date();
  803 + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) {
  804 + $scope.listaLocaisEstoqueMaterial();
  805 + });
  806 + }
  807 + };
  808 +
  809 + $scope.desbloquearEnderecoEstoque = function(){
  810 + if(!$scope.matEndEstoqueCheck){
  811 + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM'));
  812 + }else{
  813 + $scope.matEndEstoqueCheck.dataBloqueio = null;
  814 + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) {
  815 + $scope.listaLocaisEstoqueMaterial();
  816 + });
  817 + }
  818 + };
  819 +
701 }]); 820 }]);
702 \ No newline at end of file 821 \ No newline at end of file
cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html
@@ -26,14 +26,22 @@ @@ -26,14 +26,22 @@
26 <translate>LABEL.EDITAR</translate> 26 <translate>LABEL.EDITAR</translate>
27 </button> 27 </button>
28 28
29 - <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" ng-click="exibirDialogRemocaoUnidadeMedida()" ng-disabled="material.tiposUnidadeMedidaEntrada.length < 1 || !edit" type="button"> 29 + <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" ng-click="removerEnderecoEstoque()" type="button">
30 <i class="fa fa-close red"></i> 30 <i class="fa fa-close red"></i>
31 <translate>LABEL.REMOVER</translate> </a> 31 <translate>LABEL.REMOVER</translate> </a>
32 </button> 32 </button>
33 33
34 - <bloquear-desbloquear ng-model="enderecoEstoque" ng-repository="MaterialEnderecoEstoqueRepository" ng-edit="true"></bloquear-desbloquear> 34 + <button title="{{$translate.instant('PORTAL.LABEL.BLOQUEAR')}}" alt="{{$translate.instant('PORTAL.LABEL.BLOQUEAR')}}" class="btn btn-clear" ng-show="!matEndEstoqueCheck.dataBloqueio" ng-click="bloquearEnderecoEstoque()" type="button">
  35 + <i class="fa fa-lock"></i>
  36 + <translate>PORTAL.LABEL.BLOQUEAR</translate> </a>
  37 + </button>
  38 +
  39 + <button type="button" title="{{$translate.instant('LABEL.DESBLOQUEAR')}}" alt="{{$translate.instant('LABEL.DESBLOQUEAR')}}" class="btn btn-clear" ng-show="matEndEstoqueCheck.dataBloqueio" ng-click="desbloquearEnderecoEstoque();">
  40 + <i class="fa fa-unlock grey"></i> <translate>LABEL.DESBLOQUEAR</translate>
  41 + </button>
35 42
36 </div> 43 </div>
  44 +
37 <table class="table table-bordered table-striped"> 45 <table class="table table-bordered table-striped">
38 <thead> 46 <thead>
39 <tr> 47 <tr>
@@ -77,14 +85,11 @@ @@ -77,14 +85,11 @@
77 {{matEndEstoque.quantidade}} 85 {{matEndEstoque.quantidade}}
78 </td> 86 </td>
79 <td> 87 <td>
80 - {{matEndEstoque.localPrincipal}} 88 + {{matEndEstoque.localPrincipal | booleanSimNao}}
81 </td> 89 </td>
82 <td> 90 <td>
83 {{matEndEstoque.dataBloqueio | date : 'dd/MM/yyyy'}} 91 {{matEndEstoque.dataBloqueio | date : 'dd/MM/yyyy'}}
84 </td> 92 </td>
85 - <td>  
86 - <input type="checkbox" ng-model="medidaEntrada.isPadrao" ng-disabled="true"/>  
87 - </td>  
88 </tr> 93 </tr>
89 </tbody> 94 </tbody>
90 </table> 95 </table>
@@ -99,38 +104,36 @@ @@ -99,38 +104,36 @@
99 104
100 <script type="text/ng-template" id="modal-material-endereco-estoque.html"> 105 <script type="text/ng-template" id="modal-material-endereco-estoque.html">
101 <form name="formDialogMaterialEnderecoEstoque" novalidate > 106 <form name="formDialogMaterialEnderecoEstoque" novalidate >
102 - <div class="modal-content modal-dialog modal-md">  
103 - <div class="modal-header">  
104 - <button title="{{$translate.instant('LABEL.SALVAR')}}" alt="{{$translate.instant('LABEL.SALVAR')}}" ng-click="salvarMaterialEnderecoEstoque()" class="btn btn-clear" type="button">  
105 - <i class="fa fa-save green"></i>  
106 - <translate>LABEL.SALVAR</translate>  
107 - </button> 107 + <div class="modal-header">
  108 + <button title="{{$translate.instant('LABEL.SALVAR')}}" alt="{{$translate.instant('LABEL.SALVAR')}}" ng-click="salvarMaterialEnderecoEstoque(materialLocalEstoque)" class="btn btn-clear" type="button">
  109 + <i class="fa fa-save green"></i>
  110 + <translate>LABEL.SALVAR</translate>
  111 + </button>
108 112
109 - <button title="{{$translate.instant('LABEL.CANCELAR')}}" alt="{{$translate.instant('LABEL.CANCELAR')}}" ng-click="$dismiss('cancel');" class="btn btn-clear" type="button">  
110 - <i class="fa fa-times red"></i>  
111 - <translate>LABEL.CANCELAR</translate>  
112 - </button>  
113 - </div> 113 + <button title="{{$translate.instant('LABEL.CANCELAR')}}" alt="{{$translate.instant('LABEL.CANCELAR')}}" ng-click="$dismiss('cancel');" class="btn btn-clear" type="button">
  114 + <i class="fa fa-times red"></i>
  115 + <translate>LABEL.CANCELAR</translate>
  116 + </button>
  117 + </div>
114 118
115 - <div class="modal-body">  
116 - <div class="row">  
117 - <div class="col-md-12">  
118 - <auto-complete ng-id="materialLocalEstoque.materialEstoque.estoque.almoxarifado" ng-label="ALMOXARIFADO.LABEL.ALMOXARIFADO" ng-model="materialLocalEstoque.materialEstoque.estoque.almoxarifado" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="false" ng-find="findAutoCompleteAlmoxarifado(value)" ng-item="item.nome" />  
119 - </div>  
120 - </div>  
121 - <div class="row">  
122 - <div class="col-md-7">  
123 - <auto-complete ng-id="materialLocalEstoque.materialEstoque.endereco" ng-label="ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE" ng-model="materialLocalEstoque.materialEstoque.endereco" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="true" ng-find="findAutoCompleteEndereco(value)" ng-item="item.nome" />  
124 - </div>  
125 - <div class="col-md-5">  
126 - <label-input-number ng-max-number="99999" ng-min-number="0" ng-type="text" ng-id="materialLocalEstoque.quantidade" ng-obrigatorio="true" form="formDialogMaterialEnderecoEstoque" ng-label="LABEL.CAPACIDADE" ng-model="materialLocalEstoque.quantidade" ng-custom-maxlength="5" />  
127 - </div>  
128 - </div>  
129 - <div class="row">  
130 - <div class="col-md-12">  
131 - <label-input-checkbox ng-model="materialLocalEstoque.localPrincipal" ng-label="LABEL.PRINCIPAL" form="formDialogMaterialEnderecoEstoque"/>  
132 - </div>  
133 - </div> 119 + <div class="modal-body">
  120 + <div class="row">
  121 + <div class="col-md-12">
  122 + <auto-complete ng-id="almoxarifadoTemp" ng-label="ALMOXARIFADO.LABEL.ALMOXARIFADO" ng-model="almoxarifadoTemp" form="formDialogMaterialEnderecoEstoque" ng-obrigatorio="false" ng-find="findAutoCompleteAlmoxarifado(value)" ng-item="item.nome" />
  123 + </div>
  124 + </div>
  125 + <div class="row">
  126 + <div class="col-md-7">
  127 + <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 + </div>
  129 + <div class="col-md-5">
  130 + <label-input-number ng-max-number="99999" ng-min-number="0" ng-type="text" ng-id="materialLocalEstoque.quantidade" ng-obrigatorio="true" form="formDialogMaterialEnderecoEstoque" ng-label="LABEL.CAPACIDADE" ng-model="materialLocalEstoque.quantidade" ng-custom-maxlength="5" />
  131 + </div>
  132 + </div>
  133 + <div class="row">
  134 + <div class="col-md-12">
  135 + <label-input-checkbox ng-model="materialLocalEstoque.localPrincipal" ng-label="LABEL.PRINCIPAL" form="formDialogMaterialEnderecoEstoque"/>
  136 + </div>
134 </div> 137 </div>
135 </form> 138 </form>
136 </script> 139 </script>