NFLoteEnvio getLoteAssinado(final NFLoteEnvio lote) throws Exception {
        // adiciona a chave e o dv antes de assinar
        for (final NFNota nota : lote.getNotas()) {
            final NFGeraChave geraChave = new NFGeraChave(nota);
            nota.getInfo().getIdentificacao().setCodigoRandomico(StringUtils.defaultIfBlank(nota.getInfo().getIdentificacao().getCodigoRandomico(), geraChave.geraCodigoRandomico()));
            nota.getInfo().getIdentificacao().setDigitoVerificador(geraChave.getDV());
            nota.getInfo().setIdentificador(geraChave.getChaveAcesso());
        }
        // assina o lote
        final String documentoAssinado = new AssinaturaDigital(this.config).assinarDocumento(lote.toString());
        final NFLoteEnvio loteAssinado = new DFParser().loteParaObjeto(documentoAssinado);

        // verifica se nao tem NFCe junto com NFe no lote e gera qrcode (apos assinar mesmo, eh assim)
        int qtdNF = 0, qtdNFC = 0;
        for (final NFNota nota : loteAssinado.getNotas()) {
            switch (nota.getInfo().getIdentificacao().getModelo()) {
                case NFE:
                    qtdNF++;
                    break;
                case NFCE:
                    final NFGeraQRCode geraQRCode = new NFGeraQRCode(nota, this.config);
                    nota.setInfoSuplementar(new NFNotaInfoSuplementar());
                    nota.getInfoSuplementar().setQrCode(geraQRCode.getQRCode());
                    qtdNFC++;
                    break;
                default:
                    throw new IllegalArgumentException(String.format("Modelo de nota desconhecida: %s", nota.getInfo().getIdentificacao().getModelo()));
            }
        }
        // verifica se todas as notas do lote sao do mesmo modelo
        if ((qtdNF > 0) && (qtdNFC > 0)) {
            throw new IllegalArgumentException("Lote contendo notas de modelos diferentes!");
        }
        return loteAssinado;
    }
NFLoteEnvio getLoteAssinado(final NFLoteEnvio lote) throws Exception {
        
        for (final NFNota nota : lote.getNotas()) {
            final NFGeraChave geraChave = new NFGeraChave(nota);
            nota.getInfo().getIdentificacao().setCodigoRandomico(StringUtils.defaultIfBlank(nota.getInfo().getIdentificacao().getCodigoRandomico(), geraChave.geraCodigoRandomico()));
            nota.getInfo().getIdentificacao().setDigitoVerificador(geraChave.getDV());
            nota.getInfo().setIdentificador(geraChave.getChaveAcesso());
        }
        
        final String documentoAssinado = new AssinaturaDigital(this.config).assinarDocumento(lote.toString());
        final NFLoteEnvio loteAssinado = new DFParser().loteParaObjeto(documentoAssinado);

        
        int qtdNF = 0, qtdNFC = 0;
        for (final NFNota nota : loteAssinado.getNotas()) {
            switch (nota.getInfo().getIdentificacao().getModelo()) {
                case NFE:
                    qtdNF++;
                    break;
                case NFCE:
                    final NFGeraQRCode geraQRCode = new NFGeraQRCode(nota, this.config);
                    nota.setInfoSuplementar(new NFNotaInfoSuplementar());
                    nota.getInfoSuplementar().setQrCode(geraQRCode.getQRCode());
                    qtdNFC++;
                    break;
                default:
                    throw new IllegalArgumentException(String.format("Modelo de nota desconhecida: %s", nota.getInfo().getIdentificacao().getModelo()));
            }
        }
        
        if ((qtdNF > 0) && (qtdNFC > 0)) {
            throw new IllegalArgumentException("Lote contendo notas de modelos diferentes!");
        }
        return loteAssinado;
    }
NFLoteEnvio getLoteAssinado ( final NFLoteEnvio lote ) throws Exception { // adiciona a chave e o dv antes de assinar for ( final NFNota nota : lote . getNotas ( ) ) { final NFGeraChave geraChave = new NFGeraChave ( nota ) ; nota . getInfo ( ) . getIdentificacao ( ) . setCodigoRandomico ( StringUtils . defaultIfBlank ( nota . getInfo ( ) . getIdentificacao ( ) . getCodigoRandomico ( ) , geraChave . geraCodigoRandomico ( ) ) ) ; nota . getInfo ( ) . getIdentificacao ( ) . setDigitoVerificador ( geraChave . getDV ( ) ) ; nota . getInfo ( ) . setIdentificador ( geraChave . getChaveAcesso ( ) ) ; } // assina o lote final String documentoAssinado = new AssinaturaDigital ( this . config ) . assinarDocumento ( lote . toString ( ) ) ; final NFLoteEnvio loteAssinado = new DFParser ( ) . loteParaObjeto ( documentoAssinado ) ; // verifica se nao tem NFCe junto com NFe no lote e gera qrcode (apos assinar mesmo, eh assim) int qtdNF = 0 , qtdNFC = 0 ; for ( final NFNota nota : loteAssinado . getNotas ( ) ) { switch ( nota . getInfo ( ) . getIdentificacao ( ) . getModelo ( ) ) { case NFE : qtdNF ++ ; break ; case NFCE : final NFGeraQRCode geraQRCode = new NFGeraQRCode ( nota , this . config ) ; nota . setInfoSuplementar ( new NFNotaInfoSuplementar ( ) ) ; nota . getInfoSuplementar ( ) . setQrCode ( geraQRCode . getQRCode ( ) ) ; qtdNFC ++ ; break ; default : throw new IllegalArgumentException ( String . format ( "Modelo de nota desconhecida: %s" , nota . getInfo ( ) . getIdentificacao ( ) . getModelo ( ) ) ) ; } } // verifica se todas as notas do lote sao do mesmo modelo if ( ( qtdNF > 0 ) && ( qtdNFC > 0 ) ) { throw new IllegalArgumentException ( "Lote contendo notas de modelos diferentes!" ) ; } return loteAssinado ; }
Retorna o Lote assinado.
@param lote
@return
@throws Exception
Retorna o Lote assinado .