fdis 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +51 -0
  3. data/lib/cadena/ComercioExterior11.xslt +181 -0
  4. data/lib/cadena/Pagos10.xslt +165 -0
  5. data/lib/cadena/Pagos20.xsd +532 -0
  6. data/lib/cadena/Pagos20.xslt +233 -0
  7. data/lib/cadena/TuristaPasajeroExtranjero.xslt +40 -0
  8. data/lib/cadena/aerolineas.xslt +50 -0
  9. data/lib/cadena/cadena33.xslt +349 -0
  10. data/lib/cadena/cadenaoriginal_4_0.xslt +405 -0
  11. data/lib/cadena/catCFDI.xsd +162331 -0
  12. data/lib/cadena/certificadodedestruccion.xslt +60 -0
  13. data/lib/cadena/cfdiregistrofiscal.xslt +19 -0
  14. data/lib/cadena/cfdv33.xsd +737 -0
  15. data/lib/cadena/cfdv40.xsd +850 -0
  16. data/lib/cadena/consumodecombustibles.xslt +108 -0
  17. data/lib/cadena/detallista.xslt +42 -0
  18. data/lib/cadena/divisas.xslt +13 -0
  19. data/lib/cadena/donat11.xslt +13 -0
  20. data/lib/cadena/ecc11.xslt +102 -0
  21. data/lib/cadena/iedu.xslt +26 -0
  22. data/lib/cadena/implocal.xslt +39 -0
  23. data/lib/cadena/ine11.xslt +51 -0
  24. data/lib/cadena/leyendasFisc.xslt +28 -0
  25. data/lib/cadena/nomina12.xslt +412 -0
  26. data/lib/cadena/notariospublicos.xslt +301 -0
  27. data/lib/cadena/obrasarteantiguedades.xslt +33 -0
  28. data/lib/cadena/pagoenespecie.xslt +39 -0
  29. data/lib/cadena/pfic.xslt +13 -0
  30. data/lib/cadena/renovacionysustitucionvehiculos.xslt +152 -0
  31. data/lib/cadena/servicioparcialconstruccion.xslt +44 -0
  32. data/lib/cadena/terceros11.xslt +108 -0
  33. data/lib/cadena/utilerias.xslt +22 -0
  34. data/lib/cadena/valesdedespensa.xslt +70 -0
  35. data/lib/cadena/vehiculousado.xslt +63 -0
  36. data/lib/cadena/ventavehiculos11.xslt +53 -0
  37. data/lib/fdis/config.rb +94 -0
  38. data/lib/fdis/facturacion.rb +1028 -0
  39. data/lib/fdis/version.rb +3 -0
  40. data/lib/fdis.rb +17 -0
  41. metadata +139 -0
