fdis 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.
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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 545c448310aa2a7a50564a7b693ad136fda1af72954fbe162cb7ebff2f067ead
4
+ data.tar.gz: 84b695c1de95272209b66a3f843cf88cfc66dca3bd0a3636fdd14a3ff7e0e2b8
5
+ SHA512:
6
+ metadata.gz: e9ca7836f53d40b62bbb1c4ab6af8f77a3cd77114678af7de3c5e17309fd2837dc44206246293b8a15959733a34048da012abe09a41cf6e582fe5de1b6c85c21
7
+ data.tar.gz: e145d4459b06a8a199454f362e3917ed7a4e886a08df5ac1e23e6543ac68c84845a34ec6914c2376acd1a797906a6d04c8e874b6b4079f85245714f04cd7f364
data/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # Fdis 0.1.0
2
+
3
+ This is a ruby library that helps to interact with the Smarted Web API and the mexican billing system (SAT).
4
+
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'fdis'
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install fdis
21
+
22
+ ## Usage
23
+
24
+ Initialize a new object with your config arguments
25
+
26
+ ```ruby
27
+ # Required arguments
28
+ servide_id = (String) # your dev token
29
+ rfc = (String) # your company rfc
30
+ razon_social = (String) # your company name
31
+ regimen = (String) # example 612
32
+ path_to_key = (String) # the path where the 'example.key' is
33
+ key_passphrase = (String) # password for the .key file
34
+ path_to_cer = (String) # the path where the 'example.cer' is
35
+
36
+ # Optional arguments
37
+ production = (Boolean) # environment, optional, default is -false-
38
+
39
+ # The object
40
+ obj = Fdis::Facturacion.new(production_token, development_token, rfc, razon_social, regimen, path_to_key, key_passphrase, path_to_cer, production)
41
+ ```
42
+
43
+ ## Development
44
+
45
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
46
+
47
+ To install this gem onto your local machine, run `bundle exec rake install`.
48
+
49
+ ## Contributing
50
+
51
+ Bug reports and pull requests are welcome on GitHub at https://github.com/angelpadilla/fdis.
@@ -0,0 +1,181 @@
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:cce11="http://www.sat.gob.mx/ComercioExterior11">
3
+
4
+ <xsl:template match="cce11: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="./@TipoOperacion" />
14
+ </xsl:call-template>
15
+ <xsl:call-template name="Opcional">
16
+ <xsl:with-param name="valor" select="./@ClaveDePedimento" />
17
+ </xsl:call-template>
18
+ <xsl:call-template name="Opcional">
19
+ <xsl:with-param name="valor" select="./@CertificadoOrigen" />
20
+ </xsl:call-template>
21
+ <xsl:call-template name="Opcional">
22
+ <xsl:with-param name="valor" select="./@NumCertificadoOrigen" />
23
+ </xsl:call-template>
24
+ <xsl:call-template name="Opcional">
25
+ <xsl:with-param name="valor" select="./@NumeroExportadorConfiable" />
26
+ </xsl:call-template>
27
+ <xsl:call-template name="Opcional">
28
+ <xsl:with-param name="valor" select="./@Incoterm" />
29
+ </xsl:call-template>
30
+ <xsl:call-template name="Opcional">
31
+ <xsl:with-param name="valor" select="./@Subdivision" />
32
+ </xsl:call-template>
33
+ <xsl:call-template name="Opcional">
34
+ <xsl:with-param name="valor" select="./@Observaciones" />
35
+ </xsl:call-template>
36
+ <xsl:call-template name="Opcional">
37
+ <xsl:with-param name="valor" select="./@TipoCambioUSD" />
38
+ </xsl:call-template>
39
+ <xsl:call-template name="Opcional">
40
+ <xsl:with-param name="valor" select="./@TotalUSD" />
41
+ </xsl:call-template>
42
+
43
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia -->
44
+ <xsl:apply-templates select="./cce11:Emisor" />
45
+ <xsl:for-each select="./cce11:Propietario">
46
+ <xsl:apply-templates select="."/>
47
+ </xsl:for-each>
48
+ <xsl:apply-templates select="./cce11:Receptor" />
49
+ <xsl:for-each select="./cce11:Destinatario">
50
+ <xsl:apply-templates select="."/>
51
+ </xsl:for-each>
52
+ <xsl:apply-templates select="./cce11:Mercancias" />
53
+ </xsl:template>
54
+
55
+ <xsl:template match="cce11:Emisor">
56
+ <!-- Iniciamos el tratamiento de los atributos de cce11:Emisor-->
57
+ <xsl:call-template name="Opcional">
58
+ <xsl:with-param name="valor" select="./@Curp" />
59
+ </xsl:call-template>
60
+
61
+ <xsl:apply-templates select="./cce11:Domicilio" />
62
+
63
+ </xsl:template>
64
+
65
+ <xsl:template match="cce11:Propietario">
66
+ <!-- Tratamiento de los atributos de cce11:Propietario-->
67
+
68
+ <xsl:call-template name="Requerido">
69
+ <xsl:with-param name="valor" select="./@NumRegIdTrib" />
70
+ </xsl:call-template>
71
+ <xsl:call-template name="Requerido">
72
+ <xsl:with-param name="valor" select="./@ResidenciaFiscal" />
73
+ </xsl:call-template>
74
+
75
+ </xsl:template>
76
+
77
+ <xsl:template match="cce11:Receptor">
78
+ <!-- Tratamiento de los atributos de cce11:Receptor-->
79
+
80
+ <xsl:call-template name="Opcional">
81
+ <xsl:with-param name="valor" select="./@NumRegIdTrib" />
82
+ </xsl:call-template>
83
+ <xsl:apply-templates select="./cce11:Domicilio" />
84
+
85
+ </xsl:template>
86
+
87
+ <xsl:template match="cce11:Destinatario">
88
+ <!-- Tratamiento de los atributos de cce11:Destinatario-->
89
+ <xsl:call-template name="Opcional">
90
+ <xsl:with-param name="valor" select="./@NumRegIdTrib" />
91
+ </xsl:call-template>
92
+ <xsl:call-template name="Opcional">
93
+ <xsl:with-param name="valor" select="./@Nombre" />
94
+ </xsl:call-template>
95
+ <!-- Manejo de los nodos dependientes -->
96
+ <xsl:for-each select="./cce11:Domicilio">
97
+ <xsl:apply-templates select="."/>
98
+ </xsl:for-each>
99
+ </xsl:template>
100
+
101
+ <xsl:template match="cce11:Mercancias">
102
+ <!-- Iniciamos el manejo de los nodos dependientes -->
103
+ <xsl:for-each select="./cce11:Mercancia">
104
+ <xsl:apply-templates select="."/>
105
+ </xsl:for-each>
106
+ </xsl:template>
107
+
108
+ <xsl:template match="cce11:Domicilio">
109
+ <!-- Iniciamos el tratamiento de los atributos de cce11:Domicilio-->
110
+ <xsl:call-template name="Requerido">
111
+ <xsl:with-param name="valor" select="./@Calle" />
112
+ </xsl:call-template>
113
+ <xsl:call-template name="Opcional">
114
+ <xsl:with-param name="valor" select="./@NumeroExterior" />
115
+ </xsl:call-template>
116
+ <xsl:call-template name="Opcional">
117
+ <xsl:with-param name="valor" select="./@NumeroInterior" />
118
+ </xsl:call-template>
119
+ <xsl:call-template name="Opcional">
120
+ <xsl:with-param name="valor" select="./@Colonia" />
121
+ </xsl:call-template>
122
+ <xsl:call-template name="Opcional">
123
+ <xsl:with-param name="valor" select="./@Localidad" />
124
+ </xsl:call-template>
125
+ <xsl:call-template name="Opcional">
126
+ <xsl:with-param name="valor" select="./@Referencia" />
127
+ </xsl:call-template>
128
+ <xsl:call-template name="Opcional">
129
+ <xsl:with-param name="valor" select="./@Municipio" />
130
+ </xsl:call-template>
131
+ <xsl:call-template name="Requerido">
132
+ <xsl:with-param name="valor" select="./@Estado" />
133
+ </xsl:call-template>
134
+ <xsl:call-template name="Requerido">
135
+ <xsl:with-param name="valor" select="./@Pais" />
136
+ </xsl:call-template>
137
+ <xsl:call-template name="Requerido">
138
+ <xsl:with-param name="valor" select="./@CodigoPostal" />
139
+ </xsl:call-template>
140
+ </xsl:template>
141
+
142
+ <xsl:template match="cce11:Mercancia">
143
+ <xsl:call-template name="Requerido">
144
+ <xsl:with-param name="valor" select="./@NoIdentificacion" />
145
+ </xsl:call-template>
146
+ <xsl:call-template name="Opcional">
147
+ <xsl:with-param name="valor" select="./@FraccionArancelaria" />
148
+ </xsl:call-template>
149
+ <xsl:call-template name="Opcional">
150
+ <xsl:with-param name="valor" select="./@CantidadAduana" />
151
+ </xsl:call-template>
152
+ <xsl:call-template name="Opcional">
153
+ <xsl:with-param name="valor" select="./@UnidadAduana" />
154
+ </xsl:call-template>
155
+ <xsl:call-template name="Opcional">
156
+ <xsl:with-param name="valor" select="./@ValorUnitarioAduana" />
157
+ </xsl:call-template>
158
+ <xsl:call-template name="Requerido">
159
+ <xsl:with-param name="valor" select="./@ValorDolares" />
160
+ </xsl:call-template>
161
+ <xsl:for-each select="./cce11:DescripcionesEspecificas">
162
+ <xsl:apply-templates select="."/>
163
+ </xsl:for-each>
164
+ </xsl:template>
165
+
166
+ <xsl:template match="cce11:DescripcionesEspecificas">
167
+ <xsl:call-template name="Requerido">
168
+ <xsl:with-param name="valor" select="./@Marca" />
169
+ </xsl:call-template>
170
+ <xsl:call-template name="Opcional">
171
+ <xsl:with-param name="valor" select="./@Modelo" />
172
+ </xsl:call-template>
173
+ <xsl:call-template name="Opcional">
174
+ <xsl:with-param name="valor" select="./@SubModelo" />
175
+ </xsl:call-template>
176
+ <xsl:call-template name="Opcional">
177
+ <xsl:with-param name="valor" select="./@NumeroSerie" />
178
+ </xsl:call-template>
179
+ </xsl:template>
180
+
181
+ </xsl:stylesheet>
@@ -0,0 +1,165 @@
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:pago10="http://www.sat.gob.mx/Pagos">
3
+
4
+ <xsl:template match="pago10:Pagos">
5
+ <!--Manejador de Atributos Pagos-->
6
+ <xsl:call-template name="Requerido">
7
+ <xsl:with-param name="valor" select="./@Version" />
8
+ </xsl:call-template>
9
+
10
+ <!-- Iniciamos el manejo de los elementos hijo en la secuencia -->
11
+ <xsl:for-each select="./pago10:Pago">
12
+ <xsl:apply-templates select="."/>
13
+ </xsl:for-each>
14
+ </xsl:template>
15
+
16
+ <xsl:template match="pago10:Pago">
17
+ <xsl:call-template name="Requerido">
18
+ <xsl:with-param name="valor" select="./@FechaPago" />
19
+ </xsl:call-template>
20
+ <xsl:call-template name="Requerido">
21
+ <xsl:with-param name="valor" select="./@FormaDePagoP" />
22
+ </xsl:call-template>
23
+ <xsl:call-template name="Requerido">
24
+ <xsl:with-param name="valor" select="./@MonedaP" />
25
+ </xsl:call-template>
26
+ <xsl:call-template name="Opcional">
27
+ <xsl:with-param name="valor" select="./@TipoCambioP" />
28
+ </xsl:call-template>
29
+ <xsl:call-template name="Requerido">
30
+ <xsl:with-param name="valor" select="./@Monto" />
31
+ </xsl:call-template>
32
+ <xsl:call-template name="Opcional">
33
+ <xsl:with-param name="valor" select="./@NumOperacion" />
34
+ </xsl:call-template>
35
+ <xsl:call-template name="Opcional">
36
+ <xsl:with-param name="valor" select="./@RfcEmisorCtaOrd" />
37
+ </xsl:call-template>
38
+ <xsl:call-template name="Opcional">
39
+ <xsl:with-param name="valor" select="./@NomBancoOrdExt" />
40
+ </xsl:call-template>
41
+ <xsl:call-template name="Opcional">
42
+ <xsl:with-param name="valor" select="./@CtaOrdenante" />
43
+ </xsl:call-template>
44
+ <xsl:call-template name="Opcional">
45
+ <xsl:with-param name="valor" select="./@RfcEmisorCtaBen" />
46
+ </xsl:call-template>
47
+ <xsl:call-template name="Opcional">
48
+ <xsl:with-param name="valor" select="./@CtaBeneficiario" />
49
+ </xsl:call-template>
50
+ <xsl:call-template name="Opcional">
51
+ <xsl:with-param name="valor" select="./@TipoCadPago" />
52
+ </xsl:call-template>
53
+ <xsl:call-template name="Opcional">
54
+ <xsl:with-param name="valor" select="./@CertPago" />
55
+ </xsl:call-template>
56
+ <xsl:call-template name="Opcional">
57
+ <xsl:with-param name="valor" select="./@CadPago" />
58
+ </xsl:call-template>
59
+ <xsl:call-template name="Opcional">
60
+ <xsl:with-param name="valor" select="./@SelloPago" />
61
+ </xsl:call-template>
62
+
63
+ <!-- Iniciamos el tratamiento de los atributos de pago10:DocumentoRelacionado-->
64
+ <xsl:for-each select="./pago10:DoctoRelacionado">
65
+ <xsl:apply-templates select="."/>
66
+ </xsl:for-each>
67
+ <xsl:for-each select="./pago10:Impuestos">
68
+ <xsl:apply-templates select="."/>
69
+ </xsl:for-each>
70
+ </xsl:template>
71
+
72
+ <xsl:template match="pago10:DoctoRelacionado">
73
+
74
+ <xsl:call-template name="Requerido">
75
+ <xsl:with-param name="valor" select="./@IdDocumento" />
76
+ </xsl:call-template>
77
+
78
+ <xsl:call-template name="Opcional">
79
+ <xsl:with-param name="valor" select="./@Serie" />
80
+ </xsl:call-template>
81
+
82
+ <xsl:call-template name="Opcional">
83
+ <xsl:with-param name="valor" select="./@Folio" />
84
+ </xsl:call-template>
85
+
86
+ <xsl:call-template name="Requerido">
87
+ <xsl:with-param name="valor" select="./@MonedaDR" />
88
+ </xsl:call-template>
89
+
90
+ <xsl:call-template name="Opcional">
91
+ <xsl:with-param name="valor" select="./@TipoCambioDR" />
92
+ </xsl:call-template>
93
+
94
+ <xsl:call-template name="Requerido">
95
+ <xsl:with-param name="valor" select="./@MetodoDePagoDR" />
96
+ </xsl:call-template>
97
+
98
+ <xsl:call-template name="Opcional">
99
+ <xsl:with-param name="valor" select="./@NumParcialidad" />
100
+ </xsl:call-template>
101
+
102
+ <xsl:call-template name="Opcional">
103
+ <xsl:with-param name="valor" select="./@ImpSaldoAnt" />
104
+ </xsl:call-template>
105
+
106
+ <xsl:call-template name="Opcional">
107
+ <xsl:with-param name="valor" select="./@ImpPagado" />
108
+ </xsl:call-template>
109
+
110
+ <xsl:call-template name="Opcional">
111
+ <xsl:with-param name="valor" select="./@ImpSaldoInsoluto" />
112
+ </xsl:call-template>
113
+
114
+ </xsl:template>
115
+
116
+ <xsl:template match="pago10:Impuestos">
117
+ <xsl:call-template name="Opcional">
118
+ <xsl:with-param name="valor" select="./@TotalImpuestosRetenidos" />
119
+ </xsl:call-template>
120
+ <xsl:call-template name="Opcional">
121
+ <xsl:with-param name="valor" select="./@TotalImpuestosTrasladados" />
122
+ </xsl:call-template>
123
+
124
+ <xsl:apply-templates select="./pago10:Retenciones"/>
125
+ <xsl:apply-templates select="./pago10:Traslados"/>
126
+
127
+ </xsl:template>
128
+
129
+ <xsl:template match="pago10:Retenciones">
130
+ <xsl:for-each select="./pago10:Retencion">
131
+ <xsl:apply-templates select="."/>
132
+ </xsl:for-each>
133
+ </xsl:template>
134
+
135
+ <xsl:template match="pago10:Traslados">
136
+ <xsl:for-each select="./pago10:Traslado">
137
+ <xsl:apply-templates select="."/>
138
+ </xsl:for-each>
139
+
140
+ </xsl:template>
141
+
142
+ <xsl:template match="pago10:Retencion">
143
+ <xsl:call-template name="Requerido">
144
+ <xsl:with-param name="valor" select="./@Impuesto" />
145
+ </xsl:call-template>
146
+ <xsl:call-template name="Requerido">
147
+ <xsl:with-param name="valor" select="./@Importe" />
148
+ </xsl:call-template>
149
+ </xsl:template>
150
+
151
+ <xsl:template match="pago10:Traslado">
152
+ <xsl:call-template name="Requerido">
153
+ <xsl:with-param name="valor" select="./@Impuesto" />
154
+ </xsl:call-template>
155
+ <xsl:call-template name="Requerido">
156
+ <xsl:with-param name="valor" select="./@TipoFactor" />
157
+ </xsl:call-template>
158
+ <xsl:call-template name="Requerido">
159
+ <xsl:with-param name="valor" select="./@TasaOCuota" />
160
+ </xsl:call-template>
161
+ <xsl:call-template name="Requerido">
162
+ <xsl:with-param name="valor" select="./@Importe" />
163
+ </xsl:call-template>
164
+ </xsl:template>
165
+ </xsl:stylesheet>