From b49e93dfc02cfba5085457f41c3d13f50510889b Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Thu, 30 May 2024 14:31:30 -0300 Subject: [PATCH 1/6] Adicionando teste tag infRespTec --- tests/MakeTest.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/MakeTest.php b/tests/MakeTest.php index 4df8905d..0a38572d 100755 --- a/tests/MakeTest.php +++ b/tests/MakeTest.php @@ -1062,6 +1062,20 @@ public function test_tagISSQN(): void $this->validarCriacaoTag2($std, $element, 'ISSQN'); } + public function test_taginfRespTec(): void + { + $std = new \stdClass(); + $std->CNPJ = '76038276000120'; + $std->xContato = 'Fulano de Tal'; + $std->email = 'fulano@email.com'; + $std->fone = '51999999999'; + $std->CSRT = '456'; + $std->idCSRT = '123'; + + $element = $this->make->taginfRespTec($std); + $this->validarCriacaoTag2($std, $element, 'infRespTec', ['CSRT']); + } + private function validarCriacaoTag2( \stdClass $std, \DOMElement $element, From c5820130b634f9952f732ef1bd63b151b45cc472 Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Fri, 31 May 2024 12:06:42 -0300 Subject: [PATCH 2/6] Adicionando teste evento --- tests/Common/ToolsFake.php | 2 + tests/NFeTestCase.php | 10 ++-- tests/ToolsTest.php | 46 +++++++------------ tests/fixtures/xml/exemplo_xml_dist_dfe.xml | 2 +- tests/fixtures/xml/exemplo_xml_inutiliza.xml | 10 ++-- .../xml/exemplo_xml_request_cce_cnpj.xml | 42 +++++++++++++++++ 6 files changed, 72 insertions(+), 40 deletions(-) create mode 100644 tests/fixtures/xml/exemplo_xml_request_cce_cnpj.xml diff --git a/tests/Common/ToolsFake.php b/tests/Common/ToolsFake.php index e8ea408e..e6950c6b 100644 --- a/tests/Common/ToolsFake.php +++ b/tests/Common/ToolsFake.php @@ -16,6 +16,8 @@ public function __construct($configJson, Certificate $certificate, Contingency $ { parent::__construct($configJson, $certificate, $contingency); $this->soap = new SoapFake(); + //@todo Gerar um certificado de testes usando CNPJ + $this->typePerson = 'J'; } public function getSoap(): SoapFake diff --git a/tests/NFeTestCase.php b/tests/NFeTestCase.php index 8e4f9942..3b6af09f 100755 --- a/tests/NFeTestCase.php +++ b/tests/NFeTestCase.php @@ -6,10 +6,10 @@ class NFeTestCase extends TestCase { - public $fixturesPath = ''; - public $configJson = ''; - public $contentpfx = ''; - public $passwordpfx = ''; + public string $fixturesPath = ''; + public string $configJson = ''; + public string $contentpfx = ''; + public string $passwordpfx = ''; public function __construct($name = null, array $data = array(), $dataName = '') { @@ -20,7 +20,7 @@ public function __construct($name = null, array $data = array(), $dataName = '') "tpAmb" => 2, "razaosocial" => "SUA RAZAO SOCIAL LTDA", "siglaUF" => "SP", - "cnpj" => "99999999999999", + "cnpj" => "93623057000128", "schemes" => "PL_009_V4", "versao" => "4.00", "tokenIBPT" => "AAAAAAA", diff --git a/tests/ToolsTest.php b/tests/ToolsTest.php index 73738568..73a13f0e 100755 --- a/tests/ToolsTest.php +++ b/tests/ToolsTest.php @@ -14,10 +14,7 @@ class ToolsTest extends NFeTestCase { use URIConsultaNfce; - /** - * @var \NFePHP\NFe\Tests\Common\ToolsFake - */ - protected $tools; + protected ToolsFake $tools; protected function setUp(): void { @@ -178,10 +175,7 @@ public function test_sefaz_envia_lote_xml_valido_modelo_55_compactado() $this->assertEquals($request, $tools->getRequest()); } - /** - * @return void - */ - public function test_sefaz_inutiliza() + public function test_sefaz_inutiliza(): void { $this->tools->sefazInutiliza(1, 1, 10, 'Testando Inutilização', 1, '22'); $request = $this->tools->getRequest(); @@ -189,10 +183,7 @@ public function test_sefaz_inutiliza() $this->assertSame($esperado, $request); } - /** - * @return void - */ - public function test_sefaz_cadastro_cnpj() + public function test_sefaz_cadastro_cnpj(): void { $this->tools->sefazCadastro('RS', '20532295000154'); $request = $this->tools->getRequest(); @@ -200,10 +191,7 @@ public function test_sefaz_cadastro_cnpj() $this->assertSame($esperado, $request); } - /** - * @return void - */ - public function test_sefaz_cadastro_ie() + public function test_sefaz_cadastro_ie(): void { $this->tools->sefazCadastro('RS', '', '1234567'); $request = $this->tools->getRequest(); @@ -211,10 +199,7 @@ public function test_sefaz_cadastro_ie() $this->assertSame($esperado, $request); } - /** - * @return void - */ - public function test_sefaz_cadastro_cpf() + public function test_sefaz_cadastro_cpf(): void { $this->tools->sefazCadastro('RS', '', '', '60140174028'); $request = $this->tools->getRequest(); @@ -222,10 +207,7 @@ public function test_sefaz_cadastro_cpf() $this->assertSame($esperado, $request); } - /** - * @return void - */ - public function test_sefaz_status() + public function test_sefaz_status(): void { $this->tools->sefazStatus('RS'); $request = $this->tools->getRequest(); @@ -233,10 +215,7 @@ public function test_sefaz_status() $this->assertSame($esperado, $request); } - /** - * @return void - */ - public function test_sefaz_dist_dfe() + public function test_sefaz_dist_dfe(): void { $this->tools->sefazDistDFe(100, 200); $request = $this->tools->getRequest(); @@ -244,6 +223,15 @@ public function test_sefaz_dist_dfe() $this->assertSame($esperado, $request); } + public function test_sefazCCe(): void + { + $retorno = $this->tools->sefazCCe('35220605730928000145550010000048661583302923', 'Descrição da correção'); + //@todo Testar o $retorno + $request = $this->tools->getRequest(); + $esperado = $this->getCleanXml(__DIR__ . '/fixtures/xml/exemplo_xml_request_cce_cnpj.xml'); + $this->assertSame($esperado, $request); + } + /** * @param string $xml * @param int|string $idLote @@ -292,7 +280,7 @@ protected function getCleanXml($filePath) return $dom->ownerDocument->saveXML($dom->ownerDocument->documentElement); } - public function ufProvider() + public function ufProvider(): array { return [ ["AC"], diff --git a/tests/fixtures/xml/exemplo_xml_dist_dfe.xml b/tests/fixtures/xml/exemplo_xml_dist_dfe.xml index 5e591902..249bada0 100644 --- a/tests/fixtures/xml/exemplo_xml_dist_dfe.xml +++ b/tests/fixtures/xml/exemplo_xml_dist_dfe.xml @@ -3,7 +3,7 @@ 2 35 - 99999999999999 + 93623057000128 000000000000200 diff --git a/tests/fixtures/xml/exemplo_xml_inutiliza.xml b/tests/fixtures/xml/exemplo_xml_inutiliza.xml index 7c91aee9..1a0bf37c 100644 --- a/tests/fixtures/xml/exemplo_xml_inutiliza.xml +++ b/tests/fixtures/xml/exemplo_xml_inutiliza.xml @@ -1,11 +1,11 @@ - + 1 INUTILIZAR 35 22 - 99999999999999 + 93623057000128 55 1 1 @@ -16,16 +16,16 @@ - + - +s1tY9obNY/Emh2JF8n96gah9TI= + aDoDrwNJalOdH93K2A/F8CMqlE8= - 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 diff --git a/tests/fixtures/xml/exemplo_xml_request_cce_cnpj.xml b/tests/fixtures/xml/exemplo_xml_request_cce_cnpj.xml new file mode 100644 index 00000000..21daf445 --- /dev/null +++ b/tests/fixtures/xml/exemplo_xml_request_cce_cnpj.xml @@ -0,0 +1,42 @@ + + + 12345 + + + 35 + 2 + 93623057000128 + 35220605730928000145550010000048661583302923 + 2024-05-31T11:59:12-03:00 + 110110 + 1 + 1.00 + + Carta de Correcao + Descrição da correção + A Carta de Correcao e disciplinada pelo paragrafo 1o-A do art. 7o do Convenio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularizacao de erro ocorrido na emissao de documento fiscal, desde que o erro nao esteja relacionado com: I - as variaveis que determinam o valor do imposto tais como: base de calculo, aliquota, diferenca de preco, quantidade, valor da operacao ou da prestacao; II - a correcao de dados cadastrais que implique mudanca do remetente ou do destinatario; III - a data de emissao ou de saida. + + + + + + + + + + + + + QBaThHO7pc+FByih9ObBjIIV4KY= + + + le0uCxGKCZr9g8D62Y6xiN3LOpx7OIzVYPKt5r+RdTKDxC4mcdvVr1eAUIYf02eWDMh2becLFSgKb0751rvOckQ3KCkClN0Q8CCExSAfrr0THRjVw00hXX1RBUwFhG5xgPbDikzJTIoxgN8zqUAqAU8HDtjw6IX3Je2B/zB9SDbjJ317DSHKVUzx+f6MxNPRrx1tgHmMFaV6XEUbzSSZ86tb2Q1Oy5JE8wPc60fv4HoLkglHDFSWmwV1P7Kg/xchFnV9E/6FaFrohigqmv0WxhdX6IYHrl90erx5ciQDZd9I+UxtsEsGlFhq4Ppw8+t5WYpfZXiBbqhrzan2OzBC2zODaHWT2KdOTDQCprYGv0vh7xkGuRkS8q6KWLsKuSzXjCkT5WNhjF1ymOTOGTs8/1pms8myLwYR0n9SjATTzWEZU1EhmJudpoVwEuuv/l1G0Z7WTMFU1A4z/vguJWMlu5xoko7tUPiGZpfEcPp2cfpY3SYWKDvMh5wgmeLzZ+kuEVK1U7p/5H2mlHbBvO7FtBv/oVxa2ysPRYLHb0f/0turfBDe9SU+3XDe0+0FELim9HVBc2dnM5P91LvZnGNX0E7El1b88bjzFq+Z3LTSFJBTCp2BrQ3zQ1BV57334+v+Qj3KVGXE7EjdRJlqMajZXyMXbTYb0syxBVuTEM3BDpo= + + + MIIFkDCCA3gCCQD1479OxEO9njANBgkqhkiG9w0BAQsFADCBiTELMAkGA1UEBhMCQlIxGjAYBgNVBAgMEVJpbyBHcmFuZGUgZG8gU3VsMRUwEwYDVQQHDAxQb3J0byBBbGVncmUxEzARBgNVBAoMCm5mZXBocC1vcmcxEzARBgNVBAsMCm5mZXBocC1vcmcxHTAbBgNVBAMMFFNQRUQgUHJvamVjdHMgaW4gUEhQMB4XDTE4MDgwOTAyNDE1NVoXDTI4MDgwNjAyNDE1NVowgYkxCzAJBgNVBAYTAkJSMRowGAYDVQQIDBFSaW8gR3JhbmRlIGRvIFN1bDEVMBMGA1UEBwwMUG9ydG8gQWxlZ3JlMRMwEQYDVQQKDApuZmVwaHAtb3JnMRMwEQYDVQQLDApuZmVwaHAtb3JnMR0wGwYDVQQDDBRTUEVEIFByb2plY3RzIGluIFBIUDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK5QfErm/1RodP7DuZWap4BqFL9PlT5omTvEJK0sp9sPNApkPsdna8f037UylEssZSCQiwaE0Df6QvuR6IjasWsn4WWbtWbza60pxUQGb8TNH5hR3tgla5zfsEE0SaJib35WJ/pVQvUub4O9AUkgCBlTz8E/LjaBRykjtrEAeis+/5xRmy/Ph6FTFijnLauH5auQLz1LQDDQF0mAAdDYNIwGixJnpNyPgw7PvssAN7apURd3VjklvKUl/lzKN1t1pkxcz/lmC6gmYJyYUzXtyXzbEGZhfG9R+mCEhJZPDHKI83oCBJ53gUrJuQIeArKZm0CLMSZVpVAozZ+vE/Ksb3d7hl7LtfpFDsdZHYtRYJ4he1ZvrpghQGYxr0xAJpc4CN81k9LuWQsINQ3fLCUbCUXYPCI7Fui1ggSZzwtWNTD/Gpnh/tYEQRJetTAaEmVpx1SpNto9PB3lTat6ojoGrBPgsS3sKI3uFzlxMkcztOTFGeWliuBDP21mXZDLPEAVMzDQrcKlYJZ83aUXJTIH+43bAHWzYXUqvCxjlvQYB11ilB4nke3XJJvMpGJX/sLCSMAuNSjLGhUY7taGoZvhB/cUxTx942RG8vgUdB9eFEk37Q3qIUQbF8u/e5Xbge9XZtaAaQSIBoRUdaP6K9kJ3vcg7f8LM10r5QY5UYbuDw09AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJc8NjrRbht/URz+19b/bHr4xQUGm925X6Px8NfMu45rL8WGYgXIysZR6WtRLoXFIag+P/DiP+TJCrfDOTQv1tmyj6uMQxfvPXgRSA4zAnmWBW00qEY6+WL2i3+gd52KUYuOhDBksi4aHaSSBVv+HyqbliDGeKDKiGtEcWr3QP1efLVV2HyqwrlL3Vy1LhhAwDjVladkr7HVchFJ7CQg53q7yZI8Rwcaf/ab9pqAwI90/EUx6dwpDjT8YbFr2xorOfKzCKUIIjzHX8WrpT7N6LEGNN17SKrQB2xULQ0aAvnuk8snnJNav/fQr21DUm0T17zgsBUKMB4JtRx3ux+S8VhKd8gwXme3wuDI+5aE1jAg5w5viFDo8nHbW/rDLHoRkt7NoE+tgbJN6Dq/+DbJV/eyA6sNYmpA/bp+mCnTsjLjfS5Vj3UZP8s+OcLirjW1QYjND4gIvOtv2W4aTcjxHdH63F6FlpgzU8vJvYIUQ2y5SqjIywoDTIxn8GDzyyhbgRYkhAk3PvHlgixiq8Ip/hGs27wbO19j/y2IRxu6m1Ag/8v1KB/5WHdvVdyEhQfeYfMH/aiq41lsFGERbBwpugFfOy0it97sUDbZ8z5elrJ+bLE3V7/1kBAfSLPn8lBuPrSQpucS+DgghYlN4JzCytRAJs+qAmF5gwtvIJNRvGpY + + + + + + From 833a8f361f1a6fe5cbfe59f61040b793ee49ba2e Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Fri, 31 May 2024 12:12:01 -0300 Subject: [PATCH 3/6] =?UTF-8?q?Parametrizando=20vari=C3=A1veis=20di=C3=A2m?= =?UTF-8?q?icas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Tools.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Tools.php b/src/Tools.php index bdcadab8..ce514bf8 100755 --- a/src/Tools.php +++ b/src/Tools.php @@ -425,8 +425,13 @@ public function sefazDistDFe(int $ultNSU = 0, int $numNSU = 0, string $chave = n * @return string * @throws InvalidArgumentException */ - public function sefazCCe(string $chave, string $xCorrecao, int $nSeqEvento = 1): string - { + public function sefazCCe( + string $chave, + string $xCorrecao, + int $nSeqEvento = 1, + ?\DateTimeInterface $dhEvento = null, + ?int $lote = null + ): string { if (empty($chave) || empty($xCorrecao)) { throw new InvalidArgumentException('CC-e: chave ou motivo da correcao vazio!'); } @@ -445,7 +450,7 @@ public function sefazCCe(string $chave, string $xCorrecao, int $nSeqEvento = 1): $tagAdic = "" . $xCorrecao . "$xCondUso"; - return $this->sefazEvento($uf, $chave, self::EVT_CCE, $nSeqEvento, $tagAdic); + return $this->sefazEvento($uf, $chave, self::EVT_CCE, $nSeqEvento, $tagAdic, $dhEvento, $lote); } /** @@ -979,7 +984,9 @@ public function sefazEvento( string $chave, int $tpEvento, int $nSeqEvento = 1, - string $tagAdic = '' + string $tagAdic = '', + ?\DateTimeInterface $dhEvento = null, + ?int $lote = null ): string { $eventos = [ self::EVT_CCE => ['versao' => '1.00', 'nome' => 'envCCe'], @@ -1014,7 +1021,9 @@ public function sefazEvento( $cnpj = $this->config->cnpj ?? ''; $dt = new \DateTime(date("Y-m-d H:i:sP"), new \DateTimeZone($this->timezone)); $dt->setTimezone(new \DateTimeZone($this->timezone)); - $dhEvento = $dt->format('Y-m-d\TH:i:sP'); + if ($dhEvento == null) { + $dhEvento = $dt->format('Y-m-d\TH:i:sP'); + } $sSeqEvento = str_pad((string)$nSeqEvento, 2, "0", STR_PAD_LEFT); $eventId = "ID" . $tpEvento . $chave . $sSeqEvento; $cOrgao = UFList::getCodeByUF($uf); @@ -1049,7 +1058,9 @@ public function sefazEvento( $this->canonical ); $request = Strings::clearXmlString($request, true); - $lote = $dt->format('YmdHis') . random_int(0, 9); + if ($lote == null) { + $lote = $dt->format('YmdHis') . random_int(0, 9); + } $request = "urlPortal\" versao=\"$this->urlVersion\">" . "$lote" . $request From a29c12a36900f39bff9116e5ac2dc63c59d523fb Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Fri, 31 May 2024 12:16:07 -0300 Subject: [PATCH 4/6] =?UTF-8?q?Ajustes=20na=20formata=C3=A7=C3=A3o=20do=20?= =?UTF-8?q?valor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Tools.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Tools.php b/src/Tools.php index ce514bf8..1851ec59 100755 --- a/src/Tools.php +++ b/src/Tools.php @@ -430,7 +430,7 @@ public function sefazCCe( string $xCorrecao, int $nSeqEvento = 1, ?\DateTimeInterface $dhEvento = null, - ?int $lote = null + ?string $lote = null ): string { if (empty($chave) || empty($xCorrecao)) { throw new InvalidArgumentException('CC-e: chave ou motivo da correcao vazio!'); @@ -986,7 +986,7 @@ public function sefazEvento( int $nSeqEvento = 1, string $tagAdic = '', ?\DateTimeInterface $dhEvento = null, - ?int $lote = null + ?string $lote = null ): string { $eventos = [ self::EVT_CCE => ['versao' => '1.00', 'nome' => 'envCCe'], @@ -1021,8 +1021,9 @@ public function sefazEvento( $cnpj = $this->config->cnpj ?? ''; $dt = new \DateTime(date("Y-m-d H:i:sP"), new \DateTimeZone($this->timezone)); $dt->setTimezone(new \DateTimeZone($this->timezone)); - if ($dhEvento == null) { - $dhEvento = $dt->format('Y-m-d\TH:i:sP'); + $dhEventoString = $dt->format('Y-m-d\TH:i:sP'); + if ($dhEvento != null) { + $dhEventoString = $dhEvento->format('Y-m-d\TH:i:sP'); } $sSeqEvento = str_pad((string)$nSeqEvento, 2, "0", STR_PAD_LEFT); $eventId = "ID" . $tpEvento . $chave . $sSeqEvento; @@ -1037,7 +1038,7 @@ public function sefazEvento( $request .= "$cnpj"; } $request .= "$chave" - . "$dhEvento" + . "$dhEventoString" . "$tpEvento" . "$nSeqEvento" . "$verEvento" From 22e1f85be401c4cbee49b5c167968fbe1e7d0e91 Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Fri, 31 May 2024 13:35:14 -0300 Subject: [PATCH 5/6] Complementando teste sefazCCe --- tests/ToolsTest.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/ToolsTest.php b/tests/ToolsTest.php index 73a13f0e..83e19d97 100755 --- a/tests/ToolsTest.php +++ b/tests/ToolsTest.php @@ -225,7 +225,13 @@ public function test_sefaz_dist_dfe(): void public function test_sefazCCe(): void { - $retorno = $this->tools->sefazCCe('35220605730928000145550010000048661583302923', 'Descrição da correção'); + $retorno = $this->tools->sefazCCe( + '35220605730928000145550010000048661583302923', + 'Descrição da correção', + 1, + new \DateTime('2024-05-31T11:59:12-03:00'), + '12345' + ); //@todo Testar o $retorno $request = $this->tools->getRequest(); $esperado = $this->getCleanXml(__DIR__ . '/fixtures/xml/exemplo_xml_request_cce_cnpj.xml'); From 37ff5fce5d4a0d34a5e7f915b23554724f9979ba Mon Sep 17 00:00:00 2001 From: Gerson Felipe Schwinn Date: Fri, 31 May 2024 13:37:41 -0300 Subject: [PATCH 6/6] =?UTF-8?q?Melhorando=20formata=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/ToolsTest.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/ToolsTest.php b/tests/ToolsTest.php index 83e19d97..7f567c9f 100755 --- a/tests/ToolsTest.php +++ b/tests/ToolsTest.php @@ -225,13 +225,12 @@ public function test_sefaz_dist_dfe(): void public function test_sefazCCe(): void { - $retorno = $this->tools->sefazCCe( - '35220605730928000145550010000048661583302923', - 'Descrição da correção', - 1, - new \DateTime('2024-05-31T11:59:12-03:00'), - '12345' - ); + $chave = '35220605730928000145550010000048661583302923'; + $xCorrecao = 'Descrição da correção'; + $nSeqEvento = 1; + $dhEvento = new \DateTime('2024-05-31T11:59:12-03:00'); + $lote = '12345'; + $retorno = $this->tools->sefazCCe($chave, $xCorrecao, $nSeqEvento, $dhEvento, $lote); //@todo Testar o $retorno $request = $this->tools->getRequest(); $esperado = $this->getCleanXml(__DIR__ . '/fixtures/xml/exemplo_xml_request_cce_cnpj.xml');