Ok…aí vai todo o método:
Esse abaicho é o meu DispatchAction:
/**
*
*/
package action;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.util.MessageResources;
import org.displaytag.tags.TableTagParameters;
import org.displaytag.util.ParamEncoder;
import tools.Calendario;
import tools.MenuTools;
import bc.ClienteBC;
import bc.EmpresaBC;
import bc.PagamentoFaturaBC;
import bc.VendedorBC;
import bean.ClienteBean;
import bean.EnderecoClienteBean;
import bean.FiltroPagamentoFaturaBean;
import bean.FocoBean;
import bean.ListaEmpresasBean;
import bean.ListaPagamentoFaturaBean;
import bean.ListaVendedoresBean;
import bean.PagamentoFaturaBean;
import bean.PaginaBean;
import bean.UserLoginBean;
import bean.ValidacaoBean;
import exception.CommerceException;
import exception.InvalidException;
/**
- Processa as requisicoes da tela de consulta de pedidos/orcamentos
-
-
@author evanildo
-
*/
public class PagamentoFaturaDispatchAction extends DispatchAction implements IKeyWords {
private static MessageResources messageResources = null;
private final String PAGAMENTO_FATURA = "pagamentoFatura";
private final String DEVOLUCAO_PRODUTO_CONFIRMADA = "devolucaoProdutoConfirmada";
static {
try {
messageResources = MessageResources.getMessageResources( "resources.ApplicationResources" );
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Inicializa a tela de consulta de pedidos/orcamentos
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward inicializar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = SUCCESS;
HttpSession session = request.getSession();
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "filtroCodigoEmpresa" );
PaginaBean paginaBean = new PaginaBean();
paginaBean.setOrigem(request.getParameter("origem"));
session.setAttribute("paginaBean", paginaBean);
try {
UserLoginBean userBean = (UserLoginBean)session.getAttribute("userBean");
Integer idUnidadeNegocio = new Integer( userBean.getUnidadeNegocio() );
EmpresaBC empresaBC = new EmpresaBC();
ListaEmpresasBean listaEmpresasBean = empresaBC.getListaEmpresas( idUnidadeNegocio );
VendedorBC vendedorBC = new VendedorBC();
ListaVendedoresBean listaVendedoresBean = null;
listaVendedoresBean = vendedorBC.getListaVendedores(userBean);
session.setAttribute("listaEmpresasBean", listaEmpresasBean);
session.setAttribute("listaVendedoresBean", listaVendedoresBean);
FiltroPagamentoFaturaBean filtroPagamentoFaturaBean = new FiltroPagamentoFaturaBean( );
Integer filtroCodigoEmpresaDefault = new Integer( userBean.getEmpresa() );
filtroPagamentoFaturaBean.setFiltroCodigoEmpresa( filtroCodigoEmpresaDefault );
session.setAttribute("filtroPagamentoFaturaBean", filtroPagamentoFaturaBean );
session.setAttribute( "listaPagamentoFaturaBean", new ListaPagamentoFaturaBean() );
session.setAttribute( "quantidadeListaTotalPedidos", new Integer( 0 ) );
MenuTools.disableMenu( session ); // 20070726 - evanildo m batista: desabilita o menu
}catch( CommerceException e ){
request.setAttribute( COMMERCE_EXCEPTION, e );
retorno = ERROR;
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Este método foi feito especificamente para retorno da consulta de histórico de clientes
* Rute - 20070601
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward voltarTelaOutros(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
PaginaBean paginaBean = (PaginaBean)session.getAttribute("paginaBean");
String retorno = paginaBean.getOrigem();
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "codigoEmpresa" );
try {
session.removeAttribute( "pedidoVendaBean" );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Sai da tela de consulta de pedidos/orcamentos
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward sair(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = PRINCIPAL;
HttpSession session = request.getSession();
PaginaBean paginaBean = (PaginaBean)session.getAttribute("paginaBean");
if( paginaBean != null && paginaBean.getOrigem() != null && "painelVendedor".equals(paginaBean.getOrigem())){
retorno = "painelVendedor";
}
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "codigoPedido" );
try {
// Remove os atributos setados na sessao
session.removeAttribute( "pagamentoFaturaBean" );
session.removeAttribute( "paginaBean" );
session.removeAttribute( "listaEmpresasBean" );
session.removeAttribute( "listaVendedoresBean" );
session.removeAttribute( "supervisorPedidoVenda" );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Altera os dados do pagamento/fatura/OFF, como a data de validade
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward alterarDadosPagamentoFatura(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = PAGAMENTO_FATURA;
HttpSession session = request.getSession();
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "nrDocumento" );
try {
DynaActionForm dForm = (DynaActionForm)form;
String dataPagamentoFormatada = dForm.get( "dataPagamentoFormatada" ).toString();
if( dataPagamentoFormatada == null || dataPagamentoFormatada.trim().equals( "" ) ) {
throw new InvalidException( "comum.mensagem.obrigatorio.data.validade" );
}
Calendario cal = new Calendario();
Date dataPagamento = cal.converterToDate( dataPagamentoFormatada );
UserLoginBean userLoginBean = (UserLoginBean)session.getAttribute("userBean");
PagamentoFaturaBean pagamentoFaturaBean = (PagamentoFaturaBean)session.getAttribute("pagamentoFaturaBean");
Long idDivida = new Long( pagamentoFaturaBean.getNrDocumento() );
Integer idEmpresa = new Integer( pagamentoFaturaBean.getVendedorBean().getEmpresa() );
PagamentoFaturaBC pagamentoFaturaBC = new PagamentoFaturaBC();
pagamentoFaturaBC.alterarDadosPagamentoFatura( userLoginBean, idEmpresa, idDivida, dataPagamento );
pagamentoFaturaBean.setDataPagamento( dataPagamento );
}catch( InvalidException e ){
validacaoBean.setMensagem( messageResources.getMessage( e.getMessage(), e.getArgs() ) );
}catch( CommerceException e ){
validacaoBean.setMensagem( e.getMessage() );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Busca, na tela de clientes, o cliente a filtrar na tela de consulta de pedidos/orcamentos
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward buscarClienteFromTelaCliente(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = "buscarClienteFromTelaCliente";
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "codigoCliente" );
HttpSession session = request.getSession();
try {
this.carregarDadosFiltroPagamento( session, (DynaActionForm)form, new Boolean( true ) );
session.setAttribute( "origemSelecaoCliente", "alterarClienteFromTelaClienteToPagamentoFatura" );
}catch( InvalidException e ){
validacaoBean.setMensagem( messageResources.getMessage( e.getMessage(), e.getArgs() ) );
retorno = SUCCESS;
}catch( CommerceException e ){
request.setAttribute( COMMERCE_EXCEPTION, e );
retorno = ERROR;
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Altera, a partir da tela de clientes, o cliente a filtrar na tela de consulta de pedidos/orcamentos
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward alterarClienteFromTelaCliente(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
Long codigoCliente = (Long)session.getAttribute( "codigoClienteSelecionado" );
//String tipoPessoa = (String)session.getAttribute("tipoPessoa");
if( codigoCliente != null && codigoCliente.longValue() >= 0 ) {
session.removeAttribute( "codigoClienteSelecionado" );
return alterarCliente_executar( codigoCliente, /*tipoPessoa,*/ mapping, form, request, response );
}else {
String retorno = SUCCESS;
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "filtroCodigoCliente" );
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
}
/**
* Altera o cliente a filtrar na tela de consulta de pedidos/orcamentos
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward alterarCliente(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = SUCCESS;
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "filtroCodigoCliente" );
HttpSession session = request.getSession();
try {
DynaActionForm dForm = (DynaActionForm)form;
String codCli = dForm.get("filtroCodigoCliente").toString().trim();
this.carregarDadosFiltroPagamento( session, dForm, new Boolean( true ) );
// Se o codigo do cliente for valido, consulta o mesmo. O codigo zero representa um cliente "consumidor"
if( codCli != null && !codCli.equals("") ) {
Long codigoCliente = null;
//String tipoPessoa=null;
try{
codigoCliente = new Long( codCli );
}catch( Exception e ){
codigoCliente = null;
throw new InvalidException( "comum.mensagem.invalido.codigo.cliente" );
}
if( codigoCliente != null ) {
return this.alterarCliente_executar( codigoCliente,/*tipoPessoa,*/ mapping, form, request, response );
}
}else {
FiltroPagamentoFaturaBean filtroPagamentoFaturaBean = (FiltroPagamentoFaturaBean)session.getAttribute( "filtroPagamentoFaturaBean" );
filtroPagamentoFaturaBean.setFiltroCodigoCliente( null );
filtroPagamentoFaturaBean.setFiltroNomeCliente( null );
}
}catch( InvalidException e ){
validacaoBean.setMensagem( messageResources.getMessage( e.getMessage(), e.getArgs() ) );
}catch( CommerceException e ){
request.setAttribute( COMMERCE_EXCEPTION, e );
retorno = ERROR;
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Altera o cliente a filtrar na tela de consulta de pagamento de faturas Off
*
* @param codigoCliente o codigo do cliente
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
private ActionForward alterarCliente_executar( Long codigoCliente, /*String tipoPessoa,*/ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession();
String retorno = SUCCESS;
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "filtroCodigoCliente" );
try {
// Se o codigo do cliente for valido, consulta o mesmo. O codigo zero representa um cliente "consumidor"
if( codigoCliente != null ) {
ClienteBC clienteBC = new ClienteBC( );
ClienteBean clienteBean = clienteBC.getClienteBySearchKey( codigoCliente );
//ClienteBean clienteBean = clienteBC.getClienteFatura( codigoCliente/*,tipoPessoa*/ );
session.setAttribute( "cliente", clienteBean );
// Se o cliente não existir, retorna mensagem de erro.
if ( clienteBean!=null ){
FiltroPagamentoFaturaBean filtroPagamentoFaturaBean= (FiltroPagamentoFaturaBean)session.getAttribute( "filtroPagamentoFaturaBean" );
filtroPagamentoFaturaBean.setFiltroCodigoCliente( clienteBean.getCodigo() );
filtroPagamentoFaturaBean.setFiltroNomeCliente( clienteBean.getNome() );
filtroPagamentoFaturaBean.setFiltroIdConta( clienteBean.getIdConta() );
}else{
validacaoBean.setMensagem( messageResources.getMessage( "cliente.mensagem.naoEncontrado2", codigoCliente.toString() ) );
}
}else {
validacaoBean.setMensagem( messageResources.getMessage( "comum.mensagem.invalido.codigo.cliente" ) );
}
}catch( CommerceException e ){
validacaoBean.setMensagem( e.getMessage() );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Carrega os dados selecionados para filtrar a consulta de pedidos/orcamentos
*
* @param session a sessao do usuario
* @param dForm o formulario dinamico html
* @param novaConsulta true, se for uma nova consulta, false, caso contrario
*
* @throws InvalidException
* @throws CommerceException
*/
private void carregarDadosFiltroPagamento( HttpSession session, DynaActionForm dForm, Boolean novaConsulta ) throws InvalidException, CommerceException {
Integer filtroCodigoEmpresa = null;
Integer filtroCodigoVendedor = null;
Date filtroDataPagamento=null;
Long filtroIdConta=null;
Long filtroIdOperador=null;
Long filtroNumPDV=null;
Long filtroNrDocumento=null;
Double filtroVlPagamento=null;
// Se for uma nova consulta, os dados do filtro devem ser atualizados
if( novaConsulta != null && novaConsulta.booleanValue() ){
filtroCodigoEmpresa = (Integer)dForm.get("filtroCodigoEmpresa");
String codVendedor = dForm.get("filtroCodigoVendedor").toString().trim();
if( !codVendedor.equals( "" ) ) {
try {
filtroCodigoVendedor = Integer.valueOf( codVendedor );
} catch (Exception e) {
filtroCodigoVendedor = null;
}
}
String strDataP = dForm.get("filtroDataPagamentoFormatado").toString().trim();
strDataP = strDataP.equals( "" ) ? null : strDataP;
if( strDataP != null ) {
Calendario cal = new Calendario();
filtroDataPagamento = new java.sql.Date( cal.converterToDate( strDataP ).getTime() );
}
filtroIdConta = (Long)dForm.get("filtroIdConta");
filtroIdConta = ( filtroIdConta != null && filtroIdConta.longValue() > 0 ) ? filtroIdConta : null;
filtroIdOperador = (Long)dForm.get("filtroIdOperador");
filtroIdOperador = ( filtroIdOperador != null && filtroIdOperador.longValue() > 0 ) ? filtroIdOperador : null;
filtroNumPDV = (Long)dForm.get("filtroNumPDV");
filtroNumPDV = ( filtroNumPDV != null && filtroNumPDV.longValue() > 0 ) ? filtroNumPDV : null;
filtroNrDocumento = (Long)dForm.get("filtroNrDocumento");
filtroNrDocumento = ( filtroNrDocumento != null && filtroNrDocumento.longValue() > 0 ) ? filtroNrDocumento : null;
filtroVlPagamento = (Double)dForm.get("filtroVlPagamento");
filtroVlPagamento = ( filtroVlPagamento != null && filtroVlPagamento.longValue() > 0 ) ? filtroVlPagamento : null;
FiltroPagamentoFaturaBean filtroPagamentoFaturaBean = (FiltroPagamentoFaturaBean)session.getAttribute( "filtroPedidoVendaBean" );
if( filtroPagamentoFaturaBean != null ){
filtroPagamentoFaturaBean.setFiltroCodigoEmpresa( filtroCodigoEmpresa );
filtroPagamentoFaturaBean.setFiltroCodigoVendedor( filtroCodigoVendedor );
filtroPagamentoFaturaBean.setFiltroIdConta( filtroIdConta );
filtroPagamentoFaturaBean.setFiltroIdOperador( filtroIdOperador );
filtroPagamentoFaturaBean.setFiltroDataPagamento( filtroDataPagamento );
filtroPagamentoFaturaBean.setFiltroNumPDV( filtroNumPDV );
filtroPagamentoFaturaBean.setFiltroNrDocumento(filtroNrDocumento);
filtroPagamentoFaturaBean.setFiltroVlPagamento(filtroVlPagamento);
}
}
}
/**
* Faz o tratamento necessario antes de retornar
*
* @param mapping informacao de mapeamento da requisicao
* @param request a requisicao http
* @param validacaoBean a validacao a exibir na pagina
* @param focoBean o campo a receber o foco
* @param retorno a pagina solicitada para retorno
*
* @return a tela de retorno
*/
private ActionForward retornar( ActionMapping mapping, HttpServletRequest request, ValidacaoBean validacaoBean, FocoBean focoBean, String retorno ) {
request.setAttribute("validacaoBean", validacaoBean);
request.setAttribute( "focoBean", focoBean );
if( retorno.equals( ERROR ) || retorno.equals( PRINCIPAL ) || retorno.equals( DEVOLUCAO_PRODUTO_CONFIRMADA ) ){
MenuTools.enableMenu( request.getSession() );
}
return mapping.findForward( retorno );
}
/**
* Retorna o numero da pagina da listagem de itens do estoque
*
* @param request a requisicao http
*
* @return o numero da pagina referente a paginacao da lista de pedidos/orcamentos
*/
private Integer getNumeroPaginacao( HttpServletRequest request ) {
final String tableId = "element";
String page = request.getParameter( new ParamEncoder( tableId ).encodeParameterName(TableTagParameters.PARAMETER_PAGE) );
return ( page != null ? new Integer(page) : new Integer( 1 ) );
}
/**
* Grava o pagamento na fonte de dados
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward salvar(UserLoginBean userLoginBean,Integer idEmpresa,Long idDivida,Date dataValidade,
ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
String retorno = PAGAMENTO_FATURA;
HttpSession session = request.getSession();
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "nrDocumento" );
try {
DynaActionForm dForm = (DynaActionForm)form;
this.carregarDadosFiltroPagamento( session, dForm, new Boolean( true ));
PagamentoFaturaBean pagamentoFaturaBean = (PagamentoFaturaBean)session.getAttribute( "nrDocumento" );
PagamentoFaturaBC pagamentoFaturaBC = new PagamentoFaturaBC( );
pagamentoFaturaBC.salvarDados(userLoginBean, idEmpresa, idDivida, dataValidade);
Long idCliente = pagamentoFaturaBean.getCodigoCliente();
//
this.alterarCliente_executar( idCliente,mapping, form, request, response );
// Limpa os campos do endereco para adicionar um novo
return this.novoPagamento( mapping, form, request, response );
}catch( InvalidException e ){
validacaoBean.setMensagem( messageResources.getMessage( e.getMessage(), e.getArgs() ) );
}catch( CommerceException e ){
validacaoBean.setMensagem( e.getMessage() != null ? e.getMessage() : "null" );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
/**
* Limpa todos os campos do pagamento/fatura e inicia novos objetos para comecar um novo pagamento
*
* @param mapping informacao de mapeamento da requisicao
* @param form o formulario html
* @param request a requisicao http
* @param response a resposta http
*
* @return o retorno para a pagina solicitada
*
* @throws Exception
*/
public ActionForward novoPagamento(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String retorno = PAGAMENTO_FATURA;
HttpSession session = request.getSession();
ValidacaoBean validacaoBean = new ValidacaoBean( );
FocoBean focoBean = new FocoBean( "nrDocumento" );
try {
session.setAttribute( "pagamentoFatura", new PagamentoFaturaBean() );
}catch( Exception e ){
request.setAttribute( COMMERCE_EXCEPTION, new CommerceException( e.getMessage() ) );
retorno = ERROR;
}
return retornar( mapping, request, validacaoBean, focoBean, retorno );
}
}
Agora vem o meu método numa classe DB:
/**
* Altera dados do pagamento como a data de validade do mesmo
*
* @param userLoginBean o usuario logado na aplicacao
* @param idEmpresa a empresa do pedido/orcamento
* @param idPedidoVendaMultiplo o ID do pedido/orcamento multiplo
* @param dataValidade a data de validade do pedido/orcamento
*
* @throws CommerceException
*/
public void alterarDadosPagamentoFatura( UserLoginBean userLoginBean, Integer idEmpresa, Long idDivida, Date dataValidade ) throws CommerceException {
Connection con = null;
PreparedStatement ps = null;
StringBuffer query = new StringBuffer();
query.append( "INSERT INTO PAGTO_TITULOS_OFF ( ID_DIVIDA, DT_LANCAMENTO, VL_RECEB ) " );
query.append( "VALUES( ?, ?, ? ) " );
try{
con = super.getConnection();
super.closeObjetosConexao( ps );
ps = con.prepareStatement( query.toString() );
ps.setInt( 1, userLoginBean.getUnidadeNegocio() );
ps.setInt( 2, idEmpresa.intValue() );
ps.setLong( 3, idDivida.longValue() );
ps.setDate( 4, new java.sql.Date( dataValidade.getTime() ) );
ps.executeUpdate();
} catch (SQLException e) {
String mensagem = null;
if( e.getErrorCode() == 20001 ){
mensagem = CommerceException.getProcedureMessage( e.getMessage() );
}else {
mensagem = e.getMessage();
}
throw new CommerceException( mensagem, e.getErrorCode() );
} catch (Exception e) {
throw new CommerceException( e.getMessage() );
} finally {
super.closeObjetosConexao( con, ps );
}
}
/**
* Salva o pagamento
*
* @param clienteBean o cliente a salvar
* @param enderecoClienteBean o endereco do cliente a salvar
*
* @throws InvalidException
* @throws CommerceException
*/
public void salvarDados(UserLoginBean userLoginBean, Integer idEmpresa, Long idDivida, Date dataValidade)throws InvalidException, CommerceException {
Connection con = null;
PreparedStatement ps = null;
StringBuffer query = new StringBuffer();
query.append( "INSERT INTO PAGTO_TITULOS_OFF ( ID_DIVIDA, DT_LANCAMENTO, VL_RECEB ) " );
query.append( "VALUES( ?, ?, ? ) " );
try {
con = super.getConnection();
super.closeObjetosConexao( ps );
ps = con.prepareStatement( query.toString() );
ps.setInt( 1, userLoginBean.getUnidadeNegocio() );
ps.setInt( 2, idEmpresa.intValue() );
ps.setLong( 3, idDivida.longValue() );
ps.setDate( 4, new java.sql.Date( dataValidade.getTime() ) );
ps.executeUpdate();
con.commit();
} catch ( SQLException e ) {
try{
con.rollback();
}catch( SQLException e1 ){
e1.printStackTrace();
}
String mensagem = null;
if( e.getErrorCode() == 20001 ){
mensagem = CommerceException.getProcedureMessage( e.getMessage() );
}else {
mensagem = e.getMessage();
}
throw new CommerceException( mensagem, e.getErrorCode() );
} catch ( CommerceException e ) {
try{
con.rollback();
}catch( SQLException e1 ){
e1.printStackTrace();
}
throw e;
} catch ( Exception e ) {
try{
con.rollback();
}catch( SQLException e1 ){
e1.printStackTrace();
}
throw new CommerceException( e.getMessage() );
} finally {
super.closeObjetosConexao( con, ps );
}
}
Nesse abaixo está o meu JSP:
<%@ taglib uri="/WEB-INF/taglib/struts-html.tld" prefix=“html” %>
<%@ taglib uri="/WEB-INF/taglib/struts-logic.tld" prefix=“logic” %>
<%@ taglib uri="/WEB-INF/taglib/struts-bean.tld" prefix=“bean” %>
<%@ taglib uri="/WEB-INF/taglib/displaytag.tld" prefix=“display” %>
<html:html locale=“true”>
<%@include file="comum/defaulttag.jspf"%>
<script language="JavaScript">
function buscar(){
formulario = document.forms[0];
var valida1=true;
var valida2=true;
var valida3=true;
var valida6=true;
if( formulario.filtroCodigoEmpresa.value=='' || formulario.filtroCodigoEmpresa.value==0 )
valida1=false;
if( formulario.filtroCodigoVendedor.value=='' )
valida2=false; // pode ter vendedor com codigo igual a zero
if( formulario.filtroCodigoCliente.value=='' || formulario.filtroCodigoCliente.value==0 )
valida3=false;
if( formulario.filtroDataFinalFormatado.value=='' )
valida6=false;
if( valida1 || valida2 || valida3 || valida5 || valida6 ){
mostra('WaitBox');
sendCommand('buscarPedidos');
}else{
var msg = '<bean:message key="comum.mensagem.filtroPesquisa.naoSelecionado"/>';
if( confirm( msg ) ){
mostra('WaitBox');
sendCommand('buscarPedidos');
}
}
}
function buscarByChavePesquisa( chave ){
if( trim( chave ) != '' && chave > 0 ){
buscar();
}
}
function visualizarDetalhePedido( codPedido ){
formulario = document.forms[0];
formulario.codigoPedido.value=codPedido;
sendCommand( 'visualizarDetalhePedido' );
}
/*
* Responde a funcao da tecla F2
*/
function commandF2Key(){
sendCommand( 'buscarClienteFromTelaCliente' );
}
</script>
<%@include file="comum/waitbox.jspf"%>
<%@ include file="../jsp/menu.jsp" %>
<table border="0" cellspacing="0" cellpadding="0" class="tablePosition">
<tr>
<td colspan="4"><html:img srcKey="comum.imagem.barra.titulo.pagamento.fatura.off"/></td>
</tr>
<tr>
<td>
<html:img srcKey="comum.imagem.barra.titulo.ponto" width="1" height="100%"/>
</td>
<td> </td>
<td>
<table width="950px" border="0" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr class="defaultfont">
<!-- Filtro Codigo Cliente -->
<td>
<bean:message key="comum.vocabulo.cliente" /><br>
<html:text name="filtroPagamentoFaturaBean" property="filtroCodigoCliente" onchange="sendCommand( 'alterarCliente' );" onfocus="nextfield='filtroNomeCliente'" styleClass="field-size-w075-right" />
<html:text name="filtroPagamentoFaturaBean" property="filtroNomeCliente" readonly="true" onfocus="nextfield='filtroIdConta'" styleClass="field-size-w200" />
<!-- <html : link href="../buscaCliente.do"> -->
<html:link href="javascript:sendCommand( 'buscarClienteFromTelaCliente' );">
<html:img srcKey="comum.imagem.botao.pesquisar.mini" titleKey="comum.mensagem.localizar.cliente" border="0" />
</html:link>
</td>
<!-- Filtro Numero Conta -->
<td>
<bean:message key="comum.vocabulo.numero.conta" /><br>
<html:text name="filtroPagamentoFaturaBean" property="filtroIdConta" onfocus="nextfield='filtroCodigoVendedor'" styleClass="field-size-w120-right" />
</td>
<td rowspan="2" align="right">
<html:link href="javascript:sendCommand('sair')">
<html:img srcKey="comum.imagem.botao.sair" titleKey="comum.mensagem.botao.sair" border="0"/>
</html:link>
</td>
</tr>
</table>
<br>
</td>
<td><html:img srcKey="comum.imagem.barra.titulo.ponto" width="1" height="100%"/></td>
</tr>
<tr>
<td valign="top" colspan="4"><html:img srcKey="comum.imagem.barra"/></td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0" class="tablePosition">
<tr>
<td colspan="4"><html:img srcKey="comum.imagem.barra.titulo.dados.carne"/></td>
</tr>
<tr>
<td>
<html:img srcKey="comum.imagem.barra.titulo.ponto" width="1" height="100%"/>
</td>
<td> </td>
<td>
<table width="950px" border="0" cellpadding="0" cellspacing="0" bordercolor="#FF0000">
<tr class="defaultfont">
<!-- Filtro Vendedor -->
<td colspan="4">
<bean:message key="comum.vocabulo.vendedor"/><br>
<html:text property="codVendedor" size="3" onchange="document.forms[0].filtroCodigoVendedor.value=this.value;" onfocus="nextfield='filtroSituacaoPedido'" styleClass="field-size-w075"/>
<html:select name="filtroPagamentoFaturaBean" property="filtroCodigoVendedor" onchange="document.forms[0].codVendedor.value=this.value;" onfocus="nextfield='filtroCodigoEmpresa'" styleClass="field-size-w200">
<option value=''></option>
<html:optionsCollection name="listaVendedoresBean" property="lista" value="codigo" label="label"/>
</html:select>
</td>
</tr>
<!-- LINHA DE BAIXO -->
<tr class="defaultfont">
<!-- Filtro Empresa -->
<td>
<bean:message key="comum.vocabulo.filial"/><br>
<html:select name="filtroPagamentoFaturaBean" property="filtroCodigoEmpresa" onfocus="nextfield='filtroIdOperador'" styleClass="field-size-w150">
<html:optionsCollection name="listaEmpresasBean" property="lista" value="codigoEmpresa" label="label" />
</html:select>
</td>
<!--Operador + PDV -->
<td colspan="2">
<bean:message key="comum.vocabulo.operador.pdv"/><br>
<html:select name="filtroPagamentoFaturaBean" property="filtroIdOperador" onchange="document.forms[0].codVendedor.value=this.value;" onfocus="nextfield='filtroNrDocumento'" styleClass="field-size-w150">
<option value=''></option>
<html:optionsCollection name="listaVendedoresBean" property="lista" value="codigo" label="label"/>
</html:select>
</td>
<!-- Filtro Numero Fatura -->
<td>
<bean:message key="comum.vocabulo.numero.fatura" /><br>
<html:text name="filtroPagamentoFaturaBean" property="filtroNrDocumento" onfocus="nextfield='filtroDataPagamento'" styleClass="field-size-w100" />
</td>
<!-- Filtro Data Pagamento -->
<td>
<bean:message key="comum.vocabulo.data.pagamento" /><br>
<html:text name="filtroPagamentoFaturaBean" property="filtroDataPagamento" onfocus="nextfield='filtroVlPagamento'" size="10" maxlength="10" onblur="formatarData( this );" styleClass="field-size-w150" />
</td>
<!-- Filtro Valor Recebido -->
<td>
<bean:message key="comum.vocabulo.valor.recebido" /><br>
<html:text name="filtroPagamentoFaturaBean" property="filtroVlPagamento" onchange="buscarByChavePesquisa( this.value );" onfocus="nextfield='filtroCodigoCliente'" styleClass="field-size-w200" />
</td>
<td>
<logic:present name="somenteLeitura">
<html:img srcKey="comum.imagem.botao.gravar.disabled" titleKey="comum.mensagem.botao.gravar" border="0"/>
</logic:present>
<logic:notPresent name="somenteLeitura">
<html:link href="javascript:sendCommand( 'salvar' );">
<html:img srcKey="comum.imagem.botao.gravar" titleKey="comum.mensagem.botao.gravar" border="0"/>
</html:link>
</logic:notPresent>
</td>
<td>
<logic:present name="somenteLeitura">
<html:img srcKey="comum.imagem.botao.novo.cliente.disabled" titleKey="comum.mensagem.botao.novo.cliente" border="0" />
</logic:present>
<logic:notPresent name="somenteLeitura">
<html:link href="javascript:sendCommand( 'novoCliente' );">
<html:img srcKey="comum.imagem.botao.novo.cliente" titleKey="comum.mensagem.botao.novo.cliente" border="0" />
</html:link>
</logic:notPresent>
</td>
<td rowspan="2" align="right">
<html:link href="javascript:sendCommand('sair')">
<html:img srcKey="comum.imagem.botao.sair" titleKey="comum.mensagem.botao.sair" border="0"/>
</html:link>
</td>
</tr>
</table>
</td>
<td width="1" height="100%"><html:img srcKey="comum.imagem.barra.titulo.ponto" width="1" height="100%"/></td>
</tr>
<tr>
<td valign="top" colspan="4"><html:img srcKey="comum.imagem.barra"/></td>
</tr>
</table>
<br>
</html:form>
E por fim o Struts-Config:
<form-bean
name="pagamentoFaturaForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="method" type="java.lang.String" />
<form-property name="campoInativo" type="java.lang.String" />
<form-property name="filtroCodigoEmpresa" type="java.lang.Integer" />
<form-property name="codVendedor" type="java.lang.String" />
<form-property name="filtroCodigoVendedor" type="java.lang.String" />
<form-property name="filtroCodigoCliente" type="java.lang.String" />
<form-property name="filtroNomeCliente" type="java.lang.String" />
<form-property name="novaConsulta" type="java.lang.Boolean" />
<form-property name="filtroDataPagamentoFormatado" type="java.lang.String" />
<form-property name="filtroIdConta" type="java.lang.Long" />
<form-property name="filtroIdOperador" type="java.lang.Long" />
<form-property name="filtroNumPDV" type="java.lang.Long" />
<form-property name="filtroNrDocumento" type="java.lang.Long" />
<form-property name="filtroVlPagamento" type="java.lang.Double" />
</form-bean>
Valeu pela atenção moçada…