Skip to content

Commit

Permalink
feat: atualizar para v301
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandreBellas committed Sep 4, 2024
1 parent a457aae commit fa74803
Show file tree
Hide file tree
Showing 14 changed files with 194 additions and 22 deletions.
7 changes: 5 additions & 2 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 `v300` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-03-13)).
Atualizado com a versão `v301` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-05-22)).

## 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

Todas as entidades do Bling atualmente são permitidas para interação. São elas:
Quase 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,6 +54,7 @@ Todas as entidades do Bling atualmente são permitidas para interação. São el
- [x] Empresas (`->empresas`)
- [x] Estoques (`->estoques`)
- [x] Formas de pagamento (`->formasDePagamento`)
- [ ] Grupos de produtos (`->gruposDeProdutos`)
- [x] Homologação (`->homologacao`)
- [x] Logísticas (`->logisticas`)
- [x] Logísticas - Etiquetas (`->logisticasEtiquetas`)
Expand All @@ -65,13 +66,15 @@ Todas as entidades do Bling atualmente são permitidas para interação. São el
- [x] Notas Fiscais de Serviço Eletrônicas (`->nfses`)
- [x] Notas Fiscais Eletrônicas (`->nfes`)
- [x] Notificações (`->notificacoes`)
- [ ] Ordens de produção (`->ordensDeProducao`)
- [x] Pedidos - Compras (`->pedidosCompras`)
- [x] Pedidos - Vendas (`->pedidosVendas`)
- [x] Produtos (`->produtos`)
- [x] Produtos - Estruturas (`->produtosEstruturas`)
- [x] Produtos - Fornecedores (`->produtosFornecedores`)
- [x] Produtos - Lojas (`->produtosLojas`)
- [x] Produtos - Variações (`->produtosVariacoes`)
- [ ] Propostas comerciais (`->propostasComerciais`)
- [x] Situações (`->situacoes`)
- [x] Situações - Módulos (`->situacoesModulos`)
- [x] Situações - Transições (`->situacoesTransicoes`)
Expand Down
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"psr-4": {
"AleBatistella\\BlingErpApi\\": "./src/",
"AleBatistella\\BlingErpApi\\Entities\\Shared\\": "./src/Entities/@shared/",
"AleBatistella\\BlingErpApi\\Entities\\ContasPagar\\Schema\\Shared\\": "./src/Entities/ContasPagar/Schema/@shared/",
"AleBatistella\\BlingErpApi\\Entities\\ContasReceber\\Schema\\Shared\\": "./src/Entities/ContasReceber/Schema/@shared/"
},
"files": [
Expand Down
17 changes: 11 additions & 6 deletions src/Entities/@shared/DTO/Request/QueryParams.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,20 @@
*
* @param array<string, string|string[]|int|int[]|\DateTimeInterface> $content
*/
public function __construct(public array $content)
{
}
public function __construct(public array $content) {}

/**
* Prepara um parâmetro de data para chamada do repositório.
*
* @param \DateTimeInterface|string|null $param Parâmetro do tipo `string`, `\DateTimeInterface` ou `null`
* @param bool $shouldIncludeTime Define se a `string` de retorno deve incluir horas caso `$param` seja do tipo `\DateTimeInterface`
*
* @return string|null
*/
protected function prepareStringOrDateParam(\DateTimeInterface|string|null $param): string|null
{
protected function prepareStringOrDateParam(
\DateTimeInterface|string|null $param,
bool $shouldIncludeTime = false
): string|null {
if (is_null($param)) {
return null;
}
Expand All @@ -33,6 +34,10 @@ protected function prepareStringOrDateParam(\DateTimeInterface|string|null $para
return $param;
}

return convertDateToString($param);
if (!$shouldIncludeTime) {
return convertDateToString($param);
}

return convertDateTimeToString($param);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Exceptions\BlingParseResponsePayloadException;

readonly class ContasPagarOcorrenciaDTO extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param int $tipo
* @param ?bool $considerarDiasUteis
* @param int $diaVencimento
* @param ?string $dataLimite
*/
public function __construct(
public int $tipo,
public ?bool $considerarDiasUteis,
public int $diaVencimento,
public ?string $dataLimite
) {}

/**
* @inheritDoc
*/
public static function from(array $attributes): static
{
$allowedTypes = [3, 4, 5, 6, 7, 8];
if (!array_key_exists('tipo', $attributes) || !in_array($attributes['tipo'], $allowedTypes)) {
throw new BlingParseResponsePayloadException($attributes);
}

return parent::from($attributes);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Exceptions\BlingParseResponsePayloadException;

readonly class ContasPagarOcorrenciaParceladaDTO extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param int $tipo
* @param ?bool $considerarDiasUteis
* @param int $diaVencimento
* @param ?int $numeroParcelas
*/
public function __construct(
public int $tipo,
public ?bool $considerarDiasUteis,
public int $diaVencimento,
public ?int $numeroParcelas
) {}

/**
* @inheritDoc
*/
public static function from(array $attributes): static
{
if (!array_key_exists('tipo', $attributes) || $attributes['tipo'] !== 2) {
throw new BlingParseResponsePayloadException($attributes);
}

return parent::from($attributes);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Exceptions\BlingParseResponsePayloadException;

readonly class ContasPagarOcorrenciaSemanalDTO extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param int $tipo
* @param ?bool $considerarDiasUteis
* @param int $diaSemanaVencimento
* @param ?string $dataLimite
*/
public function __construct(
public int $tipo,
public ?bool $considerarDiasUteis,
public int $diaSemanaVencimento,
public ?string $dataLimite
) {}

/**
* @inheritDoc
*/
public static function from(array $attributes): static
{
if (!array_key_exists('tipo', $attributes) || $attributes['tipo'] !== 9) {
throw new BlingParseResponsePayloadException($attributes);
}

return parent::from($attributes);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Exceptions\BlingParseResponsePayloadException;

readonly class ContasPagarOcorrenciaUnicaDTO extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param int $tipo
*/
public function __construct(
public int $tipo
) {}

/**
* @inheritDoc
*/
public static function from(array $attributes): static
{
if (!array_key_exists('tipo', $attributes) || $attributes['tipo'] !== 1) {
throw new BlingParseResponsePayloadException($attributes);
}

return parent::from($attributes);
}
}
11 changes: 8 additions & 3 deletions src/Entities/ContasPagar/Schema/Find/FindResponseData.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
use AleBatistella\BlingErpApi\Entities\ContasPagar\Enum\Situacao;
use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Schema\Id;
use AleBatistella\BlingErpApi\Entities\ContasPagar\Schema\Shared\ContasPagarOcorrenciaUnicaDTO as Unica;
use AleBatistella\BlingErpApi\Entities\ContasPagar\Schema\Shared\ContasPagarOcorrenciaParceladaDTO as Parcelada;
use AleBatistella\BlingErpApi\Entities\ContasPagar\Schema\Shared\ContasPagarOcorrenciaDTO as Normal;
use AleBatistella\BlingErpApi\Entities\ContasPagar\Schema\Shared\ContasPagarOcorrenciaSemanalDTO as Semanal;

readonly final class FindResponseData extends BaseResponseObject
{
Expand All @@ -27,6 +31,7 @@
* @param ?Id $portador
* @param ?Id $categoria
* @param int[] $borderos
* @param Unica|Parcelada|Normal|Semanal|null $ocorrencia
*/
public function __construct(
public ?int $id,
Expand All @@ -44,7 +49,7 @@ public function __construct(
public string $numeroBanco,
public ?Id $portador,
public ?Id $categoria,
public array $borderos
) {
}
public array $borderos,
public Unica|Parcelada|Normal|Semanal|null $ocorrencia,
) {}
}
5 changes: 4 additions & 1 deletion src/Entities/ContasPagar/__tests__/find/response.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
},
"borderos": [
0
]
],
"ocorrencia": {
"tipo": 1
}
}
}
5 changes: 2 additions & 3 deletions src/Entities/ContasReceber/Schema/Find/FindResponseData.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* @param ?FindResponseDataFormaPagamento $formaPagamento
* @param ?FindResponseDataContaContabil $contaContabil
* @param ?FindResponseDataOrigem $origem
* @param ?float $saldo
* @param float $saldo
* @param string $vencimentoOriginal
* @param ?string $numeroDocumento
* @param ?string $competencia
Expand Down Expand Up @@ -62,6 +62,5 @@ public function __construct(
public ?Id $vendedor,
public array $borderos,
public Unica|Parcelada|Normal|Semanal|null $ocorrencia,
) {
}
) {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace AleBatistella\BlingErpApi\Entities\FormasDePagamentos\Schema\Get;

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\Enum\Finalidade;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\Enum\Situacao;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\Enum\TipoPagamento;
use AleBatistella\BlingErpApi\Entities\FormasDePagamentos\Enum\Padrao;
Expand All @@ -18,6 +19,7 @@
* @param ?Situacao $situacao
* @param ?bool $fixa
* @param ?Padrao $padrao
* @param Finalidade $finalidade
*/
public function __construct(
public ?int $id,
Expand All @@ -26,6 +28,6 @@ public function __construct(
public ?Situacao $situacao,
public ?bool $fixa,
public ?Padrao $padrao,
) {
}
public Finalidade $finalidade
) {}
}
3 changes: 2 additions & 1 deletion src/Entities/FormasDePagamentos/__tests__/get/response.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"tipoPagamento": 1,
"situacao": 1,
"fixa": false,
"padrao": 0
"padrao": 0,
"finalidade": 1
}
]
}
8 changes: 4 additions & 4 deletions src/Entities/Produtos/Schema/Get/GetParams.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ public function __construct(
$this->criterio = $criterio instanceof Criterio ? $criterio->value : $criterio;
$this->tipo = $tipo instanceof TipoListagem ? $tipo->value : $tipo;

$this->dataInclusaoInicial = $this->prepareStringOrDateParam($dataInclusaoInicial);
$this->dataInclusaoFinal = $this->prepareStringOrDateParam($dataInclusaoFinal);
$this->dataAlteracaoInicial = $this->prepareStringOrDateParam($dataAlteracaoInicial);
$this->dataAlteracaoFinal = $this->prepareStringOrDateParam($dataAlteracaoFinal);
$this->dataInclusaoInicial = $this->prepareStringOrDateParam($dataInclusaoInicial, shouldIncludeTime: true);
$this->dataInclusaoFinal = $this->prepareStringOrDateParam($dataInclusaoFinal, shouldIncludeTime: true);
$this->dataAlteracaoInicial = $this->prepareStringOrDateParam($dataAlteracaoInicial, shouldIncludeTime: true);
$this->dataAlteracaoFinal = $this->prepareStringOrDateParam($dataAlteracaoFinal, shouldIncludeTime: true);

parent::__construct(objectToArray($this));
}
Expand Down
14 changes: 14 additions & 0 deletions src/Helpers/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,20 @@ function convertDateToString(\DateTimeInterface $date): string
}
}

if (!function_exists('convertDateTimeToString')) {
/**
* Converte uma data para o formato YYYY-MM-DD HH:MM:SS.
*
* @param \DateTimeInterface $date
*
* @return string
*/
function convertDateTimeToString(\DateTimeInterface $date): string
{
return $date->format('Y-m-d H:i:s');
}
}

if (!function_exists('fake')) {
/**
* Cria objeto para dados _fake_.
Expand Down

0 comments on commit fa74803

Please sign in to comment.