cfdi40 0.0.1.alfa → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +10 -5
  4. data/README_es-MX.md +84 -0
  5. data/cfdi40.gemspec +2 -2
  6. data/lib/cfdi40/complemento_concepto.rb +12 -0
  7. data/lib/cfdi40/comprobante.rb +225 -20
  8. data/lib/cfdi40/concepto.rb +164 -0
  9. data/lib/cfdi40/conceptos.rb +4 -0
  10. data/lib/cfdi40/emisor.rb +7 -0
  11. data/lib/cfdi40/impuestos.rb +29 -0
  12. data/lib/cfdi40/inst_educativas.rb +17 -0
  13. data/lib/cfdi40/node.rb +155 -0
  14. data/lib/cfdi40/receptor.rb +11 -0
  15. data/lib/cfdi40/sat_csd.rb +89 -0
  16. data/lib/cfdi40/schema_validator.rb +29 -0
  17. data/lib/cfdi40/traslado.rb +9 -0
  18. data/lib/cfdi40/traslados.rb +18 -0
  19. data/lib/cfdi40/version.rb +1 -1
  20. data/lib/cfdi40.rb +14 -0
  21. data/lib/xsd/README.md +34 -0
  22. data/lib/xsd/catCFDI.xsd +162329 -0
  23. data/lib/xsd/cfdv40.xsd +857 -0
  24. data/lib/xsd/iedu.xsd +84 -0
  25. data/lib/xsd/tdCFDI.xsd +157 -0
  26. data/lib/xslt/CartaPorte20.xslt +615 -0
  27. data/lib/xslt/GastosHidrocarburos10.xslt +171 -0
  28. data/lib/xslt/IngresosHidrocarburos.xslt +39 -0
  29. data/lib/xslt/Pagos20.xslt +233 -0
  30. data/lib/xslt/TuristaPasajeroExtranjero.xslt +40 -0
  31. data/lib/xslt/aerolineas.xslt +50 -0
  32. data/lib/xslt/cadenaoriginal.xslt +405 -0
  33. data/lib/xslt/cadenaoriginal_local.xslt +405 -0
  34. data/lib/xslt/certificadodedestruccion.xslt +60 -0
  35. data/lib/xslt/cfdiregistrofiscal.xslt +19 -0
  36. data/lib/xslt/consumodeCombustibles11.xslt +94 -0
  37. data/lib/xslt/detallista.xslt +42 -0
  38. data/lib/xslt/divisas.xslt +13 -0
  39. data/lib/xslt/donat11.xslt +13 -0
  40. data/lib/xslt/iedu.xslt +26 -0
  41. data/lib/xslt/implocal.xslt +39 -0
  42. data/lib/xslt/ine11.xslt +30 -0
  43. data/lib/xslt/leyendasFisc.xslt +28 -0
  44. data/lib/xslt/nomina12.xslt +412 -0
  45. data/lib/xslt/notariospublicos.xslt +301 -0
  46. data/lib/xslt/obrasarteantiguedades.xslt +33 -0
  47. data/lib/xslt/pagoenespecie.xslt +39 -0
  48. data/lib/xslt/pfic.xslt +13 -0
  49. data/lib/xslt/renovacionysustitucionvehiculos.xslt +152 -0
  50. data/lib/xslt/servicioparcialconstruccion.xslt +44 -0
  51. data/lib/xslt/utilerias.xslt +22 -0
  52. data/lib/xslt/valesdedespensa.xslt +70 -0
  53. data/lib/xslt/vehiculousado.xslt +63 -0
  54. metadata +53 -13
