bling_api 2.3.3 → 2.3.4

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: a9b5a7a7981aae76da8a7f0c4ccc183c1e71a635b1ac55533a56d178e0098b88
4
- data.tar.gz: d04c28341ab5aaadaf179d526e90226d10899d1d4d243a74c9a8695adec27a85
3
+ metadata.gz: 6a93bc9467d90b29fe0c08fc0d1994e0ba62db49b8e027171ef9493b1ef6e162
4
+ data.tar.gz: e3e527f95a77a1cad4b068011c1774c9440911594b3699b7a62fcaabfd98c654
5
5
  SHA512:
6
- metadata.gz: 14649a66a9ec5875129c1dff4495919654fcb923d06d0f9d27309f54f864e4e406b75b8c57134b4b6165254b978f7bec35237dabb38724926be35e54fe946a0f
7
- data.tar.gz: f0f1d116bd7e500d95e77bf18b4f9f5d01458b98362f260cb53d983ece73886ec66cdd9776b35a6283f1c440949b07f15bba084003cd1967af8486549a8739d6
6
+ metadata.gz: 69f155c94584c7cc31096d0ec56af921e78dc54dde629f347e7340d282fde1bf7cab7a914e86b35a04ed5d9da36250d4b789f512fdba60e54dc995c5f532e960
7
+ data.tar.gz: fee6ed2191582d3e9477167bf33ea46a02af05cf5254a93f5ec4442e7f6e8a19755ffe4e404e62dc748d156cdc95e9a4558c2dcba01e56f169fc47b00db61c52
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bling_api (2.3.0)
4
+ bling_api (2.3.4)
5
5
  ac
6
6
  base64
7
7
  uri
@@ -142,6 +142,17 @@ module BlingApi
142
142
  get("/pedidos/vendas/#{id}", timeout: 30) { _1.data }
143
143
  end
144
144
 
145
+ # @param id [String] ID do pedido a ser atualizado
146
+ # @param args [Hash] Argumentos do pedido
147
+ def update_order(id, **args)
148
+ put("/pedidos/vendas/#{id}", body: build_order_body(**args), timeout: 30)
149
+ end
150
+
151
+ # @param numero_loja [String] Número do pedido na loja virtual ou marketplace
152
+ def find_orders_by_store_number(numero_loja)
153
+ get("/pedidos/vendas?#{build_query({}, { numerosLojas: [numero_loja] })}", timeout: 30) { _1.data }
154
+ end
155
+
145
156
  def get_contact(id)
146
157
  get("/contatos/#{id}", timeout: 30) { _1.data }
147
158
  end
@@ -293,56 +304,101 @@ module BlingApi
293
304
  # @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
294
305
  # @param numero_venda É o número do pedido de venda no Bling
295
306
  # @param numero_pedido É o número do pedido na loja virtual ou marketplace, exemplo: R123456
