bling_api 2.0.1 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a5008dded075838edc4fe14688e5446bb7b141fddd1341c8145897558046d52
4
- data.tar.gz: 2540b2ef105be962a26f37350c5130dd90b3da3dccf90d760a25f52a2f19cd8e
3
+ metadata.gz: 787595ba01abda400e7b0af56a1c8eb1ea9bc8e8f901e68860afbbe5c9f023e8
4
+ data.tar.gz: 697a257ed9e6baf3262dbd492bf9f681f5e60bef0b0460234ed3adbe8075eaa4
5
5
  SHA512:
6
- metadata.gz: 88cb655b7b192b5c3870be22d088b8c3150e1ec63c23ff55dbac97e0467def9724a6bc3a485efd460fababf0b86b2f4dd826427c926eeb77b675a62c207fc9b1
7
- data.tar.gz: 8801c6cd569c465113291129fd4b1b110d0d4aa69a6ba57a0a3fcedfe7c87013fcf2da1a976585c7d251e6ef82f4f0f695991e4acb9119b6d23d4d1d41a7b230
6
+ metadata.gz: 6b11387d4033e9d86c837599b1a5353e602ad74f3c9bbc509737b711c1b5d05765a7437b9af00bdcfa355e9cf8ddf4e92c9be455492deb923b4beed042aa3cb3
7
+ data.tar.gz: 07fc87711ff77e1460571fd26f6eaaabff136bfd380767ebebc39c67a9173f5e12dc0fc99e1b8c24428942a1bcc819eaef71d0e005ed993019fb038988cea6bf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bling_api (2.0.1)
4
+ bling_api (2.1.0)
5
5
  ac
6
6
  base64
7
7
 
@@ -127,31 +127,31 @@ module BlingApi
127
127
  }
128
128
  }
129
129
  }
130
- put("/contatos/#{id}", body: body)
130
+ put("/contatos/#{id}", body: body, timeout: 20)
131
131
  end
132
132
 
133
133
  def get_order(id)
134
- get("/pedidos/vendas/#{id}") { _1.data }
134
+ get("/pedidos/vendas/#{id}", timeout: 20) { _1.data }
135
135
  end
136
136
 
137
137
  def get_contact(id)
138
- get("/contatos/#{id}") { _1.data }
138
+ get("/contatos/#{id}", timeout: 20) { _1.data }
139
139
  end
140
140
 
141
141
  def get_seller(id)
142
- get("/vendedores/#{id}") { _1.data }
142
+ get("/vendedores/#{id}", timeout: 20) { _1.data }
143
143
  end
144
144
 
145
145
  def get_sellers(page, limit, situation)
146
- get("/vendedores?pagina=#{page}&limite=#{limit}&situacaoContato=#{situation}") { _1.data }
146
+ get("/vendedores?pagina=#{page}&limite=#{limit}&situacaoContato=#{situation}", timeout: 20) { _1.data }
147
147
  end
148
148
 
149
149
  def find_contact_by_document_number(document_number)
150
- get("/contatos?numeroDocumento=#{document_number.gsub(/\D/, "")}") { _1.data }
150
+ get("/contatos?numeroDocumento=#{document_number.gsub(/\D/, "")}", timeout: 20) { _1.data }
151
151
  end
152
152
 
153
153
  def find_product_by_sku(sku)
154
- get("/produtos?codigo=#{sku}") { _1.data }
154
+ get("/produtos?codigo=#{sku}", timeout: 20) { _1.data }
155
155
  end
156
156
 
157
157
  def create_contact(
@@ -239,7 +239,7 @@ module BlingApi
239
239
  }
240
240
  }
241
241
  }
242
- post("/contatos", body: body) { _1.data }
242
+ post("/contatos", body: body, timeout: 20) { _1.data }
243
243
  end
244
244
 
245
245
  # @param itens [Array<BlingApi::Item>] Array de objetos Item contendo codigo, id_produto, quantidade, valor, unidade, desconto, aliquota_ipi, descricao, descricao_detalhada, comissao_base, comissao_aliquota, comissao_valor
@@ -294,7 +294,97 @@ module BlingApi
294
294
  observacoesInternas: observacoes_internas,
295
295
  numeroPedidoCompra: numero_pedido_compra
296
296
  }
