Skip to content

Commit 2d8fce7

Browse files
Merge pull request #24 from AlexandreBellas/develop
feat: atualizar para v308
2 parents 095e6a9 + 17fd387 commit 2d8fce7

File tree

115 files changed

+2723
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+2723
-254
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
Pacote de integração com a [API v3 do ERP Bling](https://developer.bling.com.br)
77
para PHP 8.2+. O mais completo existente.
88

9-
Atualizado com a versão `v303` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-06-19)).
9+
Atualizado com a versão `v308` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-09-04)).
1010

1111
## Instalação
1212

@@ -36,7 +36,7 @@ projeto de demonstração](https://github.com/AlexandreBellas/bling-erp-api-php/
3636

3737
## Entidades disponíveis
3838

39-
Quase todas as entidades do Bling atualmente são permitidas para interação. São elas:
39+
Todas as entidades do Bling atualmente são permitidas para interação. São elas:
4040

4141
- [x] Borderos (`->borderos`)
4242
- [x] Campos customizados (`->camposCustomizados`)
@@ -54,7 +54,7 @@ Quase todas as entidades do Bling atualmente são permitidas para interação. S
5454
- [x] Empresas (`->empresas`)
5555
- [x] Estoques (`->estoques`)
5656
- [x] Formas de pagamento (`->formasDePagamento`)
57-
- [ ] Grupos de produtos (`->gruposDeProdutos`)
57+
- [x] Grupos de produtos (`->gruposDeProdutos`)
5858
- [x] Homologação (`->homologacao`)
5959
- [x] Logísticas (`->logisticas`)
6060
- [x] Logísticas - Etiquetas (`->logisticasEtiquetas`)
@@ -74,7 +74,7 @@ Quase todas as entidades do Bling atualmente são permitidas para interação. S
7474
- [x] Produtos - Fornecedores (`->produtosFornecedores`)
7575
- [x] Produtos - Lojas (`->produtosLojas`)
7676
- [x] Produtos - Variações (`->produtosVariacoes`)
77-
- [ ] Propostas comerciais (`->propostasComerciais`)
77+
- [x] Propostas comerciais (`->propostasComerciais`)
7878
- [x] Situações (`->situacoes`)
7979
- [x] Situações - Módulos (`->situacoesModulos`)
8080
- [x] Situações - Transições (`->situacoesTransicoes`)

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "alebatistella/bling-erp-api",
33
"description": "Pacote de integração com a API do Bling ERP",
44
"type": "library",
5-
"version": "1.15.0",
5+
"version": "1.16.0",
66
"license": "MIT",
77
"autoload": {
88
"psr-4": {

src/Bling.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use AleBatistella\BlingErpApi\Entities\Empresas\Empresas;
1919
use AleBatistella\BlingErpApi\Entities\Estoques\Estoques;
2020
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\FormasDePagamentos;
21+
use AleBatistella\BlingErpApi\Entities\GruposDeProdutos\GruposDeProdutos;
2122
use AleBatistella\BlingErpApi\Entities\Homologacao\Homologacao;
2223
use AleBatistella\BlingErpApi\Entities\Logisticas\Logisticas;
2324
use AleBatistella\BlingErpApi\Entities\LogisticasEtiquetas\LogisticasEtiquetas;
@@ -37,6 +38,7 @@
3738
use AleBatistella\BlingErpApi\Entities\ProdutosFornecedores\ProdutosFornecedores;
3839
use AleBatistella\BlingErpApi\Entities\ProdutosLojas\ProdutosLojas;
3940
use AleBatistella\BlingErpApi\Entities\ProdutosVariacoes\ProdutosVariacoes;
41+
use AleBatistella\BlingErpApi\Entities\PropostasComerciais\PropostasComerciais;
4042
use AleBatistella\BlingErpApi\Entities\Shared\BaseEntity;
4143
use AleBatistella\BlingErpApi\Entities\Situacoes\Situacoes;
4244
use AleBatistella\BlingErpApi\Entities\SituacoesModulos\SituacoesModulos;
@@ -66,6 +68,7 @@
6668
* @property Empresas $empresas
6769
* @property Estoques $estoques
6870
* @property FormasDePagamentos $formasDePagamentos
71+
* @property GruposDeProdutos $gruposDeProdutos
6972
* @property Homologacao $homologacao
7073
* @property Logisticas $logisticas
7174
* @property LogisticasEtiquetas $logisticasEtiquetas
@@ -85,6 +88,7 @@
8588
* @property ProdutosFornecedores $produtosFornecedores
8689
* @property ProdutosLojas $produtosLojas
8790
* @property ProdutosVariacoes $produtosVariacoes
91+
* @property PropostasComerciais $propostasComerciais
8892
* @property Situacoes $situacoes
8993
* @property SituacoesModulos $situacoesModulos
9094
* @property SituacoesTransicoes $situacoesTransicoes
@@ -148,6 +152,7 @@ public function __get(string $name)
148152
'empresas' => $this->getModule(Empresas::class),
149153
'estoques' => $this->getModule(Estoques::class),
150154
'formasDePagamentos' => $this->getModule(FormasDePagamentos::class),
155+
'gruposDeProdutos' => $this->getModule(GruposDeProdutos::class),
151156
'homologacao' => $this->getModule(Homologacao::class),
152157
'logisticas' => $this->getModule(Logisticas::class),
153158
'logisticasEtiquetas' => $this->getModule(LogisticasEtiquetas::class),
@@ -167,6 +172,7 @@ public function __get(string $name)
167172
'produtosFornecedores' => $this->getModule(ProdutosFornecedores::class),
168173
'produtosLojas' => $this->getModule(ProdutosLojas::class),
169174
'produtosVariacoes' => $this->getModule(ProdutosVariacoes::class),
175+
'propostasComerciais' => $this->getModule(PropostasComerciais::class),
170176
'situacoes' => $this->getModule(Situacoes::class),
171177
'situacoesModulos' => $this->getModule(SituacoesModulos::class),
172178
'situacoesTransicoes' => $this->getModule(SituacoesTransicoes::class),

src/BlingTest.spec.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use AleBatistella\BlingErpApi\Entities\Empresas\Empresas;
2020
use AleBatistella\BlingErpApi\Entities\Estoques\Estoques;
2121
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\FormasDePagamentos;
22+
use AleBatistella\BlingErpApi\Entities\GruposDeProdutos\GruposDeProdutos;
2223
use AleBatistella\BlingErpApi\Entities\Homologacao\Homologacao;
2324
use AleBatistella\BlingErpApi\Entities\Logisticas\Logisticas;
2425
use AleBatistella\BlingErpApi\Entities\LogisticasEtiquetas\LogisticasEtiquetas;
@@ -38,6 +39,7 @@
3839
use AleBatistella\BlingErpApi\Entities\ProdutosFornecedores\ProdutosFornecedores;
3940
use AleBatistella\BlingErpApi\Entities\ProdutosLojas\ProdutosLojas;
4041
use AleBatistella\BlingErpApi\Entities\ProdutosVariacoes\ProdutosVariacoes;
42+
use AleBatistella\BlingErpApi\Entities\PropostasComerciais\PropostasComerciais;
4143
use AleBatistella\BlingErpApi\Entities\Situacoes\Situacoes;
4244
use AleBatistella\BlingErpApi\Entities\SituacoesModulos\SituacoesModulos;
4345
use AleBatistella\BlingErpApi\Entities\SituacoesTransicoes\SituacoesTransicoes;
@@ -313,6 +315,20 @@ public function testShouldGetFormasDePagamentosCorrectly(): void
313315
$this->assertInstanceOf($expected, $actual);
314316
}
315317

318+
/**
319+
* Testa obter a entidade Grupos de Produtos.
320+
*
321+
* @return void
322+
*/
323+
public function testShouldGetGruposDeProdutosCorrectly(): void
324+
{
325+
$expected = GruposDeProdutos::class;
326+
327+
$actual = $this->getInstance()->gruposDeProdutos;
328+
329+
$this->assertInstanceOf($expected, $actual);
330+
}
331+
316332
/**
317333
* Testa obter a entidade Homologação.
318334
*
@@ -579,6 +595,20 @@ public function testShouldGetProdutosVariacoesCorrectly(): void
579595
$this->assertInstanceOf($expected, $actual);
580596
}
581597

598+
/**
599+
* Testa obter a entidade Propostas Comerciais.
600+
*
601+
* @return void
602+
*/
603+
public function testShouldGetPropostasComerciaisCorrectly(): void
604+
{
605+
$expected = PropostasComerciais::class;
606+
607+
$actual = $this->getInstance()->propostasComerciais;
608+
609+
$this->assertInstanceOf($expected, $actual);
610+
}
611+
582612
/**
583613
* Testa obter a entidade Situações.
584614
*
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace AleBatistella\BlingErpApi\Entities\Shared\DTO\Schema;
4+
5+
use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
6+
7+
/**
8+
* Objeto com ID opcional.
9+
*/
10+
final readonly class OptionalId extends BaseResponseObject
11+
{
12+
/**
13+
* Constrói o objeto.
14+
*
15+
* @param ?int $id
16+
*/
17+
public function __construct(public ?int $id) {}
18+
}

src/Entities/ContasReceber/ContasReceber.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public function getBankSlips(int $idOrigem, GetBankSlipsParams|array|null $param
111111

112112
$response = $this->repository->index(
113113
new RequestOptions(
114-
endpoint: "contas/receber/view/bankslips",
114+
endpoint: "contas/receber/boletos",
115115
queryParams: $actualParams
116116
)
117117
);
@@ -179,7 +179,7 @@ public function cancelBankSlips(array $body): null
179179
{
180180
$response = $this->repository->store(
181181
new RequestOptions(
182-
endpoint: "contas/receber/cancel/bankslips",
182+
endpoint: "contas/receber/boletos/cancelar",
183183
body: $body
184184
)
185185
);

src/Entities/ContasReceber/Enum/BankSlipSituacao.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55
/**
66
* Enumerador de situação de boletos de contas a receber.
77
*/
8-
enum BankSlipSituacao: string
8+
enum BankSlipSituacao: int
99
{
10-
case EM_ABERTO = 'aberto';
11-
case CONFIRMADO = 'confirmado';
12-
case PARCIALMENTE_RECEBIDO = 'pacial';
13-
case DEVOLVIDO = 'devolvido';
14-
case PARCIALMENTE_DEVOLVIDO = 'devolvidoP';
15-
case RECEBIDO = 'pago';
16-
case CANCELADO = 'cancelada';
17-
}
10+
case EM_ABERTO = 1;
11+
case RECEBIDO = 2;
12+
case PARCIALMENTE_RECEBIDO = 3;
13+
case DEVOLVIDO = 4;
14+
case PARCIALMENTE_DEVOLVIDO = 5;
15+
case CANCELADO = 6;
16+
}

src/Entities/ContasReceber/Enum/TipoFiltroData.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ enum TipoFiltroData: string
1010
{
1111
case DATA_DE_EMISSAO = 'E';
1212
case DATA_DE_VENCIMENTO = 'V';
13-
}
13+
case DATA_DE_RECEBIMENTO = 'R';
14+
}

src/Entities/ContasReceber/Schema/CancelBankSlips/CancelBankSlipsResponse.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Request\ResponseOptions;
77

88
/**
9-
* Resposta do cancelamento de boletos - Bling Conta com situação aberto,
10-
* podendo cancelar um ou todos boletos vinculado ao uma Venda/Nota Fiscal,
11-
* quando nenhum boleto tiver emitido não se faz uso do 2FA.
9+
* Resposta do cancelamento de um ou todos os boletos em aberto vinculados a uma venda ou nota fiscal.
1210
*/
1311
readonly final class CancelBankSlipsResponse extends BaseResponseRootObject
1412
{

src/Entities/ContasReceber/Schema/Get/GetParams.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
* @param \DateTimeInterface|string|null $dataFinal
2828
* @param ?int[] $idsCategorias
2929
* @param ?int $idPortador
30+
* @param ?int $idContato
3031
* @param ?int $idVendedor
3132
* @param ?int $idFormaPagamento
3233
* @param ?int $boletoGerado
@@ -40,12 +41,13 @@ public function __construct(
4041
\DateTimeInterface|string|null $dataFinal = null,
4142
public ?array $idsCategorias = null,
4243
public ?int $idPortador = null,
44+
public ?int $idContato = null,
4345
public ?int $idVendedor = null,
4446
public ?int $idFormaPagamento = null,
4547
public ?int $boletoGerado = null
4648
) {
4749
$this->situacoes = array_map(
48-
fn (Situacao|int|null $situacao) => $situacao instanceof Situacao ? $situacao->value : $situacao,
50+
fn(Situacao|int|null $situacao) => $situacao instanceof Situacao ? $situacao->value : $situacao,
4951
$situacoes
5052
);
5153
$this->tipoFiltroData = $tipoFiltroData instanceof TipoFiltroData ? $tipoFiltroData->value : $tipoFiltroData;

0 commit comments

Comments
 (0)