diff --git a/cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java b/cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java index 39d1984..5d25074 100644 --- a/cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java +++ b/cit-adm-materiais-api/src/main/java/br/com/centralit/api/service/impl/InicializarAdmMateriaisServiceImpl.java @@ -79,6 +79,11 @@ public class InicializarAdmMateriaisServiceImpl extends UtilStartup { filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/MaterialConsumoTipoUnidadeMedidaEntradaRepository.min.js", dominioJS, menuMaterial)); filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.js", dominioJS, menuMaterial)); filesMenuFileMaterial.add(new MenuFile(CIT_ADM_MATERIAIS_WEB_ANGULAR_CUSTOM + "repository/UnidadeMedidaRepository.min.js", dominioJS, menuMaterial)); + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.js", dominioJS, menuMaterial)); + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialLocalEstoqueRepository.min.js", dominioJS, menuMaterial)); + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.js", dominioJS, menuMaterial)); + filesMenuFileMaterial.add(new MenuFile(CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM + "repository/MaterialEnderecoEstoqueRepository.min.js", dominioJS, menuMaterial)); + menuMaterial.setIncludes(filesMenuFileMaterial); this.menuService.mergeIfNotExist(menuMaterial); // Menu Classificação de materiais diff --git a/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.15.0/01-cit-adm-materiais-v1.15.0-postgres.sql b/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.15.0/01-cit-adm-materiais-v1.15.0-postgres.sql index 5cf6c04..c34f9f6 100644 --- a/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.15.0/01-cit-adm-materiais-v1.15.0-postgres.sql +++ b/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, INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id) VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialEnderecoEstoqueRepository.min.js', (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO')); + +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id) +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.js', + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO')); + +INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, dominiomenufile_id, menu_id) +VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-almoxarifado-web/assets/js/angular/custom/repository/MaterialLocalEstoqueRepository.min.js', + (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'USUARIO')); + + +ALTER TABLE alm_me_localestoque ALTER COLUMN unidadeMedidaEntrada_id DROP NOT NULL; +ALTER TABLE alm_me_localestoque ADD COLUMN localPrincipal BOOLEAN; + + +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_jsrcjmbvm7pnw3ql1hoiyhamj; +ALTER TABLE alm_me_localestoque DROP CONSTRAINT uk_qnx0r3sv9yxte5bholpq15k4p; -- ERICK FIM 04/05/2016 \ No newline at end of file diff --git a/cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java b/cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java index 53f1055..cbc6ec1 100644 --- a/cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java +++ b/cit-adm-materiais-web/src/main/java/br/com/centralit/listener/StartupListenerAdmMaterial.java @@ -239,6 +239,11 @@ public class StartupListenerAdmMaterial extends UtilStartup implements Applicati 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)); 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)); 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)); + + 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)); + 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)); + 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)); + internacionalizacaoList.add(new Internacionalizacao("ADMINISTRACAODEMATERIAIS.MSG.LOCAL_ESTOQUE_JA_VINCULADO_MATERIAL", "Este endereço de estoque já possui vínculo ao material.", dominio, modulo)); } } \ No newline at end of file diff --git a/cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js b/cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js index 938c337..09a75c4 100644 --- a/cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js +++ b/cit-adm-materiais-web/src/main/webapp/assets/js/angular/custom/controller/MaterialController.js @@ -58,6 +58,7 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi configurarDadosClassificacaoMaterial(); verificaMaterialConsumoSetGenerico(); + $scope.verificaAlmoxarifadoAtivo(); $scope.setLoading(false); }); }; @@ -689,13 +690,131 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi } }; - $scope.almoxarifadoAtivo = $scope.isModuloAtivo("/cit-almoxarifado-web"); - if($scope.almoxarifadoAtivo){ - $scope.MaterialEnderecoEstoqueRepository = $injector.get(["MaterialEnderecoEstoqueRepository"]); + $scope.verificaAlmoxarifadoAtivo = function(){ + $scope.almoxarifadoAtivo = $scope.isModuloAtivo("/cit-almoxarifado-web"); + if($scope.almoxarifadoAtivo){ + $scope.MaterialLocalEstoqueRepository = $injector.get(["MaterialLocalEstoqueRepository"]); + $scope.EstruturaOrganizacionalAlmoxarifadoRepository = $injector.get(["EstruturaOrganizacionalAlmoxarifadoRepository"]); + $scope.EnderecoEstoqueRepository = $injector.get(["EnderecoEstoqueRepository"]); + + $scope.EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){ + $scope.almoxarifadoTemp = result.originalElement.estruturaOrganizacional; + }); + if($scope.material && $scope.material.id){ + $scope.listaLocaisEstoqueMaterial(); + } + $scope.editEnderecoEstoque = false; + } } + $scope.adicionarEnderecoEstoque = function(){ - $scope.$openModal('modal-material-endereco-estoque.html', 'md'); + $scope.$openModal('modal-material-endereco-estoque.html', 'lg'); }; - + + $scope.editarEnderecoEstoque = function(){ + if(!$scope.matEndEstoqueCheck){ + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM')); + }else{ + $scope.editEnderecoEstoque = true; + $scope.materialLocalEstoque = $scope.matEndEstoqueCheck; + $scope.$openModal('modal-material-endereco-estoque.html', 'lg'); + } + }; + + $scope.removerEnderecoEstoque = function(){ + if(!$scope.matEndEstoqueCheck){ + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM')); + }else{ + $scope.$openModalConfirm({message: $translate.instant('LABEL.CONFIRMA_EXCLUSAO'), callback: function() { + $scope.setLoading(true); + $scope.MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado($scope.material.id, $scope.matEndEstoqueCheck.endereco.estoque.almoxarifado.id).then(function(result) { + if(result && result.length > 1){ + if($scope.matEndEstoqueCheck.localPrincipal){ + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.REMOVER_LOCAL_ESTOQUE_MATERIAL_PRINCIPAL')); + $scope.setLoading(false); + $scope.$modalConfirmInstance.dismiss('cancel'); + return; + } + } + $scope.MaterialLocalEstoqueRepository.remove($scope.matEndEstoqueCheck).then(function(result) { + $scope.listaLocaisEstoqueMaterial(); + $scope.setLoading(false); + }); + $scope.$modalConfirmInstance.dismiss('cancel'); + }); + } + }); + } + }; + + $scope.checkMatEndEstoque = function(materialLocalEstoque){ + $scope.matEndEstoqueCheck = materialLocalEstoque.originalElement; + }; + + $scope.findAutoCompleteAlmoxarifado = function(value){ + return $scope.EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { + return result; + }); + }; + + $scope.findAutoCompleteEndereco = function(value, almoxarifado){ + var idAlmoxarifado = 0; + if(almoxarifado){ + idAlmoxarifado = almoxarifado.id; + } + return $scope.EnderecoEstoqueRepository.listarEnderecosEstoque(value, idAlmoxarifado).then(function(result) { + return result; + }); + }; + + $scope.salvarMaterialEnderecoEstoque = function(materialLocalEstoque){ + $scope.setLoading(true); + if(!materialLocalEstoque.materialEstoque){ + materialLocalEstoque.materialEstoque = {material : $scope.material}; + } + materialLocalEstoque.endereco.estoque = {almoxarifado : $scope.almoxarifadoTemp}; + $scope.MaterialLocalEstoqueRepository.save(materialLocalEstoque).then(function(result) { + if( result.originalElement.localPrincipal){ + $scope.showAlert("warning", $translate.instant('ADMINISTRACAODEMATERIAIS.MSG.LOCAL_SALVA_ESTOQUE_MATERIAL_COMO_PRINCIPAL_PARA_ALMOXARIFADO') + $scope.almoxarifadoTemp.codigoENome); + } + $scope.$modalInstance.dismiss('cancel'); + $scope.listaLocaisEstoqueMaterial(); + $scope.editEnderecoEstoque = false; + $scope.setLoading(false); + }); + }; + + $scope.listaLocaisEstoqueMaterial = function(){ + $scope.setLoading(true); + $scope.listaMaterialEnderecoEstoque = []; + $scope.MaterialLocalEstoqueRepository.listarMaterialEstoquePorMaterial($scope.material.id).then(function(result) { + $scope.listaMaterialEnderecoEstoque = result; + $scope.matEndEstoqueCheck = null; + $scope.setLoading(false); + }); + }; + + $scope.bloquearEnderecoEstoque = function(){ + if(!$scope.matEndEstoqueCheck){ + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM')); + }else{ + $scope.matEndEstoqueCheck.dataBloqueio = new Date(); + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) { + $scope.listaLocaisEstoqueMaterial(); + }); + } + }; + + $scope.desbloquearEnderecoEstoque = function(){ + if(!$scope.matEndEstoqueCheck){ + $scope.showAlert("warning", $translate.instant('LABEL.SELECIONE_UM_ITEM')); + }else{ + $scope.matEndEstoqueCheck.dataBloqueio = null; + $scope.MaterialLocalEstoqueRepository.save($scope.matEndEstoqueCheck).then(function(result) { + $scope.listaLocaisEstoqueMaterial(); + }); + } + }; + }]); \ No newline at end of file diff --git a/cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html b/cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html index 2629c7e..5ad4929 100644 --- a/cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html +++ b/cit-adm-materiais-web/src/main/webapp/html/material/materialEnderecoEstoque.html @@ -26,14 +26,22 @@ LABEL.EDITAR - - + + + + @@ -77,14 +85,11 @@ {{matEndEstoque.quantidade}} -
- {{matEndEstoque.localPrincipal}} + {{matEndEstoque.localPrincipal | booleanSimNao}} {{matEndEstoque.dataBloqueio | date : 'dd/MM/yyyy'}} - -
@@ -99,38 +104,36 @@ -- libgit2 0.21.2