transmitenota 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ba0ed59b70fe237d7f46e01c1828914540f85e6f
4
+ data.tar.gz: 310068291aa4dda3ba03fd53f025277872bea9fb
5
+ SHA512:
6
+ metadata.gz: b1cb865c796f679630f7d2baf8b9bfc1635fa8a9a1f5c575944a0ee08db8fdb77ca568023dc0daf14b00bbe50c66f973ab2ecbb7836e6888df00c8523acb414e
7
+ data.tar.gz: 63b385184cd1edb780ebe5c376b6b32a0ff303e884f204d270390a54d0b56cce2ee4371e597ad28f04506130beed882183290fceceaeaa4b6d0e4b33f3f11f43
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,69 @@
1
+ require "transmitenota/version"
2
+ require "transmitenota/item"
3
+ require "transmitenota/nota"
4
+ require "transmitenota/config"
5
+ require "transmitenota/dado"
6
+ require 'json'
7
+ require "net/http"
8
+ require "uri"
9
+ require 'httpclient'
10
+
11
+ module Transmitenota
12
+ class Nfe
13
+
14
+ def url
15
+ if @configuration.environment == :production
16
+ 'prod'
17
+ elsif @configuration.environment == :sandbox
18
+ "http://api1.transmitenota.com.br/api/homologacao/"
19
+ #"http://localhost:8080/"
20
+ end
21
+ end
22
+
23
+ # The configuration instance
24
+ def configuration
25
+ @configuration ||= Transmitenota::Config.new
26
+ end
27
+
28
+ def enviar_nfe(nota)
29
+ puts json = nota.to_json
30
+ puts '### enviando nota ###'
31
+ http = HTTPClient.new
32
+ http.receive_timeout = 30000
33
+ puts url + "EnviarNfe/"
34
+ response = http.post(url + "EnviarNfe/", json.encode(@configuration.encoding), set_header)
35
+ #response.body
36
+ puts obj = JSON.parse(response.body)
37
+ searchkey = obj['searchkey']
38
+ end
39
+
40
+ def consultar_nfe(nota)
41
+ puts json = nota.to_json
42
+ puts '### consultando nota ###'
43
+ http = HTTPClient.new
44
+ http.receive_timeout = 30000
45
+ response = http.post(url + "ConsultarEmissaoNotaNfe/", json.encode("utf-8"), set_header)
46
+ puts response.body
47
+ end
48
+
49
+ def enviar_email_nfe(nota)
50
+ puts json = nota.to_json
51
+ puts '### enviando nota por email ###'
52
+ http = HTTPClient.new
53
+ http.receive_timeout = 30000
54
+ response = http.post(url + "EnviarEmailNfe/", json.encode("utf-8"), set_header)
55
+ puts response.body
56
+ end
57
+
58
+ def cancelar_nfe
59
+ puts 'teste'
60
+ end
61
+
62
+ def set_header
63
+ headers = {
64
+ 'Content-Type' => 'application/json',
65
+ }
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,19 @@
1
+ module Transmitenota
2
+ class Config
3
+ # The api key
4
+ attr_accessor :ApiKey
5
+
6
+ # The cnpj
7
+ attr_accessor :Cnpj
8
+
9
+ # The encoding that will be used.
10
+ attr_accessor :encoding
11
+
12
+ attr_accessor :environment
13
+
14
+ def initialize
15
+ @environment = :sandbox
16
+ @encoding = "UTF-8"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ module Transmitenota
2
+ class Dado
3
+ attr_accessor :natureza_operacao, :data_emissao, :data_saida_entrada, :hora_saida_entrada, :tipo_operacao, :codigo_cfop, :forma_pagamento,
4
+ :finalidade_emissao, :nome_destinatario, :cnpj_destinatario, :inscricao_estadual_destinatario, :telefone_destinatario, :logradouro_destinatario,
5
+ :numero_destinatario, :complemento_destinatario, :bairro_destinatario, :municipio_destinatario, :uf_destinatario, :pais_destinatario,
6
+ :cep_destinatario, :icms_base_calculo, :icms_valor_total, :icms_base_calculo_st, :icms_valor_total_st, :icms_modalidade_base_calculo,
7
+ :icms_valor, :valor_frete, :valor_seguro, :valor_total, :valor_total_sem_desconto, :valor_ipi, :modalidade_frete, :informacoes_adicionais_contribuinte,
8
+ :nome_transportadora, :cnpj_transportadora, :endereco_transportadora, :municipio_transportadora, :uf_transportadora, :inscricao_estadual_transportadora
9
+
10
+ attr_accessor :Itens
11
+
12
+ attr_accessor :searchkey
13
+
14
+ attr_accessor :de, :para, :assunto, :mensagem
15
+
16
+ def initialize
17
+ @Itens = []
18
+ end
19
+
20
+ def to_hash
21
+ hash = {}
22
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
23
+ hash
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ module Transmitenota
2
+ class Item
3
+ attr_accessor :numero_item, :codigo_produto, :descricao, :cfop, :unidade_comercial, :quantidade_comercial, :valor_unitario_comercial, :codigo_ncm, :valor_desconto,
4
+ :valor_frete, :valor_seguro, :valor_outras_despesas, :valor_total, :valor_total_sem_desconto, :icms_aliquota_calc_credito, :icms_valor_credito, :icms_origem_cstb,
5
+ :icms_mod_base_calculo, :icms_base_calculo, :icms_reducao_base_calculo, :icms_aliquota, :icms_valor, :icms_valor_st, :icms_valor_bc_st_ret, :icms_valor_st_ret,
6
+ :icms_mod_bc_st, :icms_mva_st, :icms_bc_st, :icms_red_bc_st, :icms_aliquota_st, :valor_bc_icms_uf_destino, :aliquota_icms_uf_destino, :valor_icms_int_uf_destino,
7
+ :aliquota_int_uf_envolvidas, :valor_icms_int_uf_remetente, :aliquota_perc_prov_part_icms_int, :aliquota_icms_fundo_combate_pobreza_uf_dest,
8
+ :valor_icms_fundo_combate_pobreza_uf_dest, :pis_situacao_tributaria, :aliquota_pis, :valor_pis, :base_calculo_pis, :cofins_situacao_tributaria, :aliquota_cofins,
9
+ :valor_cofins, :base_calculo_cofins, :ipi_situacao_tributaria, :ipi_situacao_tributaria, :valor_ipi, :base_calculo_ipi, :aliquota_ipi, :cst_ipi,
10
+ :ipi_codigo_enquadramento_legal, :aliquota_iof, :valor_ii, :valor_iof, :base_calculo_ii, :aliquota_ii, :valor_despesas_aduaneiras
11
+
12
+ def to_hash
13
+ hash = {}
14
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
15
+ hash
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ module Transmitenota
2
+ class Nota
3
+ attr_accessor :Dados
4
+
5
+ def initialize(apiKey, cnpj)
6
+ @ApiKey = apiKey
7
+ @Cnpj = cnpj
8
+ @Dados = {}
9
+ end
10
+
11
+ def to_hash
12
+ hash = {}
13
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
14
+ hash
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,3 @@
1
+ module Transmitenota
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'transmitenota/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "transmitenota"
8
+ spec.version = Transmitenota::VERSION
9
+ spec.authors = ["Luis Fernando Pimenta"]
10
+ spec.email = ["pimenta@red4sis.com"]
11
+
12
+ spec.description = "Gem for emission and transmission of nfe"
13
+ spec.summary = "Gem for emission and transmission of nfe to transmitenota"
14
+ spec.homepage = "https://transmitenota.com.br"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = Dir["{lib/**/*.rb,README.rdoc,test/**/*.rb,Rakefile,*.gemspec}"]
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.14"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec", "~> 3.0"
25
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: transmitenota
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Luis Fernando Pimenta
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-08-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.14'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: Gem for emission and transmission of nfe
56
+ email:
57
+ - pimenta@red4sis.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - Rakefile
63
+ - lib/transmitenota.rb
64
+ - lib/transmitenota/config.rb
65
+ - lib/transmitenota/dado.rb
66
+ - lib/transmitenota/item.rb
67
+ - lib/transmitenota/nota.rb
68
+ - lib/transmitenota/version.rb
69
+ - transmitenota.gemspec
70
+ homepage: https://transmitenota.com.br
71
+ licenses:
72
+ - MIT
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.5.1
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Gem for emission and transmission of nfe to transmitenota
94
+ test_files: []