Skip to content

Commit

Permalink
Merge pull request #24 from AlexandreBellas/develop
Browse files Browse the repository at this point in the history
feat: atualizar para v308
  • Loading branch information
AlexandreBellas authored Sep 8, 2024
2 parents 095e6a9 + 17fd387 commit 2d8fce7
Show file tree
Hide file tree
Showing 115 changed files with 2,723 additions and 254 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Pacote de integração com a [API v3 do ERP Bling](https://developer.bling.com.br)
para PHP 8.2+. O mais completo existente.

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

## Instalação

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

## Entidades disponíveis

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

- [x] Borderos (`->borderos`)
- [x] Campos customizados (`->camposCustomizados`)
Expand All @@ -54,7 +54,7 @@ Quase todas as entidades do Bling atualmente são permitidas para interação. S
- [x] Empresas (`->empresas`)
- [x] Estoques (`->estoques`)
- [x] Formas de pagamento (`->formasDePagamento`)
- [ ] Grupos de produtos (`->gruposDeProdutos`)
- [x] Grupos de produtos (`->gruposDeProdutos`)
- [x] Homologação (`->homologacao`)
- [x] Logísticas (`->logisticas`)
- [x] Logísticas - Etiquetas (`->logisticasEtiquetas`)
Expand All @@ -74,7 +74,7 @@ Quase todas as entidades do Bling atualmente são permitidas para interação. S
- [x] Produtos - Fornecedores (`->produtosFornecedores`)
- [x] Produtos - Lojas (`->produtosLojas`)
- [x] Produtos - Variações (`->produtosVariacoes`)
- [ ] Propostas comerciais (`->propostasComerciais`)
- [x] Propostas comerciais (`->propostasComerciais`)
- [x] Situações (`->situacoes`)
- [x] Situações - Módulos (`->situacoesModulos`)
- [x] Situações - Transições (`->situacoesTransicoes`)
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "alebatistella/bling-erp-api",
"description": "Pacote de integração com a API do Bling ERP",
"type": "library",
"version": "1.15.0",
"version": "1.16.0",
"license": "MIT",
"autoload": {
"psr-4": {
Expand Down
6 changes: 6 additions & 0 deletions src/Bling.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use AleBatistella\BlingErpApi\Entities\Empresas\Empresas;
use AleBatistella\BlingErpApi\Entities\Estoques\Estoques;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\FormasDePagamentos;
use AleBatistella\BlingErpApi\Entities\GruposDeProdutos\GruposDeProdutos;
use AleBatistella\BlingErpApi\Entities\Homologacao\Homologacao;
use AleBatistella\BlingErpApi\Entities\Logisticas\Logisticas;
use AleBatistella\BlingErpApi\Entities\LogisticasEtiquetas\LogisticasEtiquetas;
Expand All @@ -37,6 +38,7 @@
use AleBatistella\BlingErpApi\Entities\ProdutosFornecedores\ProdutosFornecedores;
use AleBatistella\BlingErpApi\Entities\ProdutosLojas\ProdutosLojas;
use AleBatistella\BlingErpApi\Entities\ProdutosVariacoes\ProdutosVariacoes;
use AleBatistella\BlingErpApi\Entities\PropostasComerciais\PropostasComerciais;
use AleBatistella\BlingErpApi\Entities\Shared\BaseEntity;
use AleBatistella\BlingErpApi\Entities\Situacoes\Situacoes;
use AleBatistella\BlingErpApi\Entities\SituacoesModulos\SituacoesModulos;
Expand Down Expand Up @@ -66,6 +68,7 @@
* @property Empresas $empresas
* @property Estoques $estoques
* @property FormasDePagamentos $formasDePagamentos
* @property GruposDeProdutos $gruposDeProdutos
* @property Homologacao $homologacao
* @property Logisticas $logisticas
* @property LogisticasEtiquetas $logisticasEtiquetas
Expand All @@ -85,6 +88,7 @@
* @property ProdutosFornecedores $produtosFornecedores
* @property ProdutosLojas $produtosLojas
* @property ProdutosVariacoes $produtosVariacoes
* @property PropostasComerciais $propostasComerciais
* @property Situacoes $situacoes
* @property SituacoesModulos $situacoesModulos
* @property SituacoesTransicoes $situacoesTransicoes
Expand Down Expand Up @@ -148,6 +152,7 @@ public function __get(string $name)
'empresas' => $this->getModule(Empresas::class),
'estoques' => $this->getModule(Estoques::class),
'formasDePagamentos' => $this->getModule(FormasDePagamentos::class),
'gruposDeProdutos' => $this->getModule(GruposDeProdutos::class),
'homologacao' => $this->getModule(Homologacao::class),
'logisticas' => $this->getModule(Logisticas::class),
'logisticasEtiquetas' => $this->getModule(LogisticasEtiquetas::class),
Expand All @@ -167,6 +172,7 @@ public function __get(string $name)
'produtosFornecedores' => $this->getModule(ProdutosFornecedores::class),
'produtosLojas' => $this->getModule(ProdutosLojas::class),
'produtosVariacoes' => $this->getModule(ProdutosVariacoes::class),
'propostasComerciais' => $this->getModule(PropostasComerciais::class),
'situacoes' => $this->getModule(Situacoes::class),
'situacoesModulos' => $this->getModule(SituacoesModulos::class),
'situacoesTransicoes' => $this->getModule(SituacoesTransicoes::class),
Expand Down
30 changes: 30 additions & 0 deletions src/BlingTest.spec.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use AleBatistella\BlingErpApi\Entities\Empresas\Empresas;
use AleBatistella\BlingErpApi\Entities\Estoques\Estoques;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\FormasDePagamentos;
use AleBatistella\BlingErpApi\Entities\GruposDeProdutos\GruposDeProdutos;
use AleBatistella\BlingErpApi\Entities\Homologacao\Homologacao;
use AleBatistella\BlingErpApi\Entities\Logisticas\Logisticas;
use AleBatistella\BlingErpApi\Entities\LogisticasEtiquetas\LogisticasEtiquetas;
Expand All @@ -38,6 +39,7 @@
use AleBatistella\BlingErpApi\Entities\ProdutosFornecedores\ProdutosFornecedores;
use AleBatistella\BlingErpApi\Entities\ProdutosLojas\ProdutosLojas;
use AleBatistella\BlingErpApi\Entities\ProdutosVariacoes\ProdutosVariacoes;
use AleBatistella\BlingErpApi\Entities\PropostasComerciais\PropostasComerciais;
use AleBatistella\BlingErpApi\Entities\Situacoes\Situacoes;
use AleBatistella\BlingErpApi\Entities\SituacoesModulos\SituacoesModulos;
use AleBatistella\BlingErpApi\Entities\SituacoesTransicoes\SituacoesTransicoes;
Expand Down Expand Up @@ -313,6 +315,20 @@ public function testShouldGetFormasDePagamentosCorrectly(): void
$this->assertInstanceOf($expected, $actual);
}

/**
* Testa obter a entidade Grupos de Produtos.
*
* @return void
*/
public function testShouldGetGruposDeProdutosCorrectly(): void
{
$expected = GruposDeProdutos::class;

$actual = $this->getInstance()->gruposDeProdutos;

$this->assertInstanceOf($expected, $actual);
}

/**
* Testa obter a entidade Homologação.
*
Expand Down Expand Up @@ -579,6 +595,20 @@ public function testShouldGetProdutosVariacoesCorrectly(): void
$this->assertInstanceOf($expected, $actual);
}

/**
* Testa obter a entidade Propostas Comerciais.
*
* @return void
*/
public function testShouldGetPropostasComerciaisCorrectly(): void
{
$expected = PropostasComerciais::class;

$actual = $this->getInstance()->propostasComerciais;

$this->assertInstanceOf($expected, $actual);
}

/**
* Testa obter a entidade Situações.
*
Expand Down
18 changes: 18 additions & 0 deletions src/Entities/@shared/DTO/Schema/OptionalId.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace AleBatistella\BlingErpApi\Entities\Shared\DTO\Schema;

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;

/**
* Objeto com ID opcional.
*/
final readonly class OptionalId extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param ?int $id
*/
public function __construct(public ?int $id) {}
}
4 changes: 2 additions & 2 deletions src/Entities/ContasReceber/ContasReceber.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public function getBankSlips(int $idOrigem, GetBankSlipsParams|array|null $param

$response = $this->repository->index(
new RequestOptions(
endpoint: "contas/receber/view/bankslips",
endpoint: "contas/receber/boletos",
queryParams: $actualParams
)
);
Expand Down Expand Up @@ -179,7 +179,7 @@ public function cancelBankSlips(array $body): null
{
$response = $this->repository->store(
new RequestOptions(
endpoint: "contas/receber/cancel/bankslips",
endpoint: "contas/receber/boletos/cancelar",
body: $body
)
);
Expand Down
17 changes: 8 additions & 9 deletions src/Entities/ContasReceber/Enum/BankSlipSituacao.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@
/**
* Enumerador de situação de boletos de contas a receber.
*/
enum BankSlipSituacao: string
enum BankSlipSituacao: int
{
case EM_ABERTO = 'aberto';
case CONFIRMADO = 'confirmado';
case PARCIALMENTE_RECEBIDO = 'pacial';
case DEVOLVIDO = 'devolvido';
case PARCIALMENTE_DEVOLVIDO = 'devolvidoP';
case RECEBIDO = 'pago';
case CANCELADO = 'cancelada';
}
case EM_ABERTO = 1;
case RECEBIDO = 2;
case PARCIALMENTE_RECEBIDO = 3;
case DEVOLVIDO = 4;
case PARCIALMENTE_DEVOLVIDO = 5;
case CANCELADO = 6;
}
3 changes: 2 additions & 1 deletion src/Entities/ContasReceber/Enum/TipoFiltroData.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ enum TipoFiltroData: string
{
case DATA_DE_EMISSAO = 'E';
case DATA_DE_VENCIMENTO = 'V';
}
case DATA_DE_RECEBIMENTO = 'R';
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Request\ResponseOptions;

/**
* Resposta do cancelamento de boletos - Bling Conta com situação aberto,
* podendo cancelar um ou todos boletos vinculado ao uma Venda/Nota Fiscal,
* quando nenhum boleto tiver emitido não se faz uso do 2FA.
* Resposta do cancelamento de um ou todos os boletos em aberto vinculados a uma venda ou nota fiscal.
*/
readonly final class CancelBankSlipsResponse extends BaseResponseRootObject
{
Expand Down
4 changes: 3 additions & 1 deletion src/Entities/ContasReceber/Schema/Get/GetParams.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* @param \DateTimeInterface|string|null $dataFinal
* @param ?int[] $idsCategorias
* @param ?int $idPortador
* @param ?int $idContato
* @param ?int $idVendedor
* @param ?int $idFormaPagamento
* @param ?int $boletoGerado
Expand All @@ -40,12 +41,13 @@ public function __construct(
\DateTimeInterface|string|null $dataFinal = null,
public ?array $idsCategorias = null,
public ?int $idPortador = null,
public ?int $idContato = null,
public ?int $idVendedor = null,
public ?int $idFormaPagamento = null,
public ?int $boletoGerado = null
) {
$this->situacoes = array_map(
fn (Situacao|int|null $situacao) => $situacao instanceof Situacao ? $situacao->value : $situacao,
fn(Situacao|int|null $situacao) => $situacao instanceof Situacao ? $situacao->value : $situacao,
$situacoes
);
$this->tipoFiltroData = $tipoFiltroData instanceof TipoFiltroData ? $tipoFiltroData->value : $tipoFiltroData;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,25 @@
use AleBatistella\BlingErpApi\Entities\ContasReceber\Enum\BankSlipSituacao;

/**
* Parâmetros da busca de boletos - Bling conta vinculados a um idOrigem.
* Parâmetros da busca de boletos vinculados a um idOrigem, o qual corresponde ao ID de uma venda ou nota fiscal.
*/
readonly final class GetBankSlipsParams extends QueryParams
{
/** @property string[]|null $situations */
/** @property int[]|null $situations */
public ?array $situations;

/**
* Constrói o objeto.
*
* @param BankSlipSituacao[]|string[]|null $situations
* @param BankSlipSituacao[]|int[]|null $situations
*/
public function __construct(
?array $situations = null,
) {
$this->situations = array_map(
fn(BankSlipSituacao|int|null $situacao) => $situacao instanceof BankSlipSituacao
? $situacao->value
: $situacao,
? $situacao->value
: $situacao,
$situations
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,32 @@
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Request\ResponseOptions;

/**
* Resposta da listagem de boletos - Bling conta vinculados a um idOrigem.
* Resposta da listagem de boletos vinculados a um idOrigem, o qual corresponde ao ID de uma venda ou nota fiscal.
*/
readonly final class GetBankSlipsResponse extends BaseResponseRootObject
{
/**
* Constrói o objeto.
*
* @param ?string $numberSale
* @param ?string $numberNF
* @param ?int $amountAccounts
* @param ?float $amountValuesAccounts
* @param ?bool $haveAccountWithIntegration
* @param ?GetBankSlipsAccountsResponse $accounts
* @param ?GetBankSlipsResponseVenda $venda
* @param ?GetBankSlipsResponseNotaFiscal $notaFiscal
* @param ?float $valorTotal
* @param ?GetBankSlipsResponseContas[] $contas
*/
public function __construct(
public ?string $numberSale,
public ?string $numberNF,
public ?int $amountAccounts,
public ?float $amountValuesAccounts,
public ?bool $haveAccountWithIntegration,
public ?array $accounts
) {
}
public ?GetBankSlipsResponseVenda $venda,
public ?GetBankSlipsResponseNotaFiscal $notaFiscal,
public ?float $valorTotal,
public ?array $contas
) {}

/**
* @inheritDoc
*/
protected static function fromRules(): array
{
return [
'accounts' => GetBankSlipsAccountsResponse::class,
'contas' => GetBankSlipsResponseContas::class,
];
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

namespace AleBatistella\BlingErpApi\Entities\ContasReceber\Schema\GetBankSlips;

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Entities\ContasReceber\Enum\BankSlipSituacao;

readonly final class GetBankSlipsResponseContas extends BaseResponseObject
{

/**
* Constrói o objeto.
*
* @param ?int $id
* @param ?string $numeroExterno
* @param ?string $vencimento
* @param ?float $valor
* @param ?BankSlipSituacao $situacao
*/
public function __construct(
public ?int $id,
public ?string $numeroExterno,
public ?string $vencimento,
public ?float $valor,
public ?BankSlipSituacao $situacao,
) {}
}
Loading

0 comments on commit 2d8fce7

Please sign in to comment.