Skip to content

Commit 983d950

Browse files
authored
Merge pull request #17 from lunasoft/feature/ss-476
Se realizan los ajustes del xslt para cce20 UT para sellar.
2 parents a66242f + 02c81e8 commit 983d950

File tree

6 files changed

+292
-2
lines changed

6 files changed

+292
-2
lines changed

.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |s|
22
s.name = %q{sw-sdk-ruby}
3-
s.version = "0.0.10.1.pre"
3+
s.version = "0.0.11.1.pre"
44
s.date = %q{2023-02-02}
55
s.summary = "sw-sdk-ruby"
66
s.licenses = ['GPL-3.0']

Test/Resources/cfdi/cce20.xml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<cfdi:Comprobante xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/ComercioExterior20 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior20/ComercioExterior20.xsd"
3+
xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20" Version="4.0" Serie="Serie" Folio="Folio1" Fecha="2024-01-22T00:00:00" FormaPago="99" NoCertificado="30001000000500003416" 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=" CondicionesDePago="CondicionesDePago" SubTotal="400" Moneda="USD" TipoCambio="17.199500" Total="399.95" TipoDeComprobante="I" Exportacion="02" MetodoPago="PPD" LugarExpedicion="20000"
4+
xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
5+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Sello="U54UYs4vFwDEPWWHCelJqtujv6l1zU+/ojajIYFE/Cha97J0XRxNqs1z+bPbHKx1EmviZJ7byWA1oi4E4vAd9CUKy0Aok+iW4oQ2yAREXbMuuMrMkHrz42xuzKjRpBIb2/WFAq8bkVeXplk17Fy+CgX6N6RdGQ/gcVkmyp7hplpkl+JhyRZuhwRplQIRiXQRpX6ZQC9rQHLcA7U8+60QuxOrgc6NTQS56FPjebJUGkiAgtmRdc8QeNQ6YISQsHBo49wTE+gm+RR265RQj3IIdSW776tPAUjrc6xzmIWfP7JhH6GU83H1EJ6jfAWksCc0vx5Qn8hyF7xcHktVhbOTPw==">
6+
<cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601" />
7+
<cfdi:Receptor Rfc="URE180429TM6" Nombre="UNIVERSIDAD ROBOTICA ESPAÑOLA" DomicilioFiscalReceptor="86991" RegimenFiscalReceptor="601" UsoCFDI="G01" />
8+
<cfdi:Conceptos>
9+
<cfdi:Concepto ClaveProdServ="50211503" NoIdentificacion="131494-1055" Cantidad="2" ClaveUnidad="H87" Unidad="Pieza" Descripcion="Cigarros" ValorUnitario="200.00" Importe="400.00" ObjetoImp="02">
10+
<cfdi:Impuestos>
11+
<cfdi:Traslados>
12+
<cfdi:Traslado Base="1" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="0.16" />
13+
</cfdi:Traslados>
14+
<cfdi:Retenciones>
15+
<cfdi:Retencion Base="1" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.100000" Importe="0.10" />
16+
<cfdi:Retencion Base="1" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.106666" Importe="0.11" />
17+
</cfdi:Retenciones>
18+
</cfdi:Impuestos>
19+
</cfdi:Concepto>
20+
</cfdi:Conceptos>
21+
<cfdi:Impuestos TotalImpuestosRetenidos="0.21" TotalImpuestosTrasladados="0.16">
22+
<cfdi:Retenciones>
23+
<cfdi:Retencion Impuesto="001" Importe="0.10" />
24+
<cfdi:Retencion Impuesto="002" Importe="0.11" />
25+
</cfdi:Retenciones>
26+
<cfdi:Traslados>
27+
<cfdi:Traslado Base="1" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="0.16" />
28+
</cfdi:Traslados>
29+
</cfdi:Impuestos>
30+
<cfdi:Complemento>
31+
<cce20:ComercioExterior Version="2.0" ClaveDePedimento="A1" CertificadoOrigen="0" Incoterm="FOB" TipoCambioUSD="17.1125" TotalUSD="400.00">
32+
<cce20:Emisor>
33+
<cce20:Domicilio Calle="CALLE DEL PAPEL" Colonia="0214" Localidad="01" Municipio="014" Estado="QUE" Pais="MEX" CodigoPostal="76199" />
34+
</cce20:Emisor>
35+
<cce20:Receptor>
36+
<cce20:Domicilio Calle="CALLE DEL PAPEL" Colonia="0214" Localidad="01" Municipio="014" Estado="QUE" Pais="MEX" CodigoPostal="76199" />
37+
</cce20:Receptor>
38+
<cce20:Mercancias>
39+
<cce20:Mercancia NoIdentificacion="131494-1055" FraccionArancelaria="2402200100" CantidadAduana="117.64" UnidadAduana="01" ValorUnitarioAduana="3.40" ValorDolares="400.00" />
40+
</cce20:Mercancias>
41+
</cce20:ComercioExterior>
42+
</cfdi:Complemento>
43+
</cfdi:Comprobante>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<cfdi:Comprobante xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20"
3+
xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd
4+
http://www.sat.gob.mx/ComercioExterior20 http://www.sat.gob.mx/sitio_internet/cfd/ComercioExterior20/ComercioExterior20.xsd"
5+
Version="4.0" Serie="CE20" Folio="2" Fecha="2024-01-22T01:00:00"
6+
Sello="J6NYaW8vkAF7YjVvLVyfaLJvWtme6dyrTSoM/g6SFU2J0Ff2O6REVpWnz/tIisz+zcb3RkMb5oNxw0T/GRD6tR799FTCypRGItNwgU6rkS/b2cc/ujeu7sNe4Yc05Rk3y5t2I75Cc2HfgZP8nTp3bSNhb+tXa98hul5ijJPBI1PNBPZhZ97QaRm8r0E8K8AdZCTwjgvSxj9p6QZ6BOo4abhontaFsfa/UAn820JiwNwFCjxdB6wPdy2Mm716Myb9HRIsDeG0gTSImxm/TsslvZk8xhjf+YHgfq7a17ff++KOh/gz6zZIbt0Y7N5yEJhQ9pDslp9d/H5BBvjGvJkiSw=="
7+
SubTotal="0.00" Moneda="AMD" TipoCambio="1" Total="0.00" TipoDeComprobante="T" Exportacion="02"
8+
LugarExpedicion="20000"
9+
xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
10+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" NoCertificado="30001000000500003416"
11+
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=">
12+
<cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601" />
13+
<cfdi:Receptor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" DomicilioFiscalReceptor="42501"
14+
RegimenFiscalReceptor="601" UsoCFDI="G01" />
15+
<cfdi:Conceptos>
16+
<cfdi:Concepto ClaveProdServ="50211503" Cantidad="2" ClaveUnidad="H87" Unidad="Pieza"
17+
Descripcion="Cigarros" ValorUnitario="200.00" Importe="400.00" ObjetoImp="01"
18+
NoIdentificacion="131494-1055" />
19+
</cfdi:Conceptos>
20+
<cfdi:Complemento>
21+
<cce20:ComercioExterior Version="2.0" MotivoTraslado="05" ClaveDePedimento="A1"
22+
CertificadoOrigen="0" Incoterm="CFR" TipoCambioUSD="17.1125" TotalUSD="25.56">
23+
<cce20:Emisor>
24+
<cce20:Domicilio Calle="CALLE DEL PAPEL" CodigoPostal="76199" Colonia="0214"
25+
Estado="QUE" Localidad="01" Municipio="014" Pais="MEX" />
26+
</cce20:Emisor>
27+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
28+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
29+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
30+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
31+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
32+
<cce20:Propietario NumRegIdTrib="NumRegIdTrib1" ResidenciaFiscal="AFG" />
33+
<cce20:Receptor>
34+
<cce20:Domicilio Calle="ST. A" CodigoPostal="00000" Estado="TX" Pais="USA" />
35+
</cce20:Receptor>
36+
<cce20:Mercancias>
37+
<cce20:Mercancia NoIdentificacion="131494-1055" FraccionArancelaria="2402200100"
38+
CantidadAduana="117.64" UnidadAduana="01" ValorDolares="25.56"
39+
ValorUnitarioAduana="12.78" />
40+
</cce20:Mercancias>
41+
</cce20:ComercioExterior>
42+
</cfdi:Complemento>
43+
</cfdi:Comprobante>

Test/Sign/sign_test.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,33 @@ def test_sign_success
1919
end
2020
end
2121

22+
class SignTest < Test::Unit::TestCase
23+
def test_sign_success_cceP
24+
xml = TestHelper::read_file('../Resources/cfdi/cce20Propietario.xml')
25+
pfx = TestHelper::create_pfx
26+
password = "12345678a"
27+
xml_signed = TestHelper::get_signed_cfdi(xml, pfx, password)
28+
params = { "url" => 'http://services.test.sw.com.mx', "user" => ENV["SDKTEST_USER"], "password" => ENV["SDKTEST_PASSWORD"] }
29+
Stamp::set(params)
30+
response = Stamp::stamp_v1(xml_signed)
31+
assert(response.get_status == "success")
32+
assert(response.get_data != nil)
33+
assert(response.get_data.to_s.strip != "")
34+
end
35+
end
36+
37+
class SignTest < Test::Unit::TestCase
38+
def test_sign_success_cce
39+
xml = TestHelper::read_file('../Resources/cfdi/cce20.xml')
40+
pfx = TestHelper::create_pfx
41+
password = "12345678a"
42+
xml_signed = TestHelper::get_signed_cfdi(xml, pfx, password)
43+
params = { "url" => 'http://services.test.sw.com.mx', "user" => ENV["SDKTEST_USER"], "password" => ENV["SDKTEST_PASSWORD"] }
44+
Stamp::set(params)
45+
response = Stamp::stamp_v1(xml_signed)
46+
assert(response.get_status == "success")
47+
assert(response.get_data != nil)
48+
assert(response.get_data.to_s.strip != "")
49+
end
50+
end
2251

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:cce20="http://www.sat.gob.mx/ComercioExterior20">
3+
4+
<xsl:template match="cce20:ComercioExterior">
5+
<!--Manejador de nodos tipo ComercioExterior-->
6+
<xsl:call-template name="Requerido">
7+
<xsl:with-param name="valor" select="./@Version" />
8+
</xsl:call-template>
9+
<xsl:call-template name="Opcional">
10+
<xsl:with-param name="valor" select="./@MotivoTraslado" />
11+
</xsl:call-template>
12+
<xsl:call-template name="Requerido">
13+
<xsl:with-param name="valor" select="./@ClaveDePedimento" />
14+
</xsl:call-template>
15+
<xsl:call-template name="Requerido">
16+
<xsl:with-param name="valor" select="./@CertificadoOrigen" />
17+
</xsl:call-template>
18+
<xsl:call-template name="Opcional">
19+
<xsl:with-param name="valor" select="./@NumCertificadoOrigen" />
20+
</xsl:call-template>
21+
<xsl:call-template name="Opcional">
22+
<xsl:with-param name="valor" select="./@NumeroExportadorConfiable" />
23+
</xsl:call-template>
24+
<xsl:call-template name="Opcional">
25+
<xsl:with-param name="valor" select="./@Incoterm" />
26+
</xsl:call-template>
27+
<xsl:call-template name="Opcional">
28+
<xsl:with-param name="valor" select="./@Observaciones" />
29+
</xsl:call-template>
30+
<xsl:call-template name="Requerido">
31+
<xsl:with-param name="valor" select="./@TipoCambioUSD" />
32+
</xsl:call-template>
33+
<xsl:call-template name="Requerido">
34+
<xsl:with-param name="valor" select="./@TotalUSD" />
35+
</xsl:call-template>
36+
37+
<!-- Iniciamos el manejo de los elementos hijo en la secuencia -->
38+
<xsl:apply-templates select="./cce20:Emisor" />
39+
<xsl:for-each select="./cce20:Propietario">
40+
<xsl:apply-templates select="."/>
41+
</xsl:for-each>
42+
<xsl:apply-templates select="./cce20:Receptor" />
43+
<xsl:for-each select="./cce20:Destinatario">
44+
<xsl:apply-templates select="."/>
45+
</xsl:for-each>
46+
<xsl:apply-templates select="./cce20:Mercancias" />
47+
</xsl:template>
48+
49+
<xsl:template match="cce20:Emisor">
50+
<!-- Iniciamos el tratamiento de los atributos de cce20:Emisor-->
51+
<xsl:call-template name="Opcional">
52+
<xsl:with-param name="valor" select="./@Curp" />
53+
</xsl:call-template>
54+
55+
<xsl:apply-templates select="./cce20:Domicilio" />
56+
57+
</xsl:template>
58+
59+
<xsl:template match="cce20:Propietario">
60+
<!-- Iniciamos el tratamiento de los atributos de cce20:Propietario-->
61+
<xsl:call-template name="Requerido">
62+
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
63+
</xsl:call-template>
64+
<xsl:call-template name="Requerido">
65+
<xsl:with-param name="valor" select="./@ResidenciaFiscal" />
66+
</xsl:call-template>
67+
68+
</xsl:template>
69+
70+
<xsl:template match="cce20:Receptor">
71+
<!-- Tratamiento de los atributos de cce20:Receptor-->
72+
73+
<xsl:call-template name="Opcional">
74+
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
75+
</xsl:call-template>
76+
<xsl:apply-templates select="./cce20:Domicilio" />
77+
78+
</xsl:template>
79+
80+
<xsl:template match="cce20:Destinatario">
81+
<!-- Tratamiento de los atributos de cce20:Destinatario-->
82+
<xsl:call-template name="Opcional">
83+
<xsl:with-param name="valor" select="./@NumRegIdTrib" />
84+
</xsl:call-template>
85+
<xsl:call-template name="Opcional">
86+
<xsl:with-param name="valor" select="./@Nombre" />
87+
</xsl:call-template>
88+
<!-- Manejo de los nodos dependientes -->
89+
<xsl:for-each select="./cce20:Domicilio">
90+
<xsl:apply-templates select="."/>
91+
</xsl:for-each>
92+
</xsl:template>
93+
94+
<xsl:template match="cce20:Mercancias">
95+
<!-- Iniciamos el manejo de los nodos dependientes -->
96+
<xsl:for-each select="./cce20:Mercancia">
97+
<xsl:apply-templates select="."/>
98+
</xsl:for-each>
99+
</xsl:template>
100+
101+
<xsl:template match="cce20:Domicilio">
102+
<!-- Iniciamos el tratamiento de los atributos de cce20:Domicilio-->
103+
<xsl:call-template name="Requerido">
104+
<xsl:with-param name="valor" select="./@Calle" />
105+
</xsl:call-template>
106+
<xsl:call-template name="Opcional">
107+
<xsl:with-param name="valor" select="./@NumeroExterior" />
108+
</xsl:call-template>
109+
<xsl:call-template name="Opcional">
110+
<xsl:with-param name="valor" select="./@NumeroInterior" />
111+
</xsl:call-template>
112+
<xsl:call-template name="Opcional">
113+
<xsl:with-param name="valor" select="./@Colonia" />
114+
</xsl:call-template>
115+
<xsl:call-template name="Opcional">
116+
<xsl:with-param name="valor" select="./@Localidad" />
117+
</xsl:call-template>
118+
<xsl:call-template name="Opcional">
119+
<xsl:with-param name="valor" select="./@Referencia" />
120+
</xsl:call-template>
121+
<xsl:call-template name="Opcional">
122+
<xsl:with-param name="valor" select="./@Municipio" />
123+
</xsl:call-template>
124+
<xsl:call-template name="Requerido">
125+
<xsl:with-param name="valor" select="./@Estado" />
126+
</xsl:call-template>
127+
<xsl:call-template name="Requerido">
128+
<xsl:with-param name="valor" select="./@Pais" />
129+
</xsl:call-template>
130+
<xsl:call-template name="Requerido">
131+
<xsl:with-param name="valor" select="./@CodigoPostal" />
132+
</xsl:call-template>
133+
</xsl:template>
134+
135+
<xsl:template match="cce20:Mercancia">
136+
<xsl:call-template name="Requerido">
137+
<xsl:with-param name="valor" select="./@NoIdentificacion" />
138+
</xsl:call-template>
139+
<xsl:call-template name="Opcional">
140+
<xsl:with-param name="valor" select="./@FraccionArancelaria" />
141+
</xsl:call-template>
142+
<xsl:call-template name="Opcional">
143+
<xsl:with-param name="valor" select="./@CantidadAduana" />
144+
</xsl:call-template>
145+
<xsl:call-template name="Opcional">
146+
<xsl:with-param name="valor" select="./@UnidadAduana" />
147+
</xsl:call-template>
148+
<xsl:call-template name="Opcional">
149+
<xsl:with-param name="valor" select="./@ValorUnitarioAduana" />
150+
</xsl:call-template>
151+
<xsl:call-template name="Requerido">
152+
<xsl:with-param name="valor" select="./@ValorDolares" />
153+
</xsl:call-template>
154+
<xsl:for-each select="./cce20:DescripcionesEspecificas">
155+
<xsl:apply-templates select="."/>
156+
</xsl:for-each>
157+
</xsl:template>
158+
159+
<xsl:template match="cce20:DescripcionesEspecificas">
160+
<xsl:call-template name="Requerido">
161+
<xsl:with-param name="valor" select="./@Marca" />
162+
</xsl:call-template>
163+
<xsl:call-template name="Opcional">
164+
<xsl:with-param name="valor" select="./@Modelo" />
165+
</xsl:call-template>
166+
<xsl:call-template name="Opcional">
167+
<xsl:with-param name="valor" select="./@SubModelo" />
168+
</xsl:call-template>
169+
<xsl:call-template name="Opcional">
170+
<xsl:with-param name="valor" select="./@NumeroSerie" />
171+
</xsl:call-template>
172+
</xsl:template>
173+
174+
</xsl:stylesheet>

0 commit comments

Comments
 (0)