@@ -0,0 +1,412 @@
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:nomina12="http://www.sat.gob.mx/nomina12">
3
+
4
+ <xsl:template match="nomina12:Nomina">
5
+ <!--Manejador de nodos tipo Nomina-->
6
+ <xsl:call-template name="Requerido">
7
+ <xsl:with-param name="valor" select="./@Version" />
8
+ </xsl:call-template>
9
+ <xsl:call-template name="Requerido">
10
+ <xsl:with-param name="valor" select="./@TipoNomina" />
11
+ </xsl:call-template>
12
+ <xsl:call-template name="Requerido">
13
+ <xsl:with-param name="valor" select="./@FechaPago" />
14
+ </xsl:call-template>
15
+ <xsl:call-template name="Requerido">
16
+ <xsl:with-param name="valor" select="./@FechaInicialPago" />
17
+ </xsl:call-template>
18
+ <xsl:call-template name="Requerido">
19
+ <xsl:with-param name="valor" select="./@FechaFinalPago" />
20
+ </xsl:call-template>
21
+ <xsl:call-template name="Requerido">
22
+ <xsl:with-param name="valor" select="./@NumDiasPagados" />
23
+ </xsl:call-template>
24
+ <xsl:call-template name="Opcional">
25
+ <xsl:with-param name="valor" select="./@TotalPercepciones" />
26
+ </xsl:call-template>
27
+ <xsl:call-template name="Opcional">
28
+ <xsl:with-param name="valor" select="./@TotalDeducciones" />
29
+ </xsl:call-template>
30
+ <xsl:call-template name="Opcional">
31
+ <xsl:with-param name="valor" select="./@TotalOtrosPagos" />
32
+ </xsl:call-template>
33
+
34
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia -->
35
+ <xsl:for-each select="./nomina12:Emisor">
36
+ <xsl:apply-templates select="."/>
37
+ </xsl:for-each>
38
+
39
+ <xsl:for-each select="./nomina12:Receptor">
40
+ <xsl:apply-templates select="."/>
41
+ </xsl:for-each>
42
+
43
+ <xsl:for-each select="./nomina12:Percepciones">
44
+ <xsl:apply-templates select="."/>
45
+ </xsl:for-each>
46
+
47
+ <xsl:for-each select="./nomina12:Deducciones">
48
+ <xsl:apply-templates select="."/>
49
+ </xsl:for-each>
50
+
51
+ <xsl:for-each select="./nomina12:OtrosPagos">
52
+ <xsl:apply-templates select="."/>
53
+ </xsl:for-each>
54
+
55
+ <xsl:for-each select="./nomina12:Incapacidades">
56
+ <xsl:apply-templates select="."/>
57
+ </xsl:for-each>
58
+
59
+ </xsl:template>
60
+
61
+ <xsl:template match="nomina12:Emisor">
62
+ <!--Manejador de nodos tipo nomina12:Emisor-->
63
+ <xsl:call-template name="Opcional">
64
+ <xsl:with-param name="valor" select="./@Curp" />
65
+ </xsl:call-template>
66
+ <xsl:call-template name="Opcional">
67
+ <xsl:with-param name="valor" select="./@RegistroPatronal" />
68
+ </xsl:call-template>
69
+ <xsl:call-template name="Opcional">
70
+ <xsl:with-param name="valor" select="./@RfcPatronOrigen" />
71
+ </xsl:call-template>
72
+
73
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:EntidadSNCF-->
74
+ <xsl:for-each select="./nomina12:EntidadSNCF">
75
+ <xsl:apply-templates select="."/>
76
+ </xsl:for-each>
77
+
78
+ </xsl:template>
79
+
80
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia EntidadSNCF-->
81
+ <xsl:template match="nomina12:EntidadSNCF">
82
+ <!-- Iniciamos el manejo de los nodos dependientes -->
83
+ <xsl:call-template name="Requerido">
84
+ <xsl:with-param name="valor" select="./@OrigenRecurso" />
85
+ </xsl:call-template>
86
+ <xsl:call-template name="Opcional">
87
+ <xsl:with-param name="valor" select="./@MontoRecursoPropio" />
88
+ </xsl:call-template>
89
+
90
+ </xsl:template>
91
+
92
+ <xsl:template match="nomina12:Receptor">
93
+ <!--Manejador de nodos tipo nomina12:Receptor-->
94
+ <xsl:call-template name="Requerido">
95
+ <xsl:with-param name="valor" select="./@Curp" />
96
+ </xsl:call-template>
97
+ <xsl:call-template name="Opcional">
98
+ <xsl:with-param name="valor" select="./@NumSeguridadSocial" />
99
+ </xsl:call-template>
100
+ <xsl:call-template name="Opcional">
101
+ <xsl:with-param name="valor" select="./@FechaInicioRelLaboral" />
102
+ </xsl:call-template>
103
+ <xsl:call-template name="Opcional">
104
+ <xsl:with-param name="valor" select="./@Antigüedad" />
105
+ </xsl:call-template>
106
+ <xsl:call-template name="Requerido">
107
+ <xsl:with-param name="valor" select="./@TipoContrato" />
108
+ </xsl:call-template>
109
+ <xsl:call-template name="Opcional">
110
+ <xsl:with-param name="valor" select="./@Sindicalizado" />
111
+ </xsl:call-template>
112
+ <xsl:call-template name="Opcional">
113
+ <xsl:with-param name="valor" select="./@TipoJornada" />
114
+ </xsl:call-template>
115
+ <xsl:call-template name="Requerido">
116
+ <xsl:with-param name="valor" select="./@TipoRegimen" />
117
+ </xsl:call-template>
118
+ <xsl:call-template name="Requerido">
119
+ <xsl:with-param name="valor" select="./@NumEmpleado" />
120
+ </xsl:call-template>
121
+ <xsl:call-template name="Opcional">
122
+ <xsl:with-param name="valor" select="./@Departamento" />
123
+ </xsl:call-template>
124
+ <xsl:call-template name="Opcional">
125
+ <xsl:with-param name="valor" select="./@Puesto" />
126
+ </xsl:call-template>
127
+ <xsl:call-template name="Opcional">
128
+ <xsl:with-param name="valor" select="./@RiesgoPuesto" />
129
+ </xsl:call-template>
130
+ <xsl:call-template name="Requerido">
131
+ <xsl:with-param name="valor" select="./@PeriodicidadPago" />
132
+ </xsl:call-template>
133
+ <xsl:call-template name="Opcional">
134
+ <xsl:with-param name="valor" select="./@Banco" />
135
+ </xsl:call-template>
136
+ <xsl:call-template name="Opcional">
137
+ <xsl:with-param name="valor" select="./@CuentaBancaria" />
138
+ </xsl:call-template>
139
+ <xsl:call-template name="Opcional">
140
+ <xsl:with-param name="valor" select="./@SalarioBaseCotApor" />
141
+ </xsl:call-template>
142
+ <xsl:call-template name="Opcional">
143
+ <xsl:with-param name="valor" select="./@SalarioDiarioIntegrado" />
144
+ </xsl:call-template>
145
+ <xsl:call-template name="Requerido">
146
+ <xsl:with-param name="valor" select="./@ClaveEntFed" />
147
+ </xsl:call-template>
148
+
149
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:SubContratacion-->
150
+ <xsl:for-each select="./nomina12:SubContratacion">
151
+ <xsl:apply-templates select="."/>
152
+ </xsl:for-each>
153
+
154
+ </xsl:template>
155
+
156
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia SubContratacion-->
157
+ <xsl:template match="nomina12:SubContratacion">
158
+ <!-- Iniciamos el manejo de los nodos dependientes -->
159
+ <xsl:call-template name="Requerido">
160
+ <xsl:with-param name="valor" select="./@RfcLabora" />
161
+ </xsl:call-template>
162
+ <xsl:call-template name="Requerido">
163
+ <xsl:with-param name="valor" select="./@PorcentajeTiempo" />
164
+ </xsl:call-template>
165
+
166
+ </xsl:template>
167
+
168
+ <xsl:template match="nomina12:Percepciones">
169
+ <!--Manejador de nodos tipo nomina12:Percepciones-->
170
+ <xsl:call-template name="Opcional">
171
+ <xsl:with-param name="valor" select="./@TotalSueldos" />
172
+ </xsl:call-template>
173
+ <xsl:call-template name="Opcional">
174
+ <xsl:with-param name="valor" select="./@TotalSeparacionIndemnizacion" />
175
+ </xsl:call-template>
176
+ <xsl:call-template name="Opcional">
177
+ <xsl:with-param name="valor" select="./@TotalJubilacionPensionRetiro" />
178
+ </xsl:call-template>
179
+ <xsl:call-template name="Requerido">
180
+ <xsl:with-param name="valor" select="./@TotalGravado" />
181
+ </xsl:call-template>
182
+ <xsl:call-template name="Requerido">
183
+ <xsl:with-param name="valor" select="./@TotalExento" />
184
+ </xsl:call-template>
185
+
186
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:Percepcion-->
187
+ <xsl:for-each select="./nomina12:Percepcion">
188
+ <xsl:apply-templates select="."/>
189
+ </xsl:for-each>
190
+
191
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:JubilacionPensionRetiro-->
192
+ <xsl:for-each select="./nomina12:JubilacionPensionRetiro">
193
+ <xsl:apply-templates select="."/>
194
+ </xsl:for-each>
195
+
196
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:SeparacionIndemnizacion-->
197
+ <xsl:for-each select="./nomina12:SeparacionIndemnizacion">
198
+ <xsl:apply-templates select="."/>
199
+ </xsl:for-each>
200
+
201
+ </xsl:template>
202
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia Percepcion-->
203
+ <xsl:template match="nomina12:Percepcion">
204
+ <!--Manejador de nodos tipo nomina12:Percepcion-->
205
+ <xsl:call-template name="Requerido">
206
+ <xsl:with-param name="valor" select="./@TipoPercepcion" />
207
+ </xsl:call-template>
208
+ <xsl:call-template name="Requerido">
209
+ <xsl:with-param name="valor" select="./@Clave" />
210
+ </xsl:call-template>
211
+ <xsl:call-template name="Requerido">
212
+ <xsl:with-param name="valor" select="./@Concepto" />
213
+ </xsl:call-template>
214
+ <xsl:call-template name="Requerido">
215
+ <xsl:with-param name="valor" select="./@ImporteGravado" />
216
+ </xsl:call-template>
217
+ <xsl:call-template name="Requerido">
218
+ <xsl:with-param name="valor" select="./@ImporteExento" />
219
+ </xsl:call-template>
220
+
221
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:AccionesOTitulos-->
222
+ <xsl:for-each select="./nomina12:AccionesOTitulos">
223
+ <xsl:apply-templates select="."/>
224
+ </xsl:for-each>
225
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:HorasExtra-->
226
+ <xsl:for-each select="./nomina12:HorasExtra">
227
+ <xsl:apply-templates select="."/>
228
+ </xsl:for-each>
229
+
230
+ </xsl:template>
231
+
232
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia AccionesOTitulos-->
233
+ <xsl:template match="nomina12:AccionesOTitulos">
234
+ <!-- Iniciamos el manejo de los nodos dependientes -->
235
+ <xsl:call-template name="Requerido">
236
+ <xsl:with-param name="valor" select="./@ValorMercado" />
237
+ </xsl:call-template>
238
+ <xsl:call-template name="Requerido">
239
+ <xsl:with-param name="valor" select="./@PrecioAlOtorgarse" />
240
+ </xsl:call-template>
241
+ </xsl:template>
242
+
243
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia HorasExtra-->
244
+ <xsl:template match="nomina12:HorasExtra">
245
+ <!-- Iniciamos el manejo de los nodos dependientes -->
246
+ <xsl:call-template name="Requerido">
247
+ <xsl:with-param name="valor" select="./@Dias" />
248
+ </xsl:call-template>
249
+ <xsl:call-template name="Requerido">
250
+ <xsl:with-param name="valor" select="./@TipoHoras" />
251
+ </xsl:call-template>
252
+ <xsl:call-template name="Requerido">
253
+ <xsl:with-param name="valor" select="./@HorasExtra" />
254
+ </xsl:call-template>
255
+ <xsl:call-template name="Requerido">
256
+ <xsl:with-param name="valor" select="./@ImportePagado" />
257
+ </xsl:call-template>
258
+ </xsl:template>
259
+
260
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia JubilacionPensionRetiro-->
261
+ <xsl:template match="nomina12:JubilacionPensionRetiro">
262
+ <!--Manejador de nodos tipo nomina12:JubilacionPensionRetiro-->
263
+ <xsl:call-template name="Opcional">
264
+ <xsl:with-param name="valor" select="./@TotalUnaExhibicion" />
265
+ </xsl:call-template>
266
+ <xsl:call-template name="Opcional">
267
+ <xsl:with-param name="valor" select="./@TotalParcialidad" />
268
+ </xsl:call-template>
269
+ <xsl:call-template name="Opcional">
270
+ <xsl:with-param name="valor" select="./@MontoDiario" />
271
+ </xsl:call-template>
272
+ <xsl:call-template name="Requerido">
273
+ <xsl:with-param name="valor" select="./@IngresoAcumulable" />
274
+ </xsl:call-template>
275
+ <xsl:call-template name="Requerido">
276
+ <xsl:with-param name="valor" select="./@IngresoNoAcumulable" />
277
+ </xsl:call-template>
278
+ </xsl:template>
279
+
280
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia SeparacionIndemnizacion-->
281
+ <xsl:template match="nomina12:SeparacionIndemnizacion">
282
+ <!--Manejador de nodos tipo nomina12:JubilacionPensionRetiro-->
283
+ <xsl:call-template name="Requerido">
284
+ <xsl:with-param name="valor" select="./@TotalPagado" />
285
+ </xsl:call-template>
286
+ <xsl:call-template name="Requerido">
287
+ <xsl:with-param name="valor" select="./@NumAñosServicio" />
288
+ </xsl:call-template>
289
+ <xsl:call-template name="Requerido">
290
+ <xsl:with-param name="valor" select="./@UltimoSueldoMensOrd" />
291
+ </xsl:call-template>
292
+ <xsl:call-template name="Requerido">
293
+ <xsl:with-param name="valor" select="./@IngresoAcumulable" />
294
+ </xsl:call-template>
295
+ <xsl:call-template name="Requerido">
296
+ <xsl:with-param name="valor" select="./@IngresoNoAcumulable" />
297
+ </xsl:call-template>
298
+ </xsl:template>
299
+
300
+ <xsl:template match="nomina12:Deducciones">
301
+ <!--Manejador de nodos tipo nomina12:Deducciones-->
302
+ <xsl:call-template name="Opcional">
303
+ <xsl:with-param name="valor" select="./@TotalOtrasDeducciones" />
304
+ </xsl:call-template>
305
+ <xsl:call-template name="Opcional">
306
+ <xsl:with-param name="valor" select="./@TotalImpuestosRetenidos" />
307
+ </xsl:call-template>
308
+
309
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:Deduccion-->
310
+ <xsl:for-each select="./nomina12:Deduccion">
311
+ <xsl:apply-templates select="."/>
312
+ </xsl:for-each>
313
+
314
+ </xsl:template>
315
+
316
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia Deduccion-->
317
+ <xsl:template match="nomina12:Deduccion">
318
+ <!--Manejador de nodos tipo nomina12:Deduccion-->
319
+ <xsl:call-template name="Requerido">
320
+ <xsl:with-param name="valor" select="./@TipoDeduccion" />
321
+ </xsl:call-template>
322
+ <xsl:call-template name="Requerido">
323
+ <xsl:with-param name="valor" select="./@Clave" />
324
+ </xsl:call-template>
325
+ <xsl:call-template name="Requerido">
326
+ <xsl:with-param name="valor" select="./@Concepto" />
327
+ </xsl:call-template>
328
+ <xsl:call-template name="Requerido">
329
+ <xsl:with-param name="valor" select="./@Importe" />
330
+ </xsl:call-template>
331
+ </xsl:template>
332
+
333
+ <xsl:template match="nomina12:OtrosPagos">
334
+
335
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:OtroPago-->
336
+ <xsl:for-each select="./nomina12:OtroPago">
337
+ <xsl:apply-templates select="."/>
338
+ </xsl:for-each>
339
+
340
+ </xsl:template>
341
+
342
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia OtroPago-->
343
+ <xsl:template match="nomina12:OtroPago">
344
+ <!--Manejador de nodos tipo nomina12:OtroPago-->
345
+ <xsl:call-template name="Requerido">
346
+ <xsl:with-param name="valor" select="./@TipoOtroPago" />
347
+ </xsl:call-template>
348
+ <xsl:call-template name="Requerido">
349
+ <xsl:with-param name="valor" select="./@Clave" />
350
+ </xsl:call-template>
351
+ <xsl:call-template name="Requerido">
352
+ <xsl:with-param name="valor" select="./@Concepto" />
353
+ </xsl:call-template>
354
+ <xsl:call-template name="Requerido">
355
+ <xsl:with-param name="valor" select="./@Importe" />
356
+ </xsl:call-template>
357
+
358
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:SubsidioAlEmpleo-->
359
+ <xsl:for-each select="./nomina12:SubsidioAlEmpleo">
360
+ <xsl:apply-templates select="."/>
361
+ </xsl:for-each>
362
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:CompensacionSaldosAFavor-->
363
+ <xsl:for-each select="./nomina12:CompensacionSaldosAFavor">
364
+ <xsl:apply-templates select="."/>
365
+ </xsl:for-each>
366
+
367
+ </xsl:template>
368
+
369
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia SubsidioAlEmpleo-->
370
+ <xsl:template match="nomina12:SubsidioAlEmpleo">
371
+ <!--Manejador de nodos tipo nomina12:SubsidioAlEmpleo-->
372
+ <xsl:call-template name="Requerido">
373
+ <xsl:with-param name="valor" select="./@SubsidioCausado" />
374
+ </xsl:call-template>
375
+ </xsl:template>
376
+
377
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia CompensacionSaldosAFavor-->
378
+ <xsl:template match="nomina12:CompensacionSaldosAFavor">
379
+ <!--Manejador de nodos tipo nomina12:CompensacionSaldosAFavor-->
380
+ <xsl:call-template name="Requerido">
381
+ <xsl:with-param name="valor" select="./@SaldoAFavor" />
382
+ </xsl:call-template>
383
+ <xsl:call-template name="Requerido">
384
+ <xsl:with-param name="valor" select="./@Año" />
385
+ </xsl:call-template>
386
+ <xsl:call-template name="Requerido">
387
+ <xsl:with-param name="valor" select="./@RemanenteSalFav" />
388
+ </xsl:call-template>
389
+ </xsl:template>
390
+
391
+ <xsl:template match="nomina12:Incapacidades">
392
+ <!-- Iniciamos el tratamiento de los atributos de nomina12:Incapacidades-->
393
+ <xsl:for-each select="./nomina12:Incapacidad">
394
+ <xsl:apply-templates select="."/>
395
+ </xsl:for-each>
396
+ </xsl:template>
397
+
398
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia Incapacidad-->
399
+ <xsl:template match="nomina12:Incapacidad">
400
+ <!--Manejador de nodos tipo nomina12:Incapacidad-->
401
+ <xsl:call-template name="Requerido">
402
+ <xsl:with-param name="valor" select="./@DiasIncapacidad" />
403
+ </xsl:call-template>
404
+ <xsl:call-template name="Requerido">
405
+ <xsl:with-param name="valor" select="./@TipoIncapacidad" />
406
+ </xsl:call-template>
407
+ <xsl:call-template name="Opcional">
408
+ <xsl:with-param name="valor" select="./@ImporteMonetario" />
409
+ </xsl:call-template>
410
+
411
+ </xsl:template>
412
+ </xsl:stylesheet>