From 8005dcb8dab1ae52175781f9788256ac92b70f5b Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 1 Jul 2026 23:52:50 -0300 Subject: [PATCH] fix: always emit tribFed and totTrib blocks Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Xml/XmlBuilder.php | 23 +++++------------------ tests/Unit/Xml/XmlBuilderTest.php | 6 ++++-- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/Xml/XmlBuilder.php b/src/Xml/XmlBuilder.php index 2dabbc9..7a3460c 100644 --- a/src/Xml/XmlBuilder.php +++ b/src/Xml/XmlBuilder.php @@ -84,13 +84,8 @@ private function buildValores(\DOMDocument $doc, DpsData $dps): \DOMElement $trib = $doc->createElement('trib'); $trib->appendChild($this->buildTribMun($doc, $dps)); - if ($this->hasFederalTaxationData($dps)) { - $trib->appendChild($this->buildTribFederal($doc, $dps)); - } - - if ($this->hasTotalTributosPercentuais($dps)) { - $trib->appendChild($this->buildTotTrib($doc, $dps)); - } + $trib->appendChild($this->buildTribFederal($doc, $dps)); + $trib->appendChild($this->buildTotTrib($doc, $dps)); $valores->appendChild($trib); @@ -115,17 +110,9 @@ private function buildTotTrib(\DOMDocument $doc, DpsData $dps): \DOMElement $totTrib = $doc->createElement('totTrib'); $percentuais = $doc->createElement('pTotTrib'); - if ($dps->totalTributosPercentualFederal !== '') { - $percentuais->appendChild($doc->createElement('pTotTribFed', $dps->totalTributosPercentualFederal)); - } - - if ($dps->totalTributosPercentualEstadual !== '') { - $percentuais->appendChild($doc->createElement('pTotTribEst', $dps->totalTributosPercentualEstadual)); - } - - if ($dps->totalTributosPercentualMunicipal !== '') { - $percentuais->appendChild($doc->createElement('pTotTribMun', $dps->totalTributosPercentualMunicipal)); - } + $percentuais->appendChild($doc->createElement('pTotTribFed', $dps->totalTributosPercentualFederal !== '' ? $dps->totalTributosPercentualFederal : '0.00')); + $percentuais->appendChild($doc->createElement('pTotTribEst', $dps->totalTributosPercentualEstadual !== '' ? $dps->totalTributosPercentualEstadual : '0.00')); + $percentuais->appendChild($doc->createElement('pTotTribMun', $dps->totalTributosPercentualMunicipal !== '' ? $dps->totalTributosPercentualMunicipal : '0.00')); $totTrib->appendChild($percentuais); diff --git a/tests/Unit/Xml/XmlBuilderTest.php b/tests/Unit/Xml/XmlBuilderTest.php index 4ceab09..4d55e39 100644 --- a/tests/Unit/Xml/XmlBuilderTest.php +++ b/tests/Unit/Xml/XmlBuilderTest.php @@ -319,7 +319,8 @@ public function testNonSimplesnacionalMustNotIncludeIndtottribAndPaliq(): void // For "não optante" (opSimpNac = 1), pAliq must NOT be present. self::assertStringNotContainsString('', $xml); - self::assertStringNotContainsString('', $xml); + self::assertStringContainsString('', str_replace(["\n", ' '], '', $xml)); + self::assertStringContainsString('0.000.000.00', str_replace(["\n", ' '], '', $xml)); self::assertStringContainsString('', $xml); self::assertStringContainsString('', $xml); @@ -340,7 +341,8 @@ public function testOptiontSimplesnacionalIncludesIndtottribAndPaliq(): void // For "optante" (opSimpNac = 2), pAliq MUST be present. self::assertStringContainsString('', $xml); - self::assertStringNotContainsString('', $xml); + self::assertStringContainsString('', str_replace(["\n", ' '], '', $xml)); + self::assertStringContainsString('0.000.000.00', str_replace(["\n", ' '], '', $xml)); } public function testBuildDpsIncludesTotalTributosPercentuaisWhenConfigured(): void