MX-SAT 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +11 -0
  5. data/.yardopts +9 -0
  6. data/Gemfile +34 -0
  7. data/Guardfile +26 -0
  8. data/LICENSE.txt +22 -0
  9. data/MX-SAT.gemspec +26 -0
  10. data/README.md +89 -0
  11. data/REFERENCIAS.md +30 -0
  12. data/Rakefile +15 -0
  13. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/Anexo24_05012015.pdf +0 -0
  14. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/M_1aRMRMF_270215.pdf +0 -0
  15. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/RecomendacionesalSAT.pdf +0 -0
  16. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_bancos.pdf +0 -0
  17. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_metodos_pago.pdf +0 -0
  18. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_monedas.pdf +0 -0
  19. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/codigo_agrupador.pdf +0 -0
  20. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarCtas.pdf +0 -0
  21. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarFolios.pdf +0 -0
  22. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_BalanzaComprobacion.pdf +0 -0
  23. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_CatalogoCuentas.pdf +0 -0
  24. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_PolizasPeriodo.pdf +0 -0
  25. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_SelloDigitalContElec.pdf +0 -0
  26. data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/extracto_reglas.pdf +0 -0
  27. data/data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/balanza_comprobacion.xlsx +0 -0
  28. data/data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/catalogo_cuentas.xlsx +0 -0
  29. data/lib/MX/SAT.rb +8 -0
  30. data/lib/MX/SAT/Contabilidad/balanza_comprobacion.rb +141 -0
  31. data/lib/MX/SAT/Contabilidad/catalogo_cuentas.rb +117 -0
  32. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarCtas_1_1.xsd +215 -0
  33. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarFolios_1_2.xsd +342 -0
  34. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/BalanzaComprobacion_1_1.xsd +160 -0
  35. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogoCuentas_1_1.xsd +157 -0
  36. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogosParaEsqContE.xsd +1398 -0
  37. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/PolizasPeriodo_1_1.xsd +664 -0
  38. data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/SelloDigitalContElec.xsd +80 -0
  39. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarCtas_1_1.xslt +63 -0
  40. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarFolios_1_1.xslt +104 -0
  41. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/BalanzaComprobacion_1_1.xslt +53 -0
  42. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/CatalogoCuentas_1_1.xslt +47 -0
  43. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/PolizasPeriodo_1_1.xslt +176 -0
  44. data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/utilerias.xslt +22 -0
  45. data/lib/MX/SAT/certificacion.rb +36 -0
  46. data/lib/MX/SAT/version.rb +6 -0
  47. data/spec/MX/SAT/contabilidad/balanza_comprobacion_spec.rb +160 -0
  48. data/spec/MX/SAT/contabilidad/catalogo_cuentas_spec.rb +101 -0
  49. data/spec/spec_helper.rb +23 -0
  50. data/spec/support/archivos/xlsx/balanza_comprobacion_complementaria.xlsx +0 -0
  51. data/spec/support/archivos/xlsx/balanza_comprobacion_normal.xlsx +0 -0
  52. data/spec/support/archivos/xlsx/catalogo_cuentas.xlsx +0 -0
  53. data/spec/support/archivos/xml/MTS110304UT4201501BC.xml +8 -0
  54. data/spec/support/archivos/xml/MTS110304UT4201501BN.xml +8 -0
  55. data/spec/support/archivos/xml/MTS110304UT4201501CT.xml +8 -0
  56. metadata +152 -0
