public String deleteSelected() {
   NovoLog novoLog = new NovoLog();
   Dao dao = new Dao();
   novoLog.startList();
   if (selectedCnaeConvencao != null) {
     dao.openTransaction();
     for (int i = 0; i < selectedCnaeConvencao.size(); i++) {
       if (!dao.delete(selectedCnaeConvencao.get(i))) {
         dao.rollback();
         GenericaMensagem.warn("Erro", "Ao excluir registro!");
         novoLog.cancelList();
         return null;
       }
       novoLog.delete(
           "ID: "
               + selectedCnaeConvencao.get(i).getId()
               + " - Cnae: ("
               + selectedCnaeConvencao.get(i).getCnae().getId()
               + ") "
               + selectedCnaeConvencao.get(i).getCnae().getCnae()
               + " - "
               + selectedCnaeConvencao.get(i).getCnae().getNumero()
               + " - Descrição: "
               + selectedCnaeConvencao.get(i).getConvencao().getDescricao());
     }
     novoLog.saveList();
     dao.commit();
     listCnaes.clear();
     listCnaesConvencao.clear();
     GenericaMensagem.info("Sucesso", "Registro(s) removido(s)");
     selectedCnae = null;
     selectedCnaeConvencao = null;
   }
   return null;
 }
 private synchronized String insertMensagem(
     int idConv, int idGrupo, int idServ, int idTipo, String referencia, String vencimento) {
   Dao dao = new Dao();
   MensagemConvencaoDB db = new MensagemConvencaoDBToplink();
   String result = "";
   mensagemConvencao.setConvencao((Convencao) dao.find(new Convencao(), idConv));
   mensagemConvencao.setGrupoCidade((GrupoCidade) dao.find(new GrupoCidade(), idGrupo));
   mensagemConvencao.setServicos((Servicos) dao.find(new Servicos(), idServ));
   mensagemConvencao.setTipoServico((TipoServico) dao.find(new TipoServico(), idTipo));
   mensagemConvencao.setReferencia(referencia);
   mensagemConvencao.setVencimento(vencimento);
   NovoLog novoLog = new NovoLog();
   MensagemConvencao menConvencao =
       db.verificaMensagem(idConv, idServ, idTipo, idGrupo, referencia);
   try {
     if (menConvencao == null) {
       dao.openTransaction();
       if (dao.save(mensagemConvencao)) {
         novoLog.save(
             " - Referência: "
                 + mensagemConvencao.getReferencia()
                 + " - Vencimento: "
                 + mensagemConvencao.getVencimento()
                 + " - Serviço: ("
                 + mensagemConvencao.getServicos().getId()
                 + ") "
                 + " - Tipo Serviço: ("
                 + mensagemConvencao.getTipoServico().getId()
                 + ") "
                 + mensagemConvencao.getTipoServico().getDescricao()
                 + " - Convenção: ("
                 + mensagemConvencao.getConvencao().getId()
                 + ") "
                 + mensagemConvencao.getConvencao().getDescricao()
                 + " - Grupo Cidade: ("
                 + mensagemConvencao.getGrupoCidade().getId()
                 + ") "
                 + mensagemConvencao.getGrupoCidade().getDescricao()
                 + " - Mensagem Compensação: "
                 + mensagemConvencao.getMensagemCompensacao()
                 + " - Mensagem Contribuinte: "
                 + mensagemConvencao.getMensagemContribuinte());
         dao.commit();
         mensagemConvencao.setId(-1);
         result = "Mensagem salva com Sucesso!";
       } else {
         result = "Erro ao salvar mensagem!";
         dao.rollback();
       }
     } else if (menConvencao.getId() == -1) {
       result = "Mensagem ja existe!";
     } else {
       result = "Mensagem ja existe!";
     }
   } catch (Exception e) {
   }
   return result;
 }
 public String excluir() {
   if (mensagemConvencao.getId() != -1) {
     NovoLog novoLog = new NovoLog();
     Dao dao = new Dao();
     mensagemConvencao = (MensagemConvencao) dao.find(mensagemConvencao);
     dao.openTransaction();
     if (dao.delete(mensagemConvencao)) {
       novoLog.delete(
           " - Referência: "
               + mensagemConvencao.getReferencia()
               + " - Vencimento: "
               + mensagemConvencao.getVencimento()
               + " - Serviço: ("
               + mensagemConvencao.getServicos().getId()
               + ") "
               + " - Tipo Serviço: ("
               + mensagemConvencao.getTipoServico().getId()
               + ") "
               + mensagemConvencao.getTipoServico().getDescricao()
               + " - Convenção: ("
               + mensagemConvencao.getConvencao().getId()
               + ") "
               + mensagemConvencao.getConvencao().getDescricao()
               + " - Grupo Cidade: ("
               + mensagemConvencao.getGrupoCidade().getId()
               + ") "
               + mensagemConvencao.getGrupoCidade().getDescricao()
               + " - Mensagem Compensação: "
               + mensagemConvencao.getMensagemCompensacao()
               + " - Mensagem Contribuinte: "
               + mensagemConvencao.getMensagemContribuinte());
       dao.commit();
       msgConfirma = "Mensagem Excluida com Sucesso!";
       GenericaMensagem.info("Sucesso", msgConfirma);
     } else {
       dao.rollback();
       msgConfirma = "Mensagem não pode ser Excluida!";
       GenericaMensagem.warn("Erro", msgConfirma);
     }
   } else {
     GenericaMensagem.warn("Erro", "Pesquise uma mensagem para ser Excluída!");
   }
   return null;
 }
 public void delete(Correcao co) {
   correcao = co;
   DaoInterface di = new Dao();
   NovoLog novoLog = new NovoLog();
   if (di.delete(correcao, true)) {
     novoLog.delete(
         "ID: "
             + correcao.getId()
             + " - Índice: ("
             + correcao.getIndice().getId()
             + ") "
             + " - Serviços: ("
             + correcao.getServicos().getId()
             + ") "
             + correcao.getServicos().getDescricao()
             + " - Período: "
             + correcao.getReferenciaInicial()
             + " - "
             + correcao.getReferenciaFinal()
             + " - Juros Diário: "
             + correcao.getJurosDiarios()
             + " - Juros 1º Mês: "
             + correcao.getJurosPriMes()
             + " - Juros >= 2º Mês: "
             + correcao.getJurosApartir2Mes()
             + " - Multa por Funcionário: "
             + correcao.getMultaPorFuncionario()
             + " - Multa 1º Mês: "
             + correcao.getMultaPriMes()
             + " - Multa >= 2º Mês: "
             + correcao.getMultaApartir2Mes());
     GenericaMensagem.info("Sucesso", "Correção Excluida");
   } else {
     GenericaMensagem.warn("Erro", "Erro ao excluir Correção!");
   }
   correcao = new Correcao();
   listIndices.clear();
   listServicos.clear();
   listaCorrecao.clear();
 }
 public void adddeleteSelected() {
   if (selectedCnae != null) {
     NovoLog novoLog = new NovoLog();
     novoLog.startList();
     int iConvencao = Integer.parseInt(getListConvencao().get(idConvencao).getDescription());
     Dao dao = new Dao();
     Convencao convencao = (Convencao) dao.find(new Convencao(), iConvencao);
     dao.openTransaction();
     for (int i = 0; i < selectedCnae.size(); i++) {
       CnaeConvencao cnaeConvencao = new CnaeConvencao(-1, (Cnae) selectedCnae.get(i), convencao);
       if (dao.save(cnaeConvencao)) {
         novoLog.save(
             "ID: "
                 + cnaeConvencao.getId()
                 + " - Cnae: ("
                 + cnaeConvencao.getCnae().getId()
                 + ") "
                 + cnaeConvencao.getCnae().getCnae()
                 + " - "
                 + cnaeConvencao.getCnae().getNumero()
                 + " - Descrição: "
                 + cnaeConvencao.getConvencao().getDescricao());
         GenericaMensagem.info("Sucesso", "Registro adicionado");
       } else {
         novoLog.cancelList();
         dao.rollback();
         GenericaMensagem.warn("Erro", "Ao adicionar registro");
         return;
       }
     }
     novoLog.saveList();
     dao.commit();
     listCnaes.clear();
     listCnaesConvencao.clear();
     selectedCnae = null;
     selectedCnaeConvencao = null;
   }
 }
 public void save() {
   CorrecaoDao db = new CorrecaoDao();
   Dao dao = new Dao();
   NovoLog novoLog = new NovoLog();
   Servicos servico =
       (Servicos)
           dao.find(
               new Servicos(),
               Integer.parseInt(getListServicos().get(idServicos).getDescription()));
   correcao.setIndice(
       (Indice)
           dao.find(
               new Indice(), Integer.parseInt(getListIndices().get(idIndices).getDescription())));
   correcao.setServicos(servico);
   if (correcao.getId() == -1) {
     if (DataHoje.validaReferencias(
         correcao.getReferenciaInicial(), correcao.getReferenciaFinal())) {
       List dd =
           db.pesquisaRefValida(
               servico, correcao.getReferenciaInicial(), correcao.getReferenciaFinal());
       if (Integer.parseInt(String.valueOf((Long) dd.get(0))) == 0) {
         if (dao.save(correcao, true)) {
           novoLog.save(
               "ID: "
                   + correcao.getId()
                   + " - Índice: ("
                   + correcao.getIndice().getId()
                   + ") "
                   + " - Serviços: ("
                   + correcao.getServicos().getId()
                   + ") "
                   + correcao.getServicos().getDescricao()
                   + " - Período: "
                   + correcao.getReferenciaInicial()
                   + " - "
                   + correcao.getReferenciaFinal()
                   + " - Juros Diário: "
                   + correcao.getJurosDiarios()
                   + " - Juros 1º Mês: "
                   + correcao.getJurosPriMes()
                   + " - Juros >= 2º Mês: "
                   + correcao.getJurosApartir2Mes()
                   + " - Multa por Funcionário: "
                   + correcao.getMultaPorFuncionario()
                   + " - Multa 1º Mês: "
                   + correcao.getMultaPriMes()
                   + " - Multa >= 2º Mês: "
                   + correcao.getMultaApartir2Mes());
           GenericaMensagem.info("Sucesso", "Correção Salva");
           correcao = new Correcao();
           idIndices = 0;
           idServicos = 0;
         } else {
           GenericaMensagem.warn("Erro", "Erro ao Salvar!");
         }
       } else {
         GenericaMensagem.warn("Validação", "Correção já existente!");
       }
     } else {
       GenericaMensagem.warn("Validação", "Referencia Invalida!");
     }
   } else if (DataHoje.validaReferencias(
       correcao.getReferenciaInicial(), correcao.getReferenciaFinal())) {
     Correcao c = (Correcao) dao.find(correcao);
     String beforeUpdate =
         "ID: "
             + c.getId()
             + " - Índice: ("
             + c.getIndice().getId()
             + ") "
             + " - Serviços: ("
             + c.getServicos().getId()
             + ") "
             + c.getServicos().getDescricao()
             + " - Período: "
             + c.getReferenciaInicial()
             + " - "
             + c.getReferenciaFinal()
             + " - Juros Diário: "
             + c.getJurosDiarios()
             + " - Juros 1º Mês: "
             + c.getJurosPriMes()
             + " - Juros >= 2º Mês: "
             + c.getJurosApartir2Mes()
             + " - Multa por Funcionário: "
             + correcao.getMultaPorFuncionario()
             + " - Multa 1º Mês: "
             + c.getMultaPriMes()
             + " - Multa >= 2º Mês: "
             + c.getMultaApartir2Mes();
     if (dao.update(correcao, true)) {
       novoLog.update(
           beforeUpdate,
           "ID: "
               + correcao.getId()
               + " - Índice: ("
               + correcao.getIndice().getId()
               + ") "
               + " - Serviços: ("
               + correcao.getServicos().getId()
               + ") "
               + correcao.getServicos().getDescricao()
               + " - Período: "
               + correcao.getReferenciaInicial()
               + " - "
               + correcao.getReferenciaFinal()
               + " - Juros Diário: "
               + correcao.getJurosDiarios()
               + " - Juros 1º Mês: "
               + correcao.getJurosPriMes()
               + " - Juros >= 2º Mês: "
               + correcao.getJurosApartir2Mes()
               + " - Multa por Funcionário: "
               + correcao.getMultaPorFuncionario()
               + " - Multa 1º Mês: "
               + correcao.getMultaPriMes()
               + " - Multa >= 2º Mês: "
               + correcao.getMultaApartir2Mes());
       GenericaMensagem.info("Sucesso", "Correção Atualizada!");
       correcao = new Correcao();
       idIndices = 0;
       idServicos = 0;
     } else {
       GenericaMensagem.warn("Erro", "Erro ao atualizar!");
     }
   } else {
     GenericaMensagem.warn("Validação", "Referencia Invalida!");
   }
   listaCorrecao.clear();
 }
  public void print(List vector) {
    printed = false;
    Dao dao = new Dao();
    List<List> list = new ArrayList();
    if (!listaSelecionado.isEmpty() && vector == null) {
      list = listaSelecionado;
    } else if (vector != null) {
      list.add(vector);
    }
    String printLog = "";
    NovoLog novoLog = new NovoLog();
    novoLog.startList();
    if (!list.isEmpty()) {
      dao.openTransaction();
      SocioCarteirinhaDao dbc = new SocioCarteirinhaDao();
      DataHoje dh = new DataHoje();
      SociosDao dbs = new SociosDao();
      for (int i = 0; i < list.size(); i++) {
        Integer nrValidadeMeses = 0;
        Integer titular_id = (Integer) ((List) list.get(i)).get(40);
        Pessoa pessoa = (Pessoa) dao.find(new Pessoa(), (Integer) ((List) list.get(i)).get(0));
        Socios socios = dbs.pesquisaSocioPorPessoa(pessoa.getId());
        ValidadeCartao validadeCartao = new ValidadeCartao();
        SocioCarteirinha carteirinha =
            (SocioCarteirinha)
                dao.find(new SocioCarteirinha(), (Integer) ((List) list.get(i)).get(19));
        if (socios.getId() != -1) {
          validadeCartao =
              new ValidadeCartaoDao()
                  .findByCategoriaParentesco(
                      socios.getMatriculaSocios().getCategoria().getId(),
                      socios.getParentesco().getId());
          if (validadeCartao == null) {
            GenericaMensagem.warn("Validação", "Nenhuma validade de cartão encontrada!");
            dao.rollback();
            return;
          }
          nrValidadeMeses = validadeCartao.getNrValidadeMeses();
        } else {
          nrValidadeMeses = configuracaoSocial.getValidadeMesesCartaoAcademia();
        }
        if (socios.getId() != -1 && socios.getMatriculaSocios().getId() != -1) {
          Date validadeCarteirinha;
          if (validadeCartao.getDtValidadeFixa() == null) {
            validadeCarteirinha =
                DataHoje.converte(dh.incrementarMeses(nrValidadeMeses, DataHoje.data()));
          } else {
            validadeCarteirinha = validadeCartao.getDtValidadeFixa();
          }
          carteirinha.setDtValidadeCarteirinha(validadeCarteirinha);
        } else {
          carteirinha.setDtValidadeCarteirinha(
              DataHoje.converte(dh.incrementarMeses(nrValidadeMeses, DataHoje.data())));
        }
        boolean validacao = false;
        if (pessoa.getSocios().getId() != -1) {
          Fisica f = new FisicaDao().pesquisaFisicaPorPessoa(pessoa.getId());
          if (pessoa.getSocios().getMatriculaSocios().getCategoria().isEmpresaObrigatoria()
              && f.getDtAposentadoria() == null
              && titular_id == pessoa.getId()) {
            PessoaEmpresaDao db = new PessoaEmpresaDao();
            PessoaEmpresa pe = db.pesquisaPessoaEmpresaPorPessoa(pessoa.getId());
            // PessoaEmpresa pe = db.pesquisaPessoaEmpresaPorPessoa(titular_id);
            if (pe.getId() == -1) {
              GenericaMensagem.error(
                  "Atenção", "Empresa Não Vinculada a pessoa " + pessoa.getNome());
              validacao = true;
              listaSelecionado = new ArrayList();
            }
          }
          listaSelecionado.remove(vector);
        }

        if (validacao) {
          dao.rollback();
          return;
        }

        String descricao_historico = "Impressão de Carteirinha";
        if (configuracaoSocial.getAtualizaViaCarteirinha()) {
          carteirinha.setVia(carteirinha.getVia() + 1);
          descricao_historico = "Impressão de " + carteirinha.getVia() + "° via do cartão";
          list.get(i).set(11, carteirinha.getVia());
        }

        carteirinha.setEmissao(DataHoje.data());
        if (!dao.update(carteirinha)) {
          dao.rollback();
          return;
        }

        list.get(i).set(6, carteirinha.getValidadeCarteirinha());
        HistoricoCarteirinha hc = new HistoricoCarteirinha();

        hc.setCarteirinha(carteirinha);
        hc.setDescricao(descricao_historico);

        if (list.get(i).get(17) != null) {
          Movimento m =
              (Movimento)
                  dao.find(new Movimento(), Integer.valueOf(list.get(i).get(17).toString()));
          if (m != null) {
            hc.setMovimento(m);
          }
        }

        if (!dao.save(hc)) {
          dao.rollback();
          return;
        }

        // AutorizaImpressaoCartao ai = dbc.pesquisaAutorizaSemHistorico(pessoa.getId(),
        // modeloc.getId());
        AutorizaImpressaoCartao ai =
            dbc.pesquisaAutorizaSemHistorico(
                pessoa.getId(), carteirinha.getModeloCarteirinha().getId());

        if (ai != null) {
          ai.setHistoricoCarteirinha(hc);
          if (!dao.update(ai)) {
            dao.rollback();
            return;
          }
        }
        printLog =
            "ID"
                + hc.getId()
                + " - Pessoa {ID: "
                + pessoa.getId()
                + " - Nome: "
                + pessoa.getNome()
                + " }"
                + " - Impresso por {ID: "
                + hc.getCarteirinha().getModeloCarteirinha().getId()
                + " - Nome: "
                + hc.getCarteirinha().getModeloCarteirinha().getDescricao()
                + " }";
        novoLog.setTabela("soc_historico_carteirinha");
        novoLog.setCodigo(hc.getId());
      }

      if (ImpressaoParaSocios.imprimirCarteirinha(list)) {
        dao.commit();
        if (status.equals("nao_impressos")) {
          printed = false;
        }
        if (disabledImpressaoExterna) {
          disabledImpressaoExterna = false;
          GenericaSessao.put("status", "hoje");
        }
        listaCarteirinha = new ArrayList();
        listaSelecionado = new ArrayList();
        listaSelecionadoMemoria = new ArrayList();
        novoLog.print(printLog);
        novoLog.saveList();
      } else {
        novoLog.cancelList();
        dao.rollback();
      }
    }
  }
  public synchronized String salvar() {
    MensagemConvencaoDB db = new MensagemConvencaoDBToplink();
    ConvencaoCidadeDB dbc = new ConvencaoCidadeDBToplink();
    DataHoje dataHoje = new DataHoje();
    mensagemConvencao.setVencimento(vencimento);

    if (!mensagemConvencao.getVencimento().equals(vencimento)) {
      msgConfirma = "Este vencimento esta incorreto!";
      GenericaMensagem.warn("Erro", msgConfirma);
      return null;
    }

    if ((mensagemConvencao.getReferencia().length() != 7)
        && (Integer.parseInt(this.getListaTipoServico().get(idTipoServico).getDescription())
            != 4)) {
      msgConfirma = "Referência esta incorreta";
      GenericaMensagem.warn("Erro", msgConfirma);
      return null;
    }

    if (DataHoje.converteData(mensagemConvencao.getDtVencimento()) == null) {
      msgConfirma = "Informe o vencimento";
      GenericaMensagem.warn("Erro", msgConfirma);
      return null;
    }

    try {
      if (mensagemConvencao.getId() == -1) {
        // SE ACORDO FOR FALSO ----------------------------------------------------
        if (mensagemConvencao.getReferencia().length() != 7 && !disAcordo) {
          msgConfirma = "Digite uma referencia!";
          GenericaMensagem.warn("Erro", msgConfirma);
          return null;
        }

        int ano = 0;
        String referencia = "", vencto = "", diaOriginal = "";
        int iservicos = Integer.parseInt(this.getListaServico().get(idServico).getDescription()),
            itiposervico =
                Integer.parseInt(this.getListaTipoServico().get(idTipoServico).getDescription());
        if (gerarAno && !disAcordo) {
          ano = 12;
          referencia = "01/01/" + mensagemConvencao.getReferencia().substring(3);
          diaOriginal = mensagemConvencao.getVencimento().substring(0, 2);
          vencto = diaOriginal + "/01/" + mensagemConvencao.getVencimento().substring(6, 10);
          if (iservicos == 1) {
            vencto = dataHoje.incrementarMesesUltimoDia(1, vencto);
          } else {
            vencto = dataHoje.incrementarMeses(1, vencto);
          }
        } else {
          ano = 1;
          referencia = mensagemConvencao.getReferencia();
          diaOriginal = mensagemConvencao.getVencimento().substring(0, 2);
          vencto = mensagemConvencao.getVencimento();
        }

        switch (processarGrupos) {
            //  SALVAR PARA TODOS OS GRUPOS DESTA CONVENÇÃO
          case 1:
            {
              int conv =
                  Integer.parseInt(this.getListaConvencoes().get(idConvencao).getDescription());
              List<GrupoCidade> listgc = dbc.pesquisarGruposPorConvencao(conv);
              for (int l = 0; l < ano; l++) {
                for (int k = 0; k < listgc.size(); k++) {
                  if (gerarAno && !disAcordo) {
                    msgConfirma =
                        this.insertMensagem(
                            conv,
                            listgc.get(k).getId(),
                            iservicos,
                            itiposervico,
                            referencia.substring(3),
                            vencto);
                  } else {
                    msgConfirma =
                        this.insertMensagem(
                            conv,
                            listgc.get(k).getId(),
                            iservicos,
                            itiposervico,
                            referencia,
                            vencto);
                  }
                }
                referencia = dataHoje.incrementarMeses(1, referencia);
                if (iservicos == 1) {
                  vencto = dataHoje.incrementarMesesUltimoDia(1, vencto);
                } else {
                  vencto = diaOriginal + vencto.substring(2, 10);
                  vencto = dataHoje.incrementarMeses(1, vencto);
                }
              }
              break;
            }
            // SALVAR PARA TODAS AS CONVENÇÕES DESTE GRUPO
          case 2:
            {
              int grupoC =
                  Integer.parseInt(this.getListaGrupoCidade().get(idGrupo).getDescription());
              List<Convencao> listc = dbc.pesquisarConvencaoPorGrupos(grupoC);
              for (int l = 0; l < ano; l++) {
                for (int k = 0; k < listc.size(); k++) {
                  if (gerarAno && !disAcordo) {
                    msgConfirma =
                        this.insertMensagem(
                            listc.get(k).getId(),
                            grupoC,
                            iservicos,
                            itiposervico,
                            referencia.substring(3),
                            vencto);
                  } else {
                    msgConfirma =
                        this.insertMensagem(
                            listc.get(k).getId(),
                            grupoC,
                            iservicos,
                            itiposervico,
                            referencia,
                            vencto);
                  }
                }
                referencia = dataHoje.incrementarMeses(1, referencia);
                if (iservicos == 1) {
                  vencto = dataHoje.incrementarMesesUltimoDia(1, vencto);
                } else {
                  vencto = diaOriginal + vencto.substring(2, 10);
                  vencto = dataHoje.incrementarMeses(1, vencto);
                }
              }
              break;
            }
            // SALVAR PARA TODOS OS GRUPOS E CONVENÇÕES
          case 3:
            {
              List<SelectItem> listc = this.getListaConvencoes();
              for (int l = 0; l < ano; l++) {
                for (int k = 0; k < listc.size(); k++) {
                  List<GrupoCidade> listgc =
                      dbc.pesquisarGruposPorConvencao(
                          Integer.parseInt(listc.get(k).getDescription()));
                  for (int w = 0; w < listgc.size(); w++) {
                    if (gerarAno && !disAcordo) {
                      msgConfirma =
                          this.insertMensagem(
                              Integer.parseInt(listc.get(k).getDescription()),
                              listgc.get(w).getId(),
                              iservicos,
                              itiposervico,
                              referencia.substring(3),
                              vencto);
                    } else {
                      msgConfirma =
                          this.insertMensagem(
                              Integer.parseInt(listc.get(k).getDescription()),
                              listgc.get(w).getId(),
                              iservicos,
                              itiposervico,
                              referencia,
                              vencto);
                    }
                  }
                }
                referencia = dataHoje.incrementarMeses(1, referencia);
                if (iservicos == 1) {
                  vencto = dataHoje.incrementarMesesUltimoDia(1, vencto);
                } else {
                  vencto = diaOriginal + vencto.substring(2, 10);
                  vencto = dataHoje.incrementarMeses(1, vencto);
                }
              }
              break;
            }
            // NENHUMA DESTAS OPÇÕES
          case 4:
            {
              int
                  conv =
                      Integer.parseInt(this.getListaConvencoes().get(idConvencao).getDescription()),
                  grupoC =
                      Integer.parseInt(this.getListaGrupoCidade().get(idGrupo).getDescription());
              for (int l = 0; l < ano; l++) {
                if (gerarAno && !disAcordo) {
                  msgConfirma =
                      this.insertMensagem(
                          conv, grupoC, iservicos, itiposervico, referencia.substring(3), vencto);
                } else {
                  msgConfirma =
                      this.insertMensagem(
                          conv, grupoC, iservicos, itiposervico, referencia, vencto);
                }

                referencia = dataHoje.incrementarMeses(1, referencia);
                if (iservicos == 1) {
                  vencto = dataHoje.incrementarMesesUltimoDia(1, vencto);
                } else {
                  vencto = diaOriginal + vencto.substring(2, 10);
                  vencto = dataHoje.incrementarMeses(1, vencto);
                }
              }
              break;
            }
        }
      } else {
        Dao dao = new Dao();
        MensagemConvencao men = null;
        NovoLog novoLog = new NovoLog();
        if (processarTipoServicos) {
          List<MensagemConvencao> lista =
              db.mesmoTipoServico(
                  Integer.parseInt(this.getListaServico().get(idServico).getDescription()),
                  Integer.parseInt(this.getListaTipoServico().get(idTipoServico).getDescription()),
                  mensagemConvencao.getReferencia().substring(3));
          for (int i = 0; i < lista.size(); i++) {
            lista.get(i).setMensagemCompensacao(mensagemConvencao.getMensagemCompensacao());
            lista.get(i).setMensagemContribuinte(mensagemConvencao.getMensagemContribuinte());
            lista.get(i).setVencimento(vencimento);
            men =
                db.verificaMensagem(
                    lista.get(i).getConvencao().getId(),
                    lista.get(i).getServicos().getId(),
                    lista.get(i).getTipoServico().getId(),
                    lista.get(i).getGrupoCidade().getId(),
                    lista.get(i).getReferencia());
            if ((men == null) || (men.getId() != -1)) {
              MensagemConvencao mcBefore = (MensagemConvencao) dao.find(men);
              String beforeUpdate =
                  " - Referência: "
                      + mcBefore.getReferencia()
                      + " - Vencimento: "
                      + mcBefore.getVencimento()
                      + " - Serviço: ("
                      + mcBefore.getServicos().getId()
                      + ") "
                      + " - Tipo Serviço: ("
                      + mcBefore.getTipoServico().getId()
                      + ") "
                      + mcBefore.getTipoServico().getDescricao()
                      + " - Convenção: ("
                      + mcBefore.getConvencao().getId()
                      + ") "
                      + mcBefore.getConvencao().getDescricao()
                      + " - Grupo Cidade: ("
                      + mcBefore.getGrupoCidade().getId()
                      + ") "
                      + mcBefore.getGrupoCidade().getDescricao()
                      + " - Mensagem Compensação: "
                      + mcBefore.getMensagemCompensacao();
              if (db.update(lista.get(i))) {
                msgConfirma = "Mensagem atualizado com sucesso!";
                novoLog.update(
                    beforeUpdate,
                    " - Referência: "
                        + men.getReferencia()
                        + " - Vencimento: "
                        + men.getVencimento()
                        + " - Serviço: ("
                        + men.getServicos().getId()
                        + ") "
                        + " - Tipo Serviço: ("
                        + men.getTipoServico().getId()
                        + ") "
                        + men.getTipoServico().getDescricao()
                        + " - Convenção: ("
                        + men.getConvencao().getId()
                        + ") "
                        + men.getConvencao().getDescricao()
                        + " - Grupo Cidade: ("
                        + men.getGrupoCidade().getId()
                        + ") "
                        + men.getGrupoCidade().getDescricao()
                        + " - Mensagem Compensação: "
                        + men.getMensagemCompensacao()
                        + " - Mensagem Contribuinte: "
                        + men.getMensagemContribuinte());
                GenericaMensagem.info("Sucesso", msgConfirma);
              } else {
                msgConfirma = "Ocorreu um erro ao atualizar!";
                GenericaMensagem.warn("Erro", msgConfirma);
              }
            }
          }
        } else {
          men =
              db.verificaMensagem(
                  mensagemConvencao.getConvencao().getId(),
                  mensagemConvencao.getServicos().getId(),
                  mensagemConvencao.getTipoServico().getId(),
                  mensagemConvencao.getGrupoCidade().getId(),
                  mensagemConvencao.getReferencia());
          MensagemConvencao mcBefore = (MensagemConvencao) dao.find(mensagemConvencao);
          String beforeUpdate =
              " - Referência: "
                  + mcBefore.getReferencia()
                  + " - Vencimento: "
                  + mcBefore.getVencimento()
                  + " - Serviço: ("
                  + mcBefore.getServicos().getId()
                  + ") "
                  + " - Tipo Serviço: ("
                  + mcBefore.getTipoServico().getId()
                  + ") "
                  + mcBefore.getTipoServico().getDescricao()
                  + " - Convenção: ("
                  + mcBefore.getConvencao().getId()
                  + ") "
                  + mcBefore.getConvencao().getDescricao()
                  + " - Grupo Cidade: ("
                  + mcBefore.getGrupoCidade().getId()
                  + ") "
                  + mcBefore.getGrupoCidade().getDescricao()
                  + " - Mensagem Compensação: "
                  + mcBefore.getMensagemCompensacao();
          if (men == null || (men.getId() == mensagemConvencao.getId())) {
            if (db.update(mensagemConvencao)) {
              novoLog.update(
                  beforeUpdate,
                  " - Referência: "
                      + mensagemConvencao.getReferencia()
                      + " - Vencimento: "
                      + mensagemConvencao.getVencimento()
                      + " - Serviço: ("
                      + mensagemConvencao.getServicos().getId()
                      + ") "
                      + " - Tipo Serviço: ("
                      + mensagemConvencao.getTipoServico().getId()
                      + ") "
                      + mensagemConvencao.getTipoServico().getDescricao()
                      + " - Convenção: ("
                      + mensagemConvencao.getConvencao().getId()
                      + ") "
                      + mensagemConvencao.getConvencao().getDescricao()
                      + " - Grupo Cidade: ("
                      + mensagemConvencao.getGrupoCidade().getId()
                      + ") "
                      + mensagemConvencao.getGrupoCidade().getDescricao()
                      + " - Mensagem Compensação: "
                      + mensagemConvencao.getMensagemCompensacao()
                      + " - Mensagem Contribuinte: "
                      + mensagemConvencao.getMensagemContribuinte());
              msgConfirma = "Mensagem atualizado com sucesso!";
              GenericaMensagem.info("Sucesso", msgConfirma);
            } else {
              msgConfirma = "Ocorreu um erro ao atualizar!";
              GenericaMensagem.warn("Erro", msgConfirma);
            }
          } else {
            msgConfirma = "Mensagem já existe!";
            GenericaMensagem.warn("Erro", msgConfirma);
          }
        }
      }
    } catch (Exception e) {
      msgConfirma = e.getMessage();
      GenericaMensagem.warn("Erro", msgConfirma);
    }
    //        mensagemConvencao = new MensagemConvencao();
    //        idGrupo = 0;
    //        idConvencao = 0;
    //        idServico = 0;
    //        idTipoServico = 0;
    return null;
  }