data/lib/xsd/iedu.xsd ADDED
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iedu="http://www.sat.gob.mx/iedu" targetNamespace="http://www.sat.gob.mx/iedu" elementFormDefault="qualified" attributeFormDefault="unqualified">
3
+ <xs:element name="instEducativas">
4
+ <xs:annotation>
5
+ <xs:documentation>Complemento concepto para la expedición de comprobantes fiscales por parte de Instituciones Educativas Privadas, para los efectos del artículo primero y cuarto del decreto por el que se otorga un estímulo fiscal a las personas físicas en relación con los pagos por servicios educativos </xs:documentation>
6
+ </xs:annotation>
7
+ <xs:complexType>
8
+ <xs:attribute name="version" use="required" fixed="1.0">
9
+ <xs:annotation>
10
+ <xs:documentation>Atributo requerido con valor prefijado a 1.0 que indica la versión del estándar bajo el que se encuentra expresado el complemento concepto al comprobante.</xs:documentation>
11
+ </xs:annotation>
12
+ <xs:simpleType>
13
+ <xs:restriction base="xs:string">
14
+ <xs:whiteSpace value="collapse"/>
15
+ </xs:restriction>
16
+ </xs:simpleType>
17
+ </xs:attribute>
18
+ <xs:attribute name="nombreAlumno" use="required">
19
+ <xs:annotation>
20
+ <xs:documentation>Atributo requerido para indicar el nombre del Alumno </xs:documentation>
21
+ </xs:annotation>
22
+ <xs:simpleType>
23
+ <xs:restriction base="xs:string"/>
24
+ </xs:simpleType>
25
+ </xs:attribute>
26
+ <xs:attribute name="CURP" type="iedu:tCURP" use="required">
27
+ <xs:annotation>
28
+ <xs:documentation>Atributo requerido para indicar la CURP del alumno de la institución educativa</xs:documentation>
29
+ </xs:annotation>
30
+ </xs:attribute>
31
+ <xs:attribute name="nivelEducativo" use="required">
32
+ <xs:annotation>
33
+ <xs:documentation>Atributo requerido para indicar el nivel educativo que cursa el alumno</xs:documentation>
34
+ </xs:annotation>
35
+ <xs:simpleType>
36
+ <xs:restriction base="xs:string">
37
+ <xs:enumeration value="Preescolar"/>
38
+ <xs:enumeration value="Primaria"/>
39
+ <xs:enumeration value="Secundaria"/>
40
+ <xs:enumeration value="Profesional técnico"/>
41
+ <xs:enumeration value="Bachillerato o su equivalente"/>
42
+ </xs:restriction>
43
+ </xs:simpleType>
44
+ </xs:attribute>
45
+ <xs:attribute name="autRVOE" use="required">
46
+ <xs:annotation>
47
+ <xs:documentation>Atributo requerido para especificar la clave del centro de trabajo o el reconocimiento de validez oficial de estudios en los términos de la Ley General de Educación que tenga la institución educativa privada donde se realiza el pago.</xs:documentation>
48
+ </xs:annotation>
49
+ <xs:simpleType>
50
+ <xs:restriction base="xs:string">
51
+ <xs:minLength value="1"/>
52
+ <xs:whiteSpace value="collapse"/>
53
+ </xs:restriction>
54
+ </xs:simpleType>
55
+ </xs:attribute>
56
+ <xs:attribute name="rfcPago" type="iedu:tRFC" use="optional">
57
+ <xs:annotation>
58
+ <xs:documentation>Atributo opcional para indicar el RFC de quien realiza el pago cuando sea diferente a quien recibe el servicio</xs:documentation>
59
+ </xs:annotation>
60
+ </xs:attribute>
61
+ </xs:complexType>
62
+ </xs:element>
63
+ <xs:simpleType name="tRFC">
64
+ <xs:annotation>
65
+ <xs:documentation>Tipo definido para la expresión de RFC's de contribuyentes. Cabe hacer la mención que debido a las reglas definidas por el estándar XML en el caso de que un RFC dado incluya un caracter ampersand, dicho caracter deberá ser expresado mediante la secuencia de escape especificado como parte del estándar. En la definición del tipo se expresa una longitud mínima y máxima, sin embargo la longitud puede ser redefinida como una extensión según se determina el uso particular</xs:documentation>
66
+ </xs:annotation>
67
+ <xs:restriction base="xs:string">
68
+ <xs:minLength value="12"/>
69
+ <xs:maxLength value="13"/>
70
+ <xs:whiteSpace value="collapse"/>
71
+ <xs:pattern value="[A-Z,Ñ,&amp;]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z,0-9]?[A-Z,0-9]?[0-9,A-Z]?"/>
72
+ </xs:restriction>
73
+ </xs:simpleType>
74
+ <xs:simpleType name="tCURP">
75
+ <xs:annotation>
76
+ <xs:documentation>Tipo definido para la expresión de una CURP. </xs:documentation>
77
+ </xs:annotation>
78
+ <xs:restriction base="xs:string">
79
+ <xs:whiteSpace value="collapse"/>
80
+ <xs:length value="18"/>
81
+ <xs:pattern value="[A-Z][A,E,I,O,U,X][A-Z]{2}[0-9]{2}[0-1][0-9][0-3][0-9][M,H][A-Z]{2}[B,C,D,F,G,H,J,K,L,M,N,Ñ,P,Q,R,S,T,V,W,X,Y,Z]{3}[0-9,A-Z][0-9]"/>
82
+ </xs:restriction>
83
+ </xs:simpleType>
84
+ </xs:schema>
@@ -0,0 +1,157 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <xs:schema xmlns:tdCFDI="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" elementFormDefault="unqualified" attributeFormDefault="unqualified">
3
+ <xs:simpleType name="t_CURP">
4
+ <xs:annotation>
5
+ <xs:documentation>Tipo definido para expresar la Clave Única de Registro de Población (CURP)</xs:documentation>
6
+ </xs:annotation>
7
+ <xs:restriction base="xs:string">
8
+ <xs:whiteSpace value="collapse"/>
9
+ <xs:length value="18"/>
10
+ <xs:pattern value="[A-Z][AEIOUX][A-Z]{2}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[MH]([ABCMTZ]S|[BCJMOT]C|[CNPST]L|[GNQ]T|[GQS]R|C[MH]|[MY]N|[DH]G|NE|VZ|DF|SP)[BCDFGHJ-NP-TV-Z]{3}[0-9A-Z][0-9]"/>
11
+ </xs:restriction>
12
+ </xs:simpleType>
13
+ <xs:simpleType name="t_Importe">
14
+ <xs:annotation>
15
+ <xs:documentation>Tipo definido para expresar importes numéricos con fracción hasta seis decimales. No se permiten valores negativos.</xs:documentation>
16
+ </xs:annotation>
17
+ <xs:restriction base="xs:decimal">
18
+ <xs:fractionDigits value="6"/>
19
+ <xs:minInclusive value="0.000000"/>
20
+ <xs:pattern value="[0-9]{1,18}(.[0-9]{1,6})?"/>
21
+ <xs:whiteSpace value="collapse"/>
22
+ </xs:restriction>
23
+ </xs:simpleType>
24
+ <xs:simpleType name="t_Fecha">
25
+ <xs:annotation>
26
+ <xs:documentation>Tipo definido para la expresión de la fecha. Se expresa en la forma AAAA-MM-DD.</xs:documentation>
27
+ </xs:annotation>
28
+ <xs:restriction base="xs:date">
29
+ <xs:whiteSpace value="collapse"/>
30
+ <xs:pattern value="((19|20)[0-9][0-9])-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])"/>
31
+ </xs:restriction>
32
+ </xs:simpleType>
33
+ <xs:simpleType name="t_ImporteMXN">
34
+ <xs:annotation>
35
+ <xs:documentation>Tipo definido para expresar importes monetarios en moneda nacional MXN con fracción hasta dos decimales. No se permiten valores negativos.</xs:documentation>
36
+ </xs:annotation>
37
+ <xs:restriction base="xs:decimal">
38
+ <xs:fractionDigits value="2"/>
39
+ <xs:minInclusive value="0.00"/>
40
+ <xs:whiteSpace value="collapse"/>
41
+ <xs:pattern value="[0-9]{1,18}(.[0-9]{1,2})?"/>
42
+ </xs:restriction>
43
+ </xs:simpleType>
44
+ <xs:simpleType name="t_CuentaBancaria">
45
+ <xs:annotation>
46
+ <xs:documentation>Tipo definido para expresar la cuenta bancarizada.</xs:documentation>
47
+ </xs:annotation>
48
+ <xs:restriction base="xs:integer">
49
+ <xs:whiteSpace value="collapse"/>
50
+ <xs:pattern value="[0-9]{10,18}"/>
51
+ </xs:restriction>
52
+ </xs:simpleType>
53
+ <xs:simpleType name="t_RFC">
54
+ <xs:annotation>
55
+ <xs:documentation>Tipo definido para expresar claves del Registro Federal de Contribuyentes</xs:documentation>
56
+ </xs:annotation>
57
+ <xs:restriction base="xs:string">
58
+ <xs:whiteSpace value="collapse"/>
59
+ <xs:minLength value="12"/>
60
+ <xs:maxLength value="13"/>
61
+ <xs:pattern value="[A-Z&amp;Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]"/>
62
+ </xs:restriction>
63
+ </xs:simpleType>
64
+ <xs:simpleType name="t_RFC_PM">
65
+ <xs:annotation>
66
+ <xs:documentation>Tipo definido para la expresión de un Registro Federal de Contribuyentes de persona moral.</xs:documentation>
67
+ </xs:annotation>
68
+ <xs:restriction base="xs:string">
69
+ <xs:whiteSpace value="collapse"/>
70
+ <xs:minLength value="12"/>
71
+ <xs:pattern value="[A-Z&amp;Ñ]{3}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]"/>
72
+ </xs:restriction>
73
+ </xs:simpleType>
74
+ <xs:simpleType name="t_RFC_PF">
75
+ <xs:annotation>
76
+ <xs:documentation>Tipo definido para la expresión de un Registro Federal de Contribuyentes de persona física.</xs:documentation>
77
+ </xs:annotation>
78
+ <xs:restriction base="xs:string">
79
+ <xs:whiteSpace value="collapse"/>
80
+ <xs:minLength value="13"/>
81
+ <xs:pattern value="[A-Z&amp;Ñ]{4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]"/>
82
+ </xs:restriction>
83
+ </xs:simpleType>
84
+ <xs:simpleType name="t_FechaHora">
85
+ <xs:annotation>
86
+ <xs:documentation>Tipo definido para la expresión de la fecha y hora. Se expresa en la forma AAAA-MM-DDThh:mm:ss</xs:documentation>
87
+ </xs:annotation>
88
+ <xs:restriction base="xs:dateTime">
89
+ <xs:whiteSpace value="collapse"/>
90
+ <xs:pattern value="((19|20)[0-9][0-9])-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])"/>
91
+ </xs:restriction>
92
+ </xs:simpleType>
93
+ <xs:simpleType name="t_FechaH">
94
+ <xs:annotation>
95
+ <xs:documentation>Tipo definido para la expresión de la fecha y hora. Se expresa en la forma AAAA-MM-DDThh:mm:ss</xs:documentation>
96
+ </xs:annotation>
97
+ <xs:restriction base="xs:dateTime">
98
+ <xs:whiteSpace value="collapse"/>
99
+ <xs:pattern value="(20[1-9][0-9])-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])"/>
100
+ </xs:restriction>
101
+ </xs:simpleType>
102
+ <xs:simpleType name="t_Descrip100">
103
+ <xs:annotation>
104
+ <xs:documentation>Tipo definido para expresar la calle en que está ubicado el domicilio del emisor del comprobante o del destinatario de la mercancía.</xs:documentation>
105
+ </xs:annotation>
106
+ <xs:restriction base="xs:string">
107
+ <xs:minLength value="1"/>
108
+ <xs:maxLength value="100"/>
109
+ <xs:whiteSpace value="collapse"/>
110
+ <xs:pattern value="[^|]{1,100}"/>
111
+ </xs:restriction>
112
+ </xs:simpleType>
113
+ <xs:simpleType name="t_NumeroDomicilio">
114
+ <xs:annotation>
115
+ <xs:documentation>Tipo definido para expresar el número interior o el número exterior en donde se ubica el domicilio del emisor del comprobante o del destinatario de la mercancía.</xs:documentation>
116
+ </xs:annotation>
117
+ <xs:restriction base="xs:string">
118
+ <xs:minLength value="1"/>
119
+ <xs:maxLength value="55"/>
120
+ <xs:whiteSpace value="collapse"/>
121
+ <xs:pattern value="[^|]{1,55}"/>
122
+ </xs:restriction>
123
+ </xs:simpleType>
124
+ <xs:simpleType name="t_Referencia">
125
+ <xs:annotation>
126
+ <xs:documentation>Tipo definido para expresar la referencia geográfica adicional que permita una fácil o precisa ubicación del domicilio del emisor del comprobante o del destinatario de la mercancía, por ejemplo las coordenadas GPS.</xs:documentation>
127
+ </xs:annotation>
128
+ <xs:restriction base="xs:string">
129
+ <xs:minLength value="1"/>
130
+ <xs:maxLength value="250"/>
131
+ <xs:whiteSpace value="collapse"/>
132
+ <xs:pattern value="[^|]{1,250}"/>
133
+ </xs:restriction>
134
+ </xs:simpleType>
135
+ <xs:simpleType name="t_Descrip120">
136
+ <xs:annotation>
137
+ <xs:documentation>Tipo definido para expresar la colonia, localidad o municipio en que está ubicado el domicilio del emisor del comprobante o del destinatario de la mercancía.</xs:documentation>
138
+ </xs:annotation>
139
+ <xs:restriction base="xs:string">
140
+ <xs:minLength value="1"/>
141
+ <xs:maxLength value="120"/>
142
+ <xs:whiteSpace value="collapse"/>
143
+ <xs:pattern value="[^|]{1,120}"/>
144
+ </xs:restriction>
145
+ </xs:simpleType>
146
+ <xs:simpleType name="t_TipoCambio">
147
+ <xs:annotation>
148
+ <xs:documentation>Tipo definido para expresar el tipo de cambio. No se permiten valores negativos.</xs:documentation>
149
+ </xs:annotation>
150
+ <xs:restriction base="xs:decimal">
151
+ <xs:minInclusive value="0.00"/>
152
+ <xs:fractionDigits value="6"/>
153
+ <xs:whiteSpace value="collapse"/>
154
+ <xs:pattern value="[0-9]{1,18}(.[0-9]{1,6})?"/>
155
+ </xs:restriction>
156
+ </xs:simpleType>
157
+ </xs:schema>