296
- def create_order(
297
- data:,
298
- id_contato:,
307
+ def create_order(**args)
308
+ post("/pedidos/vendas", body: build_order_body(**args), timeout: 30) { _1.data }
309
+ end
310
+
311
+ # @param id [String] ID do pedido a ser atualizado
312
+ # @param id_situacao [String] ID da situação do pedido
313
+ def update_order_situation(id, id_situacao)
314
+ patch("/pedidos/vendas/#{id}/situacoes/#{id_situacao}", timeout: 30)
315
+ end
316
+
317
+ def create_nfce_from_order(order_id)
318
+ post("/pedidos/vendas/#{order_id}/gerar-nfce", timeout: 30) { _1.data }
319
+ end
320
+
321
+ def get_nfce(id)
322
+ get("/nfce/#{id}", timeout: 30) { _1.data }
323
+ end
324
+
325
+ def create_nfce(
326
+ data_operacao:,
327
+ contato_numero_documento:,
299
328
  itens:,
300
- numero_venda: nil,
301
- numero_pedido: nil,
302
- id_loja: nil,
303
- id_unidade_negocio: nil,
304
- id_vendedor: nil,
329
+ contato_nome: nil,
330
+ contato_ie: nil,
331
+ contato_rg: nil,
332
+ contato_contribuinte: nil,
333
+ contato_telefone: nil,
334
+ contato_email: nil,
335
+ contato_endereco: nil,
336
+ contato_numero: nil,
337
+ contato_complemento: nil,
338
+ contato_bairro: nil,
339
+ contato_cep: nil,
340
+ contato_municipio: nil,
341
+ contato_uf: nil,
342
+ contato_pais: nil,
305
343
  pessoa_juridica: nil,
306
- numero_documento: nil,
344
+ tipo: nil,
345
+ id_natureza_operacao: nil,
346
+ id_loja: nil,
347
+ numero_loja: nil,
348
+ finalidade: nil,
349
+ seguro: nil,
350
+ despesas: nil,
351
+ desconto: nil,
352
+ observacoes: nil,
307
353
  parcelas: [],
308
- id_categoria_receita: nil,
309
- observacoes: "",
310
- observacoes_internas: "",
311
- valor_desconto: 0,
312
- numero_pedido_compra: nil,
313
- transporte: nil
354
+ transporte: nil,
355
+ intermediador_cnpj: nil,
356
+ intermediador_nome_usuario: nil
314
357
  )
315
- loja = { id: id_loja }
316
- loja[:unidadeNegocio] = { id: id_unidade_negocio } if id_unidade_negocio
317
-
318
358
  body = {
319
- numero: numero_venda,
320
- numeroLoja: numero_pedido,
321
- data: data,
322
- loja: loja,
359
+ dataOperacao: data_operacao,
360
+ itens: itens.map(&:to_api_hash),
323
361
  contato: {
324
- id: id_contato,
362
+ nome: contato_nome,
363
+ numeroDocumento: contato_numero_documento,
325
364
  tipoPessoa: pessoa_juridica ? "J" : "F",
326
- numeroDocumento: numero_documento
365
+ ie: contato_ie,
366
+ rg: contato_rg,
367
+ contribuinte: contato_contribuinte,
368
+ telefone: contato_telefone,
369
+ email: contato_email,
370
+ endereco: {
371
+ endereco: contato_endereco,
372
+ numero: contato_numero,
373
+ complemento: contato_complemento,
374
+ bairro: contato_bairro,
375
+ cep: contato_cep,
376
+ municipio: contato_municipio,
377
+ uf: contato_uf,
378
+ pais: contato_pais
379
+ }
327
380
  },
328
- itens: itens.map(&:to_api_hash),
329
- vendedor: {
330
- id: id_vendedor
381
+ tipo: tipo,
382
+ naturezaOperacao: {
383
+ id: id_natureza_operacao
331
384
  },
332
- categoria: {
333
- id: id_categoria_receita
385
+ loja: {
386
+ id: id_loja,
387
+ numero: numero_loja
334
388
  },
389
+ finalidade: finalidade,
390
+ seguro: seguro,
391
+ despesas: despesas,
392
+ desconto: desconto,
393
+ observacoes: observacoes,
335
394
  parcelas: parcelas.map(&:to_api_hash),
336
395
  transporte: transporte&.to_api_hash,
337
- desconto: {
338
- valor: valor_desconto,
339
- unidade: "REAL"
340
- },
341
- observacoes: observacoes,
342
- observacoesInternas: observacoes_internas,
343
- numeroPedidoCompra: numero_pedido_compra
396
+ intermediador: {
397
+ cnpj: intermediador_cnpj,
398
+ nomeUsuario: intermediador_nome_usuario
399
+ }
344
400
  }
345
- post("/pedidos/vendas", body: body, timeout: 30) { _1.data }
401
+ post("/nfce", body: body, timeout: 30)
346
402
  end
347
403
 
348
404
  def create_nfe_from_order(order_id)
@@ -480,6 +536,56 @@ module BlingApi
480
536
 
481
537
  private
482
538
 
539
+ def build_order_body(
540
+ data:,
541
+ id_contato:,
542
+ itens:,
543
+ numero_venda: nil,
544
+ numero_pedido: nil,
545
+ id_loja: nil,
546
+ id_unidade_negocio: nil,
547
+ id_vendedor: nil,
548
+ pessoa_juridica: nil,
549
+ numero_documento: nil,
550
+ parcelas: [],
551
+ id_categoria_receita: nil,
552
+ observacoes: "",
553
+ observacoes_internas: "",
554
+ valor_desconto: 0,
555
+ numero_pedido_compra: nil,
556
+ transporte: nil
557
+ )
558
+ loja = { id: id_loja }
559
+ loja[:unidadeNegocio] = { id: id_unidade_negocio } if id_unidade_negocio
560
+ {
561
+ numero: numero_venda,
562
+ numeroLoja: numero_pedido,
563
+ data: data,
564
+ loja: loja,
565
+ contato: {
566
+ id: id_contato,
567
+ tipoPessoa: pessoa_juridica ? "J" : "F",
568
+ numeroDocumento: numero_documento
569
+ },
570
+ itens: itens.map(&:to_api_hash),
571
+ vendedor: {
572
+ id: id_vendedor
573
+ },
574
+ categoria: {
575
+ id: id_categoria_receita
576
+ },
577
+ parcelas: parcelas.map(&:to_api_hash),
578
+ transporte: transporte&.to_api_hash,
579
+ desconto: {
580
+ valor: valor_desconto,
581
+ unidade: "REAL"
582
+ },
583
+ observacoes: observacoes,
584
+ observacoesInternas: observacoes_internas,
585
+ numeroPedidoCompra: numero_pedido_compra
586
+ }
587
+ end
588
+
483
589
  def build_query(params = {}, array_params = {})
484
590
  query_parts = []
485
591
 
@@ -1,8 +1,8 @@
1
1
  module BlingApi
2
2
  class Item
3
3
 
4
- attr_reader :codigo, :id_produto, :quantidade, :valor, :unidade, :desconto, :aliquota_ipi, :descricao, :descricao_detalhada, :cest, :origem, :comissao_base, :comissao_aliquota, :comissao_valor
5
- def initialize(id_produto:, codigo:, quantidade:, valor:, unidade: nil, desconto: nil, aliquota_ipi: nil, descricao: nil, descricao_detalhada: nil, cest: nil, origem: nil, comissao_base: nil, comissao_aliquota: nil, comissao_valor: nil)
4
+ attr_reader :codigo, :id_produto, :quantidade, :valor, :unidade, :desconto, :aliquota_ipi, :descricao, :descricao_detalhada, :cest, :origem, :comissao_base, :comissao_aliquota, :comissao_valor, :id_natureza_operacao
5
+ def initialize(id_produto:, codigo:, quantidade:, valor:, unidade: nil, desconto: nil, aliquota_ipi: nil, descricao: nil, descricao_detalhada: nil, cest: nil, origem: nil, comissao_base: nil, comissao_aliquota: nil, comissao_valor: nil, id_natureza_operacao: nil)
6
6
  @codigo = codigo
7
7
  @id_produto = id_produto
8
8
  @quantidade = quantidade
@@ -17,6 +17,7 @@ module BlingApi
17
17
  @comissao_base = comissao_base
18
18
  @comissao_aliquota = comissao_aliquota
19
19
  @comissao_valor = comissao_valor
20
+ @id_natureza_operacao = id_natureza_operacao
20
21
  end
21
22
 
22
23
  def to_api_hash
@@ -38,6 +39,9 @@ module BlingApi
38
39
  base: comissao_base,
39
40
  aliquota: comissao_aliquota,
40
41
  valor: comissao_valor
42
+ },
43
+ naturezaOperacao: {
44
+ id: id_natureza_operacao
41
45
  }
42
46
  }
43
47
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BlingApi
4
- VERSION = "2.3.3"
4
+ VERSION = "2.3.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bling_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.3
4
+ version: 2.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - caio
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-08-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: ac
@@ -52,7 +51,6 @@ dependencies:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
- description:
56
54
  email:
57
55
  - caioif4@gmail.com
58
56
  executables: []
@@ -82,7 +80,6 @@ licenses:
82
80
  metadata:
83
81
  homepage_uri: https://github.com/CaioGarcia1
84
82
  source_code_uri: https://github.com/CaioGarcia1
85
- post_install_message:
86
83
  rdoc_options: []
87
84
  require_paths:
88
85
  - lib
@@ -97,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
94
  - !ruby/object:Gem::Version
98
95
  version: '0'
99
96
  requirements: []
100
- rubygems_version: 3.5.3
101
- signing_key:
97
+ rubygems_version: 4.0.22
102
98
  specification_version: 4
103
99
  summary: ''
104
100
  test_files: []