@@ -0,0 +1,22 @@
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">
3
+
4
+ <!-- Manejador de datos requeridos -->
5
+ <xsl:template name="Requerido">
6
+ <xsl:param name="valor"/>|<xsl:call-template name="ManejaEspacios">
7
+ <xsl:with-param name="s" select="$valor"/>
8
+ </xsl:call-template>
9
+ </xsl:template>
10
+
11
+ <!-- Manejador de datos opcionales -->
12
+ <xsl:template name="Opcional">
13
+ <xsl:param name="valor"/>
14
+ <xsl:if test="$valor">|<xsl:call-template name="ManejaEspacios"><xsl:with-param name="s" select="$valor"/></xsl:call-template></xsl:if>
15
+ </xsl:template>
16
+
17
+ <!-- Normalizador de espacios en blanco -->
18
+ <xsl:template name="ManejaEspacios">
19
+ <xsl:param name="s"/>
20
+ <xsl:value-of select="normalize-space(string($s))"/>
21
+ </xsl:template>
22
+ </xsl:stylesheet>
@@ -0,0 +1,36 @@
1
+ # encoding: UTF-8
2
+ module MX::SAT
3
+ module Certificacion
4
+
5
+ def self.num_serial_certificado(certificado)
6
+ ::OpenSSL::X509::Certificate.new(certificado).serial.to_s(2)
7
+ end
8
+
9
+ def self.certificado_vigente?(certificado)
10
+ cert = ::OpenSSL::X509::Certificate.new(certificado)
11
+ ::Time.now.between?(cert.not_before, cert.not_after)
12
+ end
13
+
14
+ def self.certificado_b64(certificado)
15
+ cert = OpenSSL::X509::Certificate.new(certificado)
16
+ certb64 = cert.to_pem.sub("-----BEGIN CERTIFICATE-----\n", "").sub("\n-----END CERTIFICATE-----\n","")
17
+ certb64.gsub(/[\n\r]/,"")
18
+ end
19
+
20
+ def self.generar_cadena_original(xml, xslt)
21
+ xml_doc = Nokogiri::XML(xml, nil, 'UTF-8')
22
+ # libxml no puede transformar XSLT 2.0, así que se editaron los XSLTs del SAT
23
+ # cambiando la versión 2.0 a la 1.0 y usando rutas relativas
24
+ xslt = ::Nokogiri::XSLT(File.open(xslt, 'rb')) # Usar File.open para que los includes del XSLT no fallen
25
+ cadena_original = xslt.transform(xml_doc)
26
+ cadena_original.children.first.to_s
27
+ end
28
+
29
+ def self.firma_sha256(cadena, llave_privada, passwd = nil)
30
+ private_key = passwd ? ::OpenSSL::PKey::RSA.new(llave_privada, passwd) : ::OpenSSL::PKey::RSA.new(llave_privada)
31
+ firma = private_key.sign(::OpenSSL::Digest::SHA256.new, cadena)
32
+ ::Base64.encode64(firma).gsub(/[\n\r]/, "")
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ module MX
3
+ module SAT
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
@@ -0,0 +1,160 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
3
+
4
+ describe MX::SAT::Contabilidad::BalanzaComprobacion do
5
+ after :all do
6
+ FileUtils.rm(Dir.glob('*.{xml,zip}'), force: true)
7
+ end
8
+
9
+ let!(:archivo_xls_balanza_comprobacion_normal){
10
+ File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xlsx', 'balanza_comprobacion_normal.xlsx')
11
+ }
12
+ let!(:archivo_xls_balanza_comprobacion_complementaria){
13
+ File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xlsx', 'balanza_comprobacion_complementaria.xlsx')
14
+ }
15
+ let(:balanza){ described_class.new }
16
+ let(:balanza_normal){ b = described_class.new; b.cargar_xslx(archivo_xls_balanza_comprobacion_normal); b }
17
+ let(:balanza_complementaria){ b = described_class.new; b.cargar_xslx(archivo_xls_balanza_comprobacion_complementaria); b }
18
+
19
+
20
+ describe 'Atributos' do
21
+ let!(:balanza){ described_class.new }
22
+
23
+ [:xml, :xml_certificado, :nombre_archivo, :rfc, :año, :mes, :tipo_envio, :fecha_modificacion, :datos, :certificado,
24
+ :llave_privada, :passwd_llave_privada].each do |atributo|
25
+ it "#{atributo}" do
26
+ expect(balanza).to respond_to atributo
27
+ end
28
+ end
29
+ end
30
+
31
+ describe '#nombre_archivo' do
32
+ context 'cuando la balanza de comprobación es normal' do
33
+ it 'tiene el formato RFC+Anio+Mes+B+N (MTS110304UT4201501BN)' do
34
+ expect(balanza_normal.nombre_archivo).to eq "MTS110304UT4201501BN"
35
+ end
36
+ end
37
+
38
+ context 'cuando la balanza de comprobación es complementaria' do
39
+ it 'tiene el formato RFC+Anio+Mes+B+C (MTS110304UT4201501BC)' do
40
+ expect(balanza_complementaria.nombre_archivo).to eq "MTS110304UT4201501BC"
41
+ end
42
+ end
43
+
44
+ context 'cuando la balanza no tiene información' do
45
+ it 'nil' do
46
+ expect(balanza.to_xml).to be_nil
47
+ end
48
+ end
49
+ end
50
+
51
+ describe '#to_xml' do
52
+ context 'cuando la balanza de comprobación es normal' do
53
+ context 'cuando la balanza tiene información' do
54
+ let(:xml_balanza_normal){
55
+ archivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xml', 'MTS110304UT4201501BN.xml')
56
+ File.open(archivo, 'rb') { |f| f.read }
57
+ }
58
+ it 'el xml de la balanza de comprobación normal' do
59
+ expect(balanza_normal.to_xml).to be_equivalent_to(xml_balanza_normal)
60
+ end
61
+ end
62
+ end
63
+
64
+ context 'cuando la balanza de comprobación es complementaria' do
65
+ context 'cuando la balanza tiene información' do
66
+ let(:xml_balanza_complementaria){
67
+ archivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xml', 'MTS110304UT4201501BC.xml')
68
+ File.open(archivo, 'rb') { |f| f.read }
69
+ }
70
+ it 'el xml de la balanza de comprobación normal' do
71
+ expect(balanza_complementaria.to_xml).to be_equivalent_to(xml_balanza_complementaria)
72
+ end
73
+ end
74
+ end
75
+
76
+ context 'cuando la balanza no tiene información' do
77
+ it 'nil' do
78
+ expect(balanza.to_xml).to be_nil
79
+ end
80
+ end
81
+ end
82
+
83
+ describe '#generar_archivo_xml' do
84
+
85
+
86
+ context 'cuando la balanza de comprobación es normal' do
87
+ context 'cuando la balanza tiene información' do
88
+ it 'se crea el archivo XML' do
89
+ balanza_normal.generar_archivo_xml
90
+ expect(File.exist?("#{balanza_normal.nombre_archivo}.xml")).to be_truthy
91
+ end
92
+ end
93
+ end
94
+
95
+ context 'cuando la balanza de comprobación es complementaria' do
96
+ context 'cuando la balanza tiene información' do
97
+ it 'se crea el archivo XML' do
98
+ balanza_complementaria.generar_archivo_xml
99
+ expect(File.exist?("#{balanza_complementaria.nombre_archivo}.xml")).to be_truthy
100
+ end
101
+ end
102
+ end
103
+
104
+ context 'cuando la balanza no tiene información' do
105
+ it 'nil' do
106
+ expect(balanza.to_xml).to be_nil
107
+ end
108
+ end
109
+ end
110
+
111
+ describe '#generar_archivo_zip' do
112
+ context 'cuando la balanza de comprobación es normal' do
113
+ context 'cuando la balanza tiene información' do
114
+ it 'se crea el archivo ZIP' do
115
+ balanza_normal.generar_archivo_zip
116
+ expect(File.exist?("#{balanza_normal.nombre_archivo}.zip")).to be_truthy
117
+ end
118
+ end
119
+ end
120
+
121
+ context 'cuando la balanza de comprobación es complementaria' do
122
+ context 'cuando la balanza tiene información' do
123
+ it 'se crea el archivo ZIP' do
124
+ balanza_complementaria.generar_archivo_zip
125
+ expect(File.exist?("#{balanza_complementaria.nombre_archivo}.zip")).to be_truthy
126
+ end
127
+ end
128
+ end
129
+
130
+ context 'cuando la balanza no tiene información' do
131
+ it 'nil' do
132
+ expect(balanza.to_xml).to be_nil
133
+ end
134
+ end
135
+ end
136
+
137
+ describe '#xml_valido?' do
138
+ context 'cuando la balanza de comprobación es normal' do
139
+ context 'cuando la balanza tiene información' do
140
+ it 'el xml es válido' do
141
+ expect(balanza_normal.xml_valido?).to be_truthy
142
+ end
143
+ end
144
+ end
145
+
146
+ context 'cuando la balanza de comprobación es complementaria' do
147
+ context 'cuando la balanza tiene información' do
148
+ it 'el xml es válido' do
149
+ expect(balanza_complementaria.xml_valido?).to be_truthy
150
+ end
151
+ end
152
+ end
153
+
154
+ context 'cuando la balanza no tiene información' do
155
+ it 'nil' do
156
+ expect(balanza.to_xml).to be_nil
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,101 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
3
+
4
+ describe MX::SAT::Contabilidad::CatalogoCuentas do
5
+ after :all do
6
+ FileUtils.rm(Dir.glob('*.{xml,zip}'), force: true)
7
+ end
8
+
9
+ let!(:archivo_xls_catalogo_cuentas){
10
+ File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xlsx', 'catalogo_cuentas.xlsx')
11
+ }
12
+ let(:catalogo_vacio){ described_class.new }
13
+ let(:catalogo){ c = described_class.new; c.cargar_xslx(archivo_xls_catalogo_cuentas); c }
14
+
15
+ describe 'Atributos' do
16
+ let!(:catalogo_vacio){ described_class.new }
17
+
18
+ [:xml, :xml_certificado, :nombre_archivo, :rfc, :año, :mes, :datos, :certificado, :llave_privada, :passwd_llave_privada].
19
+ each do |atributo|
20
+ it "#{atributo}" do
21
+ expect(catalogo_vacio).to respond_to atributo
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#nombre_archivo' do
27
+ context 'cuando el catálogo de cuentas tiene información' do
28
+ it 'tiene el formato RFC+Anio+Mes+CT (MTS110304UT4201501CT)' do
29
+ expect(catalogo.nombre_archivo).to eq "MTS110304UT4201501CT"
30
+ end
31
+ end
32
+
33
+ context 'cuando el catálogo no tiene información' do
34
+ it 'nil' do
35
+ expect(catalogo_vacio.to_xml).to be_nil
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '#to_xml' do
41
+ context 'cuando el catálogo tiene información' do
42
+ let(:xml_catalogo_cuentas){
43
+ archivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'support', 'archivos', 'xml', 'MTS110304UT4201501CT.xml')
44
+ File.open(archivo, 'rb') { |f| f.read }
45
+ }
46
+ it 'el xml de el catálogo de cuentas normal' do
47
+ expect(catalogo.to_xml).to be_equivalent_to(xml_catalogo_cuentas)
48
+ end
49
+ end
50
+
51
+ context 'cuando el catálogo no tiene información' do
52
+ it 'nil' do
53
+ expect(catalogo_vacio.to_xml).to be_nil
54
+ end
55
+ end
56
+ end
57
+
58
+ describe '#generar_archivo_xml' do
59
+ context 'cuando el catálogo tiene información' do
60
+ it 'se crea el archivo XML' do
61
+ catalogo.generar_archivo_xml
62
+ expect(File.exist?("#{catalogo.nombre_archivo}.xml")).to be_truthy
63
+ end
64
+ end
65
+
66
+ context 'cuando el catálogo no tiene información' do
67
+ it 'nil' do
68
+ expect(catalogo_vacio.to_xml).to be_nil
69
+ end
70
+ end
71
+ end
72
+
73
+ describe '#generar_archivo_zip' do
74
+ context 'cuando el catálogo tiene información' do
75
+ it 'se crea el archivo ZIP' do
76
+ catalogo.generar_archivo_zip
77
+ expect(File.exist?("#{catalogo.nombre_archivo}.zip")).to be_truthy
78
+ end
79
+ end
80
+
81
+ context 'cuando el catálogo no tiene información' do
82
+ it 'nil' do
83
+ expect(catalogo_vacio.to_xml).to be_nil
84
+ end
85
+ end
86
+ end
87
+
88
+ describe '#xml_valido?' do
89
+ context 'cuando el catálogo tiene información' do
90
+ it 'el xml es válido' do
91
+ expect(catalogo.xml_valido?).to be_truthy
92
+ end
93
+ end
94
+
95
+ context 'cuando el catálogo no tiene información' do
96
+ it 'nil' do
97
+ expect(catalogo_vacio.to_xml).to be_nil
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,23 @@
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
3
+
4
+ require 'coveralls'
5
+ Coveralls.wear!
6
+
7
+ require 'pry'
8
+
9
+ require 'rspec/matchers'
10
+ require 'equivalent-xml'
11
+ require 'MX/SAT'
12
+
13
+ RSpec.configure do |config|
14
+ config.expect_with :rspec do |expectations|
15
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
16
+ end
17
+ config.mock_with :rspec do |mocks|
18
+ mocks.verify_partial_doubles = true
19
+ end
20
+
21
+ config.filter_run :focus
22
+ config.run_all_when_everything_filtered = true
23
+ end
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <BCE:Balanza xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:BCE="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion" Version="1.1" RFC="MTS110304UT4" Mes="01" Anio="2015" TipoEnvio="C" FechaModBal="2015-01-31" xsi:schemaLocation="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd">
3
+ <BCE:Ctas NumCta="0101010209" SaldoIni="3000.00" Debe="-1500.01" Haber="1499.99" SaldoFin="1499.99"/>
4
+ <BCE:Ctas NumCta="0101010204" SaldoIni="1000000.22" Debe="-100.00" Haber="200.22" SaldoFin="6666.66"/>
5
+ <BCE:Ctas NumCta="0101010203" SaldoIni="-1500.01" Debe="0" Haber="6666.66" SaldoFin="-1500.01"/>
6
+ <BCE:Ctas NumCta="0101010202" SaldoIni="1499.99" Debe="1499.99" Haber="0" SaldoFin="-100.00"/>
7
+ <BCE:Ctas NumCta="0101010201" SaldoIni="-100.00" Debe="200.22" Haber="-1500.01" SaldoFin="0"/>
8
+ </BCE:Balanza>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <BCE:Balanza xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:BCE="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion" Version="1.1" RFC="MTS110304UT4" Mes="01" Anio="2015" TipoEnvio="N" FechaModBal="2015-01-31" xsi:schemaLocation="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd">
3
+ <BCE:Ctas NumCta="0101010209" SaldoIni="3000.00" Debe="-1500.01" Haber="1499.99" SaldoFin="1499.99"/>
4
+ <BCE:Ctas NumCta="0101010204" SaldoIni="1000000.22" Debe="-100.00" Haber="200.22" SaldoFin="6666.66"/>
5
+ <BCE:Ctas NumCta="0101010203" SaldoIni="-1500.01" Debe="0" Haber="6666.66" SaldoFin="-1500.01"/>
6
+ <BCE:Ctas NumCta="0101010202" SaldoIni="1499.99" Debe="1499.99" Haber="0" SaldoFin="-100.00"/>
7
+ <BCE:Ctas NumCta="0101010201" SaldoIni="-100.00" Debe="200.22" Haber="-1500.01" SaldoFin="0"/>
8
+ </BCE:Balanza>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <catalogocuentas:Catalogo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:catalogocuentas="www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas" Version="1.1" RFC="MTS110304UT4" Mes="01" Anio="2015" xsi:schemaLocation="www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas/CatalogoCuentas_1_1.xsd">
3
+ <catalogocuentas:Ctas CodAgrup="103.01" NumCta="0101010209" Desc="Cuenta 1" Nivel="1" Natur="D"/>
4
+ <catalogocuentas:Ctas CodAgrup="110.01" NumCta="0101010204" Desc="Cuenta 2" SubCtaDe="Cuenta 1" Nivel="2" Natur="A"/>
5
+ <catalogocuentas:Ctas CodAgrup="251.01" NumCta="0101010203" Desc="Cuenta 3" Nivel="1" Natur="D"/>
6
+ <catalogocuentas:Ctas CodAgrup="216.05" NumCta="0101010202" Desc="Súper cuenta 4" SubCtaDe="Cuenta 2" Nivel="3" Natur="A"/>
7
+ <catalogocuentas:Ctas CodAgrup="614.04" NumCta="0101010201" Desc="Cuentáme otra" SubCtaDe="Súper cuenta" Nivel="4" Natur="A"/>
8
+ </catalogocuentas:Catalogo>
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: MX-SAT
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Pablo Ruiz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: simple_xlsx_reader
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubyzip
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Mexican taxpayers utilities / Utilerías para lidiar con Sistema de Administración
56
+ Tributaria (SAT)
57
+ email:
58
+ - pjruiz@maquech.com.mx
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".rspec"
65
+ - ".travis.yml"
66
+ - ".yardopts"
67
+ - Gemfile
68
+ - Guardfile
69
+ - LICENSE.txt
70
+ - MX-SAT.gemspec
71
+ - README.md
72
+ - REFERENCIAS.md
73
+ - Rakefile
74
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/Anexo24_05012015.pdf
75
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/M_1aRMRMF_270215.pdf
76
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/RecomendacionesalSAT.pdf
77
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_bancos.pdf
78
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_metodos_pago.pdf
79
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_monedas.pdf
80
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/codigo_agrupador.pdf
81
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarCtas.pdf
82
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarFolios.pdf
83
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_BalanzaComprobacion.pdf
84
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_CatalogoCuentas.pdf
85
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_PolizasPeriodo.pdf
86
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_SelloDigitalContElec.pdf
87
+ - data/MX/SAT/contabilidad/archivos/v1.0/pdf/extracto_reglas.pdf
88
+ - data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/balanza_comprobacion.xlsx
89
+ - data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/catalogo_cuentas.xlsx
90
+ - lib/MX/SAT.rb
91
+ - lib/MX/SAT/Contabilidad/balanza_comprobacion.rb
92
+ - lib/MX/SAT/Contabilidad/catalogo_cuentas.rb
93
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarCtas_1_1.xsd
94
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarFolios_1_2.xsd
95
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/BalanzaComprobacion_1_1.xsd
96
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogoCuentas_1_1.xsd
97
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogosParaEsqContE.xsd
98
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/PolizasPeriodo_1_1.xsd
99
+ - lib/MX/SAT/Contabilidad/data/v1.1/xsd/SelloDigitalContElec.xsd
100
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarCtas_1_1.xslt
101
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarFolios_1_1.xslt
102
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/BalanzaComprobacion_1_1.xslt
103
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/CatalogoCuentas_1_1.xslt
104
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/PolizasPeriodo_1_1.xslt
105
+ - lib/MX/SAT/Contabilidad/data/v1.1/xslt/utilerias.xslt
106
+ - lib/MX/SAT/certificacion.rb
107
+ - lib/MX/SAT/version.rb
108
+ - spec/MX/SAT/contabilidad/balanza_comprobacion_spec.rb
109
+ - spec/MX/SAT/contabilidad/catalogo_cuentas_spec.rb
110
+ - spec/spec_helper.rb
111
+ - spec/support/archivos/xlsx/balanza_comprobacion_complementaria.xlsx
112
+ - spec/support/archivos/xlsx/balanza_comprobacion_normal.xlsx
113
+ - spec/support/archivos/xlsx/catalogo_cuentas.xlsx
114
+ - spec/support/archivos/xml/MTS110304UT4201501BC.xml
115
+ - spec/support/archivos/xml/MTS110304UT4201501BN.xml
116
+ - spec/support/archivos/xml/MTS110304UT4201501CT.xml
117
+ homepage: https://github.com/Maquech/MX-SAT
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
121
+ post_install_message: "¡Viva México!"
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 1.9.3
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubyforge_project:
137
+ rubygems_version: 2.4.5
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: Mexican taxpayers utilities / Utilerías para lidiar con Sistema de Administración
141
+ Tributaria (SAT)
142
+ test_files:
143
+ - spec/MX/SAT/contabilidad/balanza_comprobacion_spec.rb
144
+ - spec/MX/SAT/contabilidad/catalogo_cuentas_spec.rb
145
+ - spec/spec_helper.rb
146
+ - spec/support/archivos/xlsx/balanza_comprobacion_complementaria.xlsx
147
+ - spec/support/archivos/xlsx/balanza_comprobacion_normal.xlsx
148
+ - spec/support/archivos/xlsx/catalogo_cuentas.xlsx
149
+ - spec/support/archivos/xml/MTS110304UT4201501BC.xml
150
+ - spec/support/archivos/xml/MTS110304UT4201501BN.xml
151
+ - spec/support/archivos/xml/MTS110304UT4201501CT.xml
152
+ has_rdoc: