Commit 5edef104dcd194a2782aa38d31a26c79a9ad5e75

Authored by erick.sato
1 parent ba6a29bc
Exists in master

[Redmine Atendimento #4431]Padronização lista contratos

cit-contratos-web/src/main/java/br/com/centralit/listener/StartupListenerContratos.java
... ... @@ -1042,8 +1042,8 @@ public class StartupListenerContratos extends UtilStartup implements Application
1042 1042 internacionalizacaoList.add(new Internacionalizacao("VALIDACAO.MAXIMO_POSSIVEL_RESPOSTA", "Você pode adicionar no máximo 10 possíveis respostas!", dominio, modulo));
1043 1043 internacionalizacaoList.add(new Internacionalizacao("VALIDACAO.MINIMO_POSSIVEIS_RESPOSTAS", "Você deve adicionar pelo menos duas possíveis respostas!", dominio, modulo));
1044 1044 internacionalizacaoList.add(new Internacionalizacao("VALIDACAO.NECESSIDADE_NAO_PREENCHIDA", "Você deve informar a descrição da necessidade elencada para adicionar a mesma!", dominio, modulo));
1045   - internacionalizacaoList.add(new Internacionalizacao("VALIDACAO.QUESTAO_NAO_PREENCHIDA", "Você deve preencher todos os dados da questão para adicionar a mesma!", dominio, modulo));
1046   - internacionalizacaoList.add(new Internacionalizacao("VALIDACAO.SEM_POSSIVEL_RESPOSTA", "Você deve digitar uma possível resposta!", dominio, modulo));
  1045 + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.VALIDACAO.QUESTAO_NAO_PREENCHIDA", "Você deve preencher todos os dados da questão para adicionar a mesma!", dominio, modulo));
  1046 + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.VALIDACAO.SEM_POSSIVEL_RESPOSTA", "Você deve digitar uma possível resposta!", dominio, modulo));
1047 1047 internacionalizacaoList.add(new Internacionalizacao("LIBERACAO_PAGAMENTO.MSG.SELECIONE_OS", "Adicione uma ordem de fornecimento de bens e serviços.", dominio, modulo));
1048 1048 internacionalizacaoList.add(new Internacionalizacao("LIBERACAO_PAGAMENTO.MSG.INFORME_VALOR_EMPENHO", "Informe o valor liberado para pagamento do empenho.", dominio, modulo));
1049 1049 }
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
... ... @@ -172,7 +172,9 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
172 172 if (edit) {
173 173 $scope.hasAlteracaoEnvolvido = false;
174 174 }
175   -
  175 + $scope.atualizarListaSizeSelect();
  176 + $scope.atualizarListaSizeSelectItemContrato();
  177 + $scope.atualizarListaSizeSelectEnvolvido();
176 178 $scope.edit = edit;
177 179 $scope.setCurrentStep(0);
178 180 $scope.setLoading(false);
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/CronogramaExecucaoController.js
1 1 'use strict';
2   -citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$timeout', '$filter', 'FileUploader',
  2 +citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$timeout', '$filter', 'FileUploader',
3 3 'CronogramaExecucaoRepository', 'ContratoRepository', 'ContratoItemRepository', 'CronogramaExecucaoItemRepository',
4   - function CronogramaExecucaoController($scope, $translate, $timeout, $filter, FileUploader,
  4 + function CronogramaExecucaoController($scope, $translate, $timeout, $filter, FileUploader,
5 5 CronogramaExecucaoRepository, ContratoRepository, ContratoItemRepository, CronogramaExecucaoItemRepository) {
6   -
  6 +
7 7 $scope.cronogramaExecucao = {
8 8 itensCronogramaExecucao : []
9 9 };
10   -
  10 +
11 11 $scope.itemCronogramaExecucao = {
12 12 parcelas : []
13 13 };
14 14  
15 15 $scope.parcelaItem = {};
16 16 $scope.contratoItem = {};
17   -
  17 +
18 18 $scope.radioValueList = [{descricao : $translate.instant('LABEL.SIM'), valor : true},
19 19 {descricao : $translate.instant('LABEL.NAO'), valor : false}];
20 20  
... ... @@ -35,22 +35,23 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
35 35  
36 36 $scope.edit = true;
37 37 $scope.pgEdit = true;
  38 + $scope.atualizarListaSizeSelect();
38 39 $timeout(function(){
39 40 limparCronogramaExecucaoForm();
40 41 });
41 42 };
42   -
  43 +
43 44 $scope.resetFormItens = function() {
44 45 limparItemCronogramaExecucao();
45 46 $scope.parcelaItem = {};
46 47 $scope.contratoItem = {};
47 48 };
48   -
  49 +
49 50 function limparCronogramaExecucaoForm() {
50 51 $scope.cronogramaExecucaoForm.$submitted = false;
51 52 $scope.cronogramaExecucaoForm.$setPristine();
52 53 }
53   -
  54 +
54 55 // Atualiza pagina de pesquisa
55 56 $scope.atualizaPaginaPesquisa = function () {
56 57 angular.element('#searchCronogramaExecucao').scope().fetchResult();
... ... @@ -59,7 +60,7 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
59 60 // Consulta entidade e mostra no formulario
60 61 $scope.getCronogramaExecucao = function(cronogramaExecucao, edit) {
61 62 $scope.setLoadingGet(true);
62   -
  63 +
63 64 CronogramaExecucaoRepository.get(cronogramaExecucao.id).then(function(result) {
64 65 $scope.cronogramaExecucao = result.originalElement;
65 66  
... ... @@ -70,7 +71,7 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
70 71 } else {
71 72 $scope.edit = false;
72 73 }
73   -
  74 + $scope.atualizarListaSizeSelect();
74 75 $scope.pgEdit = edit;
75 76 $scope.setLoading(false);
76 77 });
... ... @@ -106,9 +107,9 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
106 107  
107 108 if ($scope.cronogramaExecucao.contrato) {
108 109 $scope.editItemCronograma = true;
109   -
  110 +
110 111 limparItemCronogramaExecucao();
111   -
  112 +
112 113 $timeout(function() {
113 114 $scope.$openModal('modal-itens-cronograma.html', 'lg');
114 115 });
... ... @@ -122,25 +123,25 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
122 123 parcelas : []
123 124 };
124 125 };
125   -
  126 +
126 127 // MODAL QUE CONFIRMA REMOÇÃO DO CRONOGRAMA DE EXECUÇÃO
127 128 $scope.remove = function(cronogramaExecucao) {
128   - $scope.$openModalConfirm({
129   - message: $translate.instant('CONTRATOS.MSG.CONFIRMA_EXCLUSAO_CRONOGRAMA'),
  129 + $scope.$openModalConfirm({
  130 + message: $translate.instant('CONTRATOS.MSG.CONFIRMA_EXCLUSAO_CRONOGRAMA'),
130 131 callback: function () {
131 132 CronogramaExecucaoRepository.remove(cronogramaExecucao).then(function() {
132 133 $scope.limparCronogramaExecucao();
133   -
  134 +
134 135 $scope.$modalConfirmInstance.dismiss('cancel');
135 136 $scope.showAlert("success", $translate.instant('CONTRATOS.MSG.SUCESSO_EXCLUSAO_CRONOGRAMA'));
136 137 angular.element('#searchCronogramaExecucao').scope().fetchResult();
137   -
  138 +
138 139 $scope.resetForm();
139 140 });
140 141 }
141 142 });
142 143 };
143   -
  144 +
144 145 // SALVA O CRONOGRAMA DE EXECUÇÃO
145 146 $scope.saveOrUpdate = function(){
146 147 $scope.cronogramaExecucaoForm.$submitted = true;
... ... @@ -170,12 +171,12 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
170 171 CronogramaExecucaoRepository.save($scope.cronogramaExecucao).then(function(result) {
171 172 $scope.cronogramaExecucao = result.originalElement;
172 173 $scope.showAlert("success", $translate.instant('CONTRATOS.MSG.SUCESSO_SALVAR_CRONOGRAMA'));
173   -
  174 +
174 175 // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir
175 176 salvarListaDocumentos(cronogramaExecucaoTemp);
176 177  
177 178 $scope.cronogramaExecucaoForm.$submitted = false;
178   - $scope.$showPageSearchWorkspace($scope.workspace);
  179 + $scope.$showPageSearchWorkspace($scope.workspace);
179 180 $scope.atualizaPaginaPesquisa();
180 181 });
181 182 $scope.setLoading(false);
... ... @@ -219,7 +220,7 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
219 220 $scope.uploader.uploadAll();
220 221 }
221 222 };
222   -
  223 +
223 224 // Limpa o formulario preenchido
224 225 $scope.limparCronogramaExecucao = function(){
225 226 $scope.cronogramaExecucao = {
... ... @@ -233,8 +234,9 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
233 234 item.$checked = value;
234 235 item.$index = key;
235 236 });
  237 + $scope.atualizarListaSizeSelect();
236 238 };
237   -
  239 +
238 240 // Abre modal perguntando se deseja excluir e exclui os elementos selecionados na lista de acoes caso confirmado
239 241 $scope.excluirItensCronogramaSelecionados = function(){
240 242 var lista = recuperarItensSelecionadas();
... ... @@ -242,13 +244,13 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
242 244 $scope.$openModalConfirm({
243 245 message: $translate.instant('MSG.DESEJA_EXCLUIR_ITENS'),
244 246 callback: function () {
245   -
  247 +
246 248 angular.forEach($scope.cronogramaExecucao.itensCronogramaExecucao, function (item, idx) {
247 249 if (item.$checked) {
248 250 $scope.cronogramaExecucao.itensCronogramaExecucao.splice(idx, 1);
249 251 }
250 252 });
251   -
  253 + $scope.atualizarListaSizeSelect();
252 254 $scope.$modalConfirmInstance.dismiss('cancel');
253 255 }
254 256 });
... ... @@ -279,13 +281,13 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
279 281 });
280 282 $scope.itemCronogramaExecucao.$index = clone(lista[0].$index);
281 283 $scope.contratoItem = clone(lista[0].contratoItem);
282   -
  284 +
283 285 $timeout(function() {
284 286 $scope.$openModal('modal-itens-cronograma.html', 'lg');
285 287 });
286 288  
287 289 };
288   -
  290 +
289 291 //Recupera todas as acoes selecionadas na lista
290 292 var recuperarItensSelecionadas = function(){
291 293 var lista = [];
... ... @@ -303,7 +305,7 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
303 305  
304 306 $scope.setDadosContratoItem = function (contratoItem) {
305 307 $scope.contratoItem = contratoItem;
306   -
  308 +
307 309 $scope.parcelaItem.quantidade = contratoItem.quantidade;
308 310 $scope.parcelaItem.valorUnitario = contratoItem.valorUnitarioItem;
309 311 };
... ... @@ -316,7 +318,7 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
316 318 $scope.parcelaItem.quantidade = $scope.contratoItem.quantidade;
317 319 }
318 320 };
319   -
  321 +
320 322 function limparParcelasItemCronogramaExecucao() {
321 323 $scope.itemCronogramaExecucao.parcelas = [];
322 324 };
... ... @@ -326,10 +328,10 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
326 328 var index = angular.copy($scope.itemCronogramaExecucao.$index);
327 329 limparItemCronogramaExecucao();
328 330 $scope.parcelaItem = {};
329   -
  331 +
330 332 $scope.itemCronogramaExecucao.parcelas = parcelas;
331 333 $scope.itemCronogramaExecucao.$index = index;
332   -
  334 +
333 335 formDialogItemCronogramaExecucao.$submitted = false;
334 336 formDialogItemCronogramaExecucao.$setPristine();
335 337 }
... ... @@ -338,11 +340,11 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim
338 340 formDialogItemCronogramaExecucao.$submitted = true;
339 341  
340 342 if (formDialogItemCronogramaExecucao.$valid) {
341   -
  343 +
342 344 if ($scope.parcelaItem.$index != undefined && $scope.parcelaItem.$index != null) {
343 345 $scope.itemCronogramaExecucao.parcelas[$scope.parcelaItem.$index] = angular.copy($scope.parcelaItem);
344 346 } else {
345   -
  347 +
346 348 if ($scope.itemCronogramaExecucao.pagamentoParcelado === true && $scope.itemCronogramaExecucao.numeroParcelas) {
347 349 var numeroParcelas = Number($scope.itemCronogramaExecucao.numeroParcelas);
348 350 for (var i=0; i < numeroParcelas; i++) {
... ... @@ -368,13 +370,13 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
368 370 } else {
369 371 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
370 372 }
371   -
  373 +
372 374 };
373 375  
374 376 function adicionarParcelaItemLista(sequencia) {
375 377  
376 378 $scope.parcelaItem.valorTotalParcela = 0.0;
377   - $scope.parcelaItem.valorTotalParcela = ($scope.parcelaItem.quantidade * $scope.parcelaItem.valorUnitario);
  379 + $scope.parcelaItem.valorTotalParcela = ($scope.parcelaItem.quantidade * $scope.parcelaItem.valorUnitario);
378 380  
379 381 $scope.parcelaItem.sequencia = sequencia;
380 382 $scope.parcelaItem.dataEntrega = $filter('date')(clone($scope.parcelaItem.dataEntrega), "dd/MM/yyyy");
... ... @@ -386,12 +388,12 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
386 388 var quantidade = $scope.itemCronogramaExecucao.parcelas[index].quantidade;
387 389 var valorUnitario = $scope.itemCronogramaExecucao.parcelas[index].valorUnitario;
388 390 $scope.itemCronogramaExecucao.parcelas[index].valorTotalParcela = (quantidade * valorUnitario);
389   -
  391 +
390 392 calcularValorTotalItemDialog();
391 393 };
392 394  
393 395 $scope.editarParcelaItemCronogramaExecucao = function () {
394   -
  396 +
395 397 var lista = recuperarItensSelecionadas();
396 398  
397 399 if (lista.length > 0) {
... ... @@ -401,13 +403,13 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
401 403 $scope.itemCronogramaExecucao.contratoItem = $scope.contratoItem;
402 404 $scope.itemCronogramaExecucao.pagamentoParcelado = $scope.itemCronogramaExecucao.parcelas > 1;
403 405 }
404   -
  406 +
405 407 $scope.itemCronogramaExecucao.numeroParcelas = $scope.itemCronogramaExecucao.parcelas.length;
406   -
  408 +
407 409 var parcelaChecked = $scope.itemCronogramaExecucao.parcelas.filter(function(parcela) {
408 410 return parcela.$checked === true;
409 411 });
410   -
  412 +
411 413 $scope.parcelaItem = clone(parcelaChecked[0]);
412 414 $scope.parcelaItem.dataEntrega = $filter('date')($scope.parcelaItem.dataEntrega, "dd/MM/yyyy");
413 415 };
... ... @@ -439,14 +441,14 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
439 441 $scope.addItemCronogramaExecucao = function(formDialogItemCronogramaExecucao, continuar) {
440 442  
441 443 var itemCronogramaExecucao = angular.copy($scope.itemCronogramaExecucao);
442   -
  444 +
443 445 if (itemCronogramaExecucao.parcelas.length > 0) {
444 446  
445 447 var hasInconsistencia = false;
446 448 var textParcelasComEntregaForaVigencia = "";
447   -
  449 +
448 450 angular.forEach(itemCronogramaExecucao.parcelas, function(parcela) {
449   -
  451 +
450 452 var hasErrorVigenciaInicial = isPeriodoValido(parcela.dataEntrega, $scope.cronogramaExecucao.contrato.dataVigenciaInicial);
451 453 var hasErrorVigenciaFinal = !isPeriodoValido(parcela.dataEntrega, $scope.cronogramaExecucao.contrato.dataUltimaVigenciaFinal);
452 454 if (hasErrorVigenciaInicial || hasErrorVigenciaFinal) {
... ... @@ -482,13 +484,14 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
482 484  
483 485 $scope.$modalInstance.dismiss('cancel');
484 486 }
  487 + $scope.atualizarListaSizeSelect();
485 488 }
486 489 } else {
487 490 $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.NECESSARIO_ITEM_CRONOGRAMA'), " ", false);
488 491 }
489 492 };
490 493  
491   -
  494 +
492 495 // ####################################################################################################################### \\
493 496 // ##################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS À WATCH DE CAMPOS DA TELA #################### \\
494 497 // ####################################################################################################################### \\
... ... @@ -504,7 +507,7 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
504 507 $scope.itemCronogramaExecucao.valorTotalItem += (parcela.valorUnitario * parcela.quantidade);
505 508 });
506 509 };
507   -
  510 +
508 511 // watch para calcular valor total dos itens do cronograma
509 512 $scope.$watchCollection('cronogramaExecucao.itensCronogramaExecucao', function() {
510 513 $scope.cronogramaExecucao.valorTotal = 0.0;
... ... @@ -513,4 +516,12 @@ citApp.controller(&#39;CronogramaExecucaoController&#39;, [&#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
513 516 });
514 517 });
515 518  
  519 + $scope.atualizarListaSizeSelect = function() {
  520 + if(!$scope.listaSize){
  521 + $scope.listaSize = 0;
  522 + };
  523 + var lista = recuperarItensSelecionadas();
  524 + $scope.listaSize = lista.length;
  525 + };
  526 +
516 527 }]);
517 528 \ No newline at end of file
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/OrdemFornecimentoController.js
... ... @@ -7,28 +7,28 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
7 7  
8 8 $scope.edit = true;
9 9 $scope.ordemFornecimento = {};
10   -
  10 +
11 11 $scope.uploader = new FileUploader({
12 12 autoUpload: false,
13 13 queueLimit: 1,
14 14 url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento='
15 15 });
16   -
  16 +
17 17 DominioRepository.findAllDominio('tipoSituacaoOrdemFornecimento').then(function(result) {
18 18 $scope.listaSituacaoOrdemFornecimentos = result;
19 19 });
20   -
  20 +
21 21 $scope.findContrato = function(value) {
22 22 return ContratoRepository.findContrato(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
23 23 return result;
24 24 });
25 25 };
26   -
  26 +
27 27 // limpa o formulario
28 28 $scope.resetForm = function() {
29 29 $scope.edit = true;
30 30 $scope.ordemFornecimento = {};
31   -
  31 + $scope.atualizarListaSizeSelect();
32 32 $timeout(function() {
33 33 $scope.ordemFornecimentoForm.$submitted = false;
34 34 });
... ... @@ -41,13 +41,13 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
41 41 OrdemFornecimentoRepository.get(idOrdemFornecimento).then(function(result) {
42 42  
43 43 $scope.ordemFornecimento = result.originalElement;
44   -
  44 + $scope.atualizarListaSizeSelect();
45 45 $scope.edit = edit;
46 46  
47 47 $scope.setLoading(false);
48 48 });
49 49 };
50   -
  50 +
51 51 // recupera os itens selecionados
52 52 $scope.getItensChecked = function() {
53 53 var itensChecked = [];
... ... @@ -62,13 +62,13 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
62 62  
63 63 return itensChecked;
64 64 };
65   -
  65 +
66 66 $scope.openModalItensBensServicos = function() {
67 67  
68 68 $scope.editItem = true;
69 69  
70 70 $scope.item = {};
71   -
  71 +
72 72 if ($scope.ordemFornecimento.contrato) {
73 73 ContratoItemRepository.findAllByContrato($scope.ordemFornecimento.contrato.id).then(function(result) {
74 74 $scope.itensContrato = result;
... ... @@ -82,7 +82,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
82 82 $scope.$openModal('modal-itens-bens-servicos.html', 'lg');
83 83 });
84 84 };
85   -
  85 +
86 86 $scope.abrirItensBensServicos = function(edit) {
87 87  
88 88 $scope.editItem = edit;
... ... @@ -90,7 +90,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
90 90 $scope.item = null;
91 91 // recupera a EstudoTecnico selecionada
92 92 var itensSelecionados = $scope.getItensChecked();
93   -
  93 +
94 94 if (itensSelecionados.length > 1) {
95 95 $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
96 96 return;
... ... @@ -100,13 +100,13 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
100 100 $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
101 101 return;
102 102 }
103   -
  103 +
104 104 ContratoItemRepository.findAllByContrato($scope.ordemFornecimento.contrato.id).then(function(result) {
105 105 $scope.itensContrato = result;
106 106 });
107   -
  107 +
108 108 $scope.item = itensSelecionados[0];
109   -
  109 +
110 110 $scope.item.dataInicioPrevisto = $filter('date')( $scope.item.dataInicioPrevisto, "dd/MM/yyyy");;
111 111 $scope.item.dataTerminoPrevisto = $filter('date')( $scope.item.dataTerminoPrevisto, "dd/MM/yyyy");;
112 112  
... ... @@ -114,7 +114,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
114 114 $scope.$openModal('modal-itens-bens-servicos.html', 'lg');
115 115 });
116 116 };
117   -
  117 +
118 118 // ADICIONAR item
119 119 $scope.salvaItem = function(formDialogItem) {
120 120  
... ... @@ -122,25 +122,25 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
122 122  
123 123 //verifica se o formulario está valido para salvar
124 124 if (formDialogItem.$valid) {
125   -
  125 +
126 126 if(!isPeriodoValido($scope.item.dataInicioPrevisto, $scope.item.dataTerminoPrevisto)) {
127 127 $scope.showAlert('warning', $translate.instant('VALIDACAO.DATA_INICIO_PREVISTO_MAIOR_DATA_TERMINO_PREVISTO_CONTRATO'));
128 128 return;
129 129 }
130   -
  130 +
131 131 if(!isPeriodoValido($scope.ordemFornecimento.contrato.dataVigenciaInicial, $scope.item.dataInicioPrevisto) ||
132 132 !isPeriodoValido($scope.item.dataTerminoPrevisto, $scope.ordemFornecimento.contrato.dataUltimaVigenciaFinal)) {
133 133 $scope.showAlert('warning', $translate.instant('VALIDACAO.PERIODO_INICIO_TERMINO_DENTRO_VIGENCIA_CONTRATO'));
134 134 return;
135 135 }
136   -
  136 +
137 137 if ($scope.item.quantidade == 0) {
138 138 $scope.showAlert('warning', $translate.instant('VALIDACAO.QUANTIDADE_MAIOR_ZERO'));
139 139 return;
140 140 }
141   -
  141 +
142 142 var qntParc = $scope.item.quantidade;
143   -
  143 +
144 144 if ($scope.ordemFornecimento.itensBensServicos) {
145 145 for (var i = 0; i < $scope.ordemFornecimento.itensBensServicos.length; i++) {
146 146 if (!$scope.ordemFornecimento.itensBensServicos[i].$checked && $scope.ordemFornecimento.itensBensServicos[i].itemBemServico.id == $scope.item.itemBemServico.id) {
... ... @@ -148,23 +148,23 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
148 148 }
149 149 }
150 150 }
151   -
  151 +
152 152 if (qntParc > $scope.item.itemBemServico.quantidade) {
153   -
  153 +
154 154 var qntRestante = parseFloat($scope.item.itemBemServico.quantidade) - (parseFloat(qntParc) - parseFloat($scope.item.quantidade));
155   -
  155 +
156 156 if (qntRestante < 0) {
157 157 qntRestante = 0;
158 158 }
159   -
  159 +
160 160 $scope.showAlert('warning', $translate.instant('VALIDACAO.QUANTIDADE_INSERIDA_ITEM_MAIOR_QUANTIDADE_CONTRATO') + qntRestante);
161 161 return;
162 162 }
163   -
  163 +
164 164 if ($scope.item.itemBemServico.originalElement) {
165 165 $scope.item.itemBemServico = $scope.item.itemBemServico.originalElement;
166 166 }
167   -
  167 +
168 168 if ($scope.ordemFornecimento.itensBensServicos) {
169 169 if ($scope.item.$checked) {
170 170 for (var i = 0; i < $scope.ordemFornecimento.itensBensServicos.length; i++) {
... ... @@ -180,26 +180,26 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
180 180 $scope.item.$index = 1;
181 181 $scope.ordemFornecimento.itensBensServicos = [$scope.item];
182 182 }
183   -
  183 +
184 184 var qnt = 0;
185 185 var total = 0;
186   -
  186 +
187 187 for (var i = 0; i < $scope.ordemFornecimento.itensBensServicos.length; i++) {
188 188 var item = $scope.ordemFornecimento.itensBensServicos[i];
189 189 qnt = parseFloat(qnt) + parseFloat(item.quantidade);
190 190 total = parseFloat(total) + parseFloat(item.valorTotalItem);
191 191 }
192   -
  192 +
193 193 $scope.quantidadeTotal = qnt;
194 194 $scope.totalGeral = total;
195   -
  195 + $scope.atualizarListaSizeSelect();
196 196 $scope.$modalInstance.dismiss('cancel');
197 197 } else {
198 198 //Mensagem de erro de campos obrigatorios não preenchidos
199 199 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
200 200 }
201 201 };
202   -
  202 +
203 203 $scope.removerItensBensServicos = function() {
204 204 // recupera a EstudoTecnico selecionada
205 205 var itensSelecionados = $scope.getItensChecked();
... ... @@ -210,7 +210,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
210 210 callback: function() {
211 211  
212 212 $scope.$modalConfirmInstance.dismiss('cancel');
213   -
  213 +
214 214 var itens = [];
215 215 for (var i = 0; i < $scope.ordemFornecimento.itensBensServicos.length; i++) {
216 216 if (!$scope.ordemFornecimento.itensBensServicos[i].$checked) {
... ... @@ -218,6 +218,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
218 218 }
219 219 }
220 220 $scope.ordemFornecimento.itensBensServicos = itens;
  221 + $scope.atualizarListaSizeSelect();
221 222 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
222 223 }
223 224 });
... ... @@ -225,20 +226,20 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
225 226 $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
226 227 }
227 228 };
228   -
  229 +
229 230 //Salva a ordem de fornecimento
230 231 $scope.saveOrUpdate = function() {
231 232 // atributo para visualizar os itens obrigatorios na tela
232 233 $scope.ordemFornecimentoForm.$submitted = true;
233   -
  234 +
234 235 // verifica formulario valido
235 236 if ($scope.ordemFornecimentoForm.$valid) {
236   -
  237 +
237 238 if (!$scope.ordemFornecimento.itensBensServicos || $scope.ordemFornecimento.itensBensServicos.length == 0) {
238 239 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
239 240 return;
240 241 }
241   -
  242 +
242 243 if ($scope.ordemFornecimento.dominioSituacao && $scope.ordemFornecimento.dominioSituacao.originalElement) {
243 244 $scope.ordemFornecimento.dominioSituacao = $scope.ordemFornecimento.dominioSituacao.originalElement;
244 245 }
... ... @@ -276,7 +277,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
276 277 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'));
277 278 }
278 279 };
279   -
  280 +
280 281 // metodo utilizado para percorrer a lista de documentos persistidos e verificar com a lista de documentos temporarios para verificacao de qual anexo pertence a qual documento
281 282 var salvarListaDocumentos = function(ordemFornecimentoTemp) {
282 283  
... ... @@ -310,7 +311,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
310 311 $scope.uploader.uploadAll();
311 312 }
312 313 };
313   -
  314 +
314 315 //Watch para buscar o gestor do contrato
315 316 $scope.$watch('ordemFornecimento.contrato', function() {
316 317 if ($scope.ordemFornecimento.contrato && ($scope.ordemFornecimento.contrato.id)) {
... ... @@ -321,12 +322,12 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
321 322 $scope.contratoGestor = null;
322 323 }
323 324 });
324   -
  325 +
325 326 //Watch para atualizar valores do item
326 327 $scope.$watch('item.itemBemServico', function() {
327 328 if ($scope.item && $scope.item.itemBemServico && $scope.item.itemBemServico.originalElement) {
328 329 if ($scope.item.itemBemServico) {
329   -
  330 +
330 331 var qnt = 0;
331 332 if ($scope.ordemFornecimento.itensBensServicos) {
332 333 for (var i = 0; i < $scope.ordemFornecimento.itensBensServicos.length; i++) {
... ... @@ -336,7 +337,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
336 337 }
337 338 }
338 339 }
339   -
  340 +
340 341 $scope.item.quantidade = parseFloat($scope.item.itemBemServico.quantidade) - parseFloat(qnt);
341 342 $scope.item.valorUnitarioItem = $scope.item.itemBemServico.valorUnitarioItem;
342 343 $scope.item.valorTotalItem = $scope.item.quantidade * $scope.item.valorUnitarioItem;
... ... @@ -347,7 +348,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
347 348 }
348 349 }
349 350 });
350   -
  351 +
351 352 //Watch para atualizar o valor total do item
352 353 $scope.$watch('item.quantidade', function() {
353 354 if ($scope.item) {
... ... @@ -358,7 +359,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
358 359 }
359 360 }
360 361 });
361   -
  362 +
362 363 //Watch para atualizar o valor total do item
363 364 $scope.$watch('ordemFornecimento.itensBensServicos', function() {
364 365 if ($scope.ordemFornecimento.itensBensServicos && $scope.ordemFornecimento.itensBensServicos.length > 0) {
... ... @@ -376,7 +377,7 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
376 377 $scope.totalGeral = 0;
377 378 }
378 379 });
379   -
  380 +
380 381 //INICIO DE METODOS REFERENTES AOS RELATORIOS
381 382  
382 383 $scope.gerarRelatorioOrdemFornecimento = function() {
... ... @@ -384,4 +385,20 @@ citApp.controller(&#39;OrdemFornecimentoController&#39;, [&#39;$scope&#39;, &#39;OrdemFornecimentoRe
384 385 $scope.visualizarRelatorio($scope.url, $translate.instant("LABEL.TITULO_ORDEM_FORNECIMENTO"));
385 386 };
386 387  
  388 + $scope.checkAll = function(value) {
  389 + angular.forEach($scope.ordemFornecimento.itensBensServicos, function (item, key) {
  390 + item.$checked = value;
  391 + item.$index = key;
  392 + });
  393 + $scope.atualizarListaSizeSelect();
  394 + };
  395 +
  396 + $scope.atualizarListaSizeSelect = function() {
  397 + if(!$scope.listaSize){
  398 + $scope.listaSize = 0;
  399 + };
  400 + var lista = $scope.getItensChecked();
  401 + $scope.listaSize = lista.length;
  402 + };
  403 +
387 404 }]);
388 405 \ No newline at end of file
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/QuestionarioController.js
... ... @@ -8,25 +8,25 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
8 8 dominioTipoQuestionario : {codigo : 1},
9 9 questoes : []
10 10 };
11   -
  11 +
12 12 $scope.questionarioPergunta = {
13 13 respostasEscolha : []
14 14 };
15   -
  15 +
16 16 $scope.possivelResposta = {};
17 17  
18 18 $scope.isBloquear = false;
19 19  
20 20 $scope.isDesbloquear = false;
21   -
  21 +
22 22 DominioRepository.findAllDominio('tipoRespostaQuestao').then(function(result) {
23 23 $scope.dominiosTipoResposta = result;
24 24 });
25   -
  25 +
26 26 DominioRepository.findAllDominio('tipoQuestionario').then(function(result) {
27 27 $scope.dominiosTipoQuestionario = result;
28 28 });
29   -
  29 +
30 30 // Limpa formulário para novo cadastro
31 31 $scope.resetForm = function() {
32 32 $scope.limparQuestionario();
... ... @@ -35,17 +35,18 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
35 35 $scope.pgEdit = true;
36 36 $scope.isBloquear = false;
37 37 $scope.isDesbloquear = $scope.isBloquear;
  38 + $scope.atualizarListaSizeSelect();
38 39 $timeout(function(){
39 40 $scope.questionarioForm.$submitted = false;
40 41 $scope.questionarioForm.$setPristine();
41 42 });
42 43 };
43   -
  44 +
44 45 // Atualiza pagina de pesquisa
45 46 $scope.atualizaPaginaPesquisa = function () {
46 47 angular.element('#searchQuestionario').scope().fetchResult();
47 48 };
48   -
  49 +
49 50 $scope.addPossivelResposta = function() {
50 51 var resposta = $scope.possivelResposta.resposta;
51 52 if ($scope.questionarioPergunta.respostasEscolha.length > 10) {
... ... @@ -59,7 +60,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
59 60 $scope.possivelResposta = {};
60 61 }
61 62 };
62   -
  63 +
63 64 $scope.addQuestao = function() {
64 65 var questao = angular.copy($scope.questionarioPergunta);
65 66 if (!questao.questao || !questao.dominioTipoResposta) {
... ... @@ -87,9 +88,10 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
87 88 $scope.questionario.questoes.push(questao);
88 89 }
89 90 $scope.limparPergunta();
  91 + $scope.atualizarListaSizeSelect();
90 92 }
91 93 };
92   -
  94 +
93 95 $scope.mudaTipoResposta = function() {
94 96 $timeout(function(){
95 97 angular.forEach($scope.dominiosTipoResposta, function (item) {
... ... @@ -99,24 +101,24 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
99 101 });
100 102 });
101 103 };
102   -
  104 +
103 105 // Bloqueia o questionario
104 106 $scope.confirmarBloqueioQuestionario = function(){
105   -
  107 +
106 108 if(!$scope.questionario.dataBloqueio){
107   -
  109 +
108 110 $scope.showAlert('error', $translate.instant('MSG.MG011'));
109 111 }else{
110   -
  112 +
111 113 try{
112   -
  114 +
113 115 $scope.setLoadingSalva(true);
114   -
  116 +
115 117 QuestionarioRepository.save($scope.questionario).then(function(result){
116 118 $scope.setLoadingSalva(false);
117   -
  119 +
118 120 $scope.questionario = result.originalElement;
119   -
  121 +
120 122 $scope.isBloquear = false;
121 123 $scope.isDesbloquear = !$scope.isBloquear;
122 124 $scope.edit = false;
... ... @@ -124,56 +126,56 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
124 126 });
125 127 }catch(exception){
126 128 $scope.setLoadingSalva(false);
127   - }
  129 + }
128 130 }
129 131 };
130 132  
131   - // Desbloqueia o questionario
  133 + // Desbloqueia o questionario
132 134 $scope.desbloquear = function() {
133 135 $scope.setLoadingSalva(true);
134   -
  136 +
135 137 $scope.questionario.dataBloqueio = null;
136   -
  138 +
137 139 QuestionarioRepository.save($scope.questionario).then(function(result){
138 140 $scope.setLoadingSalva(false);
139   -
  141 +
140 142 $scope.questionario = result.originalElement;
141   -
  143 +
142 144 $scope.edit = true;
143 145 $scope.isBloquear = true;
144 146 $scope.isDesbloquear = !$scope.isBloquear;
145 147 $scope.showAlert("success", $translate.instant('MSG.SUCESSO_DESBLOQUEIO_QUESTIONARIO'));
146 148 });
147 149 };
148   -
  150 +
149 151 // MODAL QUE CONFIRMA REMOVER DO Questionário
150 152 $scope.remove = function(questionario){
151   - $scope.$openModalConfirm({
152   - message: $translate.instant('MSG.CONFIRMA_EXCLUIR_QUESTIONARIO'),
  153 + $scope.$openModalConfirm({
  154 + message: $translate.instant('MSG.CONFIRMA_EXCLUIR_QUESTIONARIO'),
153 155 callback: function () {
154 156 QuestionarioRepository.remove(questionario).then(function() {
155 157 $scope.limparQuestionario();
156   -
  158 +
157 159 $scope.$modalConfirmInstance.dismiss('cancel');
158 160 $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_QUESTIONARIO'));
159 161 angular.element('#searchQuestionario').scope().fetchResult();
160   -
  162 +
161 163 $scope.resetForm();
162 164 });
163 165 }
164 166 });
165 167 };
166   -
  168 +
167 169 // SALVA O QUESTIONARIO
168 170 $scope.saveOrUpdate = function(){
169 171 $scope.questionarioForm.$submitted = true;
170   -
  172 +
171 173 try{
172 174 //verifica se o formulario está valido para salvar
173 175 if($scope.questionarioForm.$valid){
174   -
  176 +
175 177 $scope.setLoadingSalva(true);
176   -
  178 +
177 179 QuestionarioRepository.save($scope.questionario).then(function(result) {
178 180 $scope.questionario = result.originalElement;
179 181 $scope.isBloquear = !$scope.questionario.dataBloqueio;
... ... @@ -191,7 +193,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
191 193 $scope.setLoadingSalva(false);
192 194 }
193 195 };
194   -
  196 +
195 197 // Limpa a pergunta preenchida
196 198 $scope.limparPergunta = function(){
197 199 if ($scope.editTipoResposta) {
... ... @@ -199,10 +201,10 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
199 201 respostasEscolha : []
200 202 };
201 203 } else {
202   - delete $scope.questionarioPergunta.questao;
  204 + delete $scope.questionarioPergunta.questao;
203 205 }
204 206 };
205   -
  207 +
206 208 // Limpa o formulario preenchido
207 209 $scope.limparQuestionario = function(){
208 210 $scope.questionario = {
... ... @@ -218,19 +220,20 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
218 220  
219 221 QuestionarioRepository.get($scope.$parent.idObejct).then(function(result) {
220 222 $scope.questionario = result.originalElement;
221   -
  223 + $scope.atualizarListaSizeSelect();
222 224 $scope.setLoading(false);
223 225 });
224 226 }
225   -
  227 +
226 228 // Seleciona todos as questoes na lista
227 229 $scope.checkAll = function(value) {
228 230 angular.forEach($scope.questionario.questoes, function (item, key) {
229 231 item.$selected = value;
230 232 item.$index = key;
231 233 });
  234 + $scope.atualizarListaSizeSelect();
232 235 };
233   -
  236 +
234 237 // Seleciona todos as respostas na lista
235 238 $scope.checkAllRespostas = function(value) {
236 239 angular.forEach($scope.questionarioPergunta.respostasEscolha, function (item, key) {
... ... @@ -238,7 +241,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
238 241 item.$index = key;
239 242 });
240 243 };
241   -
  244 +
242 245 // Abre modal perguntando se deseja excluir e exclui os elementos selecionados na lista de questões caso confirmado
243 246 $scope.prepararExcluirQuestoesSelecionados = function(){
244 247 var lista = recuperarQuestoesSelecionadas();
... ... @@ -256,6 +259,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
256 259 }
257 260 });
258 261 });
  262 + $scope.atualizarListaSizeSelect();
259 263 $scope.$modalConfirmInstance.dismiss('cancel');
260 264 }
261 265 });
... ... @@ -264,7 +268,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
264 268 return ;
265 269 }
266 270 };
267   -
  271 +
268 272 $scope.prepararExcluirRespostasSelecionadas = function() {
269 273 var lista = recuperarRespostasSelecionadas();
270 274 if(lista.length > 0){
... ... @@ -289,7 +293,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
289 293 return ;
290 294 }
291 295 };
292   -
  296 +
293 297 $scope.editQuestao = function() {
294 298 var lista = recuperarQuestoesSelecionadas();
295 299 if (lista.length === 0) {
... ... @@ -302,7 +306,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
302 306 }
303 307 $scope.questionarioPergunta = lista[0];
304 308 };
305   -
  309 +
306 310 //Recupera todas as questões selecionadas na lista
307 311 var recuperarQuestoesSelecionadas = function(){
308 312 var lista = [];
... ... @@ -313,7 +317,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
313 317 });
314 318 return lista;
315 319 };
316   -
  320 +
317 321 //Recupera todas as possiveis respostas selecionadas na lista
318 322 var recuperarRespostasSelecionadas = function(){
319 323 var lista = [];
... ... @@ -324,14 +328,14 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
324 328 });
325 329 return lista;
326 330 };
327   -
  331 +
328 332 // Consulta entidade e mostra no formulario
329 333 $scope.getQuestionario = function(questionario, edit){
330 334 $scope.setLoadingGet(true);
331   -
  335 +
332 336 QuestionarioRepository.get(questionario.id).then(function(result) {
333 337 $scope.questionario = result.originalElement;
334   -
  338 +
335 339 if($scope.questionario.dataBloqueio === null || $scope.questionario.dataBloqueio === undefined){
336 340 $scope.isBloquear = true;
337 341 $scope.isDesbloquear = !$scope.isBloquear;
... ... @@ -343,12 +347,12 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
343 347 $scope.edit = false;
344 348 $scope.editTipoResposta = false;
345 349 }
346   -
  350 + $scope.atualizarListaSizeSelect();
347 351 $scope.pgEdit = edit;
348 352 $scope.setLoading(false);
349 353 });
350 354 };
351   -
  355 +
352 356 //Watch para calcular valor unitario
353 357 $scope.$watch('questionario.dominioTipoQuestionario', function() {
354 358 $timeout(function() {
... ... @@ -359,7 +363,7 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
359 363 $scope.showAlert('warning', $translate.instant('MSG.CADASTRO_CHECKLIST_ANALISE_SOLUCAO'));
360 364 }
361 365 });
362   -
  366 +
363 367 $scope.questionarioPergunta.dominioTipoResposta = {codigo : 4};
364 368 $scope.editTipoResposta = false;
365 369 $scope.questionarioPergunta.respostasEscolha = [{resposta : $translate.instant('LABEL.SIM')},
... ... @@ -379,6 +383,15 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
379 383 }
380 384 });
381 385 });
  386 +
  387 + $scope.atualizarListaSizeSelect = function() {
  388 + if(!$scope.listaSize){
  389 + $scope.listaSize = 0;
  390 + };
  391 + var lista = recuperarQuestoesSelecionadas();
  392 + $scope.listaSize = lista.length;
  393 + };
  394 +
382 395 }]);
383 396  
384 397  
... ...
cit-contratos-web/src/main/webapp/html/cronogramaExecucao/cronogramaExecucaoEdit.html
... ... @@ -127,31 +127,38 @@
127 127 <div class="row margin-top">
128 128 <div class="col-sm-12">
129 129 <div class="panel panel-default">
130   - <div class="panel-heading clearfix">
131   - <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" ng-show="edit" ng-click="openModalItensCronograma();" type="button"
132   - ng-disabled="cronogramaExecucao.id">
133   - <i class="fa fa-plus-circle yellow-dark"></i>
134   - <translate>LABEL.ADICIONAR</translate> </a>
135   - </button>
136   -
137   - <button title="{{$translate.instant('LABEL.VISUALIZAR')}}" alt="{{$translate.instant('LABEL.VISUALIZAR')}}" class="btn btn-clear" type="button" ng-show="cronogramaExecucao.itensCronogramaExecucao.length > 0"
138   - ng-click="editItemCronogramaExecucao(false)">
139   - <i class="fa fa-search blue"></i>
140   - <translate>LABEL.VISUALIZAR</translate>
141   - </button>
142   -
143   - <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" class="btn btn-clear" ng-show="edit && cronogramaExecucao.itensCronogramaExecucao.length > 0"
144   - ng-click="editItemCronogramaExecucao(true)">
145   - <i class="fa fa-pencil blue"></i>
146   - <translate>LABEL.EDITAR</translate>
147   - </button>
148   -
149   - <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" type="button" ng-show="edit && cronogramaExecucao.itensCronogramaExecucao.length > 0"
150   - ng-click="excluirItensCronogramaSelecionados()" ng-disabled="cronogramaExecucao.id">
151   - <i class="fa fa-times red"></i>
152   - <translate>LABEL.REMOVER</translate>
153   - </button>
  130 + <div class="panel-heading clearfix col-sm-12 text-left">
  131 +
  132 + <div class="col-sm-1" tooltip="{{ !edit ? $translate.instant('PORTAL.MSG.ADICIONAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  133 + <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" ng-disabled="!edit" ng-click="openModalItensCronograma();" type="button"
  134 + ng-disabled="cronogramaExecucao.id">
  135 + <i class="fa fa-plus-circle yellow-dark"></i>
  136 + <translate>LABEL.ADICIONAR</translate> </a>
  137 + </button>
  138 + </div>
  139 + <div class="col-sm-1" tooltip="{{ listaSize == 0 ? $translate.instant('PORTAL.MSG.VISUALIZAR_SELECIONE_ITEM') : listaSize > 1 ? $translate.instant('PORTAL.MSG.VISUALIZAR_DISABLED_SELECIONADOS') : '' }}">
  140 + <button title="{{$translate.instant('LABEL.VISUALIZAR')}}" alt="{{$translate.instant('LABEL.VISUALIZAR')}}" class="btn btn-clear" type="button" ng-disabled="listaSize != 1"
  141 + ng-click="editItemCronogramaExecucao(false)">
  142 + <i class="fa fa-search blue"></i>
  143 + <translate>LABEL.VISUALIZAR</translate>
  144 + </button>
  145 + </div>
  146 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EDITAR_SELECIONE_ITEM') : listaSize > 1 ? $translate.instant('PORTAL.MSG.EDITAR_DISABLED_SELECIONADOS') : !edit ? $translate.instant('PORTAL.MSG.EDITAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  147 + <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" class="btn btn-clear" ng-disabled="listaSize != 1 || !edit"
  148 + ng-click="editItemCronogramaExecucao(true)">
  149 + <i class="fa fa-pencil blue"></i>
  150 + <translate>LABEL.EDITAR</translate>
  151 + </button>
  152 + </div>
  153 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EXCLUIR_SELECIONE_ITEM') : !edit ? $translate.instant('PORTAL.MSG.EXCLUIR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  154 + <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" type="button" ng-disabled="listaSize == 0 || !edit || cronogramaExecucao.id"
  155 + ng-click="excluirItensCronogramaSelecionados()">
  156 + <i class="fa fa-times red"></i>
  157 + <translate>LABEL.REMOVER</translate>
  158 + </button>
  159 + </div>
154 160 </div>
  161 +
155 162 <table class="table table-striped table-bordered table-hover">
156 163 <thead>
157 164 <tr>
... ... @@ -172,7 +179,7 @@
172 179 <tbody>
173 180 <tr ng-repeat="item in cronogramaExecucao.itensCronogramaExecucao" ng-show="cronogramaExecucao.itensCronogramaExecucao.length > 0">
174 181 <td class="text-center">
175   - <input type="checkbox" ng-click="item.$index = $index" ng-checked="item.$checked" ng-model="item.$checked" />
  182 + <input type="checkbox" ng-click="item.$index = $index; atualizarListaSizeSelect()" ng-checked="item.$checked" ng-model="item.$checked" />
176 183 </td>
177 184 <td class="text-justify">
178 185 {{ item.contratoItem.estudoTecnicoBemServicoSolucao.nomeBemServicoSolucao }}
... ...
cit-contratos-web/src/main/webapp/html/ordemFornecimento/ordemFornecimentoEdit.html
... ... @@ -132,36 +132,43 @@
132 132 <div class="row margin-top">
133 133 <div class="col-sm-12">
134 134 <div class="panel panel-default">
135   - <div class="panel-heading clearfix">
136   - <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" type="button" ng-show="edit && !ordemFornecimento.id"
137   - ng-click="openModalItensBensServicos();">
138   - <i class="fa fa-plus-circle yellow-dark"></i>
139   - <translate>LABEL.ADICIONAR</translate>
140   - </button>
141   -
142   - <button title="{{$translate.instant('LABEL.VISUALIZAR')}}" alt="{{$translate.instant('LABEL.VISUALIZAR')}}" class="btn btn-clear" type="button"
143   - ng-click="abrirItensBensServicos(false)">
144   - <i class="fa fa-search blue"></i>
145   - <translate>LABEL.VISUALIZAR</translate>
146   - </button>
147   -
148   - <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" ng-show="edit" class="btn btn-clear" type="button"
149   - ng-click="abrirItensBensServicos(true)">
150   - <i class="fa fa-pencil blue"></i>
151   - <translate>LABEL.EDITAR</translate>
152   - </button>
153   -
154   - <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" ng-show="edit && !ordemFornecimento.id" class="btn btn-clear" type="button"
155   - ng-click="removerItensBensServicos()">
156   - <i class="fa fa-times red"></i>
157   - <translate>LABEL.REMOVER</translate>
158   - </button>
  135 + <div class="panel-heading clearfix col-sm-12 text-left">
  136 +
  137 + <div class="col-sm-1" tooltip="{{ !edit ? $translate.instant('PORTAL.MSG.ADICIONAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  138 + <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" type="button" ng-disabled="!edit"
  139 + ng-click="openModalItensBensServicos();">
  140 + <i class="fa fa-plus-circle yellow-dark"></i>
  141 + <translate>LABEL.ADICIONAR</translate>
  142 + </button>
  143 + </div>
  144 + <div class="col-sm-1" tooltip="{{ listaSize == 0 ? $translate.instant('PORTAL.MSG.VISUALIZAR_SELECIONE_ITEM') : listaSize > 1 ? $translate.instant('PORTAL.MSG.VISUALIZAR_DISABLED_SELECIONADOS') : '' }}">
  145 + <button title="{{$translate.instant('LABEL.VISUALIZAR')}}" alt="{{$translate.instant('LABEL.VISUALIZAR')}}" class="btn btn-clear" type="button" ng-disabled="listaSize != 1"
  146 + ng-click="abrirItensBensServicos(false)">
  147 + <i class="fa fa-search blue"></i>
  148 + <translate>LABEL.VISUALIZAR</translate>
  149 + </button>
  150 + </div>
  151 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EDITAR_SELECIONE_ITEM') : listaSize > 1 ? $translate.instant('PORTAL.MSG.EDITAR_DISABLED_SELECIONADOS') : !edit ? $translate.instant('PORTAL.MSG.EDITAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  152 + <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" ng-disabled="listaSize != 1 || !edit" class="btn btn-clear" type="button"
  153 + ng-click="abrirItensBensServicos(true)">
  154 + <i class="fa fa-pencil blue"></i>
  155 + <translate>LABEL.EDITAR</translate>
  156 + </button>
  157 + </div>
  158 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EXCLUIR_SELECIONE_ITEM') : !edit ? $translate.instant('PORTAL.MSG.EXCLUIR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  159 + <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" ng-disabled="listaSize == 0 || !edit || ordemFornecimento.id" class="btn btn-clear" type="button"
  160 + ng-click="removerItensBensServicos()">
  161 + <i class="fa fa-times red"></i>
  162 + <translate>LABEL.REMOVER</translate>
  163 + </button>
  164 + </div>
159 165 </div><!-- .panel-heading -->
  166 +
160 167 <table class="table table-bordered table-striped">
161 168 <thead>
162 169 <tr>
163 170 <th class="text-center" width="20px">
164   - <input type="checkbox" ng-model="selectedAllItens" ng-click="checkAllItens(selectedAllItens);" ng-show="edit"/>
  171 + <input type="checkbox" ng-model="selectedAllItens" ng-click="checkAll(selectedAllItens);" ng-show="edit"/>
165 172 </th>
166 173 <th width="3%" class="text-center"></th>
167 174 <th width="30%" class="text-center"><translate>LABEL.NOME_ITEM</translate></th>
... ... @@ -178,7 +185,7 @@
178 185 </tr>
179 186 <tr ng-repeat="item in ordemFornecimento.itensBensServicos">
180 187 <td class="text-center">
181   - <input type="checkbox" name="itemChecked" ng-model="item.$checked" />
  188 + <input type="checkbox" name="itemChecked" ng-model="item.$checked" ng-click="atualizarListaSizeSelect()"/>
182 189 </td>
183 190 <td>{{ $index + 1 }}</td>
184 191 <td title="{{item.itemBemServico.estudoTecnicoBemServicoSolucao.nomeBemServicoSolucao}}">{{ splitText(item.itemBemServico.estudoTecnicoBemServicoSolucao.nomeBemServicoSolucao, 70) }}</td>
... ...
cit-contratos-web/src/main/webapp/html/questionario/questionarioEdit.html
... ... @@ -178,21 +178,26 @@
178 178 </legend>
179 179 <div class="col-sm-12">
180 180 <div class="panel panel-default">
181   - <div class="panel-heading clearfix">
182   - <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" ng-show="edit" ng-click="addQuestao()" type="button">
183   - <i class="fa fa-plus-circle yellow-dark"></i>
184   - <translate>LABEL.ADICIONAR</translate> </a>
185   - </button>
186   -
187   - <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" class="btn btn-clear" ng-show="edit" ng-click="editQuestao()">
188   - <i class="fa fa-pencil blue"></i>
189   - <translate>LABEL.EDITAR</translate>
190   - </button>
  181 + <div class="panel-heading clearfix col-sm-12 text-left">
191 182  
192   - <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" type="button" ng-click="prepararExcluirQuestoesSelecionados()" ng-show="edit">
193   - <i class="fa fa-times red"></i>
194   - <translate>LABEL.REMOVER</translate>
195   - </button>
  183 + <div class="col-sm-1" tooltip="{{ !edit ? $translate.instant('PORTAL.MSG.ADICIONAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  184 + <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" ng-disabled="!edit" ng-click="addQuestao()" type="button">
  185 + <i class="fa fa-plus-circle yellow-dark"></i>
  186 + <translate>LABEL.ADICIONAR</translate> </a>
  187 + </button>
  188 + </div>
  189 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EDITAR_SELECIONE_ITEM') : listaSize > 1 ? $translate.instant('PORTAL.MSG.EDITAR_DISABLED_SELECIONADOS') : !edit ? $translate.instant('PORTAL.MSG.EDITAR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  190 + <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" class="btn btn-clear" ng-disabled="listaSize != 1 || !edit" ng-click="editQuestao()">
  191 + <i class="fa fa-pencil blue"></i>
  192 + <translate>LABEL.EDITAR</translate>
  193 + </button>
  194 + </div>
  195 + <div class="col-sm-1" tooltip="{{ listaSize == 0 && edit ? $translate.instant('PORTAL.MSG.EXCLUIR_SELECIONE_ITEM') : !edit ? $translate.instant('PORTAL.MSG.EXCLUIR_NAO_PERMITIDO_ACAO_VISUALIZAR') : '' }}">
  196 + <button title="{{$translate.instant('LABEL.REMOVER')}}" alt="{{$translate.instant('LABEL.REMOVER')}}" class="btn btn-clear" type="button" ng-click="prepararExcluirQuestoesSelecionados()" ng-disabled="listaSize == 0 || !edit">
  197 + <i class="fa fa-times red"></i>
  198 + <translate>LABEL.REMOVER</translate>
  199 + </button>
  200 + </div>
196 201  
197 202 </div><!-- .panel-heading -->
198 203  
... ... @@ -216,7 +221,7 @@
216 221 <tbody>
217 222 <tr ng-repeat="questao in questionario.questoes" ng-show="questionario.questoes.length > 0">
218 223 <td class="text-center" ng-show="edit">
219   - <input type="checkbox" ng-click="questao.$index = $index" ng-checked="questao.$selected" ng-model="questao.$selected" />
  224 + <input type="checkbox" ng-click="questao.$index = $index; atualizarListaSizeSelect()" ng-checked="questao.$selected" ng-model="questao.$selected" />
220 225 </td>
221 226 <td>
222 227 {{ questao.questao }}
... ...