Olha só, tenho uma dúvida de predomina a dias.
tudo começa quando na JSP não mostra corretamente os itens que gostaria de ver na tela. vou ser mais específico.
Tudo começa quando em outro modulo (modulo cliente) o usuario vai na tela de devolução parcial e lá ele digita o numero da NOTA FISCAL e é mostrado para o usuario a descrição do que contem na nota, blz. Dentro da NOTA contem itens, onde o usuario pode selecionar os itens que quer devolver;
SUPONDO:
na NOTA contem 3 itens:
código do item: 016072
descrição: item A
quantidade: 30
código do item: 016073
descrição: item B
quantidade: 20
código do item: 016074
descrição: item C
quantidade: 10
--------------------
o usuario escolhe somente os itens : Item B e Item C.
(pronto isso chama-se devolução parcial de uma NOTA FISCAL, até aí blz, num eh!)
CONTINUANDO...
No outro modulo, o usuario verifica todas as notas que cairam como devolvidas parcialmente e vê na tela todas as notas.
O usuario clica na nota desejada (supondo a NOTA q estamos devolvendo acima) e LÓGICO, tem q mostrar os itens devolvidos para esta nota como:
código do item: 016073
descrição: item B
quantidade: 20
código do item: 016074
descrição: item C
quantidade: 10
---------------------
Só que o problema é que não mostra todos os itens. apenas mostra o ultimo item devolvido que no caso foi Item C.
Gostaria que alguém avaliasse o código que vou passar agora e diante mão agradecer a ajuda.
SEGUE o CÓDIGO DA PÁGINA ONDE VERIFICO A NOTA JÁ DEVOLVIDA, SÓ QUE NÃO MOSTRA CORRETAMENTE OS ITENS DESTA NOTA:
entradaParcialNFIN.jsp
<%@ page errorPage="ErrosPage.jsp"%>
<%@ page import="sistema.negocio.*"%>
<%@ page import="sistema.negocio.entidades.*"%>
<%
if ((session.getAttribute("nivel")!= null)&&(session.getAttribute("msgTipo").equals("IN"))){
%>
<html>
<head>
<script language="JavaScript">
<!--
function mudar(campo) {
campo.style.color = '#0000FF';
campo.style.backgroundColor = '#ffffff';
if (campo.defaultValue == campo.value) { campo.value = ""; }
}
function voltar(campo) {
campo.style.color = '#000000';
campo.style.backgroundColor = '#efefef';
if (campo.value == "") { campo.value = campo.defaultValue; }
}
// -->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="pragma" content="no-cache">
<%
// Depois que carregada a pagina o Cache fica vazio via comando HTML/JSP
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching
response.setHeader("Cache-Control","no-store"); //HTTP 1.1
%>
<style type="text/css">
<!--
body, p, div, td, input, select, textarea {
font-family: Arial, Helvetica, sans-serif;
font-size:12px;
color:#27364D;
text-decoration: none;
}
input,textarea, select {
@if (is.ie) {
color: #efefef; background-color:#efefef; border: 1px solid groove ;
}
textarea { overflow:auto }
body {
background-image: url(images/FundoVertical.gif);
}
body,td,th,input {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
.style30 { color: #006600;
font-weight: bold;
}
.style32 {
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
}
.styleNome {
font-size: 16px;
color: #FFFFFF;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-align:center;
}
.style49 {font-size: 14px}
.style51 {font-size: 14px; color: #006633; }
.style52 {font-size: 12px}
-->
</style>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="781" height="581" border="0" align="center" cellpadding="0" cellspacing="0" id="Table_01">
<tr>
<td colspan="6"><img src="images/Cadastro_lay.jpg" width="780" height="124" alt=""></td>
<td><img src="images/spacer.gif" width="1" height="124" alt=""></td>
</tr>
<tr>
<td rowspan="10" background="images/Cadastro_layout78-02.jpg"><%@ include file="MenuIN.jsp"%></td>
<td rowspan="10"><img src="images/Cadastro_-04.jpg" width="35" height="396" alt=""></td>
<td rowspan="10"><img src="images/Cadastro_-05.jpg" width="25" height="396" alt=""></td>
<td colspan="3" rowspan="10" valign="top" background="images/Cadastro_lay.gif">
<%
IFachadaIndustria fachadaIN = FachadaIndustria.getInstancia();
session.setAttribute("JSP","entradaParcialNFIN.jsp");
NFCBC[] notas = null;
if(request.getParameter("op")==null){
notas = fachadaIN.buscarTodasNFDevParcial("1");
if(notas.length>0){
session.setAttribute("notas",notas);
%>
<div style="height:350px; width:560px; overflow:auto;">
<form name="fmcad" method="post" action="entradaParcialNFIN.jsp?op=1">
<br>
<fieldset>
<legend><span class="style30 style32" style="color:#006633"><strong> Entrada NF´s Devolução Parcial </strong></span></legend><br>
<table width="100%" height="22" border="0">
<tr>
<th width="23%" height="18" bgcolor="#DBDBDB" scope="col">Número NF </th>
<th width="54%" bgcolor="#DBDBDB" scope="col">Razão Social </th>
<th width="11%" bgcolor="#DBDBDB" scope="col">Qtd. Itens </th>
</tr>
<%for (int x = 0; x < notas.length; x++) {%>
<%if (x % 2 == 0) {%>
<tr bgcolor="#FFFFFF" scope="col">
<%}else{%>
<tr bgcolor="#DBDBDB" scope="col">
<%}%>
<td><div align="center"><a href="entradaParcialNFIN.jsp?op=1&x=<%=x%>"><%session.setAttribute("nf"+x,notas[x]);%><%=notas[x].getNum_nf()%></a></div></td>
<td><div align="center"><%=notas[x].getRazaoSocial()%></div></td>
<td><div align="center"><%=notas[x].getItNF().length%></div></td>
<%}%>
</tr>
</table>
</fieldset>
</form>
</div>
<br/>
<input type="button" name="voltar" id="voltar" value="Voltar" onClick="document.location='inicial.jsp'" style="border:outset;" />
<%}else{%>
<br>
<div style="height:350px; width:560px; overflow:auto;">
<fieldset><form name="fmcad">
<legend class="style2"><span class="style30 style32" style="color:#006633"><strong>Entrada NF´s Devolução Parcial </strong></span></legend>
<br>
<table width="100%" height="45" border="0">
<tr>
<strong> Não há NF´s de devolução parcial no sistema!<br/><br/></strong>
</tr>
<tr>
<input type="button" name="voltar" id="voltar" value="Voltar" style="border:outset;" onClick="document.location='inicial.jsp'" />
</tr>
</table></form>
</fieldset>
</div>
<p>
<%}
}else if(Integer.parseInt(request.getParameter("op"))==1){
NFCBC notaFiscal = (NFCBC)session.getAttribute("nf"+request.getParameter("x"));
ItemNF[] itens = notaFiscal.getItNF();
String[] notaDev = fachadaIN.buscarNFDevParcial(notaFiscal.getNum_nf()+"");
session.setAttribute("notaDev",notaDev[1]+"X"+notaDev[6]+"X"+notaDev[0]);
%>
<form name="fmcad" action="entradaParcialNFIN.jsp?op=2" method="post">
<div style="height:350px; overflow:auto;">
<br>
<fieldset class="style27">
<legend><span class="style30 style32" style="color:#006633"><strong> Detalhamento da NF de Devolução Parcial </strong></span></legend>
<br>
<span class="style51"><strong>Nota Fiscal Origem</strong></span><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30%">
<div align="right" class="style49"><span class="style46 style52">Razão Social</span></div></td>
<td> </td>
<td>
<div align="left"><input name="numeroNota" value="<%=notaFiscal.getRazaoSocial()%>" type="text" size="60" readonly="readonly"></div></td>
</tr>
<tr>
<td>
<div align="right" class="style49"><span class="style46 style52">Número da Nota Fiscal</span></div></td>
<td> </td>
<td>
<div align="left"><input name="numeroNota" value="<%=notaFiscal.getNum_nf()%>" type="text" size="13" readonly="readonly"></div></td>
</tr>
<tr>
<td>
<div align="right" class="style49"><span class="style46 style52">Número do Pedido</span></div></td>
<td> </td>
<td>
<div align="left"><input name="numeroPedido" value="<%=notaFiscal.getNum_pedido()%>" type="text" size="13" readonly="readonly"></div> </td>
</tr>
<tr>
<td>
<div align="right" class="style49"><span class="style46 style52">Data da Nota</span></div>
</td>
<td> </td>
<td>
<div align="left"><input name="dataNota" type="text" value="<%=notaFiscal.getData_nf().replace('-','/').split("/")[2]+"/"+notaFiscal.getData_nf().replace('-','/').split("/")[1]+"/"+notaFiscal.getData_nf().replace('-','/').split("/")[0]%>" size="13" readonly="readonly" maxlength="10"></div>
</td>
</tr>
</table>
<span class="style51"><br>
<strong>Nota Fiscal Devolução</strong><br>
</span>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30%"><div align="right" class="style49"><span class="style46 style52">Nota Fiscal</span></div></td>
<td width="2%"></td>
<td width="66%"><div align="left">
<input name="numeroNota2" value="<%=notaDev[5]%>" type="text" size="13" readonly="readonly">
</div></td>
</tr>
<tr>
<td><div align="right" class="style49"><span class="style46 style52">Data da Devolução </span></div></td>
<td> </td>
<td><div align="left">
<input name="numeroPedido2" value="<%=notaDev[3].replace('-','/').split("/")[2]+"/"+notaDev[3].replace('-','/').split("/")[1]+"/"+notaDev[3].replace('-','/').split("/")[0]%>" type="text" size="13" readonly="readonly">
</div></td>
</tr>
<tr>
<td height="48"><div align="right" class="style49"><span class="style46 style52">Motivo</span></div></td>
<td> </td>
<td><div align="left">
<label>
<textarea name="textarea" cols="50" rows="3"><%=notaDev[4]%></textarea>
</label>
</div></td>
</tr>
</table>
<br>
<table width="100%" border="0">
<tr>
<th bgcolor="#BBBBBB" class="style39" scope="col">Código Item</th>
<th bgcolor="#BBBBBB" class="style39" scope="col">Descrição</th>
<th bgcolor="#BBBBBB" class="style39" scope="col">Quantidade de Devolução </th>
</tr>
<%
String[] devolucao = notaDev[6].split("/");
for(int i=0; i<itens.length; i++){
for(int d=0; d<devolucao.length; d++){
if( (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))) ){
for(int ii=0; ii<itens.length; ii++){
for(int dd=0; dd<devolucao.length; dd++){
if(dd % 2==0){%>
<tr bgcolor=#FFFFFF>
<%}else{%>
<tr bgcolor=#DDDDDD>
<%}%>
<td><div align="center" class="style40"><%=itens[i].getCod_item()%></div></td>
<td><div align="center" class="style40"><%=itens[i].getDesc_item()%></div></td>
<td><div align="center" class="style40"><%=devolucao[d].split("@")[1]%></div></td>
</tr>
<%}
}
}
System.out.println("i : "+ i);
System.out.println("d : "+ d);
System.out.println(" :::: "+ (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))));
System.out.println(" item [i]: "+ (itens[i].getCod_item()));
System.out.println(" item [d]: "+ (itens[d].getCod_item()));
System.out.println(" item: "+ (itens[i].getDesc_item()));
System.out.println(" NF DEV: "+ notaDev[0]+" - "+notaDev[1]+" - "+notaDev[2]+" - "+notaDev[3]+" - "+notaDev[4]+" - "+notaDev[5]+" - "+notaDev[6]+" - "+notaDev[7] );
System.out.println(" item dev: "+ ( (devolucao[d].split("@")[0]))+"\n---------------" );
}
}
%>
</table>
<table width="99%" border="0" height="20%">
<tr>
<th colspan="3" scope="col"></th>
</tr>
<tr>
<td width="44%" scope="col">
<fieldset><br>
<legend><span class="style30 style32" style="color:#006633">Confirmação
</span></legend>
<table width="100%" height="51" border="0">
<tr>
<td scope="col">
<div align="center">
<input type="button" name="Confirmar" id="confirmar" value="Confirmar"
onClick="if(confirm('Deseja realmente Confirmar\nEsta Devolução Parcial?'))document.fmcad.submit();
else return" style="border:outset; ">
<input type="button" name="Cancelar" id="cancelar" value="Cancelar"
onClick="if(confirm('Deseja realmente Cancelar\nEsta Devolução Parcial?')) location='entradaParcialNFIN.jsp?op=3';
else return" style="border:outset; ">
<input type="button" name="voltar" id="voltar" value="Voltar" onClick="javascript:history.go(-1)" style="border:outset; ">
</div> </td>
</tr>
</table>
</fieldset>
<td width="56%" scope="col"> </td>
</tr>
</table>
</fieldset>
</div>
</form>
<%}else{
if(Integer.parseInt(request.getParameter("op"))==2){
if(fachadaIN.devolucaoParcialNF(session.getAttribute("notaDev")+"")){
%>
<script type="text/javascript">window.alert('Confirmação Aceita!');document.location='inicial.jsp';</script>
<% }
}else if(Integer.parseInt(request.getParameter("op"))==3){
//NFCBC notaDev = (NFCBC) session.getAttribute("notaDev");
//notaDev.setUsuario_dfpc(session.getAttribute("usuario")+"");
//fachadaIN.cancelaEntradaNF(notaDev);
%>
<script type="text/javascript">window.alert('Cancelamento Aceito!');document.location='inicial.jsp';</script>
<% }
}
%>
</td>
<td><img src="images/spacer.gif" width="1" height="24" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="23" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="1" height="188" alt=""></td>
</tr>
<tr>
<td colspan="6"><img src="images/Cadastro_-16.jpg" width="780" height="13" alt=""></td>
<td><img src="images/spacer.gif" width="1" height="13" alt=""></td>
</tr>
<tr>
<td colspan="4" rowspan="2" background="images/Cadastro_-17.jpg">
<div align="center" ><img src="images/IN.gif" ></div></td>
<td colspan="2"><img src="images/Cadastro_-18.jpg" width="438" height="20" alt=""></td>
<td><img src="images/spacer.gif" width="1" height="20" alt=""></td>
</tr>
<tr>
<td rowspan="2"><img src="images/Cadastro_-19.jpg" width="59" height="27" alt=""></td>
<td rowspan="2" background="images/Cadastro_-20.jpg"><div align="center" class="styleNome"><%=session.getAttribute("principal")%></div></td>
<td><img src="images/spacer.gif" width="1" height="14" alt=""></td>
</tr>
<tr>
<td colspan="4"><img src="images/Cadastro_-21.jpg" width="342" height="13" alt=""></td>
<td><img src="images/spacer.gif" width="1" height="13" alt=""></td>
</tr>
<tr>
<td><img src="images/spacer.gif" width="160" height="1" alt=""></td>
<td><img src="images/spacer.gif" width="35" height="1" alt=""></td>
<td><img src="images/spacer.gif" width="25" height="1" alt=""></td>
<td><img src="images/spacer.gif" width="122" height="1" alt=""></td>
<td><img src="images/spacer.gif" width="59" height="1" alt=""></td>
<td><img src="images/spacer.gif" width="379" height="1" alt=""></td>
</tr>
</table>
</body>
</html>
<%}else
response.sendRedirect("invalida.jsp");
%>
-------------------------------------------
SEGUE o CÓDIGO DO REPOSITORIO ONDE TENHO OS METODOS ONDE EU VERIFICO NA NOTA OS ITENS E TUDO MAIS:
RepositorioIndustria
package sistema.dados.repositorio;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import sistema.dados.excecoes.ExcecaoRepositorio;
import sistema.dados.util.GerenciadorConexaoBDR;
import sistema.negocio.entidades.ItemNF;
import sistema.negocio.entidades.NFCBC;
public class test {
private final GerenciadorConexaoBDR gerCon = GerenciadorConexaoBDR.getMyInstance();
public static final String PESQUISA_NF_DEV_PARCIAL = "SELECT DISTINCT NF.NUMERO_NF,NF.NUMERO_PEDIDO,NF.NUMERO_OM, "+
"NF.COD_CLIENTE,NF.CNPJ,NF.NUMERO_CR,NF.SITUACAO,NF.DT_NF,C.NOME,NF.USUARIO_DFPC "+
"FROM TB_NF_CBC NF, CLIENTES_SISTEMA C, TB_NF_DEVOLVIDA D "+
"WHERE D.SITUACAO = ? AND C.CNPJ=NF.CNPJ AND NF.NUMERO_NF=D.NUM_NF "+
"ORDER BY NUMERO_NF";
// "SELECT DISTINCT NF.NUMERO_NF,NF.NUMERO_PEDIDO,NF.NUMERO_OM," +
// "NF.COD_CLIENTE,NF.CNPJ,NF.NUMERO_CR,NF.SITUACAO,NF.DT_NF,C.NOME,NF.USUARIO_DFPC " +
// "FROM TB_NF_CBC NF, CLIENTES_SISTEMA C WHERE SITUACAO = ? AND C.CNPJ=NF.CNPJ ORDER BY NUMERO_NF";
public static final String PESQUISA_ITENS_NF_DEV_PARCIAL = "SELECT SEQUENCIA, COD_ITEM, DESC_ITEM, QTD, UNIDADE FROM TB_NF_CBC " +
"WHERE NUMERO_NF=? ORDER BY SEQUENCIA";
@SuppressWarnings("null")
public NFCBC[] buscarTodasNFDevParcial(String status) throws ExcecaoRepositorio{
ArrayList<NFCBC> arrayNFCBC = new ArrayList<NFCBC>();
NFCBC[] vetNFCBC = null;
NFCBC nf = null;
ItemNF itNF = null;
Connection con = gerCon.getConexao(false);
PreparedStatement ps1 = null;
PreparedStatement ps2 = null;
ResultSet rs1 = null;
ResultSet rs2 = null;
try {
ps1 = con.prepareStatement(PESQUISA_NF_DEV_PARCIAL);
ps1.setString(1, status);
rs1 = ps1.executeQuery();
while(rs1.next()){
long num_nf = rs1.getLong(1);
int numPedido = rs1.getInt(2);
int numOm = rs1.getInt(3);
String codCliente = rs1.getString(4);
String cnpj = rs1.getString(5);
String numCr = rs1.getString(6);
String situacao = rs1.getString(7);
String data = rs1.getString(8);
String razaoSocial = rs1.getString(9);
String usuario_dfpc = rs1.getString(10);
nf = new NFCBC(num_nf,numPedido,numOm,codCliente,cnpj,numCr,situacao,data,razaoSocial,usuario_dfpc);
ps2 = con.prepareStatement(PESQUISA_ITENS_NF_DEV_PARCIAL);
ps2.setLong(1, num_nf);
rs2 = ps2.executeQuery();
while(rs2.next()){
int sequencia = rs2.getInt(1);
String codItem = rs2.getString(2);
String descItem = rs2.getString(3);
int qtd = rs2.getInt(4);
String unidade = rs2.getString(5);
itNF = new ItemNF(sequencia, codItem, descItem, qtd, unidade);
nf.setItNF(itNF);
}
arrayNFCBC.add(nf);
}
vetNFCBC = new NFCBC[arrayNFCBC.size()];
for (int i = 0; i < arrayNFCBC.size(); i++) {
vetNFCBC[i] = (NFCBC) arrayNFCBC.get(i);
}
return vetNFCBC;
} catch (SQLException e) {
throw new ExcecaoRepositorio("Erro de acesso ao Banco de Dados!");
} finally {
try {
if(vetNFCBC.length>0){
rs2.close();
}
rs1.close();
} catch (Exception e) {
throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
}
try {
if(vetNFCBC.length>0){
ps2.close();
}
ps1.close();
} catch (Exception e) {
throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
}
try {
con.close();
} catch (Exception e) {
throw new ExcecaoRepositorio("Erro de acesso ao Banco de Dados!");
}
}
}
private static final String BUSCAR_NF_DEV_PARCIAL = "SELECT * FROM TB_NF_DEVOLVIDA WHERE NUM_NF=?";
public String[] buscarNFDevParcial(String x)throws ExcecaoRepositorio{
Connection con = gerCon.getConexao(false);
PreparedStatement ps = null;
ResultSet rs = null;
String[] notaDev = new String[8];
String msg="";
try {
ps = con.prepareStatement(BUSCAR_NF_DEV_PARCIAL);
ps.setString(1, x);
rs = ps.executeQuery();
while(rs.next()){
String cnpj = rs.getString(1);
long num_nf = rs.getLong(2);
String dt_nf = rs.getString(3);
String dt_dev = rs.getString(4);
String motivo = rs.getString(5);
long num_nf_dev = rs.getLong(6);
String dev_iten_qtd = rs.getString(7)+"@"+rs.getInt(10);
int situacao = rs.getInt(8);
msg= cnpj+"!"+num_nf+"!"+dt_nf+"!"+dt_dev+"!"+motivo+"!"+num_nf_dev+"!"+dev_iten_qtd+"!"+situacao;
}
notaDev = msg.split("!");
} catch (SQLException e) {
throw new ExcecaoRepositorio("Erro de acesso ao Banco de Dados!");
} finally {
try{
rs.close();
} catch (final SQLException e) {
throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
}
try {
ps.close();
} catch (final SQLException e) {
throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
}
try {
con.close();
} catch (final SQLException e) {
throw new ExcecaoRepositorio("Erro de acesso ao Banco de Dados!");
}
}
return notaDev;
}
}