teodoro 0.39.0 → 0.40.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5a897afe9e642a528f1e163bebd14f46f00dc4f80031004dfebdfd02e8d46fc
4
- data.tar.gz: 6b5722613bf91837c20bae75377e34215b0abcd3608d7f7240aad1c7c7f92d8f
3
+ metadata.gz: 29ec7f364493911d10565a2501b275843a19f6bd18a345d96ad595a2c02fa615
4
+ data.tar.gz: 1962eedd713cf5d5d0402fecfd675ee95f93047914625e358d578396320555ac
5
5
  SHA512:
6
- metadata.gz: a881641c155fc3ddf1d5f49992c0fdb06e9617686cc142bd0f2d3cf8d9640e377637a5672e99b08e2f0dd5282914292f3bfd9a49b60728231301f8c21fe2baf4
7
- data.tar.gz: 4f4de69a034b600cc6c44175cc788156d82c8575b909e6ba927030e2da1eb36e06c078cd727a02c85212957d68f0e3cb88315a2d29ee44351bc246dfe51299a4
6
+ metadata.gz: c850788fc616fc813fbdd3659026cdfb057afa316c21bc61e4d32b0a79e03bf2b50d0a258cfad904ba6a2c1cb8dc02b53552c8a102dc2320bfd8dea41c83f614
7
+ data.tar.gz: a822530efec002f1147d9313801dfb1aa657e1b269e924e70dfd6c5ce01dacab147a4472044b6043fa78df7a6274ea7313d60f5d9bd707ce84429291b5cda100
data/lib/teodoro.rb CHANGED
@@ -12,7 +12,7 @@ require_relative 'teodoro/empresa'
12
12
  require_relative 'teodoro/obj'
13
13
 
14
14
  module Teodoro
15
- VERSION = '0.39.0'.freeze
15
+ VERSION = '0.40.3'.freeze
16
16
 
17
17
  CBOs = __FILE__
18
18
  .then { File.dirname(_1) }
@@ -18,7 +18,7 @@ module Teodoro
18
18
  attr_reader :nome
19
19
 
20
20
  def criar
21
- raise caminho if File.exist?(caminho)
21
+ raise 'evento duplicado' if File.exist?(caminho)
22
22
 
23
23
  File.open(caminho, 'w') do
24
24
  _1.puts(conteudo_do_arquivo)
@@ -80,10 +80,14 @@ module Teodoro
80
80
  Console.print "carregando #{nome}.xml..." do
81
81
  evento, recibo = carregar_evento_e_recibo
82
82
 
83
- @retificacao = TIPOS_DE_EVENTO_RETIFICAVEIS.include?(tipo_de_evento) && evento['ideEvento/indRetif'] == '2'
83
+ @retificacao = evento_retificavel? && evento['ideEvento/indRetif'] == '2'
84
84
  @numero_do_recibo_a_retificar = evento['ideEvento/nrRecibo'] if retificacao?
85
85
  @momento_de_processamento_pelo_e_social = recibo['processamento/dhProcessamento']
86
+
87
+ validar_carregamento
86
88
  end
89
+ rescue StandardError => e
90
+ tratar_excecao(e)
87
91
  end
88
92
 
89
93
  def retificacao?
@@ -103,6 +107,8 @@ module Teodoro
103
107
  validar_versao_do_leiaute
104
108
  processar_arquivo
105
109
  end
110
+ rescue StandardError => e
111
+ tratar_excecao(e)
106
112
  end
107
113
 
108
114
  private
@@ -123,10 +129,20 @@ module Teodoro
123
129
  File.read(caminho)
124
130
  end
125
131
 
132
+ def evento_retificavel?
133
+ TIPOS_DE_EVENTO_RETIFICAVEIS.include?(tipo_de_evento)
134
+ end
135
+
126
136
  def tipo_de_evento
127
137
  @tipo_de_evento ||= nome[-6..].delete('-')
128
138
  end
129
139
 
140
+ def validar_carregamento
141
+ return if momento_de_processamento_pelo_e_social
142
+
143
+ raise 'arquivo corrompido (sem data e horário do processamento do evento)'
144
+ end
145
+
130
146
  def validar_versao_do_leiaute
131
147
  raise unless %w[
132
148
  02_04_01
@@ -182,5 +198,11 @@ module Teodoro
182
198
  def xml_do_recibo
183
199
  Nokogiri::XML(xml.css('/eSocial/retornoProcessamentoDownload/recibo/*/*').to_s)
184
200
  end
201
+
202
+ def tratar_excecao(excecao)
203
+ puts caminho
204
+ puts excecao.message
205
+ raise excecao
206
+ end
185
207
  end
186
208
  end
@@ -264,7 +264,7 @@ module Teodoro
264
264
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
265
265
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
266
266
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
267
- ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
267
+ ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadeHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
268
268
  leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
269
269
  leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
270
270
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
@@ -110,6 +110,7 @@ module Teodoro
110
110
  ['dataAdmissao', data_de_admissao, :data],
111
111
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
112
112
  ['InformacoesCeletista_NaturezaAtividade', alteracao_contratual.natureza_da_atividade],
113
+ ['InformacoesCeletista_CnpjSindicatoCategoriaProfissional', evento['altContratual/infoRegimeTrab/infoCeletista/cnpjSindCategProf']],
113
114
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
114
115
  ['VerProc', versao_do_processo_de_emissao_do_evento],
115
116
  ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/infoContrato/remuneracao/undSalFixo']],
@@ -130,7 +131,7 @@ module Teodoro
130
131
  ['InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['altContratual/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
131
132
  ['InformacoesContrato_HorarioContratual_TipoJornada', evento['altContratual/infoContrato/horContratual/tpJornada']],
132
133
  ['InformacoesContrato_HorarioContratual_JornadaTempoParcial', evento['altContratual/infoContrato/horContratual/tmpParc']],
133
- ['InformacoesContrato_HorarioContratual_QuantidadedHorasSemanal', evento['altContratual/infoContrato/horContratual/qtdHrsSem'], :decimal],
134
+ ['InformacoesContrato_HorarioContratual_QuantidadeHorasSemanal', evento['altContratual/infoContrato/horContratual/qtdHrsSem'], :decimal],
134
135
  ['InformacoesContrato_HorarioContratual_DescricaoTipoJornada', evento['altContratual/infoContrato/horContratual/dscTpJorn']],
135
136
  ['InformacoesContrato_CodigoCargo', evento['altContratual/infoContrato/codCargo']],
136
137
  ['InformacoesContrato_DataTermino', evento['altContratual/infoContrato/duracao/dtTerm'], :data]
@@ -185,7 +186,7 @@ module Teodoro
185
186
  ['InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['altContratual/vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
186
187
  ['InformacoesContrato_HorarioContratual_TipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/tpJornada'].then { %w[2 3].include?(_1) ? _1 : 9 }],
187
188
  ['InformacoesContrato_HorarioContratual_JornadaTempoParcial', evento['altContratual/vinculo/infoContrato/horContratual/tmpParc']],
188
- ['InformacoesContrato_HorarioContratual_QuantidadedHorasSemanal', evento['altContratual/vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
189
+ ['InformacoesContrato_HorarioContratual_QuantidadeHorasSemanal', evento['altContratual/vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
189
190
  ['HorarioNoturno', evento['altContratual/vinculo/infoContrato/horContratual/horNoturno']],
190
191
  ['InformacoesContrato_HorarioContratual_DescricaoTipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/dscJorn']],
191
192
  ['InformacoesContrato_CodigoCargo', codigo_do_cargo],
@@ -43,7 +43,11 @@ module Teodoro
43
43
  if inicio_do_afastamento?
44
44
  inicio_do_afastamento['dtIniAfast']
45
45
  else
46
- contrato_de_trabalho.afastamento.data_de_inicio
46
+ contrato_de_trabalho.afastamento.then do
47
+ raise 'término de afastamento sem início de afastamento' unless _1
48
+
49
+ _1.data_de_inicio
50
+ end
47
51
  end
48
52
  end
49
53
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teodoro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.39.0
4
+ version: 0.40.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clavius Tales
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-07 00:00:00.000000000 Z
11
+ date: 2021-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri