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 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();
 }