Skip to content

Commit

Permalink
Abstract move sat definitions to root element
Browse files Browse the repository at this point in the history
- Add RetencionesCreatorTrait::moveSatDefinitionsToRetenciones
- Add SatNsDefinitionsMover helper
- Document samples using moveSatDefinitionsToRetenciones
- Fix test sample files with sat definitions on root element
  • Loading branch information
eclipxe13 committed Jan 10, 2024
1 parent 807a746 commit c0f2583
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 14 deletions.
10 changes: 9 additions & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,18 @@
- Merge methods from `\CfdiUtils\Nodes\NodeHasValueInterface` into `\CfdiUtils\Nodes\NodeInterface`.
- Remove deprecated constant `CfdiUtils\Retenciones\Retenciones::RET_NAMESPACE`.

## Version 2.25.0 2024-01-10
## Version 2.26.0 2024-01-10

Add `CfdiUtils\Elements\Cce30` *Elements* to work with "Complemento de Comercio Exterior 3.0".

Extract logic to move SAT definitions to root element to a helper in order to use it on other creators:

- Add `SatNsDefinitionsMover` helper.
- Change `CfdiCreatorTrait::moveSatDefinitionsToComprobante` to use helper.
- Add `RetencionesCreatorTrait::moveSatDefinitionsToRetenciones`.
- Document samples using `$creator->moveSatDefinitionsToRetenciones()`.
- Fix tests sample files with sat definitions on root element.

## Unreleased 2024-01-08

- Fix continuous integration code style.
Expand Down
6 changes: 6 additions & 0 deletions docs/crear/cfdi-de-retenciones-e-informacion-de-pagos.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ $retenciones->addComplemento($dividendos);
$creator->putCertificado(new \CfdiUtils\Certificado\Certificado('archivo.cer'));
$creator->addSello('file://archivo.key.pem', 'la contraseña');

// método de ayuda para mover las declaraciones de espacios de nombre al nodo raíz
$creator->moveSatDefinitionsToRetenciones();

// Asserts contendrá el resultado de la validación
$asserts = $creator->validate();

Expand Down Expand Up @@ -132,6 +135,9 @@ $retenciones->addComplemento($dividendos);
$creator->putCertificado(new \CfdiUtils\Certificado\Certificado('archivo.cer'));
$creator->addSello('file://archivo.key.pem', 'la contraseña');

// método de ayuda para mover las declaraciones de espacios de nombre al nodo raíz
$creator->moveSatDefinitionsToRetenciones();

// Asserts contendrá el resultado de la validación
$asserts = $creator->validate();

Expand Down
13 changes: 4 additions & 9 deletions src/CfdiUtils/CfdiCreatorTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
use CfdiUtils\Certificado\Certificado;
use CfdiUtils\Certificado\CertificadoPropertyTrait;
use CfdiUtils\Nodes\NodeInterface;
use CfdiUtils\Nodes\NodeNsDefinitionsMover;
use CfdiUtils\Nodes\XmlNodeUtils;
use CfdiUtils\PemPrivateKey\PemPrivateKey;
use CfdiUtils\SumasConceptos\SumasConceptos;
use CfdiUtils\SumasConceptos\SumasConceptosWriter;
use CfdiUtils\Utils\SatNsDefinitionsMover;
use CfdiUtils\Validate\Asserts;
use CfdiUtils\Validate\Hydrater;
use CfdiUtils\Validate\MultiValidator;
Expand Down Expand Up @@ -75,15 +75,10 @@ public function asXml(): string
return XmlNodeUtils::nodeToXmlString($this->comprobante, true);
}

public function moveSatDefinitionsToComprobante()
public function moveSatDefinitionsToComprobante(): void
{
$nodeNsDefinitionsMover = new NodeNsDefinitionsMover();
$nodeNsDefinitionsMover->setNamespaceFilter(
function (string $namespaceUri): bool {
return ('http://www.sat.gob.mx/' === (substr($namespaceUri, 0, 22) ?: ''));
}
);
$nodeNsDefinitionsMover->process($this->comprobante);
$mover = new SatNsDefinitionsMover();
$mover->move($this->comprobante);
}

public function saveXml(string $filename): bool
Expand Down
7 changes: 7 additions & 0 deletions src/CfdiUtils/Retenciones/RetencionesCreatorTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use CfdiUtils\Elements\Common\AbstractElement;
use CfdiUtils\Nodes\XmlNodeUtils;
use CfdiUtils\PemPrivateKey\PemPrivateKey;
use CfdiUtils\Utils\SatNsDefinitionsMover;
use CfdiUtils\Validate\Asserts;
use CfdiUtils\Validate\Xml\XmlFollowSchema;
use CfdiUtils\XmlResolver\XmlResolver;
Expand Down Expand Up @@ -74,4 +75,10 @@ public function asXml(): string
{
return XmlNodeUtils::nodeToXmlString($this->retenciones, true);
}

public function moveSatDefinitionsToRetenciones(): void
{
$mover = new SatNsDefinitionsMover();
$mover->move($this->retenciones);
}
}
20 changes: 20 additions & 0 deletions src/CfdiUtils/Utils/SatNsDefinitionsMover.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace CfdiUtils\Utils;

use CfdiUtils\Nodes\NodeInterface;
use CfdiUtils\Nodes\NodeNsDefinitionsMover;

final class SatNsDefinitionsMover
{
public function move(NodeInterface $root): void
{
$nodeNsDefinitionsMover = new NodeNsDefinitionsMover();
$nodeNsDefinitionsMover->setNamespaceFilter(
function (string $namespaceUri): bool {
return ('http://www.sat.gob.mx/' === (substr($namespaceUri, 0, 22) ?: ''));
}
);
$nodeNsDefinitionsMover->process($root);
}
}
3 changes: 3 additions & 0 deletions tests/CfdiUtilsTests/Retenciones/RetencionesCreator10Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ public function testCreatePreCfdiWithAllCorrectValues()
$creator->putCertificado($certificado);
$creator->addSello('file://' . $pemFile, $passPhrase);

// move sat definitions
$creator->moveSatDefinitionsToRetenciones();

// validate
$asserts = $creator->validate();
$this->assertGreaterThanOrEqual(1, $asserts->count());
Expand Down
3 changes: 3 additions & 0 deletions tests/CfdiUtilsTests/Retenciones/RetencionesCreator20Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ public function testCreatePreCfdiWithAllCorrectValues()
$creator->putCertificado($certificado);
$creator->addSello('file://' . $pemFile, $passPhrase);

// move sat definitions
$creator->moveSatDefinitionsToRetenciones();

// validate
$asserts = $creator->validate();
$this->assertGreaterThanOrEqual(1, $asserts->count());
Expand Down
4 changes: 2 additions & 2 deletions tests/assets/retenciones/retenciones10.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<retenciones:Retenciones xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1 http://www.sat.gob.mx/esquemas/retencionpago/1/retencionpagov1.xsd" Version="1.0" FechaExp="2021-01-13T14:15:16-06:00" CveRetenc="14" NumCert="30001000000500003416" Cert="MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=" Sello="sdue8XSWuWCBfQuWDXwVAEm3CX0AFbnxI9H8hj/3+n/TzyUcwFdfBUJ2jTKHOsMWT1ldJNtL1XL+n0xZX2MO8rh8zdiVG3sQ3KK2XTxSESEztS8RoNppo5jBJPDxiLwYHp3VT1vlqbRRCZEUbhfzxUhTlX/V7rcF6nzw3n9cAk5BhwgxbZxjhV3Dhq0ElbFqfloC/22SiNhdWf9JwAwTGmDKrJW/Ir2/D3nlCE8Q71KdIw1qrDYCRYzxWFiiuz59sDo4tTUnxuHhmSrHv5HR6YwxYPBPt/t64SmrIZXii5bIfGrZ5kecAnw4va98mgh0pnGrn98d71TzFC/i8yjhAQ==">
<retenciones:Retenciones xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:dividendos="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1 http://www.sat.gob.mx/esquemas/retencionpago/1/retencionpagov1.xsd http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos/dividendos.xsd" Version="1.0" FechaExp="2021-01-13T14:15:16-06:00" CveRetenc="14" NumCert="30001000000500003416" Cert="MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=" Sello="sdue8XSWuWCBfQuWDXwVAEm3CX0AFbnxI9H8hj/3+n/TzyUcwFdfBUJ2jTKHOsMWT1ldJNtL1XL+n0xZX2MO8rh8zdiVG3sQ3KK2XTxSESEztS8RoNppo5jBJPDxiLwYHp3VT1vlqbRRCZEUbhfzxUhTlX/V7rcF6nzw3n9cAk5BhwgxbZxjhV3Dhq0ElbFqfloC/22SiNhdWf9JwAwTGmDKrJW/Ir2/D3nlCE8Q71KdIw1qrDYCRYzxWFiiuz59sDo4tTUnxuHhmSrHv5HR6YwxYPBPt/t64SmrIZXii5bIfGrZ5kecAnw4va98mgh0pnGrn98d71TzFC/i8yjhAQ==">
<retenciones:Emisor RFCEmisor="EKU9003173C9" NomDenRazSocE="ESCUELA KEMPER URGATE SA DE CV"/>
<retenciones:Receptor Nacionalidad="Extranjero">
<retenciones:Extranjero NumRegIdTrib="998877665544332211" NomDenRazSocR="WORLD WIDE COMPANY INC"/>
Expand All @@ -9,7 +9,7 @@
<retenciones:ImpRetenidos BaseRet="0" Impuesto="01" montoRet="0" TipoPagoRet="Pago provisional"/>
</retenciones:Totales>
<retenciones:Complemento>
<dividendos:Dividendos xmlns:dividendos="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos/dividendos.xsd" Version="1.0">
<dividendos:Dividendos Version="1.0">
<dividendos:DividOUtil CveTipDivOUtil="06" MontISRAcredRetMexico="0" MontISRAcredRetExtranjero="0" MontRetExtDivExt="0" TipoSocDistrDiv="Sociedad Nacional" MontISRAcredNal="0" MontDivAcumNal="0" MontDivAcumExt="0"/>
</dividendos:Dividendos>
</retenciones:Complemento>
Expand Down
4 changes: 2 additions & 2 deletions tests/assets/retenciones/retenciones20.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<retenciones:Retenciones xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Certificado="MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=" CveRetenc="14" FechaExp="2022-01-13T14:15:16" LugarExpRetenc="91778" NoCertificado="30001000000500003416" Sello="NNbDQ42OJGN/hFOYc109cQHw5jDVO7jtxDWqFI7jwyjXiAekGAW83xKPJ7H4h3+8bA1ydHkUMoLeB4BrcbT7NAmTtBUJJafOC9+NdAhsmJ8HKfY3+vinzza2UVJyKWRzCYnO1ny+9loF8I6qk6aNCxDLxDem6S4pmPZMz1TT45e7XJ+AqtGFxtDUKwYtsU/J6EWGDxbWxrGEaGHxnqon1Zg3Fv1KoR9lyF2PrWYNI/Elf3nOueVRa6TNdil0ySY95CAUNSp85JkvNEjVHLqVqZArHEo3bA7VhAaixWF6ENU3G8IkR04LXjWYK8s1xbofFs40akjq2fsxrhj33LWO8A==" Version="2.0" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/2 http://www.sat.gob.mx/esquemas/retencionpago/2/retencionpagov2.xsd">
<retenciones:Retenciones xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2" xmlns:dividendos="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Certificado="MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE=" CveRetenc="14" FechaExp="2022-01-13T14:15:16" LugarExpRetenc="91778" NoCertificado="30001000000500003416" Sello="NNbDQ42OJGN/hFOYc109cQHw5jDVO7jtxDWqFI7jwyjXiAekGAW83xKPJ7H4h3+8bA1ydHkUMoLeB4BrcbT7NAmTtBUJJafOC9+NdAhsmJ8HKfY3+vinzza2UVJyKWRzCYnO1ny+9loF8I6qk6aNCxDLxDem6S4pmPZMz1TT45e7XJ+AqtGFxtDUKwYtsU/J6EWGDxbWxrGEaGHxnqon1Zg3Fv1KoR9lyF2PrWYNI/Elf3nOueVRa6TNdil0ySY95CAUNSp85JkvNEjVHLqVqZArHEo3bA7VhAaixWF6ENU3G8IkR04LXjWYK8s1xbofFs40akjq2fsxrhj33LWO8A==" Version="2.0" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/2 http://www.sat.gob.mx/esquemas/retencionpago/2/retencionpagov2.xsd http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos/dividendos.xsd">
<retenciones:CfdiRetenRelacionados TipoRelacion="01" UUID="1474b7d3-61fc-41c4-a8b8-3f22e1161bb4"/>
<retenciones:Emisor NomDenRazSocE="ESCUELA KEMPER URGATE" RegimenFiscalE="601" RfcE="EKU9003173C9"/>
<retenciones:Receptor NacionalidadR="Extranjero">
Expand All @@ -10,7 +10,7 @@
<retenciones:ImpRetenidos BaseRet="0" ImpuestoRet="001" MontoRet="200.00" TipoPagoRet="01"/>
</retenciones:Totales>
<retenciones:Complemento>
<dividendos:Dividendos xmlns:dividendos="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos" Version="1.0" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos http://www.sat.gob.mx/esquemas/retencionpago/1/dividendos/dividendos.xsd">
<dividendos:Dividendos Version="1.0">
<dividendos:DividOUtil CveTipDivOUtil="06" MontDivAcumExt="0" MontDivAcumNal="0" MontISRAcredNal="0" MontISRAcredRetExtranjero="0" MontISRAcredRetMexico="0" MontRetExtDivExt="0" TipoSocDistrDiv="Sociedad Nacional"/>
</dividendos:Dividendos>
</retenciones:Complemento>
Expand Down

0 comments on commit c0f2583

Please sign in to comment.