teodoro 0.56.0 → 0.57.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e15de34067180b221b952505f75640253c5ab1667126954e7eb3f9dab5e478a
4
- data.tar.gz: d78ff284c8a488094819b5299eec6887687b81f9d38ce39e0347aacb46b87bb8
3
+ metadata.gz: 880e4d79d6fc127eecb7e93ed8ccfad69f6e467c5505cb1a0924cc65a55e2ae5
4
+ data.tar.gz: a5a886c7cfc931ed1ed2177015a7f40ca55c975432f437ccf6bbee2609444ff6
5
5
  SHA512:
6
- metadata.gz: 0bb745b415a638e4afcb61dd2c7e1d74954f8f30bc12d7a4b74b077180e9f90084958f8e6550fa9716eebc7b33486f5d36b851ad4157551c09dbb6b8c8668335
7
- data.tar.gz: 64344cc6231ecd2faf36d39cc0f6b320c60cb2e23278b5e2f75ab69a476c76866fbc2d5a130237cdcdc58e974c3e26361823d1d247dc2b4dfafd37e04f6c37a2
6
+ metadata.gz: 2622f92fe7db10ca9fd630a7621a2db8cc54da64330d30c6d0e2dfa4480d26032be9c6892e2c31bf8b6709341313ca49f0cba39e75b70fd13d37f5bed1651285
7
+ data.tar.gz: cd825b593a05f90e5af026ad03be1b48fa207a24c69581c8c5218a9ab21c9b428e6e23df5e4c6179c5d5408b022d93f2756b8df141c2a0faa9e8a829e151cd0d
@@ -48,10 +48,11 @@ module Teodoro
48
48
  end
49
49
 
50
50
  def chaves_valores_do_arquivo_original
51
- @chaves_valores_do_arquivo_original ||=
52
- File
53
- .readlines(caminho)
54
- .to_h { _1.match(/^(.+)=(.*)$/)[1..2] }
51
+ @chaves_valores_do_arquivo_original ||= arquivo_original.chaves_valores
52
+ end
53
+
54
+ def arquivo_original
55
+ Original.new(caminho)
55
56
  end
56
57
 
57
58
  def caminho
@@ -179,5 +180,21 @@ module Teodoro
179
180
  end
180
181
  end
181
182
  end
183
+
184
+ class Original
185
+ def initialize(caminho)
186
+ @caminho = caminho
187
+ end
188
+
189
+ def chaves_valores
190
+ File
191
+ .readlines(caminho)
192
+ .to_h { _1.match(/^(.+)=(.*)$/)[1..2] }
193
+ end
194
+
195
+ private
196
+
197
+ attr_reader :caminho
198
+ end
182
199
  end
183
200
  end
@@ -8,8 +8,7 @@ module Teodoro
8
8
  if retificado?
9
9
  processar_retificacao
10
10
  else
11
- registrar_arquivos_data
12
- salvar_arquivos_data
11
+ processar_inclusao
13
12
  end
14
13
  end
15
14
 
@@ -35,6 +34,11 @@ module Teodoro
35
34
  arquivo_xml_de_retificacao.processar
36
35
  end
37
36
 
37
+ def processar_inclusao
38
+ registrar_arquivos_data
39
+ salvar_arquivos_data
40
+ end
41
+
38
42
  def registrar_arquivos_data
39
43
  arquivos_data.each do |arquivo_data|
