An open API service indexing awesome lists of open source software.

https://github.com/kleversoncruz/leitor-dfe

Aplicação para criar relatórios em CSV a partir de XMLs de Documentos Fiscais Eletrônicos
https://github.com/kleversoncruz/leitor-dfe

cfe documento-fiscal-eletronico nfce nfe nodejs xml-parser

Last synced: about 1 year ago
JSON representation

Aplicação para criar relatórios em CSV a partir de XMLs de Documentos Fiscais Eletrônicos

Awesome Lists containing this project

README

          

# Leitor de Documentos Fiscais Eletrônicos
![Badge Concluído](http://img.shields.io/static/v1?label=STATUS&message=CONCLUÍDO&color=GREEN&style=for-the-badge)
![Badge NodeJs](http://img.shields.io/static/v1?label=NodeJS&message=16.14.0&color=GREEN&style=for-the-badge)
![Badge NestJS](http://img.shields.io/static/v1?label=NestJS&message=8.2.4&color=red&style=for-the-badge)


API REST desenvolvida para uso em revenda de softwares de automação comercial, onde havia necessidade do envio dos arquivos XML de documentos fiscais junto a um relatório para escritórios de contabilidade.

Este projeto realiza a leitura de XMLs de documentos fiscais e converte para um arquivo CSV. É possível gerar relatórios com diferentes modelos de documentos(NFC-e, NF-e, CF-e SAT) em um único arquivo.

## Funcionalidades

:heavy_check_mark: Relatórios em CSV a partir de Documentos Fiscais Eletrônicos.

:heavy_check_mark: Compatível com XMLs de NF-e, CF-e SAT e NFC-e.

:heavy_check_mark: Personalizar campos e delimitadores do arquivo CSV.

## Instalando

```bash
$ npm install
```

## Executando

```bash
# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod
```

## Testando

```bash
# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov
```

## REST API
`POST /report/csv`

### Request
```bash
curl -X 'POST'
'https://localhost:3000/report/csv'
-H 'Content-Type: multipart/form-data'
-F 'keys=emitCNPJ,status,dtEmissao,itemVTotal'
-F 'fieldDelimiter=;'
-F 'totalizerRow=true'
-F 'files=@NFCe.xml;type=text/xml'
```

### Responses
Code 201

Response headers:
content-disposition: attachment; filename=report.csv
content-length: 142
content-type: text/csv; charset=utf-8

Response body:
emitCNPJ;status;dtEmissao;itemVTotal
11.111.111/1111-11;AUTORIZADO;03/05/2021;25,16
11.111.111/1111-11;AUTORIZADO;03/05/2021;16,29
;;;41,45

### Paramêtros

* `files` - Um ou mais arquivos XML a serem convertidos
* `keys` - (Opcional) Array separado por vingulas de campos a serem gerados no relatório
* `fieldDelimiter` - (Opcional) Define qual o delimitador utilizado no CSV
* `includeTotalizerRow` - (Opcional) Boolean - Define se o relatório deve possuir um linha de valores totalizadores