297
- post("/pedidos/vendas", body: body) { _1.data }
297
+ post("/pedidos/vendas", body: body, timeout: 20) { _1.data }
298
+ end
299
+
300
+ def create_nfe_from_order(order_id)
301
+ post("/pedidos/vendas/#{order_id}/gerar-nfe") { _1.data }
302
+ end
303
+
304
+ def get_nfe(id)
305
+ get("/nfe/#{id}") { _1.data }
306
+ end
307
+
308
+ # @param itens [Array<BlingApi::Item>] Array de objetos Item contendo codigo, id_produto, quantidade, valor, unidade, desconto, aliquota_ipi, descricao, descricao_detalhada, comissao_base, comissao_aliquota, comissao_valor
309
+ # @param parcelas [Array<BlingApi::Installment>] Array de objetos Installment contendo id_forma_pagamento, valor, data_vencimento, observacoes, id
310
+ # @param transporte [<BlingApi::Shipment>] Objeto Shipment contendo valor_frete, frete_por_conta, quantidade_volumes, nome_transportadora, nome_etiqueta, endereco, numero, complemento, municipio, uf, bairro, cep, pais, nome_servico, codigo_rastreio
311
+ def create_nfe(
312
+ data_operacao:,
313
+ contato_numero_documento:,
314
+ itens:,
315
+ contato_nome: nil,
316
+ contato_ie: nil,
317
+ contato_rg: nil,
318
+ contato_contribuinte: nil,
319
+ contato_telefone: nil,
320
+ contato_email: nil,
321
+ contato_endereco: nil,
322
+ contato_numero: nil,
323
+ contato_complemento: nil,
324
+ contato_bairro: nil,
325
+ contato_cep: nil,
326
+ contato_municipio: nil,
327
+ contato_uf: nil,
328
+ contato_pais: nil,
329
+ pessoa_juridica: nil,
330
+ tipo: nil,
331
+ id_natureza_operacao: nil,
332
+ id_loja: nil,
333
+ numero_loja: nil,
334
+ finalidade: nil,
335
+ seguro: nil,
336
+ despesas: nil,
337
+ desconto: nil,
338
+ observacoes: nil,
339
+ parcelas: [],
340
+ transporte: nil,
341
+ intermediador_cnpj: nil,
342
+ intermediador_nome_usuario: nil
343
+ )
344
+ body = {
345
+ dataOperacao: data_operacao,
346
+ itens: itens.map(&:to_api_hash),
347
+ contato: {
348
+ nome: contato_nome,
349
+ numeroDocumento: contato_numero_documento,
350
+ tipoPessoa: pessoa_juridica ? "J" : "F",
351
+ ie: contato_ie,
352
+ rg: contato_rg,
353
+ contribuinte: contato_contribuinte,
354
+ telefone: contato_telefone,
355
+ email: contato_email,
356
+ endereco: {
357
+ endereco: contato_endereco,
358
+ numero: contato_numero,
359
+ complemento: contato_complemento,
360
+ bairro: contato_bairro,
361
+ cep: contato_cep,
362
+ municipio: contato_municipio,
363
+ uf: contato_uf,
364
+ pais: contato_pais
365
+ }
366
+ },
367
+ tipo: tipo,
368
+ naturezaOperacao: {
369
+ id: id_natureza_operacao
370
+ },
371
+ loja: {
372
+ id: id_loja,
373
+ numero: numero_loja
374
+ },
375
+ finalidade: finalidade,
376
+ seguro: seguro,
377
+ despesas: despesas,
378
+ desconto: desconto,
379
+ observacoes: observacoes,
380
+ parcelas: parcelas.map(&:to_api_hash),
381
+ transporte: transporte&.to_api_hash,
382
+ intermediador: {
383
+ cnpj: intermediador_cnpj,
384
+ nomeUsuario: intermediador_nome_usuario
385
+ }
386
+ }
387
+ post("/nfe", body: body)
298
388
  end
299
389
  end
300
390
  end
@@ -1,3 +1,4 @@
1
+ # Não é mais utilizado
1
2
  module BlingApi
2
3
  class Customer
3
4
  def self.find_by_tax_id tax_id
@@ -1,3 +1,4 @@
1
+ # Não é mais utilizado
1
2
  module BlingApi
2
3
  class Order
3
4
  def self.find_by_id id
@@ -1,3 +1,4 @@
1
+ # Não é mais utilizado
1
2
  module BlingApi
2
3
  class Product
3
4
  def self.find_by_sku sku
@@ -1,3 +1,4 @@
1
+ # Não é mais utilizado
1
2
  module BlingApi
2
3
  class Seller
3
4
  def self.get_sellers page: 1, limit: 100, situation: "A"
@@ -1,5 +1,12 @@
1
1
  module BlingApi
2
2
  class Shipment
3
+ # Valores para o campo frete_por_conta:
4
+ # 0 - Contratação do Frete por conta do Remetente (CIF)
5
+ # 1 - Contratação do Frete por conta do Destinatário (FOB)
6
+ # 2 - Contratação do Frete por conta de Terceiros
7
+ # 3 - Transporte Próprio por conta do Remetente
8
+ # 4 - Transporte Próprio por conta do Destinatário
9
+ # 9 - Sem Ocorrência de Transporte
3
10
  attr_reader :valor_frete, :frete_por_conta, :quantidade_volumes, :peso_bruto_kg, :nome_transportadora, :nome_etiqueta, :endereco, :numero, :complemento, :municipio, :uf, :bairro, :cep, :pais, :nome_servico, :codigo_rastreio
4
11
  def initialize(valor_frete:, nome_transportadora:, frete_por_conta: nil, quantidade_volumes: nil, peso_bruto_kg: nil, nome_etiqueta: nil, endereco: nil, numero: nil, complemento: nil, municipio: nil, uf: nil, bairro: nil, cep: nil, pais: nil, nome_servico: nil, codigo_rastreio: nil)
5
12
  @valor_frete = valor_frete
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BlingApi
4
- VERSION = "2.0.1"
4
+ VERSION = "2.1.0"
5
5
  end
data/lib/bling_api.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "ac"
4
4
  require "base64"
5
- require "active_support/core_ext/hash/indifferent_access"
6
5
  require_relative "bling_api/version"
7
6
  require_relative "bling_api/client"
8
7
  # require_relative "bling_api/customer" # Deixamos de usar
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bling_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubygems_version: 3.6.7
83
+ rubygems_version: 3.6.9
84
84
  specification_version: 4
85
85
  summary: ''
86
86
  test_files: []