Skip to content

Commit

Permalink
Adicionando suporte a NaturezaTributacao e deixando cpfCnpj null, 11,…
Browse files Browse the repository at this point in the history
… ou 14.
  • Loading branch information
Thiago Ribeiro committed Jun 17, 2020
1 parent 977afb0 commit 6b3f131
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 13 deletions.
20 changes: 10 additions & 10 deletions src/Nfse.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class Nfse extends BuilderAbstract implements IDfe
private $servico;
private $substituicao;
private $tomador;
private $naturezaTributacao;

public function setCidadePrestacao(CidadePrestacao $cidadePrestacao)
{
Expand Down Expand Up @@ -75,6 +76,15 @@ public function getIdIntegracao()
return $this->idIntegracao;
}

public function setNaturezaTributacao($naturezaTributacao)
{
$this->naturezaTributacao = $naturezaTributacao;
}

public function getNaturezaTributacao()
{
return $this->naturezaTributacao;
}
public function setImpressao(Impressao $impressao)
{
$this->impressao = $impressao;
Expand Down Expand Up @@ -144,15 +154,6 @@ public function validate()
if(
!v::allOf(
v::keyNested('prestador.cpfCnpj'),
v::keyNested('prestador.inscricaoMunicipal'),
v::keyNested('prestador.razaoSocial'),
v::keyNested('prestador.simplesNacional'),
v::keyNested('prestador.endereco.logradouro'),
v::keyNested('prestador.endereco.numero'),
v::keyNested('prestador.endereco.codigoCidade'),
v::keyNested('prestador.endereco.cep'),
v::keyNested('tomador.cpfCnpj'),
v::keyNested('tomador.razaoSocial'),
v::keyNested('servico.codigo'),
v::keyNested('servico.discriminacao'),
v::keyNested('servico.cnae'),
Expand All @@ -161,7 +162,6 @@ public function validate()
)->validate($data) ||
!v::allOf(
v::keyNested('prestador.cpfCnpj'),
v::keyNested('tomador.cpfCnpj'),
v::keyNested('servico.id')
)->validate($data)
) {
Expand Down
7 changes: 5 additions & 2 deletions src/Nfse/Tomador.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,12 @@ public function setCpfCnpj($cpfCnpj)
{
$cleanCpfCnpj = preg_replace('/[^0-9]/', '', $cpfCnpj);

if (!(strlen($cleanCpfCnpj) === 11 || strlen($cleanCpfCnpj) === 14)) {
if (
!is_null($cpfCnpj) &&
!((strlen($cleanCpfCnpj) === 11 || strlen($cleanCpfCnpj) === 14))
) {
throw new ValidationError(
'Campo cpfCnpj deve ter 11 ou 14 números.'
'Quando preenchido, o campo cpfCnpj deve possuir 11 ou 14 números.'
);
}

Expand Down
12 changes: 11 additions & 1 deletion tests/Nfse/TomadorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,23 @@

class TomadorTest extends TestCase
{
/**
* @covers TecnoSpeed\Plugnotas\Nfse\Tomador::setCpfCnpj
*/
public function testWithNullcpfCnpj()
{
$tomador = new Tomador();
$tomador->setCpfCnpj(null);
$this->assertSame($tomador->getCpfCnpj(), '');
}

/**
* @covers TecnoSpeed\Plugnotas\Nfse\Tomador::setCpfCnpj
*/
public function testWithInvalidLengthCpfCnpj()
{
$this->expectException(ValidationError::class);
$this->expectExceptionMessage('Campo cpfCnpj deve ter 11 ou 14 números.');
$this->expectExceptionMessage('Quando preenchido, o campo cpfCnpj deve possuir 11 ou 14 números.');
$tomador = new Tomador();
$tomador->setCpfCnpj('12345678901234567890');
}
Expand Down

0 comments on commit 6b3f131

Please sign in to comment.