Skip to content

Commit

Permalink
feat: atualizar para v307
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandreBellas committed Sep 8, 2024
1 parent a27a935 commit db87d5f
Show file tree
Hide file tree
Showing 31 changed files with 203 additions and 187 deletions.
2 changes: 1 addition & 1 deletion 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 `v306` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-08-16)).
Atualizado com a versão `v307` da API ([veja o registro de alterações](https://developer.bling.com.br/changelogs#2024-08-21)).

## Instalação

Expand Down
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;
}
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

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,
) {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;

readonly final class GetBankSlipsResponseNotaFiscal extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param string $numero
*/
public function __construct(
public string $numero,
) {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

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

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseObject;

readonly final class GetBankSlipsResponseVenda extends BaseResponseObject
{
/**
* Constrói o objeto.
*
* @param string $numero
*/
public function __construct(
public string $numero,
) {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function testShouldGetSuccessfully(): void
$this->callback(
fn(RequestOptions $requestOptions) =>
$requestOptions->endpoint === "contas/receber"
&& is_null($requestOptions->queryParams)
&& is_null($requestOptions->queryParams)
)
)
->willReturn($this->buildResponse(status: 200, body: $this->buildBody($getResponse)));
Expand Down Expand Up @@ -129,7 +129,7 @@ public function testShouldGetBankSlipsSuccessfully(): void
->with(
$this->callback(
fn(RequestOptions $requestOptions) =>
$requestOptions->endpoint === "contas/receber/view/bankslips"
$requestOptions->endpoint === "contas/receber/boletos"
)
)
->willReturn($this->buildResponse(status: 200, body: $this->buildBody($getBankSlipsResponse)));
Expand Down Expand Up @@ -211,7 +211,7 @@ public function testShouldCancelBankSlipsSuccessfully(): void
->with(
$this->callback(
fn(RequestOptions $requestOptions) =>
$requestOptions->endpoint === "contas/receber/cancel/bankslips"
$requestOptions->endpoint === "contas/receber/boletos/cancelar"
)
)
->willReturn($this->buildResponse(status: 200, body: $this->buildBody($cancelBankSlipsResponse)));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
{
"type2FA": 1,
"code2FA": "111111",
"idOrigem": 16853468718,
"idDuplicata": 16853468712,
"reason": "motivo"
"autenticacao": {
"tipo": 1,
"codigo": "111111"
},
"origem": {
"id": 5436875653
},
"conta": {
"id": 6423836115
},
"motivo": "Cancelado por força maior"
}
34 changes: 17 additions & 17 deletions src/Entities/ContasReceber/__tests__/get-bank-slips/response.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"numberSale": "149",
"numberNF": "000001",
"amountAccounts": 1,
"amountValuesAccounts": 111.2,
"haveAccountWithIntegration": true,
"accounts": [
{
"id": 1328793273,
"idExternal": "BWbXB",
"dueDate": "2023-09-12",
"value": 111.2,
"situation": "aberto",
"iconSituation": "aberto",
"descriptionSituation": "Em aberto"
}
]
}
"venda": {
"numero": "123"
},
"notaFiscal": {
"numero": "000001"
},
"valorTotal": 111.2,
"contas": [
{
"id": 1328793273,
"numeroExterno": "BWbXB",
"vencimento": "2023-09-12",
"valor": 111.2,
"situacao": 1
}
]
}
14 changes: 7 additions & 7 deletions src/Entities/NaturezasDeOperacoes/NaturezasDeOperacoes.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\Get\GetParams;
use AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\Get\GetResponse;
use AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\CalculateItemTax\CalculateItemTaxResponse;
use AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\ObtainTax\ObtainTaxResponse;
use AleBatistella\BlingErpApi\Entities\Shared\BaseEntity;
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Request\RequestOptions;
use AleBatistella\BlingErpApi\Exceptions\BlingApiException;
Expand Down Expand Up @@ -40,25 +40,25 @@ public function get(GetParams|array|null $params = null): GetResponse
}

/**
* Calcula os impostos de um item.
* Obtém regras de tributação que incidem sobre o item, dada uma natureza de operação..
*
* @param int $idNaturezaOperacao ID da natureza de operação
* @param array $body Corpo da requisição
*
* @return CalculateItemTaxResponse
* @return ObtainTaxResponse
* @throws BlingApiException|BlingInternalException
*
* @see https://developer.bling.com.br/referencia#/Naturezas%20de%20Opera%C3%A7%C3%B5es/post_naturezas_operacoes__idNaturezaOperacao__calcular_imposto_item
* @see https://developer.bling.com.br/referencia#/Naturezas%20de%20Opera%C3%A7%C3%B5es/post_naturezas_operacoes__idNaturezaOperacao__obter_tributacao
*/
public function calculateItemTax(int $idNaturezaOperacao, array $body): CalculateItemTaxResponse
public function obtainTax(int $idNaturezaOperacao, array $body): ObtainTaxResponse
{
$response = $this->repository->store(
new RequestOptions(
endpoint: "naturezas-operacoes/$idNaturezaOperacao/calcular-imposto-item",
endpoint: "naturezas-operacoes/$idNaturezaOperacao/obter-tributacao",
body: $body
)
);

return CalculateItemTaxResponse::fromResponse($response);
return ObtainTaxResponse::fromResponse($response);
}
}
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
<?php

namespace AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\CalculateItemTax;
namespace AleBatistella\BlingErpApi\Entities\NaturezasDeOperacoes\Schema\ObtainTax;

use AleBatistella\BlingErpApi\Entities\Shared\BaseResponseRootObject;
use AleBatistella\BlingErpApi\Entities\Shared\DTO\Request\ResponseOptions;

/**
* Resposta do cálculo dos dados fiscais de um item pelo ID da natureza de operação.
*/
readonly final class CalculateItemTaxResponse extends BaseResponseRootObject
readonly final class ObtainTaxResponse extends BaseResponseRootObject
{
/**
* Constrói o objeto.
*
* @param CalculateItemTaxResponseData $data
* @param ObtainTaxResponseData $data
*/
public function __construct(
public CalculateItemTaxResponseData $data
) {
}
public ObtainTaxResponseData $data
) {}

/**
* @inheritDoc
Expand Down
Loading

0 comments on commit db87d5f

Please sign in to comment.