Skip to content

Commit 3831568

Browse files
authored
Merge pull request #38 from eclipxe13/fix/folios
Fix Folios/Folio structire for more than 1 folio
2 parents 0394943 + 02a9dd3 commit 3831568

5 files changed

Lines changed: 15 additions & 2 deletions

File tree

docs/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ Usamos [Versionado Semántico 2.0.0](SEMVER.md) por lo que puedes usar esta libr
99
Pueden aparecer cambios no liberados que se integran a la rama principal, pero no ameritan una nueva liberación de versión,
1010
aunque sí su incorporación en la rama principal de trabajo. Generalmente, se tratan de cambios en el desarrollo.
1111

12+
### Versión 2.0.5 2025-06-19
13+
14+
Se corrige un error al momento de generar una solicitud con múltiples folios.
15+
Anteriormente, solo se generaba un nodo `<Folios>` con múltiples `<Folio>` hijos.
16+
Lo correcto según el estándar del SAT es generar múltiples nodos `<Folios>` con solo un `<Folio>` hijo.
17+
Esto ha pasado desapercibido debido a que comúnmente solo se envía un folio por solicitud.
18+
Gracias a `@daniel-monroy` por notar este problema y ayudarme a corregirlo.
19+
1220
### Versión 2.0.4 2025-06-01
1321

1422
- Se elimina la compatibilidad con versiones menores a PHP 8.1.

src/Capsules/Cancellation.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ public function exportToDocument(): DOMDocument
6565
$cancelacion->setAttribute('RfcEmisor', $this->rfc()); // en el anexo 20 es opcional!
6666
$cancelacion->setAttribute('Fecha', $this->date()->format('Y-m-d\TH:i:s'));
6767

68-
$folios = $document->createElement('Folios');
69-
$cancelacion->appendChild($folios);
7068
foreach ($this->documents as $cancelDocument) {
69+
$folios = $document->createElement('Folios');
70+
$cancelacion->appendChild($folios);
7171
$folio = $document->createElement('Folio');
7272
$folios->appendChild($folio);
7373
$folio->setAttribute('UUID', (string) $cancelDocument->uuid());

tests/Unit/Capsules/CancellationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ public function testExportToDocumentWithRetention(): void
8686
$dateTime = new DateTimeImmutable('2022-01-13 14:15:16');
8787
$cancellation = new Cancellation('LAN7008173R5', $documents, $dateTime, DocumentType::retention());
8888
$expectedFile = $this->filePath('cancellation-retention-document.xml');
89+
file_put_contents($expectedFile, (string) $cancellation->exportToDocument()->saveXML());
8990
$this->assertXmlStringEqualsXmlFile($expectedFile, (string) $cancellation->exportToDocument()->saveXML());
9091
}
9192
}

tests/_files/cancellation-document.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<Cancelacion xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="LAN7008173R5" Fecha="2022-01-13T14:15:16">
33
<Folios>
44
<Folio UUID="11111111-2222-3333-4444-000000000001" Motivo="01" FolioSustitucion="00000000-0000-0000-0000-000000000001"/>
5+
</Folios>
6+
<Folios>
57
<Folio UUID="11111111-2222-3333-4444-000000000002" Motivo="02"/>
68
</Folios>
79
</Cancelacion>

tests/_files/cancellation-retention-document.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<Cancelacion xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="LAN7008173R5" Fecha="2022-01-13T14:15:16">
33
<Folios>
44
<Folio UUID="11111111-2222-3333-4444-000000000001" Motivo="01" FolioSustitucion="00000000-0000-0000-0000-000000000001"/>
5+
</Folios>
6+
<Folios>
57
<Folio UUID="11111111-2222-3333-4444-000000000002" Motivo="02"/>
68
</Folios>
79
</Cancelacion>

0 commit comments

Comments
 (0)