teodoro 0.56.0 → 0.57.0

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: 3e15de34067180b221b952505f75640253c5ab1667126954e7eb3f9dab5e478a
4
- data.tar.gz: d78ff284c8a488094819b5299eec6887687b81f9d38ce39e0347aacb46b87bb8
3
+ metadata.gz: 56a0a9ea08c727e51af1ad7ab25e85f6f44d242d3e56df6546c20af507a3a30b
4
+ data.tar.gz: 2be796ade8a85a2cfb60d5bd481dd6001334bccb74cc60a6d23270d050c602ea
5
5
  SHA512:
6
- metadata.gz: 0bb745b415a638e4afcb61dd2c7e1d74954f8f30bc12d7a4b74b077180e9f90084958f8e6550fa9716eebc7b33486f5d36b851ad4157551c09dbb6b8c8668335
7
- data.tar.gz: 64344cc6231ecd2faf36d39cc0f6b320c60cb2e23278b5e2f75ab69a476c76866fbc2d5a130237cdcdc58e974c3e26361823d1d247dc2b4dfafd37e04f6c37a2
6
+ metadata.gz: b4656a0a0368f47fc95fa17ac979dcdd3713e10215483d2f128d94a30390994bb367e47450936bf038e804bbbb3186db22b011d9a6f7422803f76b5ea870f718
7
+ data.tar.gz: 8405d84219846d91dd01a98436b7cb6b61d16656e0a3295a63b825556ce0c5fc3ee1eaf1bdb48eef5af6167ad8ce693209c0efab8e83fe4b826a23e5a952be23
@@ -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
@@ -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.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fortes Tecnologia