enotas_nfe 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +123 -19
- data/lib/enotas_nfe/endpoints.rb +20 -0
- data/lib/enotas_nfe/model/ambiente_homologacao.rb +14 -0
- data/lib/enotas_nfe/model/ambiente_producao.rb +13 -0
- data/lib/enotas_nfe/model/configuracoes_nfse_homologacao.rb +15 -0
- data/lib/enotas_nfe/model/configuracoes_nfse_producao.rb +15 -0
- data/lib/enotas_nfe/model/csc.rb +12 -0
- data/lib/enotas_nfe/model/emissao_nfe_consumidor.rb +12 -0
- data/lib/enotas_nfe/model/empresa.rb +34 -0
- data/lib/enotas_nfe/model/icms.rb +9 -0
- data/lib/enotas_nfe/model/impostos.rb +2 -0
- data/lib/enotas_nfe/model/issqn.rb +1 -1
- data/lib/enotas_nfe/model/produto.rb +1 -0
- data/lib/enotas_nfe/version.rb +1 -1
- data/lib/enotas_nfe.rb +7 -0
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a0f7a6e390bf0e133b094377559574d0daaca1e
|
4
|
+
data.tar.gz: f7edeeadfaa3474a4709a32f0d86d3a671294c30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab27c3d4164cd2fb7ecf640ca2cd03d75af24c2b4bc17fe169630f6652ec90bf70409cf99ec40ba7352eae82a7102ce095ab1fa0093f97db4cd50a51f9449e08
|
7
|
+
data.tar.gz: 3c4b0b5e7dfc58750833aeeb8b42f58422b802e00638b1e791f49472fcf3ef1a309d43839a9547c5de594bd3f8ef50dffc16d0912259bedbfec356f481625613
|
data/README.md
CHANGED
@@ -2,18 +2,25 @@
|
|
2
2
|
|
3
3
|
Wrapper não OFICIAL Ruby da API do eNotas Gateway, plataforma de emissâo automática de nota fiscal eletrônica de serviço (NFS-e), Produto (NF-e) e Consumidor (NFC-e).
|
4
4
|
|
5
|
-
|
5
|
+
Esse projeto foi um fork de -> https://github.com/12min/enotas-client
|
6
|
+
|
7
|
+
A documentação completa dos endpoints pode ser encontrada aqui: [API NFS-e eNotas Gateway](http://app.enotasgw.com.br/docs),
|
8
|
+
e aqui [API NF-e eNotas Gateway](http://app.enotasgw.com.br/docs/v2/NF-e#!/nf-e/post_empresas_empresaId_nf_e).
|
6
9
|
|
7
10
|
Mais detalhes: [enotasgw.com.br](http://enotasgw.com.br)
|
8
11
|
|
9
|
-
Exemplo em PHP pode ser [encontrado aqui.](https://github.com/eNotasGW) - na biblioteca oficial.
|
12
|
+
Exemplo em PHP para nfse pode ser [encontrado aqui.](https://github.com/eNotasGW/php-client) - na biblioteca oficial.
|
13
|
+
|
14
|
+
Exemplo em PHP para nfe e nfce pode ser [encontrado aqui.](https://github.com/eNotasGW/php-client-v2) - na biblioteca oficial.
|
15
|
+
|
16
|
+
Exemplos diversos para emissão de nfe [encontrado aqui.](http://portal.enotasgw.com.br/knowledge-base/exemplos-emissao-nfe-produto-conjugada/) - na biblioteca oficial.
|
10
17
|
|
11
18
|
## Instalação
|
12
19
|
|
13
20
|
Adicione o código abaixo ao Gemfile da sua aplicação:
|
14
21
|
|
15
22
|
```ruby
|
16
|
-
gem '
|
23
|
+
gem 'enotas_nfe'
|
17
24
|
```
|
18
25
|
|
19
26
|
E execute:
|
@@ -22,14 +29,37 @@ E execute:
|
|
22
29
|
|
23
30
|
Ou instale manualmente:
|
24
31
|
|
25
|
-
$ gem install
|
32
|
+
$ gem install enotas_nfe
|
33
|
+
|
34
|
+
## Configurando a empresa
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
client = Enotas::Client.new('sua-api-key-do-e-notas', 'nfse')
|
38
|
+
empresa = EnotasNfe::Model::Empresa.new(client.get_empresa('id-da-empresa-no-enotas'))
|
39
|
+
|
40
|
+
## realize os ajustes da empresa, como nomeFantasia, email, etc
|
26
41
|
|
27
|
-
##
|
42
|
+
## atualize ou crie uma empresa
|
43
|
+
client.create_update_empresa(empresa)
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
## Adicionando/trocando logotipo
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
client = Enotas::Client.new('sua-api-key-do-e-notas', 'nfse')
|
51
|
+
empresa = EnotasNfe::Model::Empresa.new(client.get_empresa('id-da-empresa-no-enotas'))
|
52
|
+
empresa.logotipo = open('http://www.example.com/foo.png')
|
53
|
+
client.set_logo('id-da-empresa-no-enotas', empresa)
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
## Uso básico para NFSE
|
28
58
|
|
29
59
|
* Instancie o cliente passando sua API key:
|
30
60
|
|
31
61
|
```ruby
|
32
|
-
client = Enotas::Client.new('sua-api-key-do-e-notas')
|
62
|
+
client = Enotas::Client.new('sua-api-key-do-e-notas', 'nfse')
|
33
63
|
```
|
34
64
|
|
35
65
|
Agora já podemos emitir uma nota!
|
@@ -37,15 +67,17 @@ Agora já podemos emitir uma nota!
|
|
37
67
|
* Emitindo uma nova nota de SERVIÇO:
|
38
68
|
|
39
69
|
```ruby
|
40
|
-
nfe =
|
41
|
-
nfe.tipo = 'NFS-e'
|
42
|
-
nfe.idExterno = '
|
70
|
+
nfe = EnotasNfe::Model::Nfe.new
|
71
|
+
nfe.tipo = 'NFS-e'
|
72
|
+
nfe.idExterno = '1'
|
73
|
+
nfe.ambienteEmissao = 'Homologacao'
|
74
|
+
|
43
75
|
nfe.cliente = {
|
44
|
-
|
76
|
+
nome: 'Luis Fernando Pimenta',
|
45
77
|
email: 'email@luispimenta.me',
|
46
78
|
cpfCnpj: '33199707807'
|
47
79
|
}
|
48
|
-
|
80
|
+
|
49
81
|
nfe.cliente.endereco = {
|
50
82
|
uf: 'PR',
|
51
83
|
cidade: 'Curitiba',
|
@@ -55,14 +87,13 @@ nfe.cliente.endereco = {
|
|
55
87
|
cep: '80000000'
|
56
88
|
}
|
57
89
|
|
90
|
+
nfe.enviarPorEmail = true
|
91
|
+
|
58
92
|
nfe.servico = {
|
59
93
|
descricao: 'Reparo em computador',
|
60
|
-
aliquotaIss:
|
94
|
+
aliquotaIss: 5,
|
61
95
|
issRetidoFonte: true,
|
62
|
-
cnae: "4520001",
|
63
|
-
codigoServicoMunicipio: "666133",
|
64
96
|
descricaoServicoMunicipio: "Reparo em computador",
|
65
|
-
itemListaServicoLC116: "1000",
|
66
97
|
ufPrestacaoServico: "PR",
|
67
98
|
municipioPrestacaoServico: "Curitiba",
|
68
99
|
valorCofins: 0,
|
@@ -72,18 +103,91 @@ nfe.servico = {
|
|
72
103
|
valorPis: 0
|
73
104
|
}
|
74
105
|
|
75
|
-
nfe.
|
106
|
+
nfe.valorTotal = 1.00
|
107
|
+
|
108
|
+
#enviando a nota
|
109
|
+
nfe.nfse_create('id-da-empresa-no-enotas', nfe)
|
110
|
+
|
76
111
|
```
|
77
112
|
|
78
|
-
|
113
|
+
## Uso básico para NFE
|
114
|
+
|
115
|
+
* Instancie o cliente passando sua API key:
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
client = Enotas::Client.new('sua-api-key-do-e-notas', 'nfe')
|
119
|
+
```
|
120
|
+
|
121
|
+
Agora já podemos emitir uma nota!
|
122
|
+
|
123
|
+
* Emitindo uma nova de VENDA de produto - NFe:
|
124
|
+
|
125
|
+
```ruby
|
126
|
+
nfe = EnotasNfe::Model::Nfe.new
|
127
|
+
nfe.id = '1'
|
128
|
+
nfe.ambienteEmissao = "Homologacao" # "Producao" ou "Homologacao"
|
129
|
+
nfe.naturezaOperacao = 'Venda'
|
130
|
+
nfe.finalidade = 'Normal'
|
131
|
+
nfe.consumidorFinal = true
|
132
|
+
nfe.indicadorPresencaConsumidor = true
|
133
|
+
|
134
|
+
nfe.cliente = {
|
135
|
+
tipoPessoa: 'F',
|
136
|
+
indicadorContribuinteICMS: "NaoContribuinte",
|
137
|
+
nome: 'Luis Fernando Pimenta',
|
138
|
+
email: 'email@luispimenta.me',
|
139
|
+
cpfCnpj: '33199707807',
|
140
|
+
telefone: '19981328642',
|
141
|
+
inscricaoMunicipal: '',
|
142
|
+
inscricaoEstadual: '',
|
143
|
+
}
|
144
|
+
|
145
|
+
nfe.cliente.endereco = {
|
146
|
+
uf: 'PR',
|
147
|
+
cidade: 'Curitiba',
|
148
|
+
logradouro: 'Rua 01',
|
149
|
+
numero: '112',
|
150
|
+
bairro: 'Centro',
|
151
|
+
cep: '80000000'
|
152
|
+
}
|
153
|
+
|
154
|
+
nfe.enviarPorEmail = true
|
155
|
+
|
156
|
+
produto = EnotasNfe::Model::Produto.new
|
157
|
+
produto.cfop = "5101"
|
158
|
+
produto.codigo = '1'
|
159
|
+
produto.descricao = 'pneu'
|
160
|
+
produto.ncm = '38151210'
|
161
|
+
produto.unidadeMedida = 'UN'
|
162
|
+
produto.valorUnitario = 1.00
|
163
|
+
produto.impostos = EnotasNfe::Model::Impostos.new
|
164
|
+
produto.impostos.icms = EnotasNfe::Model::Icms.new
|
165
|
+
produto.impostos.icms.situacaoTributaria = '102'
|
166
|
+
produto.impostos.icms.origem = 0
|
167
|
+
produto.impostos.pis = EnotasNfe::Model::Pis.new
|
168
|
+
produto.impostos.pis.situacaoTributaria = '07'
|
169
|
+
produto.impostos.cofins = EnotasNfe::Model::Cofins.new
|
170
|
+
produto.impostos.cofins.situacaoTributaria = '07'
|
171
|
+
|
172
|
+
nfe.itens << produto
|
173
|
+
|
174
|
+
nfe.informacoesAdicionais = "I - Documento emitido por ME ou EPP optante pelo Simples Nacional.\r\n II - Não gera direito a crédito fiscal de ICMS, de ISS e de IPI." #opcional
|
175
|
+
|
176
|
+
#enviando a nota
|
177
|
+
client.nfe_create('id-da-empresa-no-enotas', nfe)
|
178
|
+
|
179
|
+
#cancelando uma nota
|
180
|
+
client.nfe_delete('id-da-empresa-no-enotas', id-da-nota)
|
181
|
+
```
|
79
182
|
|
80
183
|
## Testando a gem localmente
|
81
184
|
|
82
185
|
```ruby
|
83
186
|
gem build enotas_nfe.gemspec
|
84
187
|
gem install enotas-nfe-0.0.1.gem
|
85
|
-
irb
|
188
|
+
abra o irb
|
86
189
|
require 'enotas_nfe'
|
190
|
+
e siga os passos acima
|
87
191
|
```
|
88
192
|
|
89
193
|
## Contribuindo
|
@@ -95,7 +199,7 @@ Para contruibuir de uma forma adequada, siga os passos abaixo:
|
|
95
199
|
* Envie seu branch para seu repositório remoto;
|
96
200
|
* Solicite um PR a partir desse novo branch enviado.
|
97
201
|
|
98
|
-
Issues e comentários são sempre bem-vindos no repoistório oficial: https://github.com/
|
202
|
+
Issues e comentários são sempre bem-vindos no repoistório oficial: https://github.com/eNotasGW/.
|
99
203
|
|
100
204
|
## ROADMAP
|
101
205
|
|
data/lib/enotas_nfe/endpoints.rb
CHANGED
@@ -2,6 +2,25 @@ module EnotasNfe
|
|
2
2
|
module Endpoints
|
3
3
|
include Request
|
4
4
|
|
5
|
+
## rotas para criaçacão/update e onfiguraçao da empresa
|
6
|
+
def get_empresas(pageNumber, pageSize)
|
7
|
+
get("empresas?pageNumber=#{pageNumber}&pageSize=#{pageNumber}")
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_empresa(firm_id)
|
11
|
+
get("empresas/#{firm_id}")
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_update_empresa(body)
|
15
|
+
post("empresas", body)
|
16
|
+
end
|
17
|
+
|
18
|
+
def set_logo(firm_id, body)
|
19
|
+
post("empresas/#{firm_id}/logo", body)
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
## rotas para nota fiscal eletronica
|
5
24
|
def nfe_create(firm_id, body)
|
6
25
|
post("empresas/#{firm_id}/nf-e", body)
|
7
26
|
end
|
@@ -14,6 +33,7 @@ module EnotasNfe
|
|
14
33
|
get("empresas/#{firm_id}/nf-e/#{id}")
|
15
34
|
end
|
16
35
|
|
36
|
+
## rotas para nota fiscal de serviço
|
17
37
|
def nfse_list(firm_id, body = {})
|
18
38
|
get("empresas/#{firm_id}/nfes", body)
|
19
39
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module EnotasNfe
|
2
|
+
module Model
|
3
|
+
class ConfiguracoesNFSeHomologacao
|
4
|
+
|
5
|
+
include Virtus.model
|
6
|
+
|
7
|
+
attribute :sequencialNFe, Integer
|
8
|
+
attribute :serieNFe, String
|
9
|
+
attribute :sequencialLoteNFe, Integer
|
10
|
+
attribute :usuarioAcessoProvedor, String
|
11
|
+
attribute :tokenAcessoProvedor, String
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module EnotasNfe
|
2
|
+
module Model
|
3
|
+
class ConfiguracoesNFSeProducao
|
4
|
+
|
5
|
+
include Virtus.model
|
6
|
+
|
7
|
+
attribute :sequencialNFe, Integer
|
8
|
+
attribute :serieNFe, String
|
9
|
+
attribute :sequencialLoteNFe, Integer
|
10
|
+
attribute :usuarioAcessoProvedor, String
|
11
|
+
attribute :tokenAcessoProvedor, String
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module EnotasNfe
|
2
|
+
module Model
|
3
|
+
class Empresa
|
4
|
+
|
5
|
+
require "enotas_nfe/model/ambiente_homologacao"
|
6
|
+
require "enotas_nfe/model/ambiente_producao"
|
7
|
+
require "enotas_nfe/model/configuracoes_nfse_homologacao"
|
8
|
+
require "enotas_nfe/model/configuracoes_nfse_producao"
|
9
|
+
require "enotas_nfe/model/emissao_nfe_consumidor"
|
10
|
+
require 'open-uri'
|
11
|
+
|
12
|
+
include Virtus.model
|
13
|
+
|
14
|
+
attribute :id #Em casos de atualização o identificador único da empresa deve ser informado, atributo "id".
|
15
|
+
attribute :empresaId, String
|
16
|
+
attribute :logotipo, StringIO.new
|
17
|
+
attribute :cnpj, String
|
18
|
+
attribute :inscricaoMunicipal, String
|
19
|
+
attribute :razaoSocial, String
|
20
|
+
attribute :nomeFantasia, String
|
21
|
+
attribute :optanteSimplesNacional, Boolean
|
22
|
+
attribute :email, String
|
23
|
+
attribute :telefoneComercial, String
|
24
|
+
attribute :endereco, Endereco
|
25
|
+
attribute :enviarEmailCliente, Boolean
|
26
|
+
attribute :emissaoNFeConsumidor, EmissaoNFeConsumidor
|
27
|
+
attribute :ambienteProducao, AmbienteProducao
|
28
|
+
attribute :ambienteHomologacao, AmbienteHomologacao
|
29
|
+
attribute :configuracoesNFSeHomologacao, ConfiguracoesNFSeHomologacao
|
30
|
+
attribute :configuracoesNFSeProducao, ConfiguracoesNFSeProducao
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -6,6 +6,15 @@ module EnotasNfe
|
|
6
6
|
|
7
7
|
attribute :situacaoTributaria, String
|
8
8
|
attribute :origem, String
|
9
|
+
attribute :aliquota, Float
|
10
|
+
attribute :baseCalculo, Float
|
11
|
+
attribute :modalidadeBaseCalculo, String
|
12
|
+
attribute :percentualReducaoBaseCalculo, Float
|
13
|
+
attribute :baseCalculoST, Float
|
14
|
+
attribute :aliquotaST, Float
|
15
|
+
attribute :modalidadeBaseCalculoST, String
|
16
|
+
attribute :percentualReducaoBaseCalculoST, Float
|
17
|
+
attribute :percentualMargemValorAdicionadoST, Float
|
9
18
|
|
10
19
|
end
|
11
20
|
end
|
@@ -6,10 +6,12 @@ module EnotasNfe
|
|
6
6
|
require "enotas_nfe/model/cofins"
|
7
7
|
require "enotas_nfe/model/icms"
|
8
8
|
require "enotas_nfe/model/pis"
|
9
|
+
require "enotas_nfe/model/issqn"
|
9
10
|
|
10
11
|
attribute :icms, Icms
|
11
12
|
attribute :pis, Pis
|
12
13
|
attribute :cofins, Cofins
|
14
|
+
attribute :issqn, Issqn
|
13
15
|
|
14
16
|
end
|
15
17
|
end
|
data/lib/enotas_nfe/version.rb
CHANGED
data/lib/enotas_nfe.rb
CHANGED
@@ -20,6 +20,13 @@ require "enotas_nfe/model/issqn"
|
|
20
20
|
require "enotas_nfe/model/pis"
|
21
21
|
require "enotas_nfe/facades"
|
22
22
|
require "enotas_nfe/client"
|
23
|
+
require "enotas_nfe/model/ambiente_homologacao"
|
24
|
+
require "enotas_nfe/model/ambiente_producao"
|
25
|
+
require "enotas_nfe/model/configuracoes_nfse_homologacao"
|
26
|
+
require "enotas_nfe/model/configuracoes_nfse_producao"
|
27
|
+
require "enotas_nfe/model/csc"
|
28
|
+
require "enotas_nfe/model/emissao_nfe_consumidor"
|
29
|
+
require "enotas_nfe/model/empresa"
|
23
30
|
|
24
31
|
module EnotasNfe
|
25
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enotas_nfe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Fernando Pimenta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -130,8 +130,15 @@ files:
|
|
130
130
|
- lib/enotas_nfe/endpoints.rb
|
131
131
|
- lib/enotas_nfe/facades.rb
|
132
132
|
- lib/enotas_nfe/middleware.rb
|
133
|
+
- lib/enotas_nfe/model/ambiente_homologacao.rb
|
134
|
+
- lib/enotas_nfe/model/ambiente_producao.rb
|
133
135
|
- lib/enotas_nfe/model/cliente.rb
|
134
136
|
- lib/enotas_nfe/model/cofins.rb
|
137
|
+
- lib/enotas_nfe/model/configuracoes_nfse_homologacao.rb
|
138
|
+
- lib/enotas_nfe/model/configuracoes_nfse_producao.rb
|
139
|
+
- lib/enotas_nfe/model/csc.rb
|
140
|
+
- lib/enotas_nfe/model/emissao_nfe_consumidor.rb
|
141
|
+
- lib/enotas_nfe/model/empresa.rb
|
135
142
|
- lib/enotas_nfe/model/endereco.rb
|
136
143
|
- lib/enotas_nfe/model/icms.rb
|
137
144
|
- lib/enotas_nfe/model/impostos.rb
|
@@ -143,7 +150,7 @@ files:
|
|
143
150
|
- lib/enotas_nfe/request.rb
|
144
151
|
- lib/enotas_nfe/version.rb
|
145
152
|
- lib/tasks/enotas_nfe_tasks.rake
|
146
|
-
homepage: https://github.com/luispimenta/
|
153
|
+
homepage: https://github.com/luispimenta/EnotasNfe
|
147
154
|
licenses:
|
148
155
|
- MIT
|
149
156
|
metadata: {}
|