Galera é o seguinte, tow com uma dúvida bastante complicada!
tenho uma tabela que me mostra os itens de uma nota fiscal ou seja uma nota pode conter vários itens, blz.
Agora é q vem o problema.
é o seguinte, eu tenho 2 modulos no meu sistema: um é industria e outro é cliente:
o cliente digita a nota fiscal e é mostrado a nota com os itens a serem devolvidos parcialmente: supondo, em uma nota contem 3 itens: 1 - cebola / 2 - tomate / 3 - batata.
o cliente escolhe, 1 - cebola e 2 - tomate e estes itens escolhidos são enviados para o banco de dados.
logo mais, o modulo industria entra em ação.
o indústria no perfil dele, vai na funcao verificar todas as notas ficais devolvidas parcialmente e escolhe a nota desejada.
só que quando vai mostrar a nota com os itens devolvidos, apenas mostra o ultimo selecionado.
o que será isso??? alguem pode me ajudar!
vou mostrar o código JSP da minha aplicação:
<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]))) ){
if(d % 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>
<%}
// esta parte é onde estava testando e vi uma inconsistencia, onde o item é sempre o ultimo escolhido, por isso mostra apenas o ultimo e o primeiro q escolhi não mostra, pois ele é diferente.
System.out.println(" :::: "+ (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))));
System.out.println(" item: "+ (itens[i].getCod_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>
agora vou mostrar a saida com exemplo real:
SAIDA:
:::: false
item 016070
item dev 016072
:::: false
item 016071
item dev 016072
:::: false
item 016002
item dev 016072
:::: true
item 016072
item dev 016072
agora vou mostrar o repositorio:
REPOSITORIO
private static final String DEVOLVER_NOTA_PARCIAL =
"INSERT INTO TB_NF_DEVOLVIDA(CNPJ,NUM_NF,DATA_NF,DATA_DEV,MOTIVO,NUM_NF_DEV,DEV_ITEM,SITUACAO,USUARIO,DEV_ITEM_QTD) " +
"VALUES(?,?,?,?,?,?,?,?,?,?);" + "UPDATE TB_NF_DEVOLVIDA SET SITUACAO = 1 WHERE NUM_NF = ?";
@SuppressWarnings("null")
public void devolucaoNotaParcial(NFCBC notaDev) throws ExcecaoEntidadeExistente,
ExcecaoRepositorio, ExcecaoDadoInvalido {
Connection con = gerCon.getConexao(true);
PreparedStatement ps = null;
try {
Calendar dt = Calendar.getInstance();
dt.set(Calendar.DAY_OF_MONTH, Integer.parseInt(notaDev.getData_nf().split("/")[0]));
dt.set(Calendar.MONTH, Integer.parseInt(notaDev.getData_nf().split("/")[1]) - 1);
dt.set(Calendar.YEAR, Integer.parseInt(notaDev.getData_nf().split("/")[2]));
Date dataNota = new Date(dt.getTimeInMillis());
Calendar dtDev = Calendar.getInstance();
dtDev.set(Calendar.DAY_OF_MONTH, Integer.parseInt(notaDev.getDataDev().split("/")[0]));
dtDev.set(Calendar.MONTH,Integer.parseInt(notaDev.getDataDev().split("/")[1]) - 1);
dtDev.set(Calendar.YEAR, Integer.parseInt(notaDev.getDataDev().split("/")[2]));
Date dataDev = new Date(dtDev.getTimeInMillis());
/* String itensDev = "";
for(int x=0; x<notaDev.getItensDev().size(); x++){
itensDev += notaDev.getItensDev().get(x)+"/";
}*/
ps = con.prepareStatement(DEVOLVER_NOTA_PARCIAL);
for(int x=0; x<notaDev.getItensDev().size(); x++){
String itensDev = "";
itensDev += notaDev.getItensDev().get(x)+"/";
ps.setString(1, notaDev.getCnpj());
ps.setLong(2, notaDev.getNum_nf());
ps.setDate(3, dataNota);
ps.setDate(4, dataDev);
ps.setString(5, notaDev.getMotivo_reprov1());
ps.setLong(6, notaDev.getNum_nf_dev());
ps.setString(7, (notaDev.getItensDev().get(x)+"").split("@")[0]);
ps.setInt(8, 1);
ps.setString(9, notaDev.getUsuario_dfpc());
ps.setInt(10, Integer.parseInt((notaDev.getItensDev().get(x)+"").split("@")[1]));
ps.setLong(11, notaDev.getNum_nf());
ps.executeUpdate();
}
} catch (final SQLException e) {
throw new ExcecaoEntidadeExistente("Nota Fiscal já devolvida!");
} finally {
try {
ps.close();
} catch (final SQLException e) {
throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
}
}
}
[color=red]Editado por Luca para incluir as tags Code para mostrar a indentação do código. Por favor ver dicas de uso do forum [/color]