40
44
  empresa.arquivos_data.registrar(
@@ -5,6 +5,19 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
+ def processar_inclusao
9
+ validar_existencia_do_contrato_de_trabalho if leiaute_simplificado?
10
+
11
+ super
12
+ end
13
+
14
+ def validar_existencia_do_contrato_de_trabalho
15
+ return if empresa.trabalhadores[cpf_do_trabalhador]
16
+
17
+ puts '', Rainbow('Erro! Evento de início de contrato de trabalho inexistente.').red
18
+ exit
19
+ end
20
+
8
21
  def salvar_arquivos_data
9
22
  super
10
23
 
@@ -6,11 +6,54 @@ module Teodoro
6
6
  private
7
7
 
8
8
  def salvar_arquivos_data
9
+ deletar_arquivo_data_de_alteracao_contratual_original if deletar_arquivo_data_de_alteracao_contratual_original?
10
+
9
11
  super
10
12
 
11
13
  empresa.contratos_de_emprego.registrar_alteracao_contratual(alteracao_contratual)
12
14
  end
13
15
 
16
+ def deletar_arquivo_data_de_alteracao_contratual_original?
17
+ ja_existe_o_arquivo_data_de_alteracao_contratual? && data_dos_efeitos_remuneratorios_diferente?
18
+ end
19
+
20
+ def ja_existe_o_arquivo_data_de_alteracao_contratual?
21
+ File.exist?(caminho_do_arquivo_data_de_alteracao_contratual)
22
+ end
23
+
24
+ def caminho_do_arquivo_data_de_alteracao_contratual
25
+ @caminho_do_arquivo_data_de_alteracao_contratual ||=
26
+ ArquivoData::Caminho.new(
27
+ diretorio: empresa.destino_dos_arquivos_data,
28
+ nome_do_arquivo: leiaute.nome_do_arquivo_data_de_alteracao_contratual
29
+ )
30
+ end
31
+
32
+ def data_dos_efeitos_remuneratorios_diferente?
33
+ data_dos_efeitos_remuneratorios_do_arquivo_data_de_alteracao_contratual_original !=
34
+ data_dos_efeitos_remuneratorios
35
+ end
36
+
37
+ def data_dos_efeitos_remuneratorios_do_arquivo_data_de_alteracao_contratual_original
38
+ arquivo_data_de_alteracao_contratual_original
39
+ .chaves_valores
40
+ .then { _1['AlteracaoContratual_DataEfeito'] }
41
+ &.then { _1.match(%r{^(\d{2})/(\d{2})/(\d{4})$}) }
42
+ &.then { "#{_1[3]}-#{_1[2]}-#{_1[1]}" }
43
+ end
44
+
45
+ def arquivo_data_de_alteracao_contratual_original
46
+ ArquivoData::Original.new(caminho_do_arquivo_data_de_alteracao_contratual)
47
+ end
48
+
49
+ def data_dos_efeitos_remuneratorios
50
+ leiaute.data_dos_efeitos_remuneratorios
51
+ end
52
+
53
+ def deletar_arquivo_data_de_alteracao_contratual_original
54
+ File.delete(caminho_do_arquivo_data_de_alteracao_contratual)
55
+ end
56
+
14
57
  def alteracao_contratual
15
58
  leiaute.alteracao_contratual
16
59
  end
@@ -36,16 +79,11 @@ module Teodoro
36
79
  )
37
80
  end
38
81
 
39
- def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
82
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
40
83
  [
41
84
  Obj.new(
42
85
  operacao: :inclusao,
43
- nome: [
44
- 'TRA',
45
- "[#{cpf_do_trabalhador}]",
46
- "[EPG_#{alteracao_contratual.matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
47
- "-ACO[#{data_da_alteracao.delete('-')}]"
48
- ].join,
86
+ nome: nome_do_arquivo_data_de_alteracao_contratual,
49
87
  itens_do_conteudo: itens_do_conteudo
50
88
  ),
51
89
  Obj.new(
@@ -67,6 +105,19 @@ module Teodoro
67
105
  ]
68
106
  end
69
107
 
108
+ def nome_do_arquivo_data_de_alteracao_contratual
109
+ @nome_do_arquivo_data_de_alteracao_contratual ||= [
110
+ 'TRA',
111
+ "[#{cpf_do_trabalhador}]",
112
+ "[EPG_#{alteracao_contratual.matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
113
+ "-ACO[#{data_da_alteracao.delete('-')}]"
114
+ ].join
115
+ end
116
+
117
+ def data_dos_efeitos_remuneratorios
118
+ @data_dos_efeitos_remuneratorios ||= evento['altContratual/dtEf']
119
+ end
120
+
70
121
  private
71
122
 
72
123
  def cpf_do_trabalhador
@@ -117,7 +168,7 @@ module Teodoro
117
168
  ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
118
169
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
119
170
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
120
- ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
171
+ ['AlteracaoContratual_DataEfeito', data_dos_efeitos_remuneratorios, :data],
121
172
  ['AlteracaoContratual_DescricaoAlteracao', evento['altContratual/dscAlt']],
122
173
  ['IdentificacaoVinculo_Nis', evento['ideVinculo/nisTrab']],
123
174
  ['IdEventoXml', id_do_evento],
@@ -185,7 +236,7 @@ module Teodoro
185
236
  ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
186
237
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
187
238
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
188
- ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
239
+ ['AlteracaoContratual_DataEfeito', data_dos_efeitos_remuneratorios, :data],
189
240
  ['AlteracaoContratual_DescricaoAlteracao', evento['altContratual/dscAlt']],
190
241
  ['IdentificacaoVinculo_Nis', evento['ideVinculo/nisTrab']],
191
242
  ['IdEventoXml', id_do_evento],
@@ -1,3 +1,3 @@
1
1
  module Teodoro
2
- VERSION = '0.56.0'.freeze
2
+ VERSION = '0.57.1'.freeze
3
3
  end
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.56.0
4
+ version: 0.57.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fortes Tecnologia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-14 00:00:00.000000000 Z
11
+ date: 2023-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri