MX-SAT 0.0.1

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 (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: