Commit 50e5533a605f6600bbd0d3df191379973d39a4d4

Authored by luis.camargo
2 parents 53aad762 74a0e649
Exists in master

Merge branch 'tarefa-4455' of http://ferramentasgo.centralit.com.br:8080/scm/git…

…/cit-grp-contratos into tarefa-4455

# Conflicts:
#	cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
... ... @@ -30,7 +30,7 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
30 30 $scope.acaoEmMassaEnvolvido = false;
31 31 $scope.acaoEmMassaValorPagamento = false;
32 32 $scope.contratoValorPagamentoUnicoTemp = {};
33   -
  33 +
34 34 $scope.uploader = new FileUploader({
35 35 autoUpload: false,
36 36 queueLimit: 1,
... ... @@ -111,11 +111,13 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
111 111 $scope.contratoValorPagamentoUnicoTemp = {};
112 112  
113 113 carregarDominioPapelEnvolvido();
114   -
  114 + $scope.atualizarListaSizeSelect();
  115 + $scope.atualizarListaSizeSelectItemContrato();
  116 + $scope.atualizarListaSizeSelectEnvolvido();
115 117 $scope.edit = true;
116 118 $scope.setCurrentStep(0);
117   -
118   - $scope.startTimerIntervalSaveDraft($scope.workspace, $scope.contrato);
  119 +
  120 + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.contrato, true);
119 121 $timeout(function(){
120 122 $scope.contratoForm.informacoesGeraisContratoForm.$submitted = false;
121 123 $scope.contratoForm.informacoesContratoForm.$submitted = false;
... ... @@ -132,10 +134,10 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
132 134 $scope.contratoForm.anexosObservacoesContratoForm.$setPristine();
133 135 });
134 136  
135   - $scope.getRascunho($scope.workspace, 201501378976);
136   - $timeout(function(){
137   - $scope.contrato = JSON.parse($scope.workspace.rascunho.json);
138   - });
  137 +// $scope.getRascunho($scope.workspace, 201501378985);
  138 +// $timeout(function(){
  139 +// $scope.contrato = JSON.parse($scope.workspace.rascunho.json);
  140 +// });
139 141 };
140 142  
141 143 $scope.gerarRelatorioTermoContrato = function() {
... ... @@ -176,7 +178,9 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
176 178 if (edit) {
177 179 $scope.hasAlteracaoEnvolvido = false;
178 180 }
179   -
  181 + $scope.atualizarListaSizeSelect();
  182 + $scope.atualizarListaSizeSelectItemContrato();
  183 + $scope.atualizarListaSizeSelectEnvolvido();
180 184 $scope.edit = edit;
181 185 $scope.setCurrentStep(0);
182 186 $scope.setLoading(false);
... ... @@ -986,79 +990,85 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
986 990 };
987 991  
988 992 // responsavel por adicionar um empenho ao contrato
989   - $scope.adicionarEmpenho = function (formDialogEmpenho){
  993 + $scope.adicionarEmpenho = function (formDialogEmpenho, continuarEditando){
990 994  
991 995 formDialogEmpenho.$submitted = true;
992 996  
993   - if (formDialogEmpenho.$valid) {
  997 + if (formDialogEmpenho.$invalid) {
  998 + //Mensagem de erro de campos obrigatorios n�o preenchidos
  999 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1000 + return;
  1001 + }
994 1002  
995   - // a finalidade do empenho "Anulação" e "Reforço" só poderão ser informadas caso haja a finalidade "Despesa do contrato" cadastrada
996   - if ($scope.contratoEmpenhoTemp.dominioFinalidadeEmpenho.codigo != 1) {
997   - var hasDespesaContrato = false;
998   - for (var i = 0; i < $scope.contrato.ctrtEmpenhos.length; i++) {
999   - var empenho = $scope.contrato.ctrtEmpenhos[i];
1000   - if (empenho.dominioFinalidadeEmpenho.codigo === 1 && !empenho.$checked) {
1001   - hasDespesaContrato = true;
1002   - break;
1003   - }
  1003 + // a finalidade do empenho "Anulação" e "Reforço" só poderão ser informadas caso haja a finalidade "Despesa do contrato" cadastrada
  1004 + if ($scope.contratoEmpenhoTemp.dominioFinalidadeEmpenho.codigo != 1) {
  1005 + var hasDespesaContrato = false;
  1006 + for (var i = 0; i < $scope.contrato.ctrtEmpenhos.length; i++) {
  1007 + var empenho = $scope.contrato.ctrtEmpenhos[i];
  1008 + if (empenho.dominioFinalidadeEmpenho.codigo === 1 && !empenho.$checked) {
  1009 + hasDespesaContrato = true;
  1010 + break;
1004 1011 }
  1012 + }
1005 1013  
1006   - if (hasDespesaContrato) {
1007   - // Caso a finalidade seja "Anulação", o sistema deverá diminuir o valor deste empenho do
1008   - // "valor total empenhado" e não somá-lo com os empenhos de finalidade "reforço e despesa do contrato".
1009   - if ($scope.contratoEmpenhoTemp.dominioFinalidadeEmpenho.codigo === 3) {
1010   - $scope.contratoEmpenhoTemp.valorEmpenhado = ($scope.contratoEmpenhoTemp.valorEmpenhado * (-1));
1011   - }
1012   - } else {
1013   - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.FINALIDADE_EMPENHO_FALTANDO'));
1014   - return;
  1014 + if (hasDespesaContrato) {
  1015 + // Caso a finalidade seja "Anulação", o sistema deverá diminuir o valor deste empenho do
  1016 + // "valor total empenhado" e não somá-lo com os empenhos de finalidade "reforço e despesa do contrato".
  1017 + if ($scope.contratoEmpenhoTemp.dominioFinalidadeEmpenho.codigo === 3) {
  1018 + $scope.contratoEmpenhoTemp.valorEmpenhado = ($scope.contratoEmpenhoTemp.valorEmpenhado * (-1));
1015 1019 }
  1020 + } else {
  1021 + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.FINALIDADE_EMPENHO_FALTANDO'));
  1022 + return;
1016 1023 }
  1024 + }
1017 1025  
1018   - // data de empenho nao pode ser maior que a data de vigencia final do contrato
1019   - if(!isPeriodoValido($scope.contratoEmpenhoTemp.data, $scope.contrato.dataVigenciaFinal)){
  1026 + // data de empenho nao pode ser maior que a data de vigencia final do contrato
  1027 + if(!isPeriodoValido($scope.contratoEmpenhoTemp.data, $scope.contrato.dataVigenciaFinal)){
1020 1028  
1021   - $scope.showAlert('warning', $translate.instant('VALIDACAO.DATA_EMPENHO_MAIOR_DATA_VIGENCIA_FINAL_CONTRATO'));
1022   - return;
1023   - }
  1029 + $scope.showAlert('warning', $translate.instant('VALIDACAO.DATA_EMPENHO_MAIOR_DATA_VIGENCIA_FINAL_CONTRATO'));
  1030 + return;
  1031 + }
1024 1032  
1025   - // o valor total de empenhado n�o pode ser superior ao valor do contrato
1026   - var somaEmpenhos = $scope.contrato.valorTotalEmpenhado + $scope.contratoEmpenhoTemp.valorEmpenhado;
1027   - if (somaEmpenhos > $scope.contrato.valorContrato) {
  1033 + // o valor total de empenhado n�o pode ser superior ao valor do contrato
  1034 + var somaEmpenhos = $scope.contrato.valorTotalEmpenhado + $scope.contratoEmpenhoTemp.valorEmpenhado;
  1035 + if (somaEmpenhos > $scope.contrato.valorContrato) {
1028 1036  
1029   - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_EMPENHADO_SUPERIOR_VALOR_CONTRATADO'));
1030   - return;
1031   - }
  1037 + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_EMPENHADO_SUPERIOR_VALOR_CONTRATADO'));
  1038 + return;
  1039 + }
1032 1040  
1033   - // o valor total do empenho não pode ser negativo
1034   - if (somaEmpenhos < 0) {
  1041 + // o valor total do empenho não pode ser negativo
  1042 + if (somaEmpenhos < 0) {
1035 1043  
1036   - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_ANULACAO_SUPERIOR_VALOR_TOTAL'));
1037   - return;
1038   - }
  1044 + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_ANULACAO_SUPERIOR_VALOR_TOTAL'));
  1045 + return;
  1046 + }
1039 1047  
1040   - if ($scope.contrato.ctrtEmpenhos){
  1048 + if ($scope.contrato.ctrtEmpenhos){
1041 1049  
1042   - if ($scope.contratoEmpenhoTemp.$checked){
  1050 + if ($scope.contratoEmpenhoTemp.$checked){
1043 1051  
1044   - for (var i = 0; i < $scope.contrato.ctrtEmpenhos.length; i++) {
  1052 + for (var i = 0; i < $scope.contrato.ctrtEmpenhos.length; i++) {
1045 1053  
1046   - if ($scope.contrato.ctrtEmpenhos[i].$checked) {
  1054 + if ($scope.contrato.ctrtEmpenhos[i].$checked) {
1047 1055  
1048   - $scope.contrato.ctrtEmpenhos[i] = $scope.contratoEmpenhoTemp;
1049   - }
  1056 + $scope.contrato.ctrtEmpenhos[i] = $scope.contratoEmpenhoTemp;
1050 1057 }
1051   - } else {
1052   -
1053   - $scope.contrato.ctrtEmpenhos.push($scope.contratoEmpenhoTemp);
1054 1058 }
  1059 + } else {
  1060 +
  1061 + $scope.contrato.ctrtEmpenhos.push($scope.contratoEmpenhoTemp);
1055 1062 }
1056   - $scope.contratoEmpenhoTemp = {};
  1063 + }
  1064 + $scope.contratoEmpenhoTemp = {};
  1065 +
  1066 + if(continuarEditando){
  1067 + formDialogEmpenho.$submitted = false;
  1068 + formDialogEmpenho.$setPristine();
  1069 + }else{
  1070 + $scope.atualizarListaSizeSelect();
1057 1071 $scope.$modalInstance.dismiss('cancel');
1058   - } else {
1059   -
1060   - //Mensagem de erro de campos obrigatorios n�o preenchidos
1061   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1062 1072 }
1063 1073 };
1064 1074  
... ... @@ -1094,12 +1104,14 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1094 1104 $scope.contrato.ctrtEmpenhos = $scope.contrato.ctrtEmpenhos.filter(function(empenho) {
1095 1105 return empenho.$checked !== true;
1096 1106 });
  1107 + $scope.atualizarListaSizeSelect();
1097 1108 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1098 1109 });
1099 1110 } else {
1100 1111 $scope.contrato.ctrtEmpenhos = $scope.contrato.ctrtEmpenhos.filter(function(empenho) {
1101 1112 return empenho.$checked !== true;
1102 1113 });
  1114 + $scope.atualizarListaSizeSelect();
1103 1115 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1104 1116 }
1105 1117 }
... ... @@ -1134,6 +1146,8 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1134 1146 $scope.acaoEmMassaEmpenho = false;
1135 1147 $scope.selectedAllCtrtEmpenhos = false;
1136 1148 }
  1149 +
  1150 + $scope.atualizarListaSizeSelect();
1137 1151 };
1138 1152  
1139 1153 // Responsavel por abrir modal de empenho para edicao ou visualizacao do item selecionado
... ... @@ -1205,47 +1219,53 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1205 1219 };
1206 1220  
1207 1221 // responsavel por adicionar um item de contrato ao contrato
1208   - $scope.adicionarItemContrato = function (formDialogItemContrato){
  1222 + $scope.adicionarItemContrato = function (formDialogItemContrato, continuarEditando){
1209 1223  
1210 1224 formDialogItemContrato.$submitted = true;
1211 1225  
1212   - if (formDialogItemContrato.$valid) {
  1226 + if (formDialogItemContrato.$invalid) {
  1227 + //Mensagem de erro de campos obrigatorios n�o preenchidos
  1228 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1229 + return;
  1230 + }
1213 1231  
1214   - // o valor total de empenhado n�o pode ser superior ao valor do contrato
1215   - var valorTotalItens = 0;
1216   - $scope.contrato.ctrtItens.forEach(function (itemContrato) {
1217   - valorTotalItens += itemContrato.valorTotalItem;
1218   - });
  1232 + // o valor total de empenhado n�o pode ser superior ao valor do contrato
  1233 + var valorTotalItens = 0;
  1234 + $scope.contrato.ctrtItens.forEach(function (itemContrato) {
  1235 + valorTotalItens += itemContrato.valorTotalItem;
  1236 + });
1219 1237  
1220   - valorTotalItens += $scope.contrato.ctrtItens.length > 0 ? $scope.itemContratoTemp.valorTotalItem : 0;
1221   - if (valorTotalItens > $scope.contrato.valorContrato) {
1222   - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_ITENS_SUPERIOR_VALOR_CONTRATADO'));
1223   - return;
1224   - }
  1238 + valorTotalItens += $scope.contrato.ctrtItens.length > 0 ? $scope.itemContratoTemp.valorTotalItem : 0;
  1239 + if (valorTotalItens > $scope.contrato.valorContrato) {
  1240 + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.VALOR_TOTAL_ITENS_SUPERIOR_VALOR_CONTRATADO'));
  1241 + return;
  1242 + }
1225 1243  
1226   - if ($scope.contrato.ctrtItens){
  1244 + if ($scope.contrato.ctrtItens){
1227 1245  
1228   - if ($scope.itemContratoTemp.$checked){
  1246 + if ($scope.itemContratoTemp.$checked){
1229 1247  
1230   - for (var i = 0; i < $scope.contrato.ctrtItens.length; i++) {
  1248 + for (var i = 0; i < $scope.contrato.ctrtItens.length; i++) {
1231 1249  
1232   - if ($scope.contrato.ctrtItens[i].$checked) {
  1250 + if ($scope.contrato.ctrtItens[i].$checked) {
1233 1251  
1234   - $scope.contrato.ctrtItens[i] = $scope.itemContratoTemp;
1235   - }
  1252 + $scope.contrato.ctrtItens[i] = $scope.itemContratoTemp;
1236 1253 }
1237   - } else {
1238   -
1239   - $scope.contrato.ctrtItens.push($scope.itemContratoTemp);
1240 1254 }
  1255 + } else {
  1256 +
  1257 + $scope.contrato.ctrtItens.push($scope.itemContratoTemp);
1241 1258 }
  1259 + }
1242 1260  
1243   - $scope.itemContratoTemp = {};
1244   - $scope.$modalInstance.dismiss('cancel');
  1261 + $scope.itemContratoTemp = {};
  1262 +
  1263 + if(continuarEditando){
  1264 + formDialogItemContrato.$submitted = false;
  1265 + formDialogItemContrato.$setPristine();
1245 1266 } else {
1246   -
1247   - //Mensagem de erro de campos obrigatorios n�o preenchidos
1248   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1267 + $scope.atualizarListaSizeSelectItemContrato();
  1268 + $scope.$modalInstance.dismiss('cancel');
1249 1269 }
1250 1270 };
1251 1271  
... ... @@ -1281,12 +1301,14 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1281 1301 $scope.contrato.ctrtItens = $scope.contrato.ctrtItens.filter(function(itemContrato) {
1282 1302 return itemContrato.$checked !== true;
1283 1303 });
  1304 + $scope.atualizarListaSizeSelectItemContrato();
1284 1305 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1285 1306 });
1286 1307 } else {
1287 1308 $scope.contrato.ctrtItens = $scope.contrato.ctrtItens.filter(function(itemContrato) {
1288 1309 return itemContrato.$checked !== true;
1289 1310 });
  1311 + $scope.atualizarListaSizeSelectItemContrato();
1290 1312 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1291 1313 }
1292 1314 }
... ... @@ -1321,6 +1343,8 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1321 1343 $scope.acaoEmMassaItemContrato = false;
1322 1344 $scope.selectedAllCtrtItens = false;
1323 1345 }
  1346 +
  1347 + $scope.atualizarListaSizeSelectItemContrato();
1324 1348 };
1325 1349  
1326 1350 // Responsavel por abrir modal de item de contrato para edicao ou visualizacao do item selecionado
... ... @@ -1427,13 +1451,14 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1427 1451 $scope.contratoEnvolvidoTemp = {justificativas : []};
1428 1452 $scope.justificativaTemp = {};
1429 1453 $scope.hasAlteracaoEnvolvido = false;
  1454 + $scope.atualizarListaSizeSelectEnvolvido();
1430 1455 if (continuarEditando) {
1431 1456 formDialogEnvolvido.$submitted = false;
1432 1457 formDialogEnvolvido.$setPristine();
1433 1458 filtrarPapeisSelecionados();
1434   - } else {
1435   - $scope.$modalInstance.dismiss('cancel');
  1459 + return;
1436 1460 }
  1461 + $scope.$modalInstance.dismiss('cancel');
1437 1462 };
1438 1463  
1439 1464 $scope.adicionarJustificativa = function (form) {
... ... @@ -1507,6 +1532,7 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1507 1532 papelExcluido = contratoEnvolvido.dominioPapelEnvolvidoContrato;
1508 1533 return contratoEnvolvido.$checked !== true;
1509 1534 });
  1535 + $scope.atualizarListaSizeSelectEnvolvido();
1510 1536 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1511 1537 });
1512 1538 } else {
... ... @@ -1514,6 +1540,7 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1514 1540 papelExcluido = contratoEnvolvido.dominioPapelEnvolvidoContrato;
1515 1541 return contratoEnvolvido.$checked !== true;
1516 1542 });
  1543 + $scope.atualizarListaSizeSelectEnvolvido();
1517 1544 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1518 1545 }
1519 1546  
... ... @@ -1550,6 +1577,7 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1550 1577 $scope.acaoEmMassaEnvolvido = false;
1551 1578 $scope.selectedAllCtrtEnvolvidos = false;
1552 1579 }
  1580 + $scope.atualizarListaSizeSelectEnvolvido();
1553 1581 };
1554 1582  
1555 1583 // Responsavel por abrir modal de envolvido para edicao ou visualizacao do item selecionado
... ... @@ -1597,5 +1625,39 @@ citApp.controller(&#39;ContratoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;FileUploader&#39;, &#39;C
1597 1625 $scope.radioValueList = [{descricao : $translate.instant('LABEL.SIM'), valor : true},
1598 1626 {descricao : $translate.instant('LABEL.NAO'), valor : false}];
1599 1627  
  1628 + $scope.atualizarListaSizeSelect = function() {
  1629 + if(!$scope.listaSize){
  1630 + $scope.listaSize = 0;
  1631 + };
  1632 + var lista = $scope.contrato.ctrtEmpenhos.filter(function(empenho) {
  1633 + return empenho.$checked === true;
  1634 + });
  1635 + $scope.listaSize = lista.length;
  1636 + };
  1637 +
  1638 + $scope.atualizarListaSizeSelectItemContrato = function() {
  1639 + if(!$scope.listaSizeItemContrato){
  1640 + $scope.listaSizeItemContrato = 0;
  1641 + };
  1642 +
  1643 + var lista = $scope.contrato.ctrtItens.filter(function(itemContrato) {
  1644 + return itemContrato.$checked === true;
  1645 + });
  1646 +
  1647 + $scope.listaSizeItemContrato = lista.length;
  1648 + };
  1649 +
  1650 + $scope.atualizarListaSizeSelectEnvolvido = function() {
  1651 + if(!$scope.listaSizeEnvolvido){
  1652 + $scope.listaSizeEnvolvido = 0;
  1653 + };
  1654 +
  1655 + var lista = $scope.contrato.ctrtEnvolvidos.filter(function(envolvido) {
  1656 + return envolvido.$checked === true;
  1657 + });
  1658 +
  1659 + $scope.listaSizeEnvolvido = lista.length;
  1660 + };
  1661 +
1600 1662 // ########################### FIM: STEP: INFORMACOES DE ENVOLVIDOS #######################
1601 1663 }]);
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js
... ... @@ -6,125 +6,138 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
6 6 'EstudoTecnicoBemServicoSolucaoRepository', 'EstudoTecnicoAcaoContingenciaRepository', 'FileUploader', '$filter',
7 7 'EstudoTecnicoRecursoMaterialRepository', 'EstudoTecnicoRecursoHumanoRepository', 'EstudoTecnicoBeneficioEsperadoRepository', 'FuncaoRepository',
8 8 function EstudoTecnicoController($scope, EstudoTecnicoRepository, PessoaRepository, $timeout, $translate, ObjetivoEstrategicoRepository,
9   - ObjetivoEstrategicoNecessidadeRepository, EstudoTecnicoRequisitoNegocioRepository, ParceiroRepository, QuestionarioRepository,
10   - EstudoTecnicoLevantamentoAlternativasRepository, EstudoTecnicoQuestionarioRespostaRepository, QuestionarioPerguntaRepository,
11   - EstudoTecnicoBemServicoSolucaoRepository, EstudoTecnicoAcaoContingenciaRepository, FileUploader, $filter,
12   - EstudoTecnicoRecursoMaterialRepository, EstudoTecnicoRecursoHumanoRepository, EstudoTecnicoBeneficioEsperadoRepository, FuncaoRepository) {
13   -
14   - $scope.edit = true;
15   - $scope.estudoTecnico = {
16   - etRecursosMateriais : [],
17   - etRecursosHumanos : []
18   - };
19   - $scope.reqNegocio = {};
20   - $scope.beneficioEsperado = {};
21   - $scope.estudoTecnicoRecursoMaterialTemp = {};
22   - $scope.estudoTecnicoRecursoHumanoTemp = {};
23   - $scope.listaRequisitoTecSelecao = [];
24   - $scope.listaAlternativa = [];
25   - $scope.listaServicoSolucao = [];
26   - $scope.listaBeneficio = [];
27   - $scope.listaRecursoMateriais = [];
28   - $scope.listaRecursoHumanos = [];
29   - $scope.listaAcoesContigencia = [];
30   -
31   - $scope.uploader = new FileUploader({
  9 + ObjetivoEstrategicoNecessidadeRepository, EstudoTecnicoRequisitoNegocioRepository, ParceiroRepository, QuestionarioRepository,
  10 + EstudoTecnicoLevantamentoAlternativasRepository, EstudoTecnicoQuestionarioRespostaRepository, QuestionarioPerguntaRepository,
  11 + EstudoTecnicoBemServicoSolucaoRepository, EstudoTecnicoAcaoContingenciaRepository, FileUploader, $filter,
  12 + EstudoTecnicoRecursoMaterialRepository, EstudoTecnicoRecursoHumanoRepository, EstudoTecnicoBeneficioEsperadoRepository, FuncaoRepository) {
  13 +
  14 + $scope.edit = true;
  15 + $scope.estudoTecnico = {
  16 + etRecursosMateriais : [],
  17 + etRecursosHumanos : []
  18 + };
  19 + $scope.reqNegocio = {};
  20 + $scope.beneficioEsperado = {};
  21 + $scope.estudoTecnicoRecursoMaterialTemp = {};
  22 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  23 + $scope.listaRequisitoTecSelecao = [];
  24 + $scope.listaAlternativa = [];
  25 + $scope.listaServicoSolucao = [];
  26 + $scope.listaBeneficio = [];
  27 + $scope.listaRecursoMateriais = [];
  28 + $scope.listaRecursoHumanos = [];
  29 + $scope.listaAcoesContigencia = [];
  30 +
  31 + $scope.uploader = new FileUploader({
32 32 autoUpload: false,
33 33 queueLimit: 1,
34 34 url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento='
35 35 });
36 36  
37   - $scope.findIntegrante = function(value) {
38   - return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
39   - return result;
40   - });
41   - };
  37 + $scope.findIntegrante = function(value) {
  38 + return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  39 + return result;
  40 + });
  41 + };
42 42  
43   - $scope.findOrgaoExterno = function(value) {
44   - return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) {
45   - return result;
46   - });
47   - };
  43 + $scope.findOrgaoExterno = function(value) {
  44 + return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) {
  45 + return result;
  46 + });
  47 + };
48 48  
49   - $scope.findFornecedor = function(value) {
  49 + $scope.findFornecedor = function(value) {
50 50 return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'], value).then(function(result) {
51 51 return result;
52 52 });
53 53 };
54 54  
55 55 $scope.findResponsavel = function(value) {
56   - return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
57   - return result;
58   - });
59   - };
  56 + return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  57 + return result;
  58 + });
  59 + };
60 60  
61 61 QuestionarioRepository.findAllByDominioTipoQuestionario({codigo : 2}).then(function(result) {
62   - if (result.length > 0) {
63   - $scope.questionarioTemplate = result[0].originalElement;
64   - }
65   - if (!$scope.questionarioTemplate) {
66   - QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) {
67   - $scope.questionarioTemplate = resultCreate;
68   - $scope.preparaQuestTemplate();
69   - });
70   - } else {
71   - $scope.preparaQuestTemplate();
72   - }
  62 + if (result.length > 0) {
  63 + $scope.questionarioTemplate = result[0].originalElement;
  64 + }
  65 + if (!$scope.questionarioTemplate) {
  66 + QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) {
  67 + $scope.questionarioTemplate = resultCreate;
  68 + $scope.preparaQuestTemplate();
  69 + });
  70 + } else {
  71 + $scope.preparaQuestTemplate();
  72 + }
73 73 });
74 74  
75 75 $scope.preparaQuestTemplate = function() {
76   - var questoes = [];
77   - for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) {
78   - var questao = {
79   - questao : $scope.questionarioTemplate.questoes[i].questao,
80   - dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id},
81   - respostasEscolha : []
82   - };
83   -
84   - for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) {
85   - questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta});
86   - }
87   - questoes.push(questao);
88   - }
89   - $scope.questionarioTemplate.questoes = questoes;
90   -
91   - $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]);
92   - delete $scope.questaoTemplate.questao;
  76 + var questoes = [];
  77 + for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) {
  78 + var questao = {
  79 + questao : $scope.questionarioTemplate.questoes[i].questao,
  80 + dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id},
  81 + respostasEscolha : []
  82 + };
  83 +
  84 + for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) {
  85 + questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta});
  86 + }
  87 + questoes.push(questao);
  88 + }
  89 + $scope.questionarioTemplate.questoes = questoes;
  90 +
  91 + $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]);
  92 + delete $scope.questaoTemplate.questao;
93 93  
94 94 $scope.qntDefaultQuest = angular.copy(questoes.length);
95 95 };
96 96  
97   - // limpa o formulario
  97 + // limpa o formulario
98 98 $scope.resetForm = function() {
99   - $scope.edit = true;
100   - $scope.estudoTecnico = {
101   - etRecursosMateriais : [],
102   - etRecursosHumanos : []
103   - };
104   - $scope.reqNegocio = {};
105   - $scope.beneficioEsperado = {};
  99 +
  100 + $scope.estudoTecnico = {
  101 + etRecursosMateriais : [],
  102 + etRecursosHumanos : []
  103 + };
  104 +
  105 + $scope.edit = true;
  106 + $scope.reqNegocio = {};
  107 + $scope.beneficioEsperado = {};
106 108 $scope.estudoTecnicoRecursoMaterialTemp = {};
107 109 $scope.estudoTecnicoRecursoHumanoTemp = {};
108 110 $scope.acaoEmMassaRecursosMateriais = false;
109 111 $scope.acaoEmMassaRecursosHumanos = false;
110   - $scope.setCurrentStep(0);
111   -
112   - $timeout(function() {
113   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false;
114   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false;
115   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
116   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
117   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false;
118   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine();
119   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine();
120   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
121   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
122   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine();
123   - });
  112 +
  113 + $scope.workspace.objetoScope = $scope.estudoTecnico;
  114 + $scope.startTimerIntervalSaveDraft($scope.workspace, true);
  115 +
  116 + $scope.setCurrentStep(0);
  117 + $scope.atualizarListaSizeSelectReqNegocio();
  118 + $scope.atualizarListaSizeSelectSolucao();
  119 + $scope.atualizarListaSizeSelectServicoSolucao();
  120 + $scope.atualizarListaSizeSelectBeneficio();
  121 + $scope.atualizarListaSizeSelectRecursoMaterial();
  122 + $scope.atualizarListaSizeSelectRecursoHumano();
  123 + $scope.atualizarListaSizeSelectAcaoContigencia();
  124 + $timeout(function() {
  125 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false;
  126 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false;
  127 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
  128 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
  129 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false;
  130 +
  131 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine();
  132 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine();
  133 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
  134 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
  135 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine();
  136 + });
124 137 };
125 138  
126 139 $scope.visualizarEditar = function(idEstudoTecnico, edit) {
127   - $scope.resetForm();
  140 + $scope.resetForm();
128 141 $scope.setLoadingGet(true);
129 142  
130 143 EstudoTecnicoRepository.get(idEstudoTecnico).then(function(result) {
... ... @@ -133,6 +146,14 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
133 146  
134 147 $scope.edit = edit;
135 148  
  149 + $scope.atualizarListaSizeSelectReqNegocio();
  150 + $scope.atualizarListaSizeSelectSolucao();
  151 + $scope.atualizarListaSizeSelectServicoSolucao();
  152 + $scope.atualizarListaSizeSelectBeneficio();
  153 + $scope.atualizarListaSizeSelectRecursoMaterial();
  154 + $scope.atualizarListaSizeSelectRecursoHumano();
  155 + $scope.atualizarListaSizeSelectAcaoContigencia();
  156 +
136 157 $scope.setCurrentStep(0);
137 158  
138 159 $scope.setLoading(false);
... ... @@ -169,7 +190,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
169 190 // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento
170 191 angular.forEach($scope.estudoTecnico.documentos, function(documento, key) {
171 192 if (documento.uploadsDocumento) {
172   - estudoTecnicoTemp.documentos.push({
  193 + estudoTecnicoTemp.documentos.push({
173 194 uploadsDocumento: clone(documento.uploadsDocumento),
174 195 numero: clone(documento.numero)
175 196 });
... ... @@ -194,21 +215,21 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
194 215 }
195 216 };
196 217  
197   - // realiza a exclusão da EstudoTecnico
198   - $scope.excluirEstudoTecnico = function(){
199   - var workspace = this.item;
200   - $scope.$modalConfirmInstance.dismiss('cancel');
201   - EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) {
202   - $scope.uploader.clearQueue();
203   - $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO'));
204   - $scope.$showPageSearchWorkspace(workspace);
205   - $scope.atualizarLista('EstudoTecnicoListControllerId');
  218 + // realiza a exclusão da EstudoTecnico
  219 + $scope.excluirEstudoTecnico = function(){
  220 + var workspace = this.item;
  221 + $scope.$modalConfirmInstance.dismiss('cancel');
  222 + EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) {
  223 + $scope.uploader.clearQueue();
  224 + $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  225 + $scope.$showPageSearchWorkspace(workspace);
  226 + $scope.atualizarLista('EstudoTecnicoListControllerId');
206 227 });
207   - };
  228 + };
208 229  
209 230 // prepara a exclusao do estudo técnico abrindo o modal de confirmacao
210 231 $scope.remove = function(workspace) {
211   - $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace});
  232 + $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace});
212 233 };
213 234  
214 235 // 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
... ... @@ -246,154 +267,161 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
246 267 };
247 268  
248 269 // Seleciona todos os requisitos de negocio na lista
249   - $scope.checkAllReqNegocio = function(value) {
250   - $scope.listaRequisitoTecSelecao = [];
251   - angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) {
252   - item.$checked = value;
253   - $scope.listaRequisitoTecSelecao.push(item);
  270 + $scope.checkAllReqNegocio = function(value) {
  271 + $scope.listaRequisitoTecSelecao = [];
  272 + angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) {
  273 + item.$checked = value;
  274 + $scope.listaRequisitoTecSelecao.push(item);
254 275 });
255 276 if(!value){
256 277 $scope.listaRequisitoTecSelecao = [];
257 278 }
  279 + $scope.atualizarListaSizeSelectReqNegocio();
258 280 };
259 281  
260   - $scope.checkReqNegocio = function(item){
261   - if(item.$checked){
262   - $scope.listaRequisitoTecSelecao.push(item);
263   - }else{
264   - $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1);
265   - }
266   -
267   - };
268   -
269   - // Seleciona todas as alternativas na lista de solução
270   - $scope.checkAllAlternativa = function(value) {
271   - $scope.listaAlternativa = [];
272   - angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) {
273   - item.$checked = value;
274   - $scope.listaAlternativa.push(item);
  282 + $scope.checkReqNegocio = function(item){
  283 + if(item.$checked){
  284 + $scope.listaRequisitoTecSelecao.push(item);
  285 + }else{
  286 + $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1);
  287 + }
  288 +
  289 + };
  290 +
  291 + // Seleciona todas as alternativas na lista de solução
  292 + $scope.checkAllAlternativa = function(value) {
  293 + $scope.listaAlternativa = [];
  294 + angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) {
  295 + item.$checked = value;
  296 + $scope.listaAlternativa.push(item);
275 297 });
276 298 if(!value){
277 299 $scope.listaAlternativa = [];
278 300 }
  301 + $scope.atualizarListaSizeSelectSolucao();
279 302 };
280 303  
281   - $scope.checkAlternativa = function(item){
282   - if(item.$checked){
283   - $scope.listaAlternativa.push(item);
284   - }else{
285   - $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1);
286   - }
  304 + $scope.checkAlternativa = function(item){
  305 + if(item.$checked){
  306 + $scope.listaAlternativa.push(item);
  307 + }else{
  308 + $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1);
  309 + }
287 310  
288   - };
  311 + };
289 312  
290 313 $scope.checkAllBensServicos = function(value) {
291   - $scope.listaServicoSolucao = [];
292   - angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) {
293   - item.$checked = value;
294   - $scope.listaServicoSolucao.push(item);
  314 + $scope.listaServicoSolucao = [];
  315 + angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) {
  316 + item.$checked = value;
  317 + $scope.listaServicoSolucao.push(item);
295 318 });
296   - if(!value){
297   - $scope.listaServicoSolucao = [];
298   - }
  319 + if(!value){
  320 + $scope.listaServicoSolucao = [];
  321 + }
  322 + $scope.atualizarListaSizeSelectServicoSolucao();
299 323 };
300 324  
301   - $scope.checkBemServico = function(item){
302   - if(item.$checked){
303   - $scope.listaServicoSolucao.push(item);
304   - }else{
305   - $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1);
306   - }
307   - };
  325 + $scope.checkBemServico = function(item){
  326 + if(item.$checked){
  327 + $scope.listaServicoSolucao.push(item);
  328 + }else{
  329 + $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1);
  330 + }
  331 + };
308 332  
309 333 // marca benefício esperado
310 334 $scope.checkAllBeneficios = function(value) {
311   - $scope.listaBeneficio = [];
312   - angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) {
313   - item.$checked = value;
314   - $scope.listaBeneficio.push(item);
  335 + $scope.listaBeneficio = [];
  336 + angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) {
  337 + item.$checked = value;
  338 + $scope.listaBeneficio.push(item);
315 339 });
316   - if(!value){
317   - $scope.listaBeneficio = [];
318   - }
  340 + if(!value){
  341 + $scope.listaBeneficio = [];
  342 + }
  343 + $scope.atualizarListaSizeSelectBeneficio();
319 344 };
320 345  
321   - $scope.checkBeneficio = function(item){
322   - if(item.$checked){
323   - $scope.listaBeneficio.push(item);
324   - }else{
325   - $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1);
326   - }
327   - };
  346 + $scope.checkBeneficio = function(item){
  347 + if(item.$checked){
  348 + $scope.listaBeneficio.push(item);
  349 + }else{
  350 + $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1);
  351 + }
  352 + };
328 353  
329 354 // responsavel por definir se as acoes em massa estaram disponiveis
330 355 $scope.checkAllRecursosMateriais = function (value){
331   - $scope.listaRecursoMateriais = [];
332   - angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) {
333   - item.$checked = value;
334   - $scope.listaRecursoMateriais.push(item);
  356 + $scope.listaRecursoMateriais = [];
  357 + angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) {
  358 + item.$checked = value;
  359 + $scope.listaRecursoMateriais.push(item);
335 360 });
336   - if(!value){
337   - $scope.listaRecursoMateriais = [];
338   - }
  361 + if(!value){
  362 + $scope.listaRecursoMateriais = [];
  363 + }
  364 + $scope.atualizarListaSizeSelectRecursoMaterial();
339 365 };
340 366  
341   - $scope.checkRecursoMaterial = function(item){
342   - if(item.$checked){
343   - $scope.listaRecursoMateriais.push(item);
344   - }else{
345   - $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1);
346   - }
347   - };
  367 + $scope.checkRecursoMaterial = function(item){
  368 + if(item.$checked){
  369 + $scope.listaRecursoMateriais.push(item);
  370 + }else{
  371 + $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1);
  372 + }
  373 + };
348 374  
349 375 // responsavel por definir se as acoes em massa estaram disponiveis
350 376 $scope.checkAllRecursosHumanos = function (value){
351   - $scope.listaRecursoHumanos = [];
352   - angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) {
353   - item.$checked = value;
354   - $scope.listaRecursoHumanos.push(item);
  377 + $scope.listaRecursoHumanos = [];
  378 + angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) {
  379 + item.$checked = value;
  380 + $scope.listaRecursoHumanos.push(item);
355 381 });
356   - if(!value){
357   - $scope.listaRecursoHumanos = [];
358   - }
  382 + if(!value){
  383 + $scope.listaRecursoHumanos = [];
  384 + }
  385 + $scope.atualizarListaSizeSelectRecursoHumano();
359 386 };
360 387  
361   - $scope.checkRecursoHumano = function(item){
362   - if(item.$checked){
363   - $scope.listaRecursoHumanos.push(item);
364   - }else{
365   - $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1);
366   - }
367   - };
  388 + $scope.checkRecursoHumano = function(item){
  389 + if(item.$checked){
  390 + $scope.listaRecursoHumanos.push(item);
  391 + }else{
  392 + $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1);
  393 + }
  394 + };
368 395  
369 396 $scope.checkAllAcoes = function(value) {
370   - $scope.listaAcoesContigencia = [];
371   - angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) {
372   - item.$checked = value;
373   - $scope.listaAcoesContigencia.push(item);
  397 + $scope.listaAcoesContigencia = [];
  398 + angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) {
  399 + item.$checked = value;
  400 + $scope.listaAcoesContigencia.push(item);
374 401 });
375   - if(!value){
376   - $scope.listaAcoesContigencia = [];
377   - }
  402 + if(!value){
  403 + $scope.listaAcoesContigencia = [];
  404 + }
  405 + $scope.atualizarListaSizeSelectAcaoContigencia();
378 406 };
379 407  
380   - $scope.checkAcaoContigencia = function(item){
381   - if(item.$checked){
382   - $scope.listaAcoesContigencia.push(item);
383   - }else{
384   - $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1);
385   - }
386   - };
  408 + $scope.checkAcaoContigencia = function(item){
  409 + if(item.$checked){
  410 + $scope.listaAcoesContigencia.push(item);
  411 + }else{
  412 + $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1);
  413 + }
  414 + };
387 415  
388 416 // recupera requisito de negocio selecionado
389 417 $scope.getReqNegocioChecked = function() {
390 418 var reqNegocioChecked = [];
391 419  
392 420 if ($scope.estudoTecnico.etRequisitosNegocio) {
393   - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
394   - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
395   - reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i]));
396   - }
  421 + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
  422 + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  423 + reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i]));
  424 + }
397 425 }
398 426 }
399 427  
... ... @@ -405,10 +433,10 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
405 433 var solucaoChecked = [];
406 434  
407 435 if ($scope.estudoTecnico.etLevantamentoAlternativas) {
408   - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
409   - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
410   - solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i]));
411   - }
  436 + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
  437 + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  438 + solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i]));
  439 + }
412 440 }
413 441 }
414 442  
... ... @@ -420,10 +448,10 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
420 448 var bemServicoChecked = [];
421 449  
422 450 if ($scope.estudoTecnico.etBensServicosSolucoes) {
423   - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
424   - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
425   - bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i]));
426   - }
  451 + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
  452 + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  453 + bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i]));
  454 + }
427 455 }
428 456 }
429 457  
... ... @@ -435,10 +463,10 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
435 463 var beneficioEsperadoChecked = [];
436 464  
437 465 if ($scope.estudoTecnico.etBeneficiosEsperados) {
438   - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
439   - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
440   - beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i]));
441   - }
  466 + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
  467 + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  468 + beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i]));
  469 + }
442 470 }
443 471 }
444 472  
... ... @@ -448,13 +476,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
448 476 // Responsavel por retornar o recurso material selecionado
449 477 $scope.getRecursoMaterialChecked = function() {
450 478  
451   - var recursoMaterialChecked = [];
  479 + var recursoMaterialChecked = [];
452 480  
453   - if ($scope.estudoTecnico.etRecursosMateriais) {
454   - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
455   - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
456   - recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i]));
457   - }
  481 + if ($scope.estudoTecnico.etRecursosMateriais) {
  482 + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
  483 + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  484 + recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i]));
  485 + }
458 486 }
459 487 }
460 488 return recursoMaterialChecked;
... ... @@ -463,13 +491,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
463 491 // Responsavel por retornar o recurso humano selecionado
464 492 $scope.getRecursoHumanoChecked = function() {
465 493  
466   - var recursoHumanoChecked = [];
  494 + var recursoHumanoChecked = [];
467 495  
468   - if ($scope.estudoTecnico.etRecursosHumanos) {
469   - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
470   - if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
471   - recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i]));
472   - }
  496 + if ($scope.estudoTecnico.etRecursosHumanos) {
  497 + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
  498 + if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
  499 + recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i]));
  500 + }
473 501 }
474 502 }
475 503  
... ... @@ -478,13 +506,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
478 506  
479 507 // recupera a ação de contingencia selecionada
480 508 $scope.getAcaoContChecked = function() {
481   - var acaoContChecked = [];
  509 + var acaoContChecked = [];
482 510  
483   - if ($scope.estudoTecnico.etAcoesContingencia) {
484   - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
485   - if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
486   - acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i]));
487   - }
  511 + if ($scope.estudoTecnico.etAcoesContingencia) {
  512 + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
  513 + if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
  514 + acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i]));
  515 + }
488 516 }
489 517 }
490 518  
... ... @@ -493,7 +521,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
493 521  
494 522 $scope.openModalRequisitoNegocio = function() {
495 523  
496   - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
  524 + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
497 525 $scope.objetivosEstrategicos = result;
498 526 });
499 527  
... ... @@ -502,33 +530,37 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
502 530 $scope.reqNegocio = {};
503 531  
504 532 $timeout(function() {
505   - $scope.$openModal('modal-requisito-negocio.html', 'lg');
  533 + $scope.$openModal('modal-requisito-negocio.html', 'lg');
506 534 });
507 535 };
508   -
509   - $scope.openModalSolucao = function() {
510   - $scope.editSolucao = true;
511   -
512   - $scope.solucao = {
513   - etlaQuestionario : {}
  536 +
  537 + function resetModalSolucao(){
  538 + $scope.solucao = {
  539 + etlaQuestionario : {}
514 540 };
515 541  
516 542 $scope.solucao.etlaQuestionario.etQuestionarioRespostas = [];
517 543  
518 544 for (var i = 0; i < $scope.qntDefaultQuest; i++) {
519   - var questPergunta = {
520   - questionarioPergunta : $scope.questionarioTemplate.questoes[i],
521   - index : i+1
522   - };
523   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta);
  545 + var questPergunta = {
  546 + questionarioPergunta : $scope.questionarioTemplate.questoes[i],
  547 + index : i+1
  548 + };
  549 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta);
524 550 }
525 551  
526 552 $scope.solucao.etlaQuestionario.etQuestionario = {
527   - nome : $scope.questionarioTemplate.nome
  553 + nome : $scope.questionarioTemplate.nome
528 554 };
  555 + }
  556 +
  557 + $scope.openModalSolucao = function() {
  558 + $scope.editSolucao = true;
  559 +
  560 + resetModalSolucao();
529 561  
530 562 $timeout(function() {
531   - $scope.$openModal('modal-solucao.html', 'lg');
  563 + $scope.$openModal('modal-solucao.html', 'lg');
532 564 });
533 565 };
534 566  
... ... @@ -538,7 +570,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
538 570 $scope.bemServico = {};
539 571  
540 572 $timeout(function() {
541   - $scope.$openModal('modal-bem-servico.html', 'lg');
  573 + $scope.$openModal('modal-bem-servico.html', 'lg');
542 574 });
543 575 };
544 576  
... ... @@ -549,42 +581,42 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
549 581 $scope.beneficioEsperado = {};
550 582  
551 583 $timeout(function() {
552   - $scope.$openModal('modal-beneficio-esperado.html', 'lg');
  584 + $scope.$openModal('modal-beneficio-esperado.html', 'lg');
553 585 });
554 586 };
555 587  
556 588 // responsavel por abrir modal de adicao de um recurso material
557 589 $scope.openModalRecursoMaterial = function() {
558 590  
559   - $scope.estudoTecnicoRecursoMaterialTemp = {
560   - disponivel : true
561   - };
  591 + $scope.estudoTecnicoRecursoMaterialTemp = {
  592 + disponivel : true
  593 + };
562 594  
563   - $scope.editRecursoMaterial = true;
564   - $scope.$openModal('modal-recurso-material.html', 'lg');
565   - };
  595 + $scope.editRecursoMaterial = true;
  596 + $scope.$openModal('modal-recurso-material.html', 'lg');
  597 + };
566 598  
567 599 // Responsavel por abrir modal de adicao de um recurso humano
568 600 $scope.openModalRecursoHumano = function() {
569 601  
570   - $scope.estudoTecnicoRecursoHumanoTemp = {};
571   - $scope.editRecursoHumano = true;
572   - $scope.$openModal('modal-recurso-humano.html', 'lg');
573   - };
  602 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  603 + $scope.editRecursoHumano = true;
  604 + $scope.$openModal('modal-recurso-humano.html', 'lg');
  605 + };
574 606  
575 607 $scope.openModalAcaoContingencia = function() {
576   - $scope.editAcaoCont = true;
  608 + $scope.editAcaoCont = true;
577 609  
578 610 $scope.acaoCont = {};
579 611  
580 612 $timeout(function() {
581   - $scope.$openModal('modal-acao-contingencia.html', 'lg');
  613 + $scope.$openModal('modal-acao-contingencia.html', 'lg');
582 614 });
583 615 };
584 616  
585 617 $scope.abrirRequisitoNegocio = function(edit) {
586 618  
587   - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
  619 + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
588 620 $scope.objetivosEstrategicos = result;
589 621 });
590 622  
... ... @@ -595,21 +627,21 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
595 627 var requisitosSelecionados = $scope.getReqNegocioChecked();
596 628  
597 629 if (requisitosSelecionados.length > 1) {
598   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
599   - return;
  630 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  631 + return;
600 632 }
601 633  
602   - if(requisitosSelecionados.length === 0) {
603   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
604   - return;
605   - }
  634 + if(requisitosSelecionados.length === 0) {
  635 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  636 + return;
  637 + }
606 638  
607   - $scope.reqNegocio = requisitosSelecionados[0];
  639 + $scope.reqNegocio = requisitosSelecionados[0];
608 640  
609   - $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico);
  641 + $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico);
610 642  
611 643 $timeout(function() {
612   - $scope.$openModal('modal-requisito-negocio.html', 'lg');
  644 + $scope.$openModal('modal-requisito-negocio.html', 'lg');
613 645 });
614 646 };
615 647  
... ... @@ -621,28 +653,28 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
621 653  
622 654 var solucoesSelecionadas = $scope.getSolucaoChecked();
623 655  
624   - if (solucoesSelecionadas.length > 1) {
625   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
626   - return;
  656 + if (solucoesSelecionadas.length > 1) {
  657 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  658 + return;
627 659 }
628 660  
629   - if(solucoesSelecionadas.length === 0) {
630   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
631   - return;
632   - }
  661 + if(solucoesSelecionadas.length === 0) {
  662 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  663 + return;
  664 + }
633 665  
634   - $scope.solucao = solucoesSelecionadas[0];
  666 + $scope.solucao = solucoesSelecionadas[0];
635 667  
636   - if ($scope.solucao.fornecedor) {
  668 + if ($scope.solucao.fornecedor) {
637 669 $scope.solucao.fornecedor['pessoa.nome'] = $scope.solucao.fornecedor.pessoa.nome;
638 670 }
639 671  
640   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
641   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1;
642   - }
  672 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  673 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1;
  674 + }
643 675  
644 676 $timeout(function() {
645   - $scope.$openModal('modal-solucao.html', 'lg');
  677 + $scope.$openModal('modal-solucao.html', 'lg');
646 678 });
647 679 };
648 680  
... ... @@ -655,19 +687,19 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
655 687 var bensServicosSelecionados = $scope.getBemServicoChecked();
656 688  
657 689 if (bensServicosSelecionados.length > 1) {
658   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
659   - return;
  690 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  691 + return;
660 692 }
661 693  
662   - if(bensServicosSelecionados.length === 0) {
663   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
664   - return;
665   - }
  694 + if(bensServicosSelecionados.length === 0) {
  695 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  696 + return;
  697 + }
666 698  
667   - $scope.bemServico = bensServicosSelecionados[0];
  699 + $scope.bemServico = bensServicosSelecionados[0];
668 700  
669 701 $timeout(function() {
670   - $scope.$openModal('modal-bem-servico.html', 'lg');
  702 + $scope.$openModal('modal-bem-servico.html', 'lg');
671 703 });
672 704 };
673 705  
... ... @@ -680,71 +712,71 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
680 712 var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
681 713  
682 714 if (beneficiosSelecionados.length > 1) {
683   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
684   - return;
  715 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  716 + return;
685 717 }
686 718  
687   - if(beneficiosSelecionados.length === 0) {
688   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
689   - return;
690   - }
  719 + if(beneficiosSelecionados.length === 0) {
  720 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  721 + return;
  722 + }
691 723  
692   - $scope.beneficioEsperado = beneficiosSelecionados[0];
  724 + $scope.beneficioEsperado = beneficiosSelecionados[0];
693 725  
694 726 $timeout(function() {
695   - $scope.$openModal('modal-beneficio-esperado.html', 'lg');
  727 + $scope.$openModal('modal-beneficio-esperado.html', 'lg');
696 728 });
697 729 };
698 730  
699   - // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado
700   - $scope.abrirRecursoMaterial = function(edit) {
  731 + // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado
  732 + $scope.abrirRecursoMaterial = function(edit) {
701 733  
702 734 $scope.editRecursoMaterial = edit;
703 735  
704 736 $scope.estudoTecnicoRecursoMaterialTemp = null;
705 737  
706   - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
  738 + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
707 739  
708 740 if (recursosMateriaisSelecionados.length > 1) {
709   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
710   - return;
  741 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  742 + return;
711 743 }
712 744  
713   - if(recursosMateriaisSelecionados.length === 0) {
714   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
715   - return;
716   - }
  745 + if(recursosMateriaisSelecionados.length === 0) {
  746 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  747 + return;
  748 + }
717 749  
718   - $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0];
  750 + $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0];
719 751  
720 752 $timeout(function() {
721   - $scope.$openModal('modal-recurso-material.html', 'lg');
  753 + $scope.$openModal('modal-recurso-material.html', 'lg');
722 754 });
723 755 };
724 756  
725   - // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado
726   - $scope.abrirRecursoHumano = function(edit) {
  757 + // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado
  758 + $scope.abrirRecursoHumano = function(edit) {
727 759  
728 760 $scope.editRecursoHumano = edit;
729 761  
730 762 $scope.estudoTecnicoRecursoHumanoTemp = null;
731 763  
732   - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
  764 + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
733 765  
734 766 if (recursosHumanosSelecionados.length > 1) {
735   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
736   - return;
  767 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  768 + return;
737 769 }
738 770  
739   - if(recursosHumanosSelecionados.length === 0) {
740   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
741   - return;
742   - }
  771 + if(recursosHumanosSelecionados.length === 0) {
  772 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  773 + return;
  774 + }
743 775  
744   - $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0];
  776 + $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0];
745 777  
746 778 $timeout(function() {
747   - $scope.$openModal('modal-recurso-humano.html', 'lg');
  779 + $scope.$openModal('modal-recurso-humano.html', 'lg');
748 780 });
749 781 };
750 782  
... ... @@ -754,28 +786,28 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
754 786  
755 787 $scope.acaoCont = null;
756 788  
757   - var acoesSelecionadas = $scope.getAcaoContChecked();
  789 + var acoesSelecionadas = $scope.getAcaoContChecked();
758 790  
759 791 if (acoesSelecionadas.length > 1) {
760   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
761   - return;
  792 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  793 + return;
762 794 }
763 795  
764   - if(acoesSelecionadas.length === 0) {
765   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
766   - return;
767   - }
  796 + if(acoesSelecionadas.length === 0) {
  797 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  798 + return;
  799 + }
768 800  
769   - $scope.acaoCont = acoesSelecionadas[0];
  801 + $scope.acaoCont = acoesSelecionadas[0];
770 802  
771 803 $timeout(function() {
772   - $scope.$openModal('modal-acao-contingencia.html', 'lg');
  804 + $scope.$openModal('modal-acao-contingencia.html', 'lg');
773 805 });
774 806 };
775 807  
776 808 $scope.removerRequisitoNegocio = function() {
777 809 // recupera a EstudoTecnico selecionada
778   - var requisitosSelecionados = $scope.getReqNegocioChecked();
  810 + var requisitosSelecionados = $scope.getReqNegocioChecked();
779 811  
780 812 if (requisitosSelecionados.length > 0) {
781 813 $scope.$openModalConfirm({
... ... @@ -785,20 +817,21 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
785 817 $scope.$modalConfirmInstance.dismiss('cancel');
786 818  
787 819 for (var i = 0; i < requisitosSelecionados.length; i++) {
788   - if (requisitosSelecionados[i].id) {
789   - EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) {
  820 + if (requisitosSelecionados[i].id) {
  821 + EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) {
790 822 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
791 823 });
792 824 }
793 825 }
794 826 var requisitos = [];
795 827 for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
796   - if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
797   - requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]);
798   - }
  828 + if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  829 + requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]);
  830 + }
799 831 }
800 832 $scope.listaRequisitoTecSelecao = [];
801 833 $scope.estudoTecnico.etRequisitosNegocio = requisitos;
  834 + $scope.atualizarListaSizeSelectReqNegocio();
802 835 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
803 836 }
804 837 });
... ... @@ -808,200 +841,206 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
808 841 };
809 842  
810 843 $scope.removerSolucao = function() {
811   - var solucoesSelecionadas = $scope.getSolucaoChecked();
  844 + var solucoesSelecionadas = $scope.getSolucaoChecked();
812 845  
813   - if (solucoesSelecionadas.length > 0) {
  846 + if (solucoesSelecionadas.length > 0) {
814 847 $scope.$openModalConfirm({
815 848 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
816 849 callback: function() {
817 850  
818   - $scope.$modalConfirmInstance.dismiss('cancel');
  851 + $scope.$modalConfirmInstance.dismiss('cancel');
819 852  
820   - for (var i = 0; i < solucoesSelecionadas.length; i++) {
821   - if (solucoesSelecionadas[i].id) {
822   - EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) {
  853 + for (var i = 0; i < solucoesSelecionadas.length; i++) {
  854 + if (solucoesSelecionadas[i].id) {
  855 + EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) {
823 856 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
824 857 });
825 858 }
826 859 }
827 860 var solucoes = [];
828 861 for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
829   - if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
830   - solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]);
831   - }
  862 + if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  863 + solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]);
  864 + }
832 865 }
833 866 $scope.listaAlternativa = [];
834 867 $scope.estudoTecnico.etLevantamentoAlternativas = solucoes;
  868 + $scope.atualizarListaSizeSelectSolucao();
835 869 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
836 870 }
837 871 });
838 872 } else {
839   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  873 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
840 874 }
841 875 };
842 876  
843 877 $scope.removerBensServico = function() {
844   - var bensServicosSelecionados = $scope.getBemServicoChecked();
  878 + var bensServicosSelecionados = $scope.getBemServicoChecked();
845 879  
846   - if (bensServicosSelecionados.length > 0) {
  880 + if (bensServicosSelecionados.length > 0) {
847 881 $scope.$openModalConfirm({
848 882 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
849 883 callback: function() {
850   - $scope.$modalConfirmInstance.dismiss('cancel');
  884 + $scope.$modalConfirmInstance.dismiss('cancel');
851 885  
852   - for (var i = 0; i < bensServicosSelecionados.length; i++) {
853   - if (bensServicosSelecionados[i].id) {
854   - EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) {
  886 + for (var i = 0; i < bensServicosSelecionados.length; i++) {
  887 + if (bensServicosSelecionados[i].id) {
  888 + EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) {
855 889 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
856 890 });
857 891 }
858 892 }
859 893 var bensServicos = [];
860 894 for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
861   - if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
862   - bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]);
863   - }
  895 + if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  896 + bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]);
  897 + }
864 898 }
865 899 $scope.estudoTecnico.etBensServicosSolucoes = bensServicos;
  900 + $scope.atualizarListaSizeSelectServicoSolucao();
866 901 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
867 902 }
868 903 });
869 904 } else {
870   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  905 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
871 906 }
872 907 };
873 908  
874 909 $scope.removerBeneficioEsperado = function() {
875 910  
876   - var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
  911 + var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
877 912  
878   - if (beneficiosSelecionados.length > 0) {
  913 + if (beneficiosSelecionados.length > 0) {
879 914 $scope.$openModalConfirm({
880 915 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
881 916 callback: function() {
882   - $scope.$modalConfirmInstance.dismiss('cancel');
  917 + $scope.$modalConfirmInstance.dismiss('cancel');
883 918  
884   - for (var i = 0; i < beneficiosSelecionados.length; i++) {
885   - if (beneficiosSelecionados[i].id) {
886   - EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) {
  919 + for (var i = 0; i < beneficiosSelecionados.length; i++) {
  920 + if (beneficiosSelecionados[i].id) {
  921 + EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) {
887 922 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
888 923 });
889 924 }
890 925 }
891 926 var beneficios = [];
892 927 for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
893   - if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
894   - beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]);
895   - }
  928 + if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  929 + beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]);
  930 + }
896 931 }
897 932 $scope.listaBeneficio = [];
898 933 $scope.estudoTecnico.etBeneficiosEsperados = beneficios;
  934 + $scope.atualizarListaSizeSelectBeneficio();
899 935 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
900 936 }
901 937 });
902 938 } else {
903   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  939 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
904 940 }
905 941 };
906 942  
907 943 //responsavel por remover um/ou mais recurs(o)s materiais do estudo tecnico
908 944 $scope.removerRecursoMaterial = function (){
909 945  
910   - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
  946 + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
911 947  
912   - if (recursosMateriaisSelecionados.length > 0) {
  948 + if (recursosMateriaisSelecionados.length > 0) {
913 949 $scope.$openModalConfirm({
914 950 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
915 951 callback: function() {
916   - $scope.$modalConfirmInstance.dismiss('cancel');
  952 + $scope.$modalConfirmInstance.dismiss('cancel');
917 953  
918   - for (var i = 0; i < recursosMateriaisSelecionados.length; i++) {
919   - if (recursosMateriaisSelecionados[i].id) {
920   - EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) {
  954 + for (var i = 0; i < recursosMateriaisSelecionados.length; i++) {
  955 + if (recursosMateriaisSelecionados[i].id) {
  956 + EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) {
921 957 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
922 958 });
923 959 }
924 960 }
925 961 var recursosMateriais = [];
926 962 for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
927   - if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) {
928   - recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]);
929   - }
  963 + if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  964 + recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]);
  965 + }
930 966 }
931 967 $scope.listaRecursoMateriais = [];
932 968 $scope.estudoTecnico.etRecursosMateriais = recursosMateriais;
  969 + $scope.atualizarListaSizeSelectRecursoMaterial();
933 970 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
934 971 }
935 972 });
936 973 } else {
937   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  974 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
938 975 }
939 976 };
940 977  
941 978 //responsavel por remover um/ou mais recurs(o)s humanos do estudo tecnico
942 979 $scope.removerRecursoHumano = function (){
943 980  
944   - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
  981 + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
945 982  
946   - if (recursosHumanosSelecionados.length > 0) {
  983 + if (recursosHumanosSelecionados.length > 0) {
947 984 $scope.$openModalConfirm({
948 985 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
949 986 callback: function() {
950   - $scope.$modalConfirmInstance.dismiss('cancel');
  987 + $scope.$modalConfirmInstance.dismiss('cancel');
951 988  
952   - for (var i = 0; i < recursosHumanosSelecionados.length; i++) {
953   - if (recursosHumanosSelecionados[i].id) {
954   - EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) {
  989 + for (var i = 0; i < recursosHumanosSelecionados.length; i++) {
  990 + if (recursosHumanosSelecionados[i].id) {
  991 + EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) {
955 992 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
956 993 });
957 994 }
958 995 }
959 996 var recursosHumanos = [];
960 997 for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
961   - if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) {
962   - recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]);
963   - }
  998 + if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) {
  999 + recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]);
  1000 + }
964 1001 }
965 1002 $scope.estudoTecnico.etRecursosHumanos = recursosHumanos;
966 1003 $scope.listaRecursoHumanos = [];
  1004 + $scope.atualizarListaSizeSelectRecursoHumano();
967 1005 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
968 1006 }
969 1007 });
970 1008 } else {
971   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  1009 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
972 1010 }
973 1011 };
974 1012  
975 1013 $scope.removerAcaoContingencia = function() {
976 1014  
977   - var acoesSelecionadas = $scope.getAcaoContChecked();
  1015 + var acoesSelecionadas = $scope.getAcaoContChecked();
978 1016  
979   - if (acoesSelecionadas.length > 0) {
  1017 + if (acoesSelecionadas.length > 0) {
980 1018 $scope.$openModalConfirm({
981 1019 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
982 1020 callback: function() {
983   - $scope.$modalConfirmInstance.dismiss('cancel');
  1021 + $scope.$modalConfirmInstance.dismiss('cancel');
984 1022  
985   - for (var i = 0; i < acoesSelecionadas.length; i++) {
986   - if (acoesSelecionadas[i].id) {
987   - EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) {
  1023 + for (var i = 0; i < acoesSelecionadas.length; i++) {
  1024 + if (acoesSelecionadas[i].id) {
  1025 + EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) {
988 1026 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
989 1027 });
990 1028 }
991 1029 }
992 1030 var acoes = [];
993 1031 for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
994   - if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) {
995   - acoes.push($scope.estudoTecnico.etAcoesContingencia[i]);
996   - }
  1032 + if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) {
  1033 + acoes.push($scope.estudoTecnico.etAcoesContingencia[i]);
  1034 + }
997 1035 }
998 1036 $scope.estudoTecnico.etAcoesContingencia = acoes;
999 1037 $scope.listaAcoesContigencia = [];
  1038 + $scope.atualizarListaSizeSelectAcaoContigencia();
1000 1039 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1001 1040 }
1002 1041 });
1003 1042 } else {
1004   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  1043 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
1005 1044 }
1006 1045 };
1007 1046  
... ... @@ -1009,79 +1048,79 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1009 1048 $scope.getQuestaoChecked = function() {
1010 1049 var questaoChecked = null;
1011 1050 if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas) {
1012   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
1013   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) {
1014   - questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i];
1015   - }
  1051 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  1052 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) {
  1053 + questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i];
  1054 + }
1016 1055 }
1017 1056 }
1018 1057 return questaoChecked;
1019 1058 };
1020 1059  
1021 1060 $scope.addQuestao = function() {
1022   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({
1023   - questionarioPergunta : angular.copy($scope.questaoTemplate),
1024   - index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1,
1025   - edit : true
1026   - });
  1061 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({
  1062 + questionarioPergunta : angular.copy($scope.questaoTemplate),
  1063 + index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1,
  1064 + edit : true
  1065 + });
1027 1066 };
1028 1067  
1029   - $scope.editQuestao = function() {
1030   - var questao = $scope.getQuestaoChecked();
  1068 + $scope.editQuestao = function() {
  1069 + var questao = $scope.getQuestaoChecked();
1031 1070  
1032   - if(!questao) {
1033   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO'));
1034   - return;
1035   - }
  1071 + if(!questao) {
  1072 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO'));
  1073 + return;
  1074 + }
1036 1075  
1037   - questao.edit = true;
  1076 + questao.edit = true;
1038 1077 };
1039 1078  
1040 1079 $scope.removerQuestao = function() {
1041   - var questao = $scope.getQuestaoChecked();
  1080 + var questao = $scope.getQuestaoChecked();
1042 1081  
1043   - if(!questao) {
1044   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'));
1045   - return;
1046   - }
1047   - $scope.cancelarQuestao(questao);
  1082 + if(!questao) {
  1083 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'));
  1084 + return;
  1085 + }
  1086 + $scope.cancelarQuestao(questao);
1048 1087 };
1049 1088  
1050 1089 $scope.salvarQuestao = function(questao) {
1051   - if (questao.questionarioPergunta.questao) {
1052   - questao.edit = !questao.edit;
1053   - } else {
1054   - $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA'));
1055   - }
1056   - };
1057   -
1058   - $scope.cancelarQuestao = function(questao) {
1059   - var questTemp = [];
1060   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
1061   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) {
1062   - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1063   - }
1064   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) {
1065   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--;
1066   - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1067   - }
1068   - if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) {
1069   - $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1070   - }
1071   - }
1072   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp;
  1090 + if (questao.questionarioPergunta.questao) {
  1091 + questao.edit = !questao.edit;
  1092 + } else {
  1093 + $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA'));
  1094 + }
  1095 + };
  1096 +
  1097 + $scope.cancelarQuestao = function(questao) {
  1098 + var questTemp = [];
  1099 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  1100 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) {
  1101 + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1102 + }
  1103 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) {
  1104 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--;
  1105 + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1106 + }
  1107 + if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) {
  1108 + $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1109 + }
  1110 + }
  1111 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp;
1073 1112 };
1074 1113  
1075 1114 $scope.removerRespostaPergunta = function(resposta) {
1076 1115 if (resposta) {
1077   - var pergunta = resposta.questionarioPergunta;
  1116 + var pergunta = resposta.questionarioPergunta;
1078 1117 $scope.$openModalConfirm({
1079 1118 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
1080 1119 callback: function() {
1081 1120 $scope.$modalConfirmInstance.dismiss('cancel');
1082 1121 if ($scope.resposta.id) {
1083   - EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) {
1084   - $scope.removerPergunta(pergunta);
  1122 + EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) {
  1123 + $scope.removerPergunta(pergunta);
1085 1124 });
1086 1125 } else {
1087 1126 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
... ... @@ -1095,7 +1134,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1095 1134  
1096 1135 $scope.removerPergunta = function(pergunta) {
1097 1136 if (pergunta) {
1098   - QuestionarioPerguntaRepository.remove(pergunta).then(function(result) {
  1137 + QuestionarioPerguntaRepository.remove(pergunta).then(function(result) {
1099 1138 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1100 1139 });
1101 1140 } else {
... ... @@ -1104,208 +1143,273 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1104 1143 };
1105 1144  
1106 1145 // ADICIONAR Requisito de negócio
1107   - $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio) {
  1146 + $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio, continuarEditando) {
1108 1147  
1109   - formDialogRequisitoNegocio.$submitted = true;
  1148 + formDialogRequisitoNegocio.$submitted = true;
1110 1149  
1111 1150 //verifica se o formulario está valido para salvar
1112   - if (formDialogRequisitoNegocio.$valid) {
1113   - if ($scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement) {
1114   - $scope.reqNegocio.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement;
1115   - } else {
1116   - $scope.reqNegocio.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade;
1117   - }
1118   - delete $scope.reqNegocio.objetivoEstrategico;
1119   - if ($scope.estudoTecnico.etRequisitosNegocio) {
1120   - if ($scope.reqNegocio.$checked) {
1121   - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
1122   - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
1123   - $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocio;
1124   - }
1125   - }
1126   - } else {
1127   - $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocio);
1128   - }
1129   - } else {
1130   - $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocio];
1131   - }
1132   - $scope.$modalInstance.dismiss('cancel');
  1151 + if (formDialogRequisitoNegocio.$invalid) {
  1152 + //Mensagem de erro de campos obrigatorios não preenchidos
  1153 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1154 + return;
  1155 + }
  1156 + $scope.reqNegocioTemp = angular.copy($scope.reqNegocio);
  1157 + if ($scope.reqNegocioTemp.objetivoEstrategicoNecessidade.originalElement) {
  1158 + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement;
  1159 + } else {
  1160 + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade;
  1161 + }
  1162 + delete $scope.reqNegocioTemp.objetivoEstrategico;
  1163 + if ($scope.estudoTecnico.etRequisitosNegocio) {
  1164 + if ($scope.reqNegocio.$checked) {
  1165 + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
  1166 + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  1167 + $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocioTemp;
  1168 + }
  1169 + }
1133 1170 } else {
1134   - //Mensagem de erro de campos obrigatorios não preenchidos
1135   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1171 + $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocioTemp);
1136 1172 }
  1173 + } else {
  1174 + $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocioTemp];
  1175 + }
  1176 +
  1177 + if(continuarEditando){
  1178 + formDialogRequisitoNegocio.$submitted = false;
  1179 + formDialogRequisitoNegocio.$setPristine();
  1180 + $scope.reqNegocioTemp = null;
  1181 + $scope.reqNegocio = {};
  1182 + return;
  1183 + }
  1184 + $scope.atualizarListaSizeSelectReqNegocio();
  1185 + $scope.$modalInstance.dismiss('cancel');
1137 1186 };
1138 1187  
1139 1188 // ADICIONAR Solucao
1140   - $scope.salvaSolucao = function(formDialogSolucao) {
1141   -
1142   - formDialogSolucao.$submitted = true;
1143   -
1144   - //verifica se o formulario está valido para salvar
1145   - if (formDialogSolucao.$valid) {
1146   - if ($scope.estudoTecnico.etLevantamentoAlternativas) {
1147   - if ($scope.solucao.$checked) {
1148   - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
1149   - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
1150   - $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao;
1151   - }
1152   - }
1153   - } else {
1154   - $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao);
1155   - }
1156   - } else {
1157   - $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao];
1158   - }
1159   - $scope.$modalInstance.dismiss('cancel');
  1189 + $scope.salvaSolucao = function(formDialogSolucao, continuarEditando) {
  1190 +
  1191 + formDialogSolucao.$submitted = true;
  1192 +
  1193 + //verifica se o formulario está valido para salvar
  1194 + if (formDialogSolucao.$invalid) {
  1195 + //Mensagem de erro de campos obrigatorios não preenchidos
  1196 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1197 + return;
  1198 + }
  1199 +
  1200 + if ($scope.estudoTecnico.etLevantamentoAlternativas) {
  1201 + if ($scope.solucao.$checked) {
  1202 + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
  1203 + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  1204 + $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao;
  1205 + }
  1206 + }
1160 1207 } else {
1161   - //Mensagem de erro de campos obrigatorios não preenchidos
1162   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1208 + $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao);
1163 1209 }
  1210 + } else {
  1211 + $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao];
  1212 + }
  1213 +
  1214 + if(continuarEditando){
  1215 + formDialogSolucao.$submitted = false;
  1216 + formDialogSolucao.$setPristine();
  1217 + resetModalSolucao();
  1218 + }else{
  1219 + $scope.$modalInstance.dismiss('cancel');
  1220 + }
  1221 + $scope.atualizarListaSizeSelectSolucao();
1164 1222 };
1165 1223  
1166 1224 // ADICIONAR Solucao
1167   - $scope.salvaBemServico = function(formDialogBensServico) {
1168   -
1169   - formDialogBensServico.$submitted = true;
1170   -
1171   - //verifica se o formulario está valido para salvar
1172   - if (formDialogBensServico.$valid) {
1173   - if ($scope.estudoTecnico.etBensServicosSolucoes) {
1174   - if ($scope.bemServico.$checked) {
1175   - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
1176   - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
1177   - $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico;
1178   - }
1179   - }
1180   - } else {
1181   - $scope.bemServico.$index = $scope.estudoTecnico.etBensServicosSolucoes.length + 1;
1182   - $scope.estudoTecnico.etBensServicosSolucoes.push($scope.bemServico);
1183   - }
1184   - } else {
1185   - $scope.bemServico.$index = 1;
1186   - $scope.estudoTecnico.etBensServicosSolucoes = [$scope.bemServico];
1187   - }
1188   - $scope.$modalInstance.dismiss('cancel');
1189   - } else {
1190   - //Mensagem de erro de campos obrigatorios não preenchidos
1191   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1192   - }
  1225 + $scope.salvaBemServico = function(formDialogBensServico, continuarEditando) {
  1226 +
  1227 + formDialogBensServico.$submitted = true;
  1228 +
  1229 + //verifica se o formulario está valido para salvar
  1230 + if (formDialogBensServico.$invalid) {
  1231 + //Mensagem de erro de campos obrigatorios não preenchidos
  1232 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1233 + return;
  1234 + }
  1235 +
  1236 + if ($scope.estudoTecnico.etBensServicosSolucoes) {
  1237 + if ($scope.bemServico.$checked) {
  1238 + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
  1239 + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  1240 + $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico;
  1241 + }
  1242 + }
  1243 + } else {
  1244 + $scope.bemServico.$index = $scope.estudoTecnico.etBensServicosSolucoes.length + 1;
  1245 + $scope.estudoTecnico.etBensServicosSolucoes.push($scope.bemServico);
  1246 + }
  1247 + } else {
  1248 + $scope.bemServico.$index = 1;
  1249 + $scope.estudoTecnico.etBensServicosSolucoes = [$scope.bemServico];
  1250 + }
  1251 +
  1252 + if(continuarEditando){
  1253 + formDialogBensServico.$submitted = false;
  1254 + formDialogBensServico.$setPristine();
  1255 + $scope.bemServico = {};
  1256 + }else{
  1257 + $scope.$modalInstance.dismiss('cancel');
  1258 + }
  1259 + $scope.atualizarListaSizeSelectServicoSolucao();
1193 1260 };
1194 1261  
1195 1262 // ADICIONAR BENEFÍCIO ESPERADO
1196   - $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado) {
  1263 + $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado, continuarEditando) {
1197 1264  
1198   - formDialogBeneficioEsperado.$submitted = true;
  1265 + formDialogBeneficioEsperado.$submitted = true;
1199 1266  
1200 1267 //verifica se o formulario está valido para salvar
1201   - if (formDialogBeneficioEsperado.$valid) {
1202   - if ($scope.estudoTecnico.etBeneficiosEsperados) {
1203   - if ($scope.beneficioEsperado.$checked) {
1204   - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
1205   - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
1206   - $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado;
1207   - }
1208   - }
1209   - } else {
1210   - $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado);
1211   - }
1212   - } else {
1213   - $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado];
1214   - }
1215   - $scope.$modalInstance.dismiss('cancel');
1216   - } else {
1217   - //Mensagem de erro de campos obrigatorios não preenchidos
  1268 + if (formDialogBeneficioEsperado.$invalid) {
  1269 + //Mensagem de erro de campos obrigatorios não preenchidos
1218 1270 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1271 + return;
1219 1272 }
  1273 +
  1274 + if ($scope.estudoTecnico.etBeneficiosEsperados) {
  1275 + if ($scope.beneficioEsperado.$checked) {
  1276 + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
  1277 + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  1278 + $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado;
  1279 + }
  1280 + }
  1281 + } else {
  1282 + $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado);
  1283 + }
  1284 + } else {
  1285 + $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado];
  1286 + }
  1287 +
  1288 + if(continuarEditando){
  1289 + formDialogBeneficioEsperado.$submitted = false;
  1290 + formDialogBeneficioEsperado.$setPristine();
  1291 + $scope.beneficioEsperado = {};
  1292 + } else {
  1293 + $scope.$modalInstance.dismiss('cancel');
  1294 + }
  1295 + $scope.atualizarListaSizeSelectBeneficio();
1220 1296 };
1221 1297  
1222 1298 // responsavel por adicionar um recurso tecnico ao estudo tecnico
1223   - $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial){
  1299 + $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial, continuarEditando){
1224 1300  
1225 1301 formDialogRecursoMaterial.$submitted = true;
1226 1302  
1227   - if (formDialogRecursoMaterial.$valid) {
1228   - if ($scope.estudoTecnico.etRecursosMateriais){
1229   - if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){
1230   - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
1231   - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
1232   - $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp;
1233   - }
1234   - }
1235   - } else {
1236   - $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp);
1237   - }
1238   - } else {
1239   - $scope.estudoTecnico.etRecursosMateriais = [$scope.estudoTecnicoRecursoMaterialTemp];
1240   - }
1241   - $scope.estudoTecnicoRecursoMaterialTemp = {};
1242   - $scope.$modalInstance.dismiss('cancel');
1243   - } else {
1244   - //Mensagem de erro de campos obrigatorios não preenchidos
1245   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1246   - }
  1303 + if (formDialogRecursoMaterial.$invalid) {
  1304 + //Mensagem de erro de campos obrigatorios não preenchidos
  1305 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1306 + return;
  1307 + }
  1308 +
  1309 + if ($scope.estudoTecnico.etRecursosMateriais){
  1310 + if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){
  1311 + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
  1312 + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  1313 + $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp;
  1314 + }
  1315 + }
  1316 + } else {
  1317 + $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp);
  1318 + }
  1319 + } else {
  1320 + $scope.estudoTecnico.etRecursosMateriais = [$scope.estudoTecnicoRecursoMaterialTemp];
  1321 + }
  1322 +
  1323 + if(continuarEditando){
  1324 + formDialogRecursoMaterial.$submitted = false;
  1325 + formDialogRecursoMaterial.$setPristine();
  1326 + $scope.estudoTecnicoRecursoMaterialTemp = {
  1327 + disponivel : true
  1328 + };
  1329 + }else{
  1330 + $scope.estudoTecnicoRecursoMaterialTemp = {};
  1331 + $scope.$modalInstance.dismiss('cancel');
  1332 + }
  1333 + $scope.atualizarListaSizeSelectRecursoMaterial();
1247 1334 };
1248 1335  
1249 1336 // Responsavel por adicionar um recurso humano ao estudo tecnico
1250   - $scope.salvaRecursoHumano = function (formDialogRecursoHumano){
1251   -
1252   - formDialogRecursoHumano.$submitted = true;
1253   -
1254   - if (formDialogRecursoHumano.$valid) {
1255   - if ($scope.estudoTecnico.etRecursosHumanos){
1256   - if ($scope.estudoTecnicoRecursoHumanoTemp.$checked){
1257   - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
1258   - if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
1259   - $scope.estudoTecnico.etRecursosHumanos[i] = $scope.estudoTecnicoRecursoHumanoTemp;
1260   - }
1261   - }
1262   - } else {
1263   - $scope.estudoTecnico.etRecursosHumanos.push($scope.estudoTecnicoRecursoHumanoTemp);
1264   - }
1265   - } else {
1266   - $scope.estudoTecnico.etRecursosHumanos = [$scope.estudoTecnicoRecursoHumanoTemp];
1267   - }
1268   - $scope.estudoTecnicoRecursoHumanoTemp = {};
1269   - $scope.$modalInstance.dismiss('cancel');
1270   - } else {
1271   - //Mensagem de erro de campos obrigatorios não preenchidos
1272   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1273   - }
  1337 + $scope.salvaRecursoHumano = function (formDialogRecursoHumano, continuarEditando){
  1338 +
  1339 + formDialogRecursoHumano.$submitted = true;
  1340 +
  1341 + if (formDialogRecursoHumano.$invalid) {
  1342 + //Mensagem de erro de campos obrigatorios não preenchidos
  1343 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1344 + return;
  1345 + }
  1346 +
  1347 + if ($scope.estudoTecnico.etRecursosHumanos){
  1348 + if ($scope.estudoTecnicoRecursoHumanoTemp.$checked){
  1349 + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
  1350 + if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
  1351 + $scope.estudoTecnico.etRecursosHumanos[i] = $scope.estudoTecnicoRecursoHumanoTemp;
  1352 + }
  1353 + }
  1354 + } else {
  1355 + $scope.estudoTecnico.etRecursosHumanos.push($scope.estudoTecnicoRecursoHumanoTemp);
  1356 + }
  1357 + } else {
  1358 + $scope.estudoTecnico.etRecursosHumanos = [$scope.estudoTecnicoRecursoHumanoTemp];
  1359 + }
  1360 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  1361 +
  1362 + if(continuarEditando){
  1363 + formDialogRecursoHumano.$submitted = false;
  1364 + formDialogRecursoHumano.$setPristine();
  1365 + }else{
  1366 + $scope.$modalInstance.dismiss('cancel');
  1367 + }
  1368 + $scope.atualizarListaSizeSelectRecursoHumano();
1274 1369 };
1275 1370  
1276   - $scope.salvaAcaoCont = function(formDialogAcaoContingencia) {
  1371 + $scope.salvaAcaoCont = function(formDialogAcaoContingencia, continuarEditando) {
1277 1372 formDialogAcaoContingencia.$submitted = true;
1278 1373  
1279 1374 //verifica se o formulario está valido para salvar
1280   - if (formDialogAcaoContingencia.$valid) {
1281   - if ($scope.estudoTecnico.etAcoesContingencia) {
1282   - if ($scope.acaoCont.$checked) {
1283   - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
1284   - if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
1285   - $scope.estudoTecnico.etAcoesContingencia[i] = $scope.acaoCont;
1286   - }
1287   - }
1288   - } else {
1289   - $scope.acaoCont.$index = $scope.estudoTecnico.etAcoesContingencia.length + 1;
1290   - $scope.estudoTecnico.etAcoesContingencia.push($scope.acaoCont);
1291   - }
1292   - } else {
1293   - $scope.acaoCont.$index = 1;
1294   - $scope.estudoTecnico.etAcoesContingencia = [$scope.acaoCont];
1295   - }
1296   - $scope.$modalInstance.dismiss('cancel');
1297   - } else {
1298   - //Mensagem de erro de campos obrigatorios não preenchidos
  1375 + if (formDialogAcaoContingencia.$invalid) {
  1376 + //Mensagem de erro de campos obrigatorios não preenchidos
1299 1377 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1378 + return;
1300 1379 }
  1380 +
  1381 + if ($scope.estudoTecnico.etAcoesContingencia) {
  1382 + if ($scope.acaoCont.$checked) {
  1383 + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
  1384 + if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
  1385 + $scope.estudoTecnico.etAcoesContingencia[i] = $scope.acaoCont;
  1386 + }
  1387 + }
  1388 + } else {
  1389 + $scope.acaoCont.$index = $scope.estudoTecnico.etAcoesContingencia.length + 1;
  1390 + $scope.estudoTecnico.etAcoesContingencia.push($scope.acaoCont);
  1391 + }
  1392 + } else {
  1393 + $scope.acaoCont.$index = 1;
  1394 + $scope.estudoTecnico.etAcoesContingencia = [$scope.acaoCont];
  1395 + }
  1396 +
  1397 + $scope.acaoCont = {};
  1398 + if(continuarEditando){
  1399 + formDialogAcaoContingencia.$submitted = false;
  1400 + formDialogAcaoContingencia.$setPristine();
  1401 + }else{
  1402 + $scope.$modalInstance.dismiss('cancel');
  1403 + }
  1404 + $scope.atualizarListaSizeSelectAcaoContigencia();
1301 1405 };
1302 1406  
1303 1407 //Watch para calcular valor unitario
1304 1408 $scope.$watch('reqNegocio.objetivoEstrategico', function() {
1305 1409 if ($scope.reqNegocio.objetivoEstrategico && ($scope.reqNegocio.objetivoEstrategico.id)) {
1306   - ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) {
1307   - $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result;
1308   - });
  1410 + ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) {
  1411 + $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result;
  1412 + });
1309 1413 }
1310 1414 });
1311 1415  
... ... @@ -1313,13 +1417,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1313 1417 // ########################################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS AO WIZARD
1314 1418 // ###########################################
1315 1419  
1316   - $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true},
1317   - { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false},
1318   - { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false},
1319   - { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false},
1320   - { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false},
1321   - { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false},
1322   - { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ];
  1420 + $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true},
  1421 + { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false},
  1422 + { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false},
  1423 + { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false},
  1424 + { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false},
  1425 + { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false},
  1426 + { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ];
1323 1427  
1324 1428 $scope.steps = ['one', 'two', 'three', 'four', 'five', 'six', 'seven'];
1325 1429 $scope.step = 0;
... ... @@ -1339,13 +1443,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1339 1443 return $scope.step === step;
1340 1444 };
1341 1445  
1342   - // Utilizado pelo wizard para mudar para o passo desejado
  1446 + // Utilizado pelo wizard para mudar para o passo desejado
1343 1447 $scope.setCurrentStep = function(step) {
1344 1448  
1345 1449 $scope.setLoadingGet(true);
1346 1450  
1347 1451 if (step <= ($scope.step - 1)) {
1348   - $scope.templates[$scope.step].show = false;
  1452 + $scope.templates[$scope.step].show = false;
1349 1453 $scope.step = step;
1350 1454 $scope.templates[step].show = true;
1351 1455 } else {
... ... @@ -1356,7 +1460,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1356 1460 }
1357 1461  
1358 1462 if ($scope.permitidoAvancar) {
1359   - $scope.templates[$scope.step].show = false;
  1463 + $scope.templates[$scope.step].show = false;
1360 1464 $scope.step = step;
1361 1465 $scope.templates[step].show = true;
1362 1466 }
... ... @@ -1375,13 +1479,13 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1375 1479 $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true;
1376 1480 }
1377 1481 } else if ($scope.step === 1) {
1378   - if (!validStepRequisitos() && $scope.permitidoAvancar) {
1379   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
  1482 + if (!validStepRequisitos() && $scope.permitidoAvancar) {
  1483 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
1380 1484 }
1381 1485 } else if ($scope.step === 2) {
1382   - if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){
1383   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
1384   - }
  1486 + if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){
  1487 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
  1488 + }
1385 1489 } else if ($scope.step === 3) {
1386 1490 if (!validStepBeneficiosNecessidades() && $scope.permitidoAvancar) {
1387 1491 $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true;
... ... @@ -1390,7 +1494,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1390 1494 $scope.recursosNecessariosForm.$submitted = true;
1391 1495 $scope.permitidoAvancar = false;
1392 1496 } else if ($scope.step === 5 && !validStepEstrategiaContratual()) {
1393   - $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
  1497 + $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
1394 1498 } else if ($scope.step === 6) {
1395 1499 $scope.observacoesEntradaForm.$submitted = true;
1396 1500 }
... ... @@ -1421,26 +1525,26 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1421 1525  
1422 1526 // Faz com o que o wizard avance um passo
1423 1527 $scope.handleNext = function () {
1424   - $scope.setLoadingGet(true);
  1528 + $scope.setLoadingGet(true);
1425 1529  
1426   - if(!$scope.edit){
1427   - $scope.permitidoAvancar = true;
1428   - } else {
1429   - permiteAvancoFluxo();
1430   - }
  1530 + if(!$scope.edit){
  1531 + $scope.permitidoAvancar = true;
  1532 + } else {
  1533 + permiteAvancoFluxo();
  1534 + }
1431 1535  
1432   - if ($scope.permitidoAvancar){
1433   - $scope.templates[$scope.step].show = false;
1434   - $scope.step += 1;
1435   - $scope.templates[$scope.step].show = true;
1436   - }
  1536 + if ($scope.permitidoAvancar){
  1537 + $scope.templates[$scope.step].show = false;
  1538 + $scope.step += 1;
  1539 + $scope.templates[$scope.step].show = true;
  1540 + }
1437 1541  
1438   - $scope.setLoading(false);
1439   - };
  1542 + $scope.setLoading(false);
  1543 + };
1440 1544  
1441 1545 // Funcao especifica que retorna se o formulario de dados da entrada esta valido
1442 1546 function validStepPlanejamentoContratacao() {
1443   - $scope.stepValid = true;
  1547 + $scope.stepValid = true;
1444 1548  
1445 1549 if ($scope.estudoTecnicoForm.planejamentoContratacaoForm.$invalid) {
1446 1550 $scope.stepValid = false;
... ... @@ -1465,7 +1569,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1465 1569 $scope.stepValid = true;
1466 1570  
1467 1571 if ($scope.estudoTecnicoForm.levantamentoAlternativasForm.$invalid || (!$scope.estudoTecnico.etLevantamentoAlternativas || $scope.estudoTecnico.etLevantamentoAlternativas.length < 1)
1468   - || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) {
  1572 + || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) {
1469 1573 $scope.stepValid = false;
1470 1574 }
1471 1575  
... ... @@ -1474,7 +1578,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1474 1578  
1475 1579 // Funcao especifica que retorna se o formulario de beneficios e necessidades está valido
1476 1580 function validStepBeneficiosNecessidades() {
1477   - $scope.stepValid = true;
  1581 + $scope.stepValid = true;
1478 1582  
1479 1583 if ($scope.estudoTecnicoForm.beneficiosNecessidadesForm.$invalid || (!$scope.estudoTecnico.etBeneficiosEsperados || $scope.estudoTecnico.etBeneficiosEsperados.length < 1)) {
1480 1584 $scope.stepValid = false;
... ... @@ -1518,4 +1622,60 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1518 1622 return $scope.stepValid;
1519 1623 };
1520 1624  
  1625 + $scope.atualizarListaSizeSelectReqNegocio = function() {
  1626 + if(!$scope.listaSize){
  1627 + $scope.listaSize = 0;
  1628 + };
  1629 + var lista = $scope.getReqNegocioChecked();
  1630 + $scope.listaSize = lista.length;
  1631 + };
  1632 +
  1633 + $scope.atualizarListaSizeSelectSolucao = function() {
  1634 + if(!$scope.listaSizeSolucao){
  1635 + $scope.listaSizeSolucao = 0;
  1636 + };
  1637 + var lista = $scope.getSolucaoChecked();
  1638 + $scope.listaSizeSolucao = lista.length;
  1639 + };
  1640 +
  1641 + $scope.atualizarListaSizeSelectServicoSolucao = function() {
  1642 + if(!$scope.listaSizeServicoSolucao){
  1643 + $scope.listaSizeServicoSolucao = 0;
  1644 + };
  1645 + var lista = $scope.getBemServicoChecked();
  1646 + $scope.listaSizeServicoSolucao = lista.length;
  1647 + };
  1648 +
  1649 + $scope.atualizarListaSizeSelectBeneficio = function() {
  1650 + if(!$scope.listaSizeBeneficio){
  1651 + $scope.listaSizeBeneficio = 0;
  1652 + };
  1653 + var lista = $scope.getBeneficioEsperadoChecked();
  1654 + $scope.listaSizeBeneficio = lista.length;
  1655 + };
  1656 +
  1657 + $scope.atualizarListaSizeSelectRecursoMaterial = function() {
  1658 + if(!$scope.listaSizeRecursoMaterial){
  1659 + $scope.listaSizeRecursoMaterial = 0;
  1660 + };
  1661 + var lista = $scope.getRecursoMaterialChecked();
  1662 + $scope.listaSizeRecursoMaterial = lista.length;
  1663 + };
  1664 +
  1665 + $scope.atualizarListaSizeSelectRecursoHumano = function() {
  1666 + if(!$scope.listaSizeRecursoHumano){
  1667 + $scope.listaSizeRecursoHumano = 0;
  1668 + };
  1669 + var lista = $scope.getRecursoHumanoChecked();
  1670 + $scope.listaSizeRecursoHumano = lista.length;
  1671 + };
  1672 +
  1673 + $scope.atualizarListaSizeSelectAcaoContigencia = function() {
  1674 + if(!$scope.listaSizeAcaoContigencia){
  1675 + $scope.listaSizeAcaoContigencia = 0;
  1676 + };
  1677 + var lista = $scope.getAcaoContChecked();
  1678 + $scope.listaSizeAcaoContigencia = lista.length;
  1679 + };
  1680 +
1521 1681 }]);
1522 1682 \ No newline at end of file
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js
... ... @@ -235,6 +235,8 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
235 235 $scope.editPenalidade = false;
236 236 $scope.editSancao = false;
237 237 $scope.step = 0;
  238 +
  239 + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.termoReferencia, true);
238 240  
239 241 $scope.startTimerIntervalSaveDraft($scope.workspace, $scope.termoReferencia);
240 242  
... ... @@ -262,6 +264,9 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
262 264 $scope.getConfiguracoesTemplate();
263 265 $scope.preenchePapeis();
264 266 $scope.carregarValoresPadrao();
  267 + $scope.atualizarListaSizeSelect();
  268 + $scope.atualizarListaSizeSelectPenalidade();
  269 + $scope.atualizarListaSizeSelectSancao();
265 270  
266 271 };
267 272  
... ... @@ -345,100 +350,118 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
345 350 };
346 351  
347 352 // ADICIONAR Detalhamento Solucao
348   - $scope.addDetalhamentoSolucao = function(formDetalhamento) {
349   -
350   - var detalhe = $scope.termoReferenciaDetalhamentoSolucao;
351   -
352   - formDetalhamento.$submitted = true;
353   -
354   - //verifica se o formulario esta valido para salvar
355   - if (formDetalhamento.$valid) {
356   -
357   - if (detalhe.formaPagamento && detalhe.formaPagamento.codigo===1){
358   - $scope.termoReferenciaDetalhamentoSolucao.numeroParcelas = null;
359   - }
360   -
361   - $scope.setLoadingSalva(true);
362   -
363   - var isDuplicado = false;
364   - angular.forEach($scope.termoReferencia.detalhamentosSolucoes, function (item, idx) {
365   - if (item.bemServicoSolucao.id === detalhe.bemServicoSolucao.id) {
366   - isDuplicado = true;
367   - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.BENS_E_SERVICOS_JA_ADD'), " ", false);
368   - return;
369   - }
370   - });
371   -
372   - if (!isDuplicado) {
373   -
374   - if (detalhe.$index != undefined && detalhe.$index != null) {
375   - $scope.termoReferencia.detalhamentosSolucoes[detalhe.$index] = detalhe;
376   - } else {
377   - $scope.termoReferencia.detalhamentosSolucoes.push(detalhe);
378   - }
379   -
380   -// $scope.atualizaListaEtBensServicos();
381   - $scope.$modalInstance.dismiss('cancel');
382   - }
383   - $scope.setLoadingSalva(false);
384   -
385   - } else {
386   - //Mensagem de erro de campos obrigatorios nao preenchidos
387   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
388   - }
  353 + $scope.addDetalhamentoSolucao = function(formDetalhamento, continuarEditando) {
  354 +
  355 + var detalhe = $scope.termoReferenciaDetalhamentoSolucao;
  356 + formDetalhamento.$submitted = true;
  357 +
  358 + //verifica se o formulario esta valido para salvar
  359 + if (formDetalhamento.$invalid) {
  360 + //Mensagem de erro de campos obrigatorios nao preenchidos
  361 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  362 + return;
  363 + }
  364 +
  365 + if (detalhe.formaPagamento && detalhe.formaPagamento.codigo===1){
  366 + $scope.termoReferenciaDetalhamentoSolucao.numeroParcelas = null;
  367 + }
  368 + $scope.setLoadingSalva(true);
  369 + var isDuplicado = false;
  370 + angular.forEach($scope.termoReferencia.detalhamentosSolucoes, function (item, idx) {
  371 + if (item.bemServicoSolucao.id === detalhe.bemServicoSolucao.id) {
  372 + isDuplicado = true;
  373 + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.BENS_E_SERVICOS_JA_ADD'), " ", false);
  374 + return;
  375 + }
  376 + });
  377 +
  378 + if (!isDuplicado) {
  379 +
  380 + if (detalhe.$index != undefined && detalhe.$index != null) {
  381 + $scope.termoReferencia.detalhamentosSolucoes[detalhe.$index] = detalhe;
  382 + } else {
  383 + $scope.termoReferencia.detalhamentosSolucoes.push(detalhe);
  384 + }
  385 +
  386 + if(continuarEditando){
  387 + formDetalhamento.$submitted = false;
  388 + formDetalhamento.$setPristine();
  389 + $scope.termoReferenciaDetalhamentoSolucao = {};
  390 + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes;
  391 + }else{
  392 + $scope.$modalInstance.dismiss('cancel');
  393 + }
  394 + $scope.atualizarListaSizeSelect();
  395 + }
  396 +
  397 + $scope.setLoadingSalva(false);
  398 +
389 399 };
390 400  
391 401 // ADICIONAR Penalidade
392   - $scope.addPenalidade = function(formPenalidade) {
  402 + $scope.addPenalidade = function(formPenalidade, continuarEditando) {
393 403  
394 404 var penalid = $scope.penalidade;
395 405  
396 406 formPenalidade.$submitted = true;
397 407  
398 408 //verifica se o formulario esta valido para salvar
399   - if (formPenalidade.$valid) {
400   -
401   - $scope.setLoadingSalva(true);
402   -
403   - if (penalid.$index != undefined && penalid.$index != null) {
404   - $scope.termoReferencia.penalidades[penalid.$index] = penalid;
405   - } else {
406   - $scope.termoReferencia.penalidades.push(penalid);
407   - }
  409 + if (formPenalidade.$invalid) {
  410 + //Mensagem de erro de campos obrigatorios nao preenchidos
  411 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  412 + return;
  413 + }
408 414  
409   - $scope.setLoadingSalva(false);
410   - $scope.$modalInstance.dismiss('cancel');
  415 + $scope.setLoadingSalva(true);
411 416  
  417 + if (penalid.$index != undefined && penalid.$index != null) {
  418 + $scope.termoReferencia.penalidades[penalid.$index] = penalid;
412 419 } else {
413   - //Mensagem de erro de campos obrigatorios nao preenchidos
414   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  420 + $scope.termoReferencia.penalidades.push(penalid);
415 421 }
  422 +
  423 + $scope.setLoadingSalva(false);
  424 +
  425 + if(continuarEditando){
  426 + formPenalidade.$submitted = false;
  427 + formPenalidade.$setPristine();
  428 + $scope.penalidade = {};
  429 + }else{
  430 + $scope.$modalInstance.dismiss('cancel');
  431 + }
  432 + $scope.atualizarListaSizeSelectPenalidade();
416 433 };
417 434  
418 435 // ADICIONAR Penalidade
419   - $scope.addSancao = function(formSancao) {
  436 + $scope.addSancao = function(formSancao, continuarEditando) {
420 437  
421 438 var sans = $scope.sancao;
422 439  
423 440 formSancao.$submitted = true;
424 441  
425 442 //verifica se o formulario esta valido para salvar
426   - if (formSancao.$valid) {
  443 + if (formSancao.$invalid) {
  444 + //Mensagem de erro de campos obrigatorios nao preenchidos
  445 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  446 + return;
  447 + }
427 448  
428   - $scope.setLoadingSalva(true);
  449 + $scope.setLoadingSalva(true);
429 450  
430   - if (sans.$index != undefined && sans.$index != null) {
431   - $scope.termoReferencia.sancoes[sans.$index] = sans;
432   - } else {
433   - $scope.termoReferencia.sancoes.push(sans);
434   - }
  451 + if (sans.$index != undefined && sans.$index != null) {
  452 + $scope.termoReferencia.sancoes[sans.$index] = sans;
  453 + } else {
  454 + $scope.termoReferencia.sancoes.push(sans);
  455 + }
435 456  
436   - $scope.setLoadingSalva(false);
437   - $scope.$modalInstance.dismiss('cancel');
  457 + $scope.setLoadingSalva(false);
438 458  
  459 + if(continuarEditando){
  460 + formSancao.$submitted = false;
  461 + formSancao.$setPristine();
  462 + $scope.sancao = {};
439 463 } else {
440   - //Mensagem de erro de campos obrigatorios nao preenchidos
441   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  464 + $scope.$modalInstance.dismiss('cancel');
442 465 }
443 466 };
444 467  
... ... @@ -502,6 +525,7 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
502 525 $scope.termoReferencia.detalhamentosSolucoes[i].$checked = false;
503 526 }
504 527 }
  528 + $scope.atualizarListaSizeSelect();
505 529 });
506 530 };
507 531  
... ... @@ -528,6 +552,7 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
528 552 $scope.termoReferencia.penalidades[i].$checked = false;
529 553 }
530 554 }
  555 + $scope.atualizarListaSizeSelectPenalidade();
531 556 });
532 557 };
533 558  
... ... @@ -554,6 +579,7 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
554 579 $scope.termoReferencia.sancoes[i].$checked = false;
555 580 }
556 581 }
  582 + $scope.atualizarListaSizeSelectSancao();
557 583 });
558 584 };
559 585  
... ... @@ -601,17 +627,20 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
601 627  
602 628 //###################### METODOS DA BARRA DE ACOES DO FORMULARIO ####################################
603 629  
  630 + function setFormsTermoReferenciaSubmitted(valor){
  631 + $scope.termoReferenciaForm.$submitted = valor;
  632 + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = valor;
  633 + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = valor;
  634 + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = valor;
  635 + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = valor;
  636 + $scope.termoReferenciaForm.sancoesForm.$submitted = valor;
  637 + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = valor;
  638 + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = valor;
  639 + }
604 640 // SALVA O TERMO
605 641 $scope.saveOrUpdate = function(){
606 642  
607   - $scope.termoReferenciaForm.$submitted = true;
608   - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = true;
609   - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = true;
610   - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = true;
611   - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = true;
612   - $scope.termoReferenciaForm.sancoesForm.$submitted = true;
613   - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = true;
614   - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = true;
  643 + setFormsTermoReferenciaSubmitted(true);
615 644  
616 645 //Vefifica se o termoReferenciaForm esta invalido, caso esteja envia um alerta para o usuario
617 646 if($scope.termoReferenciaForm.$invalid){
... ... @@ -638,11 +667,15 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
638 667 TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) {
639 668  
640 669 $scope.termoReferencia = result.originalElement;
  670 + $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico);
  671 + $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico);
  672 + $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico);
  673 +
641 674 $scope.setLoading(false);
642 675 $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_TERMO_REFERENCIA'));
643 676 // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver
644 677 salvarListaDocumentos(termoTemp);
645   - $scope.termoReferenciaForm.$submitted = false;
  678 + setFormsTermoReferenciaSubmitted(false);
646 679 });
647 680 };
648 681 };
... ... @@ -674,19 +707,20 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
674 707 };
675 708  
676 709 // MODAL QUE CONFIRMA REMOVER TERMO
677   - $scope.remove = function(termo){
  710 + $scope.remover = function(termo){
678 711 $scope.$openModalConfirm({
679 712 message: $translate.instant('MSG.CONFIRMA_EXCLUIR_TERMO_REFERENCIA'),
680 713 callback: function () {
681 714 TermoReferenciaRepository.remove(termo).then(function() {
682 715 $scope.termoReferencia = {};
683 716  
684   - $scope.$modalConfirmInstance.dismiss('cancel');
685 717 $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_TERMO_REFERENCIA'));
686 718 angular.element('#searchTermoReferencia').scope().fetchResult();
687 719  
688   - $scope.resetForm();
689 720 });
  721 +
  722 + $scope.$modalConfirmInstance.dismiss('cancel');
  723 + $scope.resetForm();
690 724 }
691 725 });
692 726 };
... ... @@ -774,9 +808,9 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
774 808 }
775 809 });
776 810  
777   - $scope.$modalConfirmInstance.dismiss('cancel');
778   -
779 811 $scope.termoReferencia.penalidades.splice(index, 1);
  812 + $scope.atualizarListaSizeSelectPenalidade();
  813 + $scope.$modalConfirmInstance.dismiss('cancel');
780 814 }
781 815 });
782 816 } else {
... ... @@ -803,9 +837,10 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
803 837 }
804 838 });
805 839  
806   - $scope.$modalConfirmInstance.dismiss('cancel');
807 840  
808 841 $scope.termoReferencia.sancoes.splice(index, 1);
  842 + $scope.atualizarListaSizeSelectSancao();
  843 + $scope.$modalConfirmInstance.dismiss('cancel');
809 844 }
810 845 });
811 846 }
... ... @@ -830,9 +865,9 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
830 865 }
831 866 });
832 867  
  868 + $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1);
  869 + $scope.atualizarListaSizeSelect();
833 870 $scope.$modalConfirmInstance.dismiss('cancel');
834   -
835   - $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1);
836 871 }
837 872 });
838 873 } else {
... ... @@ -1038,13 +1073,13 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
1038 1073 case 3 :
1039 1074 //modeloGestaoForm
1040 1075 return {'active': $scope.isCurrentStep(step),
1041   - 'complete' : (isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm) || $scope.step > step)};
  1076 + 'complete' : ($scope.step > step || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm)))};
1042 1077 break;
1043 1078 case 4 :
1044 1079 //sancoesForm
1045 1080 return {'active': $scope.isCurrentStep(step),
1046 1081 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.sancoesForm) && ($scope.termoReferencia.sancoes.length >= 1 && $scope.termoReferencia.penalidades.length >= 1)),
1047   - 'invalid' : ((isFormSubmited($scope.termoReferenciaForm.sancoesForm) || $scope.step > step) && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))};
  1082 + 'invalid' : ($scope.step > step && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))};
1048 1083 break;
1049 1084 case 5 :
1050 1085 //criteriosSelecaoForm
... ... @@ -1055,7 +1090,7 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
1055 1090 case 6 :
1056 1091 //anexosObservacoesForm
1057 1092 return {'active': $scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm),
1058   - 'complete' : ($scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm))};
  1093 + 'complete' : ($scope.isCurrentStep(step) || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm)))};
1059 1094 break;
1060 1095 };
1061 1096 };
... ... @@ -1064,5 +1099,47 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
1064 1099 return {'active': false, 'complete' : true, 'invalid' : false};
1065 1100 };
1066 1101  
  1102 + $scope.atualizarListaSizeSelect = function() {
  1103 + $timeout(function(){
  1104 + if(!$scope.listaSize){
  1105 + $scope.listaSize = 0;
  1106 + };
  1107 + var lista = [];
  1108 + var objChecked = (clone($scope.getDetalhamentoSolucaoChecked()));
  1109 + if(objChecked != undefined){
  1110 + lista.push(objChecked);
  1111 + }
  1112 + $scope.listaSize = lista.length;
  1113 + });
  1114 + };
  1115 +
  1116 + $scope.atualizarListaSizeSelectPenalidade = function() {
  1117 + $timeout(function(){
  1118 + if(!$scope.listaSizePenalidade){
  1119 + $scope.listaSizePenalidade = 0;
  1120 + };
  1121 + var lista = [];
  1122 + var objChecked = (clone($scope.getPenalidadeChecked()));
  1123 + if(objChecked != undefined){
  1124 + lista.push(objChecked);
  1125 + }
  1126 + $scope.listaSizePenalidade = lista.length;
  1127 + });
  1128 + };
  1129 +
  1130 + $scope.atualizarListaSizeSelectSancao = function() {
  1131 + $timeout(function(){
  1132 + if(!$scope.listaSizeSancao){
  1133 + $scope.listaSizeSancao = 0;
  1134 + };
  1135 + var lista = [];
  1136 + var objChecked = (clone($scope.getSancaoChecked()));
  1137 + if(objChecked != undefined){
  1138 + lista.push(objChecked);
  1139 + }
  1140 + $scope.listaSizeSancao = lista.length;
  1141 + });
  1142 + };
  1143 +
1067 1144 }]);
1068 1145  
... ...
cit-contratos-web/src/main/webapp/html/contrato/contratoList.html
... ... @@ -21,6 +21,10 @@
21 21 <button class="btn btn-clear" ng-click="exportarCSV(filterCriteria, headers, 'ContratoRepository', 'LABEL.CONTRATO')" type="button">
22 22 <i class="fa fa-file-excel-o"></i> <translate>LABEL.EXPORTAR_CSV</translate>
23 23 </button>
  24 +
  25 + <button class="btn btn-clear" ng-click="showListRascunho(workspace.name)" type="button">
  26 + <i class="fa fa-list"></i> <translate>PORTAL.LABEL.SHOW_RASCUNHO</translate>
  27 + </button>
24 28  
25 29 <!-- <button class="btn btn-clear" ng-click="remove();">
26 30 <i class="fa fa-times red"></i>
... ... @@ -56,4 +60,4 @@
56 60  
57 61 <list-view ng-lista="contratosList" ng-repository="ContratoRepository" ng-use-custom-remove="false" ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="contratoChecked"></list-view>
58 62  
59   -</div><!-- .page-content -->
60 63 \ No newline at end of file
  64 +</div><!-- .page-content -->
... ...