aluisiodsv,
Em primeiro lugar obrigada por responder…
É o seguinte…
Na mesma classe tenho dois métodos, um que inclui e exclui item e outro que busca produtos similares.
[Vou colocar o código simplificado pq ele é gigante]
private boolean executaInclusaoExclusaoItemPedidoVenda ( UserLoginBean userBean, PedidoVendaBean pedidoVendaBean, ItemPedidoVendaBean itemPedidoVendaBean, String tipoAcao ) throws InvalidException, CommerceException{
Connection con = null;
CallableStatement cs = null;
try{
con = super.getConnection();
cs = con.prepareCall( "{ call PRCD_PVD_GERAL_JAVA(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }" );
....
cs.registerOutParameter( 7, Types.INTEGER );
itemPedidoVendaBean.setCodigoPedido( new Integer( cs.getInt( 7 ) ) );
....
}
Esse é o método que inclui ou exclui produtos…
Ele chama uma procedure e um dos retornos é o código do Pedido.
Tenho outro método que até então está assim
public ListaProdutoSimilarBean getListaProdutoSimilarBean(UserLoginBean userLoginBean, PedidoVendaBean pedidoVendaBean, Long codigoEAN ) throws CommerceException{
Connection con = null;
CallableStatement cs = null;
CallableStatement csa = null;
PreparedStatement ps = null;
ResultSet rs = null;
ListaProdutoSimilarBean listaProdutoSimilarBean = null;
StringBuffer query = new StringBuffer();
try{
con = super.getConnection();
cs = con.prepareCall( "{call PRCD_PROD_SIMILAR_JAVA(?, ?, ?, ?, ?) } " );
cs.setInt(1,userLoginBean.getUnidadeNegocio());
cs.setInt(2,userLoginBean.getEmpresa());
cs.setInt(3, pedidoVendaBean.getCodigoPedido() );
cs.setLong(4, codigoEAN.intValue());
cs.registerOutParameter(5,Types.VARCHAR);
cs.executeUpdate();
System.out.println(cs.getString(5));
if(cs.getString( 5 ).equals("S")){
query.append( " SELECT " );
query.append( " PS.ID_PRO, " );
query.append( " PS.ID_PRO_SIM, " );
query.append( " PS.NM_PRO_SIM, " );
query.append( " PS.QT_FIS_EMP, " );
query.append( " PS.QT_FIS_CDI " );
query.append( " FROM " );
query.append( " AUX_ITEM_PEDIDO_VENDA_SIMILAR PS " );
query.append( " WHERE " );
query.append( " PS.ID_UNN = ? AND " );
query.append( " PS.ID_EMP = ? AND " );
query.append( " PS.ID_PVD = ? " );
ps = con.prepareStatement( query.toString() );
ps.setInt(1,userLoginBean.getUnidadeNegocio());
ps.setInt(2,userLoginBean.getEmpresa());
ps.setInt(3, pedidoVendaBean.getCodigoPedido() );
rs = ps.executeQuery();
if( rs.next() ){
listaProdutoSimilarBean = new ListaProdutoSimilarBean();
do{
ProdutoSimilarBean produtoSimilarBean;
produtoSimilarBean = new ProdutoSimilarBean();
produtoSimilarBean.setIdProduto( new Integer( rs.getInt( "ID_PRO" )));
produtoSimilarBean.setIdProdutoSimilar( new Integer( rs.getInt( "ID_PRO_SIM" )));
produtoSimilarBean.setNomeProdutoSimilar( new String(rs.getString( "NM_PRO_SIM" )));
produtoSimilarBean.setQtdFisicaEmpresa( new Integer( rs.getInt( "QT_FIS_EMP" )));
produtoSimilarBean.setQtdFisicaCDI( new Integer (rs.getInt( "QT_FIS_CDI" )));
listaProdutoSimilarBean.addProdutoSimilarBean(produtoSimilarBean);
}while( rs.next() );
StringBuffer delete = new StringBuffer();
delete.append( " DELETE ");
delete.append( " AUX_ITEM_PEDIDO_VENDA_SIMILAR ");
delete.append( " WHERE ");
delete.append( " ID_UNN = ? AND " );
delete.append( " ID_EMP = ? AND " );
delete.append( " ID_PVD = ? ");
ps = con.prepareStatement( delete.toString() );
ps.setInt(1 ,userLoginBean.getUnidadeNegocio());
ps.setInt(2,userLoginBean.getEmpresa());
ps.setInt(3,pedidoVendaBean.getCodigoPedido() );
ps.executeUpdate();
con.commit();
}
}
return listaProdutoSimilarBean;
}catch( SQLException e ){
throw new CommerceException( e.getMessage(), e.getErrorCode() );
}
O que eu preciso é que dentro desse meu ultimo método, em todos os lugares que passei " pedidoVendaBean.getCodigoPedido() " , preciso passar aquele retorno da procedure do primeiro método.
Relembrando que eles estão dentro da mesma classe.
Bom, com isso deu pra entender???