Boa noite pessoal,
Estou construindo uma aplicação em nível de estudante, que deve fazer o seguinte:
Tenho que cadastrar uma Nota fiscal e essa nota fiscal tem vários produtos, então fiz um fomulario para cadastrar essa nota que ao clicar no botão salvar envio a nota para o banco de dados e abro a tela para cadastrar os produtos, porém não consigo levar o nº da nota para essa tela, por consequencia não consigo recuperar o id.
Consegui fazer usando comboBox, porém fica muito lento, acho que seja por causa dos carregamento dos combos.
meus códigos estão aí se alguém tiver uma saída…é tipo um carrinho de compras…desse jeito tá rodando mas não acho que seja o ideal.
NotaMB
NotaFiscalFace
package ro.gui.anderson.GapfMB;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.faces.model.SelectItem;
import ro.gui.anderson.GapfDao.NotaFiscalDao;
import ro.gui.anderson.GapfDao.FornecedorDao;
import ro.gui.anderson.GapfBean.Fornecedor;
import ro.gui.anderson.GapfBean.GuiaEntrada;
import ro.gui.anderson.GapfBean.NotaFiscal;
/**
*
* @author Windows
*/
public class NotaFiscalFace {
private FornecedorDao forn = new FornecedorDao();
// private ProdutoDao prod = new ProdutoDao();
// private GuiaEntradaDao enta = new GuiaEntradaDao();
private NotaFiscalDao nota = new NotaFiscalDao();
private NotaFiscal selectNotaFiscal;
private List<NotaFiscal> notaFiscal;
private GuiaEntrada selectGuiaEntrada;
// private List<GuiaEntrada> guiaEntrada;
public NotaFiscalFace() {
}
public String StartAddNotaFiscal(){
selectNotaFiscal = new NotaFiscal();
return "gotoAddNewNotaFiscal";
}
public String FinishAddNotaFiscal() throws ClassNotFoundException, SQLException{
// enta.add(selectGuiaEntrada);
nota.add(selectNotaFiscal);
GuiaEntradaFace gui = new GuiaEntradaFace();
gui.setSelectNota(selectNotaFiscal);
notaFiscal = null;
// guiaEntrada = null;
return "gotoAddNewGuiaEntrada";
}
public List<NotaFiscal> getNotaFiscal() throws ClassNotFoundException, SQLException{
if (notaFiscal == null){
notaFiscal = nota.getNotaFiscal();
}
return notaFiscal;
}
public List<SelectItem> getFornecedor() throws ClassNotFoundException, SQLException{
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Fornecedor forne : forn.getAllFornecedor()){
toReturn.add(new SelectItem(forne, forne.getForn_nome()));
}
return toReturn;
}
public String StartEditNotaFiscal() throws ClassNotFoundException, SQLException{
return "gotoEditNotaFiscal";
}
public String FinishEditNotaFiscal() throws ClassNotFoundException, SQLException{
nota.set(selectNotaFiscal);
notaFiscal = null;
return "gotoListNotaFiscal";
}
public String CancelEditNotaFiscal() throws ClassNotFoundException, SQLException{
notaFiscal = null ;
return "gotoListNotaFiscal";
}
public String RetornarInicio()throws ClassNotFoundException, SQLException{
return"gotoReturnInicio";
}
public NotaFiscal getSelectNotaFiscal() {
return selectNotaFiscal;
}
public void setSelectNotaFiscal(NotaFiscal selectNotaFiscal) {
this.selectNotaFiscal = selectNotaFiscal;
}
}
GuiaEntradaMB
package ro.gui.anderson.GapfMB;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.faces.model.SelectItem;
import ro.gui.anderson.GapfBean.GuiaEntrada;
import ro.gui.anderson.GapfBean.NotaFiscal;
import ro.gui.anderson.GapfBean.Produto;
import ro.gui.anderson.GapfDao.GuiaEntradaDao;
import ro.gui.anderson.GapfDao.NotaFiscalDao;
import ro.gui.anderson.GapfDao.ProdutoDao;
/**
*
* @author anderson.agr
*/
public class GuiaEntradaFace {
/** Creates a new instance of GuiaEntradaFace */
// private FornecedorDao forn = new FornecedorDao();
private ProdutoDao daoprod = new ProdutoDao();
private Produto prod = new Produto();
private GuiaEntradaDao enta = new GuiaEntradaDao();
private NotaFiscalDao nota = new NotaFiscalDao();
private List<GuiaEntrada> entradas = new ArrayList<GuiaEntrada>();
private GuiaEntrada selectGuiaEntrada;
private Produto selectProduto;
private NotaFiscal selectNota;
// private String numNota;
public GuiaEntradaFace() {
selectGuiaEntrada = new GuiaEntrada();
}
public String IncluirProdutos() throws ClassNotFoundException, SQLException{
entradas.add(selectGuiaEntrada);
selectGuiaEntrada = null;
selectGuiaEntrada = new GuiaEntrada();
return "gotoIncluirGuia";
}
public String CadastrarGuias() throws ClassNotFoundException, SQLException {
for (GuiaEntrada guia : this.getEntradas()) {
enta.add(guia);
}
entradas.clear();
selectGuiaEntrada = new GuiaEntrada();
return "gotoIncluirGuia";
}
public String CancelEditGuia() throws ClassNotFoundException, SQLException{
entradas.clear();
selectGuiaEntrada = new GuiaEntrada();
return "gotoIncluirGuia";
}
public List<GuiaEntrada> getEntradas() throws ClassNotFoundException, SQLException{
return entradas;
}
public String StartEditProdutoSelecionado(){
return "GotoEditProdutoSelecionado";
}
public String RemoverProdutoSelecionado(){
return "gotoIncluirGuia";
}
public List<SelectItem> getProdutos() throws ClassNotFoundException, SQLException{
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (Produto clase : daoprod.getProduto()){
toReturn.add(new SelectItem(clase, clase.getProd_descricao()));
}
return toReturn;
}
public List<SelectItem> getNotas() throws ClassNotFoundException, SQLException{
List<SelectItem> toReturn = new LinkedList<SelectItem>();
for (NotaFiscal clase : nota.getNotaFiscal()){
toReturn.add(new SelectItem(clase, clase.getNota_numero()));
}
return toReturn;
}
public GuiaEntrada getSelectGuiaEntrada() {
return selectGuiaEntrada;
}
public void setSelectGuiaEntrada(GuiaEntrada selectGuiaEntrada) {
this.selectGuiaEntrada = selectGuiaEntrada;
}
public Produto getSelectProduto() {
return selectProduto;
}
public void setSelectProduto(Produto selectProduto) {
this.selectProduto = selectProduto;
}
public String RegraTemporaria(){
return "gotoAdmin";
}
/**
* @return the selectNota
*/
public NotaFiscal getSelectNota() {
return selectNota;
}
/**
* @param selectNota the selectNota to set
*/
public void setSelectNota(NotaFiscal selectNota) {
this.selectNota = selectNota;
}
/**
* @return the numNota
*
public String getNumNota() {
return numNota;
}
/**
* @param numNota the numNota to set
*
public void setNumNota(String numNota) {
this.numNota = numNota;
}*/
}
Minha Paginas JSF
IncluirNotaFiscal
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>INCLUIR GUIA</title>
</head>
<body>
<f:view>
<h1>Incluindo uma nova Guia</h1>
<h:form >
<h:messages style="left: 200px; top: 330px; position: absolute" />
<h:outputLabel style="left: 20px; top: 80px; position: absolute" value ="Nota Fiscal" />
<h:inputText size="25" style="left: 100px; top: 80px; position: absolute" value = "#{NotaFiscalFace.selectNotaFiscal.nota_numero}"/>
<br>
<h:outputLabel style="left: 20px; top: 110px; position: absolute" value ="Série" />
<h:inputText size="25" style="left: 100px; top: 110px; position: absolute" value = "#{NotaFiscalFace.selectNotaFiscal.nota_serie}"/>
<br>
<h:outputLabel style="left: 20px; top: 140px; position: absolute" value ="Data de Emissão" />
<h:inputText size="10" style="left: 130px; top: 140px; position: absolute" value = "#{NotaFiscalFace.selectNotaFiscal.nota_dt_emissao}">
<f:convertDateTime dateStyle="long" type="date" pattern="dd/MM/yyyy"/>
</h:inputText>
<br>
<h:outputLabel style="left: 20px; top: 170px; position: absolute" value = "Fornecedor:"/>
<h:selectOneMenu style="left: 100px; top: 170px; position: absolute" value="#{NotaFiscalFace.selectNotaFiscal.forn_id}">
<f:selectItems value="#{NotaFiscalFace.fornecedor}"/>
<f:converter converterId="FornecedorConverter"/>
</h:selectOneMenu>
<br>
<h:commandButton style="left: 20px; top: 210px; position: absolute" action="#{NotaFiscalFace.FinishAddNotaFiscal}" value="Incluir Guia"/>
<h:commandButton style="left: 140px; top: 210px; position: absolute" action="gotoReturnInicio" value="Cancel"/>
</h:form>
</f:view>
</body>
</html>
GuiaEntrada
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JSP Page</title>
</head>
<body>
<h:form>
<h2 style="left: 20px; top: 10px; position: absolute">Incluir Guia</h2>
<h:messages style="left: 200px; top: 330px; position: absolute" />
<h:outputLabel style="left: 20px; top: 80px; position: absolute" value ="Nota Fiscal" />
<h:selectOneMenu style="left: 100px; top: 80px; position: absolute" value="#{GuiaentradaFace.selectGuiaEntrada.nota_id}">
<f:selectItems value="#{GuiaentradaFace.notas}"/>
<f:converter converterId="NotaFiscalConverter"/>
</h:selectOneMenu>
<h:outputLabel style="left: 20px; top: 110px; position: absolute" value ="Produto" />
<h:selectOneMenu style="left: 100px; top: 110px; position: absolute" value="#{GuiaentradaFace.selectGuiaEntrada.prod_id}">
<f:selectItems value="#{GuiaentradaFace.produtos}"/>
<f:converter converterId="ProdutoConverter"/>
</h:selectOneMenu>
<h:outputLabel style="left: 20px; top: 140px; position: absolute" value ="Quantidade" />
<h:inputText size="20" style="left: 100px; top: 140px; position: absolute" value = "#{GuiaentradaFace.selectGuiaEntrada.enta_quantidade}"/>
<h:outputLabel style="left: 20px; top: 170px; position: absolute" value ="Valor Unitario" />
<h:inputText size="20" style="left: 120px; top: 170px; position: absolute" value = "#{GuiaentradaFace.selectGuiaEntrada.enta_vlr_unitario}"/>
<h:outputLabel style="left: 20px; top: 200px; position: absolute" value ="Data Entrada" />
<h:inputText size="10" style="left: 120px; top: 200px; position: absolute" value = "#{GuiaentradaFace.selectGuiaEntrada.enta_dt_entrada}">
<f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
</h:inputText>
<h:commandButton style="left: 20px; top: 240px; position: absolute" action="#{GuiaentradaFace.IncluirProdutos}" value="Incluir Produtos"/>
<h:commandButton style="left: 140px; top: 240px; position: absolute" action="#{GuiaentradaFace.CancelEditGuia}" value="Cancel"/>
<h:commandButton style="left: 240px; top: 240px; position: absolute" action="#{GuiaentradaFace.CadastrarGuias}" value="Cadastrar"/>
<br>
<br><br>
<h3 style="left: 20px; top: 270px; position: absolute">Itens Adcionados</h3>
<h:dataTable style="left: 20px; top: 320px; position: absolute"
title="Carrinho"
value="#{GuiaentradaFace.entradas}"
border="2" var="item">
<h:column>
<f:facet name = "header">
<h:outputText value="Nº Nota"/>
</f:facet>
<h:outputText value="#{item.nota_id.nota_numero}"/>
</h:column>
<h:column>
<f:facet name = "header">
<h:outputText value="Produto"/>
</f:facet>
<h:outputText value="#{item.prod_id.prod_descricao}"/>
</h:column>
<h:column>
<f:facet name = "header">
<h:outputText value="QTD"/>
</f:facet>
<h:outputText value="#{item.enta_quantidade}"/>
</h:column>
<h:column>
<f:facet name = "header">
<h:outputText value="Valor Total"/>
</f:facet>
<h:outputText value="#{item.enta_quantidade * item.enta_vlr_unitario}"/>
</h:column>
<h:column>
<f:facet name = "header">
<h:outputText value="Actions"/>
</f:facet>
<h:commandLink value = "Editar" action ="#{GuiaentradaFace.StartEditProdutoSelecionado}">
<f:setPropertyActionListener target="#{GuiaentradaFace.selectGuiaEntrada}" value = "#{item}"/>
</h:commandLink> /
<h:commandLink value = "Remover" action ="#{GuiaentradaFace.RemoverProdutoSelecionado}">
<f:setPropertyActionListener target="#{GuiaentradaFace.selectGuiaEntrada}" value = "#{item}"/>
</h:commandLink>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</body>
</html>
Se alguém puder ajudar…
