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.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/.rspec +3 -0
- data/.travis.yml +11 -0
- data/.yardopts +9 -0
- data/Gemfile +34 -0
- data/Guardfile +26 -0
- data/LICENSE.txt +22 -0
- data/MX-SAT.gemspec +26 -0
- data/README.md +89 -0
- data/REFERENCIAS.md +30 -0
- data/Rakefile +15 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/Anexo24_05012015.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/M_1aRMRMF_270215.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/RecomendacionesalSAT.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_bancos.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_metodos_pago.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/catalogo_monedas.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/codigo_agrupador.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarCtas.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_AuxiliarFolios.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_BalanzaComprobacion.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_CatalogoCuentas.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_PolizasPeriodo.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/e_SelloDigitalContElec.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/pdf/extracto_reglas.pdf +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/balanza_comprobacion.xlsx +0 -0
- data/data/MX/SAT/contabilidad/archivos/v1.0/plantillas_xls/catalogo_cuentas.xlsx +0 -0
- data/lib/MX/SAT.rb +8 -0
- data/lib/MX/SAT/Contabilidad/balanza_comprobacion.rb +141 -0
- data/lib/MX/SAT/Contabilidad/catalogo_cuentas.rb +117 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarCtas_1_1.xsd +215 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/AuxiliarFolios_1_2.xsd +342 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/BalanzaComprobacion_1_1.xsd +160 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogoCuentas_1_1.xsd +157 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/CatalogosParaEsqContE.xsd +1398 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/PolizasPeriodo_1_1.xsd +664 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xsd/SelloDigitalContElec.xsd +80 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarCtas_1_1.xslt +63 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/AuxiliarFolios_1_1.xslt +104 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/BalanzaComprobacion_1_1.xslt +53 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/CatalogoCuentas_1_1.xslt +47 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/PolizasPeriodo_1_1.xslt +176 -0
- data/lib/MX/SAT/Contabilidad/data/v1.1/xslt/utilerias.xslt +22 -0
- data/lib/MX/SAT/certificacion.rb +36 -0
- data/lib/MX/SAT/version.rb +6 -0
- data/spec/MX/SAT/contabilidad/balanza_comprobacion_spec.rb +160 -0
- data/spec/MX/SAT/contabilidad/catalogo_cuentas_spec.rb +101 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/archivos/xlsx/balanza_comprobacion_complementaria.xlsx +0 -0
- data/spec/support/archivos/xlsx/balanza_comprobacion_normal.xlsx +0 -0
- data/spec/support/archivos/xlsx/catalogo_cuentas.xlsx +0 -0
- data/spec/support/archivos/xml/MTS110304UT4201501BC.xml +8 -0
- data/spec/support/archivos/xml/MTS110304UT4201501BN.xml +8 -0
- data/spec/support/archivos/xml/MTS110304UT4201501CT.xml +8 -0
- 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,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
|
data/spec/spec_helper.rb
ADDED
|
@@ -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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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:
|