MX-SAT 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|