diff --git a/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.16.0/01-cit-adm-materiais-v1.16.0-postgres.sql b/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.16.0/01-cit-adm-materiais-v1.16.0-postgres.sql index f086001..6128030 100644 --- a/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.16.0/01-cit-adm-materiais-v1.16.0-postgres.sql +++ b/cit-adm-materiais-api/src/main/resources/scripts-bd/postgres/v1.16.0/01-cit-adm-materiais-v1.16.0-postgres.sql @@ -51,5 +51,25 @@ DO $$ END LOOP; END $$; + +INSERT INTO alm_mc_unidmedidaentrada(id, materialconsumo_id, unidademedida_id, ispadrao) + SELECT NEXTVAL('hibernate_sequence') AS id, + mat.id AS materialconsumo_id, + mat.unidadearmazenamento_id AS unidademedida_id, + false AS ispadrao + FROM alm_materialconsumo mat + WHERE mat.unidadearmazenamento_id NOT IN ( + SELECT unidademedida_id FROM alm_mc_unidmedidaentrada WHERE materialconsumo_id = mat.id + ); + +UPDATE + alm_mc_unidmedidaentrada und +SET + ispadrao = true +FROM + (SELECT mat.id, mat.unidadearmazenamento_id FROM alm_materialconsumo mat WHERE + (SELECT count(*) FROM alm_mc_unidmedidaentrada WHERE materialconsumo_id = mat.id AND ispadrao = true) = 0) AS undidadesEnt +WHERE + und.materialconsumo_id = undidadesEnt.id AND und.unidademedida_id = undidadesEnt.unidadearmazenamento_id; -- GEOVANE FIM 24/05/2016 \ 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 3cc6efb..fd1d8c4 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 @@ -289,6 +289,41 @@ citApp.controller('MaterialController', ['$scope', 'MaterialRepository', 'Classi $scope.$watch('material.dominioTipoMaterial.codigo', function() { verificaMaterialConsumoSetGenerico(); }); + + $scope.$watch('material.unidadeArmazenamento', function() { + if ($scope.material.unidadeArmazenamento) { + if (!$scope.material.tiposUnidadeMedidaEntrada) { + $scope.material.tiposUnidadeMedidaEntrada = []; + } + + var jaAdd = false; + var isPossuiPadrao = false; + for (var i = 0; i < $scope.material.tiposUnidadeMedidaEntrada.length; i++) { + if ($scope.material.tiposUnidadeMedidaEntrada[i].unidadeMedida.id == $scope.material.unidadeArmazenamento.id) { + jaAdd = true; + } + if ($scope.material.tiposUnidadeMedidaEntrada[i].isPadrao) { + isPossuiPadrao = true; + } + } + + if (!jaAdd) { + if(isPossuiPadrao){ + var unidadeEntrada = { + unidadeMedida : $scope.material.unidadeArmazenamento, + isPadrao : false + }; + $scope.material.tiposUnidadeMedidaEntrada.push(unidadeEntrada); + } else { + var unidadeEntrada = { + unidadeMedida : $scope.material.unidadeArmazenamento, + isPadrao : true + }; + $scope.material.tiposUnidadeMedidaEntrada.push(unidadeEntrada); + } + } + } + }); DominioRepository.findAllDominio('tipoMaterial').then(function(result) { -- libgit2 0.21.2