tai as classes… diz que esta conectando, mas nao grava nada no banco, minha intenção é: criar uma lista com os pagamentos que ja existem no banco, e criar uma lista dos pagamentos que serao gerados automaticamente, com isso eu utilizo o metoco removeall do arraylist para remover da lista de mensalidades que serao geradas, as mensalidades que ja foram geradas, com isso eu posso gerar a cobranca no mes, mas para os clientes que ja pagaram adiantado alguns meses, nao sera cobrado novamente.
GeraMensalidadesAction:
public class GeraMensalidadesAction {
private Mensalidade mensalidade;
private String mensagemErro;
private List<Mensalidade> mensalidadesPagar;
private List<Mensalidade> mensalidadesPagas;
private String mesreferencia;
private String anoreferencia;
@Action(value="geraMensalidades", results= {
@Result(name="ok", type="redirectAction", params= {"actionName", "listaMensalidadesAtrasadas"}),
@Result(name="naook", location="/jsp/gerarMensalidades.jsp")
})
public String execute() throws Exception {
//VerificadorDAO dao = new VerificadorDAO();
//if (dao.existeMensalidade(mensalidade)) {
//JOptionPane.showMessageDialog(null, "ERRO!! Não é possivel gerar cobranças duplicadas!! estas mensalidades já foram geradas!");
//mensagemErro = "ERRO!! Não é possivel gerar cobranças duplicadas!! estas mensalidades já foram geradas";
//return "naook";
//} else {
mensalidadesPagas = new VerificaPagamentosDAO().mensalidadesPagas(mensalidade);
mensalidadesPagar = new VerificaPagamentosDAO().mensalidadesPagar(mensalidade);
if (mensalidadesPagar.removeAll(mensalidadesPagas)) {
new GeraMensalidadesDAO().gerarMensalidades(mensalidade, mensalidadesPagar);
return "ok";
} else {
return "naook";
}
}
//}
public Mensalidade getMensalidade() {
return mensalidade;
}
public void setMensalidade(Mensalidade mensalidade) {
this.mensalidade = mensalidade;
}
public String getMensagemErro() {
return mensagemErro;
}
public void setMensagemErro(String mensagemErro) {
this.mensagemErro = mensagemErro;
}
}
VerificaPagamentosDAO:
ublic class VerificaPagamentosDAO {
private final Connection connection;
public VerificaPagamentosDAO() {
try {
connection = new ConnectionFactory().getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<Mensalidade> mensalidadesPagas(Mensalidade mensalidade) {
try {
List<Mensalidade> mensalidades = new ArrayList<Mensalidade>();
PreparedStatement stmt = this.connection.prepareStatement("select ID_CLIENTE, MATRICULA_CLI, NOMECOMPLETO_CLI, MESREFERENCIA, ANOREFERENCIA FROM TB_TB_MENSALIDADE WHERE MESREFERENCIA = ? AND ANOREFERENCIA = ?");
stmt.setString(1, mensalidade.getMesreferencia());
stmt.setString(2, mensalidade.getAnoreferencia());
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
mensalidades.add(populaContato(rs));
}
rs.close();
stmt.close();
return mensalidades;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
private Mensalidade populaContato(ResultSet rs) throws SQLException {
Mensalidade mensalidade = new Mensalidade();
mensalidade.setId_cliente(rs.getInt("ID_CLIENTE"));
mensalidade.setMatricula_cli(rs.getInt("MATRICULA_CLI"));
mensalidade.setNomecompleto_cli(rs.getString("NOMECOMPLETO_CLI"));
mensalidade.setMesreferencia(rs.getString("MESREFERENCIA"));
mensalidade.setAnoreferencia(rs.getString("ANOREFERENCIA"));
return mensalidade;
}
public List<Mensalidade> mensalidadesPagar(Mensalidade mensalidadesPagar) {
try {
List<Mensalidade> mensalidadesPagar1 = new ArrayList<Mensalidade>();
mensalidadesPagar1.add(populaContato2());
return mensalidadesPagar1;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
private Mensalidade populaContato2() throws SQLException {
Mensalidade mensalidade = new Mensalidade();
mensalidade.getDt_pagamento();
mensalidade.getMesreferencia();
mensalidade.getAnoreferencia();
return mensalidade;
}
}
GeraMensalidadesDAO:
public class GeraMensalidadesDAO {
public void gerarMensalidades(Mensalidade mensalidade, List<Mensalidade> mensalidadesPagar) throws Exception
{
Connection conn = new ConnectionFactory().getConnection();
//Pega o nome do mes e seta o valor na coluna mesref no banco
if(mensalidade.getMesreferencia().equals("JANEIRO")) {
mensalidade.setMesref(1);
} else if
(mensalidade.getMesreferencia().equals("FEVEREIRO")) {
mensalidade.setMesref(2);
} else if
(mensalidade.getMesreferencia().equals("MARÇO")) {
mensalidade.setMesref(3);
} else if
(mensalidade.getMesreferencia().equals("ABRIL")) {
mensalidade.setMesref(4);
} else if
(mensalidade.getMesreferencia().equals("MAIO")) {
mensalidade.setMesref(5);
} else if
(mensalidade.getMesreferencia().equals("JUNHO")) {
mensalidade.setMesref(6);
} else if
(mensalidade.getMesreferencia().equals("JULHO")) {
mensalidade.setMesref(7);
} else if
(mensalidade.getMesreferencia().equals("AGOSTO")) {
mensalidade.setMesref(8);
} else if
(mensalidade.getMesreferencia().equals("SETEMBRO")) {
mensalidade.setMesref(9);
} else if
(mensalidade.getMesreferencia().equals("OUTUBRO")) {
mensalidade.setMesref(10);
} else if
(mensalidade.getMesreferencia().equals("NOVEMBRO")) {
mensalidade.setMesref(11);
} else if
(mensalidade.getMesreferencia().equals("DEZEMBRO")) {
mensalidade.setMesref(12);
}
String query = "Select ID_CLIENTE, MATRICULA, NOMECOMPLETO From TB_TB_CONTATO Order By MATRICULA";
PreparedStatement pstm = conn.prepareStatement(query);
ResultSet rs = pstm.executeQuery();
if ( rs != null )
{
while ( rs.next() )
{
String queryMensalidade = "Insert Into TB_TB_MENSALIDADE (ID_CLIENTE, MATRICULA_CLI, NOMECOMPLETO_CLI, REFMES, MESREFERENCIA, ANOREFERENCIA, DT_CADASTRO, PAGAMENTOOK) Values (?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(queryMensalidade);
stmt.setInt(1, rs.getInt("Id_Cliente"));
stmt.setInt(2, rs.getInt("Matricula"));
stmt.setString(3, rs.getString("NomeCompleto"));
stmt.setInt(4, mensalidade.getMesref());
stmt.setString(5, mensalidade.getMesreferencia());
stmt.setString(6, mensalidade.getAnoreferencia());
stmt.setDate(7, new Date(mensalidade.getDt_cadastro().getTimeInMillis()));
stmt.setInt(8, mensalidade.getPagamentook());
stmt.execute();
}
}
rs.close();
}
public List<Contato> guardaPagamentos() throws Exception
{
Connection conn = new ConnectionFactory().getConnection();
String query = "Select c.ID_CLIENTE, c.MATRICULA, c.NOMECOMPLETO from TB_TB_CONTATO c INNER JOIN TB_TB_MENSALIDADES m WHERE m.MESREFERENCIA =? AND m.ANOREFERENCIA =? AND c.ID_CLIENTE = m.ID_CLIENTE";
PreparedStatement pstm = conn.prepareStatement(query);
ResultSet rs = pstm.executeQuery();
List<Contato> pagamentos = null;
if ( rs != null )
{
pagamentos = new ArrayList<Contato>();
while ( rs.next() )
{
Contato contato = new Contato();
contato.setMensalidade(new Mensalidade());
contato.setId_contato(rs.getInt("ID_CLIENTE"));
contato.setMatricula(rs.getInt("MATRICULA"));
contato.setNomecompleto(rs.getString("NOMECOMPLETO"));
contato.getMensalidade().setMesreferencia(rs.getString("MESREFERENCIA"));
contato.getMensalidade().setAnoreferencia(rs.getString("ANOREFERENCIA"));
pagamentos.add(contato);
//Mensalidade mensalidade = new Mensalidade();
// mensalidade.setCampo1(/*...*/);
// mensalidade.setCampo2(/*...*/);
// mensalidade.setCampo3(/*...*/);
// mensalidades.add(mensalidade);
}
}
rs.close();
return pagamentos;
}
}