Ler tag Arquivo XML
04/08/2011
0
- <Item>
<Id_Artigo>123456</Id_Artigo>
<Cod_Produto>34</Cod_Produto>
<Quantidade>2100</Quantidade>
- <Campo_Extra>
<Nome>justificativa</Nome>
<Valor>MENOR PREÇO NÃO TESTADO ANTERIORMENTE NA INSTITUIÇÃO. 2º MENOR PREÇO APRESENTA PARECER DESFAVORÁVEL.</Valor>
</Campo_Extra>
- <Campo_Extra>
<Nome>Qtd_Embalagem</Nome>
<Valor>100</Valor>
</Campo_Extra>
- <Resposta>
<CNPJ>11.888.555/0001-27</CNPJ>
<Fabricante>EQFLEX</Fabricante>
<Embalagem>CX</Embalagem>
<Preco_Unitario>2.3000</Preco_Unitario>
<Preco_Total>4830.0000</Preco_Total>
<Comentario>-</Comentario>
</Resposta>
</Item> Desde já agradeço a ajuda. Atenciosamente R. Barcelos.
Barcelos.java
Posts
04/08/2011
Davi Costa
Se já estiver assim e funcionando, vc faz o mesmo tratamento pata item que pode ter vários campo_extra.
att Davi
04/08/2011
Barcelos.java
private Set<CotacaoItem> obterCotacoes(Document doc, SolicitacaoFornecedor solForn) {
Set<CotacaoItem> cotacoes = new HashSet<CotacaoItem>();
// REFERENCIA DO OBJETO XML
Element elem = doc.getDocumentElement();
NodeList itens = elem.getElementsByTagName("Item");
for (int i = 0; i < itens.getLength(); i++) {
Element item = (Element)itens.item(i);
//Obter código produto
Integer codProdutoPadrao = Integer.valueOf(getChildTagValue(item, "Cod_Produto"));
//Obter quantidade
Integer qtde = Integer.valueOf(getChildTagValue(item, "Quantidade"));
int erro = 0;
String cnpj = "";
try {
//Buscar solicitacao-item
SolicitacaoItem solicItem = solicitacaoItemFacade.buscarSolicitacaoItemPorCodProduto(solForn.getSolicitacao().getIsnSolicitacao(), codProdutoPadrao);
erro++;
//Obter respostas
NodeList respostas = item.getElementsByTagName("Resposta");
for (int j = 0; j < respostas.getLength(); j++) { //Obter resposta
Element resposta = (Element)respostas.item(j);
//Obter Cnpj
cnpj = getChildTagValue(resposta, "CNPJ");
if (cnpj.equals(solForn.getFornecedor().getNumCnpj())) { // OBTER PREÇO UNITÁRIO
Double precoUnitario = Double.valueOf(getChildTagValue(resposta, "Preco_Unitario"));
// 19/01/2011
String marca = String.valueOf(getChildTagValue(resposta, "Fabricante"));
String apresentacao = String.valueOf(getChildTagValue(resposta, "Embalagem"));
// CRIAR COTAÇÃO
CotacaoItem cotacaoItem = new CotacaoItem();
cotacaoItem.setIsnUsuario(JSFUtil.obterUsuarioSessao().getIsnUsuario());
cotacaoItem.setSolicitacaoItem(solicItem);
cotacaoItem.setSolicitacaoFornecedor(solForn);
// QUANTIDADE CONFIRMADA
cotacaoItem.setQtdDisponivelFornecedor(new Double(qtde));
cotacaoItem.setVlrItemInicial(precoUnitario);
cotacaoItem.setDscItem(solicItem.getDscItem());
// PRAZO ENTREGA
cotacaoItem.setNumPrazoEntrega(solForn.getQtdPrazoEntrega());
// 05/05/2011
cotacaoItem.setDscTipoFornecimento(apresentacao);
// 19/01/2011
cotacaoItem.setDscMarca(marca);
// 19/01/2011
cotacaoItem.setFlgFinaliza(false);
TipoParecer tpParecer = tpParecerFacade.buscarParecer(TipoParecerFacade.ISN_TIPO_PARECER.FAVORAVEL.ordinal());
cotacaoItem.setTipoParecer(tpParecer);
//Inserir cotação na lista
cotacoes.add(cotacaoItem);
}
}
} catch(RuntimeException e) {
e.printStackTrace();
if (erro == 0)
MessagesUtil.inserirErro("Erro ao buscar item de solicitacao com código de produto igual a "+codProdutoPadrao);
else if (erro == 1)
MessagesUtil.inserirErro("Erro ao buscar fornecedor com CNPJ igual a "+cnpj); else
MessagesUtil.inserirErro("Erro ao inserir cotação para produto "+codProdutoPadrao+" e fornecedor com CNPJ "+cnpj);
throw e;
}
}
return cotacoes;
} att R. Barcelos
04/08/2011
Barcelos.java
private Set<CotacaoItem> obterCotacoes(Document doc, SolicitacaoFornecedor solForn) {
Set<CotacaoItem> cotacoes = new HashSet<CotacaoItem>();
// REFERENCIA DO OBJETO XML
Element elem = doc.getDocumentElement();
NodeList itens = elem.getElementsByTagName("Item");
for (int i = 0; i < itens.getLength(); i++) {
Element item = (Element)itens.item(i);
//Obter código produto
Integer codProdutoPadrao = Integer.valueOf(getChildTagValue(item, "Cod_Produto"));
//Obter quantidade
Integer qtde = Integer.valueOf(getChildTagValue(item, "Quantidade"));
int erro = 0;
String cnpj = "";
try {
//Buscar solicitacao-item
SolicitacaoItem solicItem = solicitacaoItemFacade.buscarSolicitacaoItemPorCodProduto(solForn.getSolicitacao().getIsnSolicitacao(), codProdutoPadrao);
erro++;
//Obter respostas
NodeList respostas = item.getElementsByTagName("Resposta");
for (int j = 0; j < respostas.getLength(); j++) { //Obter resposta
Element resposta = (Element)respostas.item(j);
//Obter Cnpj
cnpj = getChildTagValue(resposta, "CNPJ");
if (cnpj.equals(solForn.getFornecedor().getNumCnpj())) { // OBTER PREÇO UNITÁRIO
Double precoUnitario = Double.valueOf(getChildTagValue(resposta, "Preco_Unitario"));
// 19/01/2011
String marca = String.valueOf(getChildTagValue(resposta, "Fabricante"));
String apresentacao = String.valueOf(getChildTagValue(resposta, "Embalagem"));
// CRIAR COTAÇÃO
CotacaoItem cotacaoItem = new CotacaoItem();
cotacaoItem.setIsnUsuario(JSFUtil.obterUsuarioSessao().getIsnUsuario());
cotacaoItem.setSolicitacaoItem(solicItem);
cotacaoItem.setSolicitacaoFornecedor(solForn);
// QUANTIDADE CONFIRMADA
cotacaoItem.setQtdDisponivelFornecedor(new Double(qtde));
cotacaoItem.setVlrItemInicial(precoUnitario);
cotacaoItem.setDscItem(solicItem.getDscItem());
// PRAZO ENTREGA
cotacaoItem.setNumPrazoEntrega(solForn.getQtdPrazoEntrega());
// 05/05/2011
cotacaoItem.setDscTipoFornecimento(apresentacao);
// 19/01/2011
cotacaoItem.setDscMarca(marca);
// 19/01/2011
cotacaoItem.setFlgFinaliza(false);
TipoParecer tpParecer = tpParecerFacade.buscarParecer(TipoParecerFacade.ISN_TIPO_PARECER.FAVORAVEL.ordinal());
cotacaoItem.setTipoParecer(tpParecer);
//Inserir cotação na lista
cotacoes.add(cotacaoItem);
}
}
} catch(RuntimeException e) {
e.printStackTrace();
if (erro == 0)
MessagesUtil.inserirErro("Erro ao buscar item de solicitacao com código de produto igual a "+codProdutoPadrao);
else if (erro == 1)
MessagesUtil.inserirErro("Erro ao buscar fornecedor com CNPJ igual a "+cnpj); else
MessagesUtil.inserirErro("Erro ao inserir cotação para produto "+codProdutoPadrao+" e fornecedor com CNPJ "+cnpj);
throw e;
}
}
return cotacoes;
} att R. Barcelos
04/08/2011
Davi Costa
att Davi
04/08/2011
Davi Costa
05/08/2011
Dyego Carmo
Resolvido ?
Se sim, por favor feche o chamado :)
Valeu !
ps: USE JAXB , fuja destas leituras na mao !
Clique aqui para fazer login e interagir na Comunidade :)