diff --git a/src/Nfse.php b/src/Nfse.php index 19ffeea..aa24492 100644 --- a/src/Nfse.php +++ b/src/Nfse.php @@ -31,6 +31,7 @@ class Nfse extends BuilderAbstract implements IDfe private $servico; private $substituicao; private $tomador; + private $naturezaTributacao; public function setCidadePrestacao(CidadePrestacao $cidadePrestacao) { @@ -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; @@ -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'), @@ -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) ) { diff --git a/src/Nfse/Tomador.php b/src/Nfse/Tomador.php index 58e1dc2..1d1c267 100644 --- a/src/Nfse/Tomador.php +++ b/src/Nfse/Tomador.php @@ -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.' ); } diff --git a/tests/Nfse/TomadorTest.php b/tests/Nfse/TomadorTest.php index 78c7ee3..e8c26a9 100644 --- a/tests/Nfse/TomadorTest.php +++ b/tests/Nfse/TomadorTest.php @@ -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'); }