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;
 }
 public List<SelectItem> getListaGrupoCidade() {
   List<SelectItem> grupo = new ArrayList<SelectItem>();
   ConvencaoCidadeDB convencaoCidadeDB = new ConvencaoCidadeDBToplink();
   Dao dao = new Dao();
   Convencao convencao =
       (Convencao)
           dao.find(
               new Convencao(),
               Integer.parseInt(
                   ((SelectItem) getListaConvencoes().get(idConvencao)).getDescription()));
   if (convencao == null) {
     return grupo;
   }
   int i = 0;
   List select = convencaoCidadeDB.pesquisarGruposPorConvencao(convencao.getId());
   if (select != null) {
     while (i < select.size()) {
       grupo.add(
           new SelectItem(
               i,
               (String) ((GrupoCidade) select.get(i)).getDescricao(),
               Integer.toString(((GrupoCidade) select.get(i)).getId())));
       i++;
     }
   }
   return grupo;
 }
 public List<SelectItem> getListaConvencoes() {
   List<SelectItem> convencoes = new ArrayList<SelectItem>();
   Dao dao = new Dao();
   List<Convencao> list = (List<Convencao>) dao.list(new Convencao());
   for (int i = 0; i < list.size(); i++) {
     convencoes.add(new SelectItem(i, list.get(i).getDescricao(), "" + list.get(i).getId()));
   }
   return convencoes;
 }
 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 replicar() {
    MensagemConvencaoDB db = new MensagemConvencaoDBToplink();
    List<MensagemConvencao> listam = new ArrayList();

    listam = db.pesquisaTodosAno(this.getListaRefReplica().get(idReplica).getLabel());

    Dao dao = new Dao();
    if (!listam.isEmpty()) {
      dao.openTransaction();
    }
    DataHoje dh = new DataHoje();
    boolean comita = false;
    for (int i = 0; i < listam.size(); i++) {
      MensagemConvencao mc = new MensagemConvencao();
      mc =
          db.verificaMensagem(
              listam.get(i).getConvencao().getId(),
              listam.get(i).getServicos().getId(),
              listam.get(i).getTipoServico().getId(),
              listam.get(i).getGrupoCidade().getId(),
              listam.get(i).getReferencia().substring(0, 3) + replicaPara);
      if (mc != null && mc.getId() != -1) {
        continue;
      }

      MensagemConvencao men =
          new MensagemConvencao(
              -1,
              listam.get(i).getGrupoCidade(),
              listam.get(i).getConvencao(),
              listam.get(i).getServicos(),
              listam.get(i).getTipoServico(),
              listam.get(i).getMensagemContribuinte(),
              listam.get(i).getMensagemCompensacao(),
              listam.get(i).getReferencia().substring(0, 3) + replicaPara,
              DataHoje.converte(dh.incrementarAnos(1, listam.get(i).getVencimento())));

      if (dao.save(men)) {
        comita = true;
      } else {
      }
    }
    if (comita) {
      dao.commit();
      msgConfirma = "Registro replicado com Sucesso!";
      GenericaMensagem.info("Sucesso", msgConfirma);
    } else {
      dao.rollback();
      msgConfirma = "Nenhuma mensagem para Replicar!";
      GenericaMensagem.warn("Erro", msgConfirma);
    }
    return "";
  }
 public List<SelectItem> getListConvencao() {
   if (listConvencao.isEmpty()) {
     Dao dao = new Dao();
     List<Convencao> list = (List<Convencao>) dao.list(new Convencao(), true);
     for (int i = 0; i < list.size(); i++) {
       listConvencao.add(
           new SelectItem(
               i,
               (String) ((Convencao) list.get(i)).getDescricao(),
               Integer.toString(((Convencao) list.get(i)).getId())));
     }
   }
   return listConvencao;
 }
  public void excluir() {
    Dao dao = new Dao();

    dao.openTransaction();

    if (!dao.delete(declaracaoGrupo)) {
      dao.rollback();
      GenericaMensagem.error("Atenção", "Não foi possível excluir Declaração Grupo!");
      return;
    }

    dao.commit();
    loadListaDeclaracaoGrupo();
    GenericaMensagem.info("Sucesso", "Declaração Grupo excluída!");
  }
  public void adicionar() {
    if (!validaAdicionar()) {
      return;
    }

    Dao dao = new Dao();

    dao.openTransaction();

    declaracaoGrupo = new DeclaracaoGrupo();
    declaracaoGrupo.setDeclaracaoTipo(
        (DeclaracaoTipo)
            dao.find(
                new DeclaracaoTipo(),
                Integer.valueOf(listaDeclaracaoTipo.get(indexDeclaracaoTipo).getDescription())));
    declaracaoGrupo.setSubGrupoConvenio(
        (SubGrupoConvenio)
            dao.find(
                new SubGrupoConvenio(),
                Integer.valueOf(listaSubGrupo.get(indexSubGrupo).getDescription())));

    if (!dao.save(declaracaoGrupo)) {
      dao.rollback();
      GenericaMensagem.error("Atenção", "Erro ao Adicionar Grupo Declaração!");
      return;
    }

    dao.commit();

    declaracaoGrupo = new DeclaracaoGrupo();
    loadListaDeclaracaoGrupo();

    GenericaMensagem.info("Sucesso", "Grupo Declaração adicionada!");
  }
 /**
  * @param list
  * @param idModelo
  * @return
  */
 public static List<HistoricoCarteirinha> gerarHistoricoCarteirinhas(
     List<Movimento> list, Integer idModelo) {
   HistoricoCarteirinha historicoCarteirinha;
   SocioCarteirinhaDao socioCarteirinhaDB = new SocioCarteirinhaDao();
   Dao dao = new Dao();
   dao.openTransaction();
   List<HistoricoCarteirinha> carteirinhas = new ArrayList();
   for (int i = 0; i < list.size(); i++) {
     if (list.get(i).getMatriculaSocios() != null) {
       historicoCarteirinha = new HistoricoCarteirinha();
       historicoCarteirinha.setHora(DataHoje.hora());
       historicoCarteirinha.setDescricao("Impressão de Carteirinha");
       historicoCarteirinha.setEmissao(DataHoje.data());
       historicoCarteirinha.setMovimento(list.get(i));
       historicoCarteirinha.setCarteirinha(
           socioCarteirinhaDB.pesquisaCarteirinhaPessoa(
               list.get(i).getBeneficiario().getId(), idModelo));
       if (!dao.save(historicoCarteirinha)) {
         dao.rollback();
         return new ArrayList();
       }
       carteirinhas.add(historicoCarteirinha);
     }
   }
   if (carteirinhas.isEmpty()) {
     dao.rollback();
     return new ArrayList();
   }
   dao.commit();
   return carteirinhas;
 }
 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 voltarBoletos() {
    if (listaMovimentoBoleto.isEmpty()) {
      GenericaMensagem.warn("Atenção", "Lista de Movimentos vazia!");
      return;
    }

    for (LinhaBoleto lb : listaMovimentoBoleto) {
      if (!lb.getQuitacao().isEmpty()) {
        GenericaMensagem.warn("Atenção", "Existem Movimentos Baixados!");
        return;
      }
    }

    Dao dao = new Dao();

    // PEGA O PRIMEIRO BOLETO POIS SERÃO TODOS IGUAIS E NÃO TEM NECESSIDADE DE COLOCAR NO LOPPING
    Boleto b = (Boleto) dao.find(new Boleto(), listaMovimentoBoleto.get(0).getId_boleto());

    dao.openTransaction();
    for (LinhaBoleto lb : listaMovimentoBoleto) {
      Movimento m = (Movimento) dao.find(new Movimento(), lb.getId_movimento());

      m.setDocumento(b.getBoletoComposto());
      m.setNrCtrBoleto(b.getNrCtrBoleto());

      if (!dao.update(m)) {
        GenericaMensagem.error("Erro", "Não foi possível atualizar Boleto!");
        dao.rollback();
        return;
      }
    }

    dao.commit();
    GenericaMensagem.info("Sucesso", "Movimentos atualizados!");
    loadList();
  }
 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();
 }
  // MÉTODO EM DESUSO APAGAR DEPOIS DE 30/04/2016
  public void reImprimirCarteirinha() {
    Dao dao = new Dao();

    if (!listaSelecionado.isEmpty()) {
      CategoriaDao dbCat = new CategoriaDao();
      DataHoje dh = new DataHoje();
      SociosDao dbs = new SociosDao();

      dao.openTransaction();

      for (int i = 0; i < listaSelecionado.size(); i++) {
        Pessoa pessoa =
            (Pessoa) dao.find(new Pessoa(), (Integer) ((List) listaSelecionado.get(i)).get(0));
        Socios socios = dbs.pesquisaSocioPorPessoa(pessoa.getId());
        SocioCarteirinha carteirinha =
            (SocioCarteirinha)
                dao.find(
                    new SocioCarteirinha(), (Integer) ((List) listaSelecionado.get(i)).get(19));
        ValidadeCartao 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;
        }
        if (socios.getId() != -1 && socios.getMatriculaSocios().getId() != -1) {
          GrupoCategoria gpCat =
              dbCat.pesquisaGrupoPorCategoria(
                  Integer.valueOf(socios.getMatriculaSocios().getCategoria().getId()));
          Date validadeCarteirinha;
          if (validadeCartao.getDtValidadeFixa() == null) {
            validadeCarteirinha =
                DataHoje.converte(
                    dh.incrementarMeses(validadeCartao.getNrValidadeMeses(), DataHoje.data()));
          } else {
            validadeCarteirinha = validadeCartao.getDtValidadeFixa();
          }
          carteirinha.setDtValidadeCarteirinha(validadeCarteirinha);
        } else {
          carteirinha.setDtValidadeCarteirinha(null);
        }

        carteirinha.setVia(carteirinha.getVia() + 1);
        listaSelecionado.get(i).set(6, carteirinha.getValidadeCarteirinha());

        if (carteirinha.getDtEmissao() == null) {
          carteirinha.setEmissao(DataHoje.data());

          if (!dao.update(carteirinha)) {
            dao.rollback();
            GenericaMensagem.warn("Erro", "AO ATUALIZAR CARTEIRINHA!");
            return;
          }

          HistoricoCarteirinha hc = new HistoricoCarteirinha();

          hc.setCarteirinha(carteirinha);
          hc.setDescricao("Primeira ReImpressão de Carteirinha 2º Via");

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

          if (!dao.save(hc)) {
            dao.rollback();
            return;
          }
        } else {
          HistoricoCarteirinha hc = new HistoricoCarteirinha();

          carteirinha.setVia(carteirinha.getVia() + 1);

          if (!dao.update(carteirinha)) {
            dao.rollback();
            GenericaMensagem.warn("Erro", "AO ATUALIZAR CARTEIRINHA!");
            return;
          }

          hc.setCarteirinha(carteirinha);
          hc.setDescricao("ReImpressão de Carteirinha 2º Via");

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

          if (!dao.save(hc)) {
            dao.rollback();
            GenericaMensagem.warn("Erro", "AO ATUALIZAR HISTÓRICO DA CARTEIRINHA!");
            return;
          }
        }
      }

      if (ImpressaoParaSocios.imprimirCarteirinha(listaSelecionado)) {
        dao.commit();
      } else {
        dao.rollback();
        GenericaMensagem.warn("Erro", "AO ATUALIZAR CARTEIRINHA!");
      }
    }
  }
  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;
  }