sw_fac 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +26 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/cadena/ComercioExterior11.xslt +181 -0
- data/lib/cadena/Pagos10.xslt +165 -0
- data/lib/cadena/TuristaPasajeroExtranjero.xslt +40 -0
- data/lib/cadena/aerolineas.xslt +50 -0
- data/lib/cadena/cadena33.xslt +349 -0
- data/lib/cadena/certificadodedestruccion.xslt +60 -0
- data/lib/cadena/cfdiregistrofiscal.xslt +19 -0
- data/lib/cadena/cfdv33.xsd +737 -0
- data/lib/cadena/consumodecombustibles.xslt +108 -0
- data/lib/cadena/detallista.xslt +42 -0
- data/lib/cadena/divisas.xslt +13 -0
- data/lib/cadena/donat11.xslt +13 -0
- data/lib/cadena/ecc11.xslt +102 -0
- data/lib/cadena/iedu.xslt +26 -0
- data/lib/cadena/implocal.xslt +39 -0
- data/lib/cadena/ine11.xslt +51 -0
- data/lib/cadena/leyendasFisc.xslt +28 -0
- data/lib/cadena/nomina12.xslt +412 -0
- data/lib/cadena/notariospublicos.xslt +301 -0
- data/lib/cadena/obrasarteantiguedades.xslt +33 -0
- data/lib/cadena/pagoenespecie.xslt +39 -0
- data/lib/cadena/pfic.xslt +13 -0
- data/lib/cadena/renovacionysustitucionvehiculos.xslt +152 -0
- data/lib/cadena/servicioparcialconstruccion.xslt +44 -0
- data/lib/cadena/terceros11.xslt +108 -0
- data/lib/cadena/utilerias.xslt +22 -0
- data/lib/cadena/valesdedespensa.xslt +70 -0
- data/lib/cadena/vehiculousado.xslt +63 -0
- data/lib/cadena/ventavehiculos11.xslt +53 -0
- data/lib/sw_fac/config.rb +69 -0
- data/lib/sw_fac/facturacion.rb +616 -0
- data/lib/sw_fac/tools.rb +105 -0
- data/lib/sw_fac/version.rb +3 -0
- data/lib/sw_fac.rb +18 -0
- data/sw_fac.gemspec +38 -0
- data/test/sw_fac_test.rb +11 -0
- data/test/test_helper.rb +4 -0
- metadata +146 -0
@@ -0,0 +1,349 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet version="1.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:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:cce11="http://www.sat.gob.mx/ComercioExterior11" xmlns:donat="http://www.sat.gob.mx/donat" xmlns:divisas="http://www.sat.gob.mx/divisas" xmlns:implocal="http://www.sat.gob.mx/implocal" xmlns:leyendasFisc="http://www.sat.gob.mx/leyendasFiscales" xmlns:pfic="http://www.sat.gob.mx/pfic" xmlns:tpe="http://www.sat.gob.mx/TuristaPasajeroExtranjero" xmlns:nomina12="http://www.sat.gob.mx/nomina12" xmlns:registrofiscal="http://www.sat.gob.mx/registrofiscal" xmlns:pagoenespecie="http://www.sat.gob.mx/pagoenespecie" xmlns:aerolineas="http://www.sat.gob.mx/aerolineas" xmlns:valesdedespensa="http://www.sat.gob.mx/valesdedespensa" xmlns:consumodecombustibles="http://www.sat.gob.mx/consumodecombustibles" xmlns:notariospublicos="http://www.sat.gob.mx/notariospublicos" xmlns:vehiculousado="http://www.sat.gob.mx/vehiculousado" xmlns:servicioparcial="http://www.sat.gob.mx/servicioparcialconstruccion" xmlns:decreto="http://www.sat.gob.mx/renovacionysustitucionvehiculos" xmlns:destruccion="http://www.sat.gob.mx/certificadodestruccion" xmlns:obrasarte="http://www.sat.gob.mx/arteantiguedades" xmlns:ine="http://www.sat.gob.mx/ine" xmlns:iedu="http://www.sat.gob.mx/iedu" xmlns:ventavehiculos="http://www.sat.gob.mx/ventavehiculos" xmlns:terceros="http://www.sat.gob.mx/terceros" xmlns:pago10="http://www.sat.gob.mx/Pagos" xmlns:detallista="http://www.sat.gob.mx/detallista">
|
3
|
+
|
4
|
+
<!-- Con el siguiente método se establece que la salida deberá ser en texto -->
|
5
|
+
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
|
6
|
+
<!--
|
7
|
+
En esta sección se define la inclusión de las plantillas de utilerías para colapsar espacios
|
8
|
+
-->
|
9
|
+
<xsl:include href="utilerias.xslt"/>
|
10
|
+
<!--
|
11
|
+
En esta sección se define la inclusión de las demás plantillas de transformación para
|
12
|
+
la generación de las cadenas originales de los complementos fiscales
|
13
|
+
-->
|
14
|
+
<xsl:include href="ecc11.xslt"/>
|
15
|
+
<xsl:include href="donat11.xslt"/>
|
16
|
+
<xsl:include href="divisas.xslt"/>
|
17
|
+
<xsl:include href="implocal.xslt"/>
|
18
|
+
<xsl:include href="leyendasFisc.xslt"/>
|
19
|
+
<xsl:include href="pfic.xslt"/>
|
20
|
+
<xsl:include href="TuristaPasajeroExtranjero.xslt"/>
|
21
|
+
<xsl:include href="nomina12.xslt"/>
|
22
|
+
<xsl:include href="cfdiregistrofiscal.xslt"/>
|
23
|
+
<xsl:include href="pagoenespecie.xslt"/>
|
24
|
+
<xsl:include href="aerolineas.xslt"/>
|
25
|
+
<xsl:include href="valesdedespensa.xslt"/>
|
26
|
+
<xsl:include href="consumodecombustibles.xslt"/>
|
27
|
+
<xsl:include href="notariospublicos.xslt"/>
|
28
|
+
<xsl:include href="vehiculousado.xslt"/>
|
29
|
+
<xsl:include href="servicioparcialconstruccion.xslt"/>
|
30
|
+
<xsl:include href="renovacionysustitucionvehiculos.xslt"/>
|
31
|
+
<xsl:include href="certificadodedestruccion.xslt"/>
|
32
|
+
<xsl:include href="obrasarteantiguedades.xslt"/>
|
33
|
+
<xsl:include href="ComercioExterior11.xslt"/>
|
34
|
+
<xsl:include href="ine11.xslt"/>
|
35
|
+
<xsl:include href="iedu.xslt"/>
|
36
|
+
<xsl:include href="ventavehiculos11.xslt"/>
|
37
|
+
<xsl:include href="terceros11.xslt"/>
|
38
|
+
<xsl:include href="Pagos10.xslt"/>
|
39
|
+
<xsl:include href="detallista.xslt"/>
|
40
|
+
|
41
|
+
|
42
|
+
<!-- Aquí iniciamos el procesamiento de la cadena original con su | inicial y el terminador || -->
|
43
|
+
<xsl:template match="/">|<xsl:apply-templates select="/cfdi:Comprobante"/>||</xsl:template>
|
44
|
+
<!-- Aquí iniciamos el procesamiento de los datos incluidos en el comprobante -->
|
45
|
+
<xsl:template match="cfdi:Comprobante">
|
46
|
+
<!-- Iniciamos el tratamiento de los atributos de comprobante -->
|
47
|
+
<xsl:call-template name="Requerido">
|
48
|
+
<xsl:with-param name="valor" select="./@Version"/>
|
49
|
+
</xsl:call-template>
|
50
|
+
<xsl:call-template name="Opcional">
|
51
|
+
<xsl:with-param name="valor" select="./@Serie"/>
|
52
|
+
</xsl:call-template>
|
53
|
+
<xsl:call-template name="Opcional">
|
54
|
+
<xsl:with-param name="valor" select="./@Folio"/>
|
55
|
+
</xsl:call-template>
|
56
|
+
<xsl:call-template name="Requerido">
|
57
|
+
<xsl:with-param name="valor" select="./@Fecha"/>
|
58
|
+
</xsl:call-template>
|
59
|
+
<xsl:call-template name="Opcional">
|
60
|
+
<xsl:with-param name="valor" select="./@FormaPago"/>
|
61
|
+
</xsl:call-template>
|
62
|
+
<xsl:call-template name="Requerido">
|
63
|
+
<xsl:with-param name="valor" select="./@NoCertificado"/>
|
64
|
+
</xsl:call-template>
|
65
|
+
<xsl:call-template name="Opcional">
|
66
|
+
<xsl:with-param name="valor" select="./@CondicionesDePago"/>
|
67
|
+
</xsl:call-template>
|
68
|
+
<xsl:call-template name="Requerido">
|
69
|
+
<xsl:with-param name="valor" select="./@SubTotal"/>
|
70
|
+
</xsl:call-template>
|
71
|
+
<xsl:call-template name="Opcional">
|
72
|
+
<xsl:with-param name="valor" select="./@Descuento"/>
|
73
|
+
</xsl:call-template>
|
74
|
+
<xsl:call-template name="Requerido">
|
75
|
+
<xsl:with-param name="valor" select="./@Moneda"/>
|
76
|
+
</xsl:call-template>
|
77
|
+
<xsl:call-template name="Opcional">
|
78
|
+
<xsl:with-param name="valor" select="./@TipoCambio"/>
|
79
|
+
</xsl:call-template>
|
80
|
+
<xsl:call-template name="Requerido">
|
81
|
+
<xsl:with-param name="valor" select="./@Total"/>
|
82
|
+
</xsl:call-template>
|
83
|
+
<xsl:call-template name="Requerido">
|
84
|
+
<xsl:with-param name="valor" select="./@TipoDeComprobante"/>
|
85
|
+
</xsl:call-template>
|
86
|
+
<xsl:call-template name="Opcional">
|
87
|
+
<xsl:with-param name="valor" select="./@MetodoPago"/>
|
88
|
+
</xsl:call-template>
|
89
|
+
<xsl:call-template name="Requerido">
|
90
|
+
<xsl:with-param name="valor" select="./@LugarExpedicion"/>
|
91
|
+
</xsl:call-template>
|
92
|
+
<xsl:call-template name="Opcional">
|
93
|
+
<xsl:with-param name="valor" select="./@Confirmacion"/>
|
94
|
+
</xsl:call-template>
|
95
|
+
<!--
|
96
|
+
Llamadas para procesar al los sub nodos del comprobante
|
97
|
+
-->
|
98
|
+
<xsl:apply-templates select="./cfdi:CfdiRelacionados"/>
|
99
|
+
<xsl:apply-templates select="./cfdi:Emisor"/>
|
100
|
+
<xsl:apply-templates select="./cfdi:Receptor"/>
|
101
|
+
<xsl:apply-templates select="./cfdi:Conceptos"/>
|
102
|
+
<xsl:apply-templates select="./cfdi:Impuestos"/>
|
103
|
+
<xsl:for-each select="./cfdi:Complemento">
|
104
|
+
<xsl:apply-templates select="."/>
|
105
|
+
</xsl:for-each>
|
106
|
+
</xsl:template>
|
107
|
+
|
108
|
+
<!-- Manejador de nodos tipo CFDIRelacionados -->
|
109
|
+
<xsl:template match="cfdi:CfdiRelacionados">
|
110
|
+
<!-- Iniciamos el tratamiento de los atributos del CFDIRelacionados -->
|
111
|
+
<xsl:call-template name="Requerido">
|
112
|
+
<xsl:with-param name="valor" select="./@TipoRelacion"/>
|
113
|
+
</xsl:call-template>
|
114
|
+
<xsl:for-each select="./cfdi:CfdiRelacionado">
|
115
|
+
<xsl:call-template name="Requerido">
|
116
|
+
<xsl:with-param name="valor" select="./@UUID"/>
|
117
|
+
</xsl:call-template>
|
118
|
+
</xsl:for-each>
|
119
|
+
</xsl:template>
|
120
|
+
|
121
|
+
<!-- Manejador de nodos tipo Emisor -->
|
122
|
+
<xsl:template match="cfdi:Emisor">
|
123
|
+
<!-- Iniciamos el tratamiento de los atributos del Emisor -->
|
124
|
+
<xsl:call-template name="Requerido">
|
125
|
+
<xsl:with-param name="valor" select="./@Rfc"/>
|
126
|
+
</xsl:call-template>
|
127
|
+
<xsl:call-template name="Opcional">
|
128
|
+
<xsl:with-param name="valor" select="./@Nombre"/>
|
129
|
+
</xsl:call-template>
|
130
|
+
<xsl:call-template name="Requerido">
|
131
|
+
<xsl:with-param name="valor" select="./@RegimenFiscal"/>
|
132
|
+
</xsl:call-template>
|
133
|
+
</xsl:template>
|
134
|
+
|
135
|
+
<!-- Manejador de nodos tipo Receptor -->
|
136
|
+
<xsl:template match="cfdi:Receptor">
|
137
|
+
<!-- Iniciamos el tratamiento de los atributos del Receptor -->
|
138
|
+
<xsl:call-template name="Requerido">
|
139
|
+
<xsl:with-param name="valor" select="./@Rfc"/>
|
140
|
+
</xsl:call-template>
|
141
|
+
<xsl:call-template name="Opcional">
|
142
|
+
<xsl:with-param name="valor" select="./@Nombre"/>
|
143
|
+
</xsl:call-template>
|
144
|
+
<xsl:call-template name="Opcional">
|
145
|
+
<xsl:with-param name="valor" select="./@ResidenciaFiscal"/>
|
146
|
+
</xsl:call-template>
|
147
|
+
<xsl:call-template name="Opcional">
|
148
|
+
<xsl:with-param name="valor" select="./@NumRegIdTrib"/>
|
149
|
+
</xsl:call-template>
|
150
|
+
<xsl:call-template name="Requerido">
|
151
|
+
<xsl:with-param name="valor" select="./@UsoCFDI"/>
|
152
|
+
</xsl:call-template>
|
153
|
+
|
154
|
+
</xsl:template>
|
155
|
+
|
156
|
+
<!-- Manejador de nodos tipo Conceptos -->
|
157
|
+
<xsl:template match="cfdi:Conceptos">
|
158
|
+
<!-- Llamada para procesar los distintos nodos tipo Concepto -->
|
159
|
+
<xsl:for-each select="./cfdi:Concepto">
|
160
|
+
<xsl:apply-templates select="."/>
|
161
|
+
</xsl:for-each>
|
162
|
+
</xsl:template>
|
163
|
+
|
164
|
+
<!--Manejador de nodos tipo Concepto-->
|
165
|
+
<xsl:template match="cfdi:Concepto">
|
166
|
+
<!-- Iniciamos el tratamiento de los atributos del Concepto -->
|
167
|
+
<xsl:call-template name="Requerido">
|
168
|
+
<xsl:with-param name="valor" select="./@ClaveProdServ"/>
|
169
|
+
</xsl:call-template>
|
170
|
+
<xsl:call-template name="Opcional">
|
171
|
+
<xsl:with-param name="valor" select="./@NoIdentificacion"/>
|
172
|
+
</xsl:call-template>
|
173
|
+
<xsl:call-template name="Requerido">
|
174
|
+
<xsl:with-param name="valor" select="./@Cantidad"/>
|
175
|
+
</xsl:call-template>
|
176
|
+
<xsl:call-template name="Requerido">
|
177
|
+
<xsl:with-param name="valor" select="./@ClaveUnidad"/>
|
178
|
+
</xsl:call-template>
|
179
|
+
<xsl:call-template name="Opcional">
|
180
|
+
<xsl:with-param name="valor" select="./@Unidad"/>
|
181
|
+
</xsl:call-template>
|
182
|
+
<xsl:call-template name="Requerido">
|
183
|
+
<xsl:with-param name="valor" select="./@Descripcion"/>
|
184
|
+
</xsl:call-template>
|
185
|
+
<xsl:call-template name="Requerido">
|
186
|
+
<xsl:with-param name="valor" select="./@ValorUnitario"/>
|
187
|
+
</xsl:call-template>
|
188
|
+
<xsl:call-template name="Requerido">
|
189
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
190
|
+
</xsl:call-template>
|
191
|
+
<xsl:call-template name="Opcional">
|
192
|
+
<xsl:with-param name="valor" select="./@Descuento"/>
|
193
|
+
</xsl:call-template>
|
194
|
+
|
195
|
+
<!-- Manejo de sub nodos de información Traslado de Conceptos:Concepto:Impuestos:Traslados-->
|
196
|
+
<xsl:for-each select="./cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado">
|
197
|
+
<xsl:call-template name="Requerido">
|
198
|
+
<xsl:with-param name="valor" select="./@Base"/>
|
199
|
+
</xsl:call-template>
|
200
|
+
<xsl:call-template name="Requerido">
|
201
|
+
<xsl:with-param name="valor" select="./@Impuesto"/>
|
202
|
+
</xsl:call-template>
|
203
|
+
<xsl:call-template name="Requerido">
|
204
|
+
<xsl:with-param name="valor" select="./@TipoFactor"/>
|
205
|
+
</xsl:call-template>
|
206
|
+
<xsl:call-template name="Opcional">
|
207
|
+
<xsl:with-param name="valor" select="./@TasaOCuota"/>
|
208
|
+
</xsl:call-template>
|
209
|
+
<xsl:call-template name="Opcional">
|
210
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
211
|
+
</xsl:call-template>
|
212
|
+
</xsl:for-each>
|
213
|
+
|
214
|
+
<!-- Manejo de sub nodos de Retencion por cada una de los Conceptos:Concepto:Impuestos:Retenciones-->
|
215
|
+
<xsl:for-each select="./cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion">
|
216
|
+
<xsl:call-template name="Requerido">
|
217
|
+
<xsl:with-param name="valor" select="./@Base"/>
|
218
|
+
</xsl:call-template>
|
219
|
+
<xsl:call-template name="Requerido">
|
220
|
+
<xsl:with-param name="valor" select="./@Impuesto"/>
|
221
|
+
</xsl:call-template>
|
222
|
+
<xsl:call-template name="Requerido">
|
223
|
+
<xsl:with-param name="valor" select="./@TipoFactor"/>
|
224
|
+
</xsl:call-template>
|
225
|
+
<xsl:call-template name="Requerido">
|
226
|
+
<xsl:with-param name="valor" select="./@TasaOCuota"/>
|
227
|
+
</xsl:call-template>
|
228
|
+
<xsl:call-template name="Requerido">
|
229
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
230
|
+
</xsl:call-template>
|
231
|
+
</xsl:for-each>
|
232
|
+
|
233
|
+
<!-- Manejo de los distintos sub nodos de información aduanera de forma indistinta a su grado de dependencia -->
|
234
|
+
<xsl:for-each select="./cfdi:InformacionAduanera">
|
235
|
+
<xsl:apply-templates select="."/>
|
236
|
+
</xsl:for-each>
|
237
|
+
|
238
|
+
<!-- Llamada al manejador de nodos de CuentaPredial en caso de existir -->
|
239
|
+
<xsl:if test="./cfdi:CuentaPredial">
|
240
|
+
<xsl:apply-templates select="./cfdi:CuentaPredial"/>
|
241
|
+
</xsl:if>
|
242
|
+
|
243
|
+
<!-- Llamada al manejador de nodos de ComplementoConcepto en caso de existir -->
|
244
|
+
<xsl:if test="./cfdi:ComplementoConcepto">
|
245
|
+
<xsl:apply-templates select="./cfdi:ComplementoConcepto"/>
|
246
|
+
</xsl:if>
|
247
|
+
|
248
|
+
<!-- Llamada al manejador de nodos de Parte en caso de existir -->
|
249
|
+
<xsl:for-each select=".//cfdi:Parte">
|
250
|
+
<xsl:apply-templates select="."/>
|
251
|
+
</xsl:for-each>
|
252
|
+
</xsl:template>
|
253
|
+
|
254
|
+
<!-- Manejador de nodos tipo Información Aduanera -->
|
255
|
+
<xsl:template match="cfdi:InformacionAduanera">
|
256
|
+
<!-- Manejo de los atributos de la información aduanera -->
|
257
|
+
<xsl:call-template name="Requerido">
|
258
|
+
<xsl:with-param name="valor" select="./@NumeroPedimento"/>
|
259
|
+
</xsl:call-template>
|
260
|
+
</xsl:template>
|
261
|
+
|
262
|
+
<!-- Manejador de nodos tipo Información CuentaPredial -->
|
263
|
+
<xsl:template match="cfdi:CuentaPredial">
|
264
|
+
<xsl:call-template name="Requerido">
|
265
|
+
<xsl:with-param name="valor" select="./@Numero"/>
|
266
|
+
</xsl:call-template>
|
267
|
+
</xsl:template>
|
268
|
+
|
269
|
+
<!-- Manejador de nodos tipo ComplementoConcepto -->
|
270
|
+
<xsl:template match="cfdi:ComplementoConcepto">
|
271
|
+
<xsl:for-each select="./*">
|
272
|
+
<xsl:apply-templates select="."/>
|
273
|
+
</xsl:for-each>
|
274
|
+
</xsl:template>
|
275
|
+
|
276
|
+
<!-- Manejador de nodos tipo Parte -->
|
277
|
+
<xsl:template match="cfdi:Parte">
|
278
|
+
<!-- Iniciamos el tratamiento de los atributos de Parte-->
|
279
|
+
<xsl:call-template name="Requerido">
|
280
|
+
<xsl:with-param name="valor" select="./@ClaveProdServ"/>
|
281
|
+
</xsl:call-template>
|
282
|
+
<xsl:call-template name="Opcional">
|
283
|
+
<xsl:with-param name="valor" select="./@NoIdentificacion"/>
|
284
|
+
</xsl:call-template>
|
285
|
+
<xsl:call-template name="Requerido">
|
286
|
+
<xsl:with-param name="valor" select="./@Cantidad"/>
|
287
|
+
</xsl:call-template>
|
288
|
+
<xsl:call-template name="Opcional">
|
289
|
+
<xsl:with-param name="valor" select="./@Unidad"/>
|
290
|
+
</xsl:call-template>
|
291
|
+
<xsl:call-template name="Requerido">
|
292
|
+
<xsl:with-param name="valor" select="./@Descripcion"/>
|
293
|
+
</xsl:call-template>
|
294
|
+
<xsl:call-template name="Opcional">
|
295
|
+
<xsl:with-param name="valor" select="./@ValorUnitario"/>
|
296
|
+
</xsl:call-template>
|
297
|
+
<xsl:call-template name="Opcional">
|
298
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
299
|
+
</xsl:call-template>
|
300
|
+
|
301
|
+
<!-- Manejador de nodos tipo InformacionAduanera-->
|
302
|
+
<xsl:for-each select=".//cfdi:InformacionAduanera">
|
303
|
+
<xsl:apply-templates select="."/>
|
304
|
+
</xsl:for-each>
|
305
|
+
</xsl:template>
|
306
|
+
|
307
|
+
<!-- Manejador de nodos tipo Complemento -->
|
308
|
+
<xsl:template match="cfdi:Complemento">
|
309
|
+
<xsl:for-each select="./*">
|
310
|
+
<xsl:apply-templates select="."/>
|
311
|
+
</xsl:for-each>
|
312
|
+
</xsl:template>
|
313
|
+
|
314
|
+
<!-- Manejador de nodos tipo Domicilio fiscal -->
|
315
|
+
<xsl:template match="cfdi:Impuestos">
|
316
|
+
<!-- Manejo de sub nodos de Retencion por cada una de los Impuestos:Retenciones-->
|
317
|
+
<xsl:for-each select="./cfdi:Retenciones/cfdi:Retencion">
|
318
|
+
<xsl:call-template name="Requerido">
|
319
|
+
<xsl:with-param name="valor" select="./@Impuesto"/>
|
320
|
+
</xsl:call-template>
|
321
|
+
<xsl:call-template name="Requerido">
|
322
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
323
|
+
</xsl:call-template>
|
324
|
+
</xsl:for-each>
|
325
|
+
<!-- Iniciamos el tratamiento de los atributos de TotalImpuestosRetenidos-->
|
326
|
+
<xsl:call-template name="Opcional">
|
327
|
+
<xsl:with-param name="valor" select="./@TotalImpuestosRetenidos"/>
|
328
|
+
</xsl:call-template>
|
329
|
+
<!-- Manejo de sub nodos de información Traslado de Impuestos:Traslados-->
|
330
|
+
<xsl:for-each select="./cfdi:Traslados/cfdi:Traslado">
|
331
|
+
<xsl:call-template name="Requerido">
|
332
|
+
<xsl:with-param name="valor" select="./@Impuesto"/>
|
333
|
+
</xsl:call-template>
|
334
|
+
<xsl:call-template name="Requerido">
|
335
|
+
<xsl:with-param name="valor" select="./@TipoFactor"/>
|
336
|
+
</xsl:call-template>
|
337
|
+
<xsl:call-template name="Requerido">
|
338
|
+
<xsl:with-param name="valor" select="./@TasaOCuota"/>
|
339
|
+
</xsl:call-template>
|
340
|
+
<xsl:call-template name="Requerido">
|
341
|
+
<xsl:with-param name="valor" select="./@Importe"/>
|
342
|
+
</xsl:call-template>
|
343
|
+
</xsl:for-each>
|
344
|
+
<!-- Iniciamos el tratamiento de los atributos de TotalImpuestosTrasladados-->
|
345
|
+
<xsl:call-template name="Opcional">
|
346
|
+
<xsl:with-param name="valor" select="./@TotalImpuestosTrasladados"/>
|
347
|
+
</xsl:call-template>
|
348
|
+
</xsl:template>
|
349
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<xsl:stylesheet version="1.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:destruccion="http://www.sat.gob.mx/certificadodestruccion">
|
3
|
+
<xsl:template match="destruccion:certificadodedestruccion">
|
4
|
+
<!--Manejador de nodos tipo certificadodedestruccion-->
|
5
|
+
<xsl:call-template name="Requerido">
|
6
|
+
<xsl:with-param name="valor" select="./@Version" />
|
7
|
+
</xsl:call-template>
|
8
|
+
<xsl:call-template name="Requerido">
|
9
|
+
<xsl:with-param name="valor" select="./@Serie" />
|
10
|
+
</xsl:call-template>
|
11
|
+
<xsl:call-template name="Requerido">
|
12
|
+
<xsl:with-param name="valor" select="./@NumFolDesVeh" />
|
13
|
+
</xsl:call-template>
|
14
|
+
<!-- Iniciamos el manejo de los nodos dependientes -->
|
15
|
+
<xsl:apply-templates select="./destruccion:VehiculoDestruido" />
|
16
|
+
<xsl:apply-templates select="./destruccion:InformacionAduanera" />
|
17
|
+
</xsl:template>
|
18
|
+
<xsl:template match="destruccion:VehiculoDestruido">
|
19
|
+
<!-- Iniciamos el tratamiento de los atributos de destruccion:VehiculoDestruido-->
|
20
|
+
<xsl:call-template name="Requerido">
|
21
|
+
<xsl:with-param name="valor" select="./@Marca" />
|
22
|
+
</xsl:call-template>
|
23
|
+
<xsl:call-template name="Requerido">
|
24
|
+
<xsl:with-param name="valor" select="./@TipooClase" />
|
25
|
+
</xsl:call-template>
|
26
|
+
<xsl:call-template name="Requerido">
|
27
|
+
<xsl:with-param name="valor" select="./@Año" />
|
28
|
+
</xsl:call-template>
|
29
|
+
<xsl:call-template name="Opcional">
|
30
|
+
<xsl:with-param name="valor" select="./@Modelo" />
|
31
|
+
</xsl:call-template>
|
32
|
+
<xsl:call-template name="Opcional">
|
33
|
+
<xsl:with-param name="valor" select="./@NIV" />
|
34
|
+
</xsl:call-template>
|
35
|
+
<xsl:call-template name="Opcional">
|
36
|
+
<xsl:with-param name="valor" select="./@NumSerie" />
|
37
|
+
</xsl:call-template>
|
38
|
+
<xsl:call-template name="Requerido">
|
39
|
+
<xsl:with-param name="valor" select="./@NumPlacas" />
|
40
|
+
</xsl:call-template>
|
41
|
+
<xsl:call-template name="Opcional">
|
42
|
+
<xsl:with-param name="valor" select="./@NumMotor" />
|
43
|
+
</xsl:call-template>
|
44
|
+
<xsl:call-template name="Requerido">
|
45
|
+
<xsl:with-param name="valor" select="./@NumFolTarjCir" />
|
46
|
+
</xsl:call-template>
|
47
|
+
</xsl:template>
|
48
|
+
<xsl:template match="destruccion:InformacionAduanera">
|
49
|
+
<!-- Iniciamos el tratamiento de los atributos de destruccion:InformaciónAduanera-->
|
50
|
+
<xsl:call-template name="Requerido">
|
51
|
+
<xsl:with-param name="valor" select="./@NumPedImp" />
|
52
|
+
</xsl:call-template>
|
53
|
+
<xsl:call-template name="Requerido">
|
54
|
+
<xsl:with-param name="valor" select="./@Fecha" />
|
55
|
+
</xsl:call-template>
|
56
|
+
<xsl:call-template name="Requerido">
|
57
|
+
<xsl:with-param name="valor" select="./@Aduana" />
|
58
|
+
</xsl:call-template>
|
59
|
+
</xsl:template>
|
60
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet version="1.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:registrofiscal="http://www.sat.gob.mx/registrofiscal">
|
3
|
+
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
|
4
|
+
|
5
|
+
<!-- Manejador de nodos tipo nomina -->
|
6
|
+
<xsl:template match="registrofiscal:CFDIRegistroFiscal">
|
7
|
+
|
8
|
+
<!--Iniciamos el tratamiento de los atributos de RegistroFiscal -->
|
9
|
+
<xsl:call-template name="Requerido">
|
10
|
+
<xsl:with-param name="valor" select="./@Version"/>
|
11
|
+
</xsl:call-template>
|
12
|
+
|
13
|
+
<xsl:call-template name="Requerido">
|
14
|
+
<xsl:with-param name="valor" select="./@Folio"/>
|
15
|
+
</xsl:call-template>
|
16
|
+
|
17
|
+
</xsl:template>
|
18
|
+
|
19
|
+
</xsl:stylesheet>
|