Problemas com a JSP

7 respostas
Diego_Marinho

Fala galera, blz.

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:

<%@ 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>
</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");
NF [] 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&acute;s Devolu&ccedil;&atilde;o Parcial </strong></span></legend><br>
                  <table width="100%" height="22" border="0">
						  <tr>
						    <th width="23%" height="18" bgcolor="#DBDBDB" scope="col">N&uacute;mero NF </th>
						    <th width="54%" bgcolor="#DBDBDB" scope="col">Raz&atilde;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&acute;s Devolu&ccedil;&atilde;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){
	NF  notaFiscal = (NF )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&ccedil;&atilde;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&atilde;o Social</span></div></td>
			<td>&nbsp;</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&uacute;mero da Nota Fiscal</span></div></td>
			<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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&uacute;mero do Pedido</span></div></td>
			<td>&nbsp;</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>&nbsp;</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&ccedil;&atilde;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&ccedil;&atilde;o </span></div></td>
        <td>&nbsp;</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>&nbsp;</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&oacute;digo	Item</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Descri&ccedil;&atilde;o</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Quantidade de Devolu&ccedil;&atilde;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>
		 			<%}
					System.out.println("  ::::  "+ (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))));
					System.out.println("  ::::  "+ (itens[i].getCod_item().equals(itens[d].getCod_item())));
					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&ccedil;&atilde;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; ">&nbsp;
									<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; ">&nbsp;
						<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">&nbsp;</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){
	NF  notaDev = (NF ) 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>
</table>
</body>
</html>
<%}else
	response.sendRedirect("invalida.jsp");
%>

AKI VOU COLOCAR A PARTE DO REPOSITORIO ONDE FAZ SE COMUNICAR COM A A PAGINA E VICE-VERSA.

@SuppressWarnings("null")
	public void devolucaoNotaParcial(NF_ notaDev) throws ExcecaoEntidadeExistente,
	ExcecaoRepositorio, ExcecaoDadoInvalido {
		Connection con = gerCon.getConexao(true);
		PreparedStatement ps = null;
		try {			
			ps = con.prepareStatement(DEVOLVER_NOTA_PARCIAL);
			
			for(int x=0; x<notaDev.getItensDev().size(); 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!");
			}
		}
	}

7 Respostas

abelgomes

meu caro Chapolin Colorado…hehehehehe nao podia passar sem essa…

agora serio: como vc está tratando isso, essas devoluções? vc coloca em uma tabela? faz oq…pq se tiver numa tabela coloca aqui o scripit de criação dela pra gente V…ou simplesmente nos diga como esta esse relacionamento de itens devolvidos com nota…:wink:

como está no banco? vc diz que so exibe a ultima, mas no banco de dados tem todos os itens que foram devolvidos?

Diego_Marinho

abelgomes:
meu caro Chapolin Colorado…hehehehehe nao podia passar sem essa…

agora serio: como vc está tratando isso, essas devoluções? vc coloca em uma tabela? faz oq…pq se tiver numa tabela coloca aqui o scripit de criação dela pra gente V…ou simplesmente nos diga como esta esse relacionamento de itens devolvidos com nota…:wink:

como está no banco? vc diz que so exibe a ultima, mas no banco de dados tem todos os itens que foram devolvidos?

Isso mesmo, só mostra o ultimo registro, e no banco de dados está ok, ele mostra no caso os 2 itens q pedi para devolver. acho q a logica está errada, pelo q entendi, o for varre toda a lista e verifica e o item é igual ao outro, se TRUE ele mostra, se FALSE ele não mostra.

bem acho q eh isso!!! pois não fui eu quem fiz, estou dando suporte nesse negocio aki e peguei isso sem nenhuma documentação e vi que pelo fórum agente se comunica e resolve algumas coisas.

FAlow []´s

abelgomes

é Chapolin…agora pegou…essa jsp ta uma bagunça…:svou da uma olhada aqui e V se consigo te dar uma força…

wswillianss

:shock: isso ai é JSP? ou PHP?
Cara, da uma estudada em JSTL… e limpe mais esse código.

Diego_Marinho

wswillianss:
:shock: isso ai é JSP? ou PHP?
Cara, da uma estudada em JSTL… e limpe mais esse código.

kkkkkkkkkkkk :P. desculpa cara, mas essa eu tinha que rir. rapaz, vc tá certo. tem mesmo é q usar algo que deixe o código digno de uma boa leitura(JSF / JSTL e etc) e compreensão,pena q o cara q fez esse código q tow dando manutenção fez dessa maneira (código feito à 3 anos atrás), mas como um bom analista que se preze. Devemos respeitar a maneira como os outros fazem as coisas, afinal, “eles não sabe o que fazem” rsrsrs !!! :stuck_out_tongue:
Mas valeu a dica. mas no momento estou atras desse defeito que estou tentando resolver.
falow. []´s

jomello_br

é concordo o Código esta uma bagunça, mas temos que respeitar “quem nunca fez M…??? :-)”
Tambem vou dar uma olhada no codigo e tentar te ajudar ok mano :slight_smile:

Abraços

Diego_Marinho
Diego Marinho:
Fala galera, blz.

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:
<%@ 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>
</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");
NF [] 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&acute;s Devolu&ccedil;&atilde;o Parcial </strong></span></legend><br>
                  <table width="100%" height="22" border="0">
						  <tr>
						    <th width="23%" height="18" bgcolor="#DBDBDB" scope="col">N&uacute;mero NF </th>
						    <th width="54%" bgcolor="#DBDBDB" scope="col">Raz&atilde;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&acute;s Devolu&ccedil;&atilde;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){
	NF  notaFiscal = (NF )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&ccedil;&atilde;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&atilde;o Social</span></div></td>
			<td>&nbsp;</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&uacute;mero da Nota Fiscal</span></div></td>
			<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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&uacute;mero do Pedido</span></div></td>
			<td>&nbsp;</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>&nbsp;</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&ccedil;&atilde;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&ccedil;&atilde;o </span></div></td>
        <td>&nbsp;</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>&nbsp;</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&oacute;digo	Item</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Descri&ccedil;&atilde;o</th>
			<th bgcolor="#BBBBBB" class="style39" scope="col">Quantidade de Devolu&ccedil;&atilde;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>
		 			<%}
					System.out.println("  ::::  "+ (itens[i].getCod_item().equals((devolucao[d].split("@")[0]))));
					System.out.println("  ::::  "+ (itens[i].getCod_item().equals(itens[d].getCod_item())));
					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&ccedil;&atilde;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; ">&nbsp;
									<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; ">&nbsp;
						<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">&nbsp;</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){
	NF  notaDev = (NF ) 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>
</table>
</body>
</html>
<%}else
	response.sendRedirect("invalida.jsp");
%>

AKI VOU COLOCAR A PARTE DO REPOSITORIO ONDE FAZ SE COMUNICAR COM A A PAGINA E VICE-VERSA.

@SuppressWarnings("null")
	public void devolucaoNotaParcial(NF_ notaDev) throws ExcecaoEntidadeExistente,
	ExcecaoRepositorio, ExcecaoDadoInvalido {
		Connection con = gerCon.getConexao(true);
		PreparedStatement ps = null;
		try {			
			ps = con.prepareStatement(DEVOLVER_NOTA_PARCIAL);
			
			for(int x=0; x<notaDev.getItensDev().size(); 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!");
			}
		}
	}

Salve galera.

Olha só, eu errei em colocar o codigo do repositorio. na verdade não é este codigo, quando vi achei estranho, por isso tava dificil olhar num eh! pois bem, estou acrescentando o codigo correto logo abaixo.OBS: o .JSP está ok só alterei a parte do repositorio.

private static final String DEVOUCAO_PARCIAL_NF= "UPDATE TB_NF_DEVOLVIDA SET SITUACAO=2 WHERE NUM_NF=?";
	private static final String DEVOLUCAO_ITEN_DEV_PARCIAL="UPDATE TB_REGISTRO_MESTRE " +
	"SET ESTOQUE_ATUAL=(SELECT ESTOQUE_ATUAL FROM TB_REGISTRO_MESTRE " +
	"WHERE CNPJ=? AND CODIGO=?)-?," +
	"QTD_DEV_CBC =(SELECT QTD_DEV_CBC FROM TB_REGISTRO_MESTRE " +
	"WHERE CNPJ=? AND CODIGO=?)+? " +
	"WHERE CNPJ=? AND CODIGO=?";
	public boolean devolucaoParcialNF(String x)throws ExcecaoRepositorio{
		Connection con = gerCon.getConexao(true);
		PreparedStatement ps = null;
		Connection con2 = gerCon.getConexao(true);
		PreparedStatement ps2 = null;

		try {
			ps = con.prepareStatement(DEVOUCAO_PARCIAL_NF);			
			ps.setString(1, (x.split("X"))[0]);
			ps.executeUpdate();			
			String cnpj = (x.split("X"))[2];
			String[] itens = ((x.split("X"))[1]).split("/");			
			
			for(int i=0;i<itens.length;i++){
				String codigo = itens[i].split("@")[0];
				int qtd = Integer.parseInt(itens[i].split("@")[1]);
				ps2 = con2.prepareStatement(DEVOLUCAO_ITEN_DEV_PARCIAL);
				ps2.setString(1,cnpj);
				ps2.setString(2,codigo);
				ps2.setInt(3, qtd);				
				ps2.setString(4,cnpj);
				ps2.setString(5,codigo);
				ps2.setInt(6, qtd);				
				ps2.setString(7,cnpj);				
				ps2.setString(8,codigo);
				ps2.executeUpdate();
			}

		} catch (SQLException e) {
			throw new ExcecaoRepositorio("Erro de acesso ao Banco de Dados! ");
		} finally {
			try {
				ps.close();
				ps2.close();
			} catch (SQLException e) {
				throw new ExcecaoRepositorio("Erro ao fechar a conexão com o Banco de Dados!");
			}
		}
		return true;
	}
Criado 14 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 7
Participantes 4