Probremas com NFS-e

0 respostas
brunoalmeidam

Galera não estou muito familiarizado com a biblioteca da nota carioca, depois de ler a documentação conseguir ter alguns avanços e já consigo realizar consultas, cancelar notas, enviar um lote contendo uma nota, mas quando tento enviar um lote com 2 RPS, os valores prevalecem o do ultimo e eu nao faço ideia de como consertar isso. segue uma rotina reduzida que gera um XML reduzido mas que serve de exemplo

EnviarLoteRpsEnvio envio = new EnviarLoteRpsEnvio();
    TcLoteRps lote = new TcLoteRps();
    envio.setLoteRps(lote);
    envio.getLoteRps().setCnpj("10473194000104");
    envio.getLoteRps().setQuantidadeRps(2);
    
    
    TcLoteRps.ListaRps list = new TcLoteRps.ListaRps();
    
           
    TcRps rps = new TcRps();
    TcInfRps infrps = new TcInfRps();
    
    //RPS do cliente 1
    rps.setInfRps(infrps);
    infrps.setId("cli1");
    lote.setListaRps(list);
    lote.getListaRps().getRps().add(rps);
    
    //RPS do cliente 2
    rps.setInfRps(infrps);
    infrps.setId("cli2");
    lote.setListaRps(list);
    lote.getListaRps().getRps().add(rps);
    
    envio.setLoteRps(lote);
    
    StringWriter sw = new StringWriter();
    JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);
    Marshaller m = jc.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
    m.marshal(envio, sw);
    String xmlEnviNfse = sw.toString();
    xmlEnviNfse = xmlEnviNfse.replace(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\">",">" );
    FileWriter fstream = new FileWriter(caminhoretornohomologacao+"\\nfse-ped-emitenfse.xml");
    System.out.println(xmlEnviNfse);
    try (BufferedWriter out = new BufferedWriter(fstream)) {
      out.write(xmlEnviNfse);
    }
Criado 6 de agosto de 2017
Respostas 0
Participantes 1