teodoro 0.55.0 → 0.57.0

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: df911f0b6068acc2d3ef82f2f326771bf85f40242f4e12098199c9bce3c2db99
4
- data.tar.gz: 22465e8af0c7904b0b9c6aeee01081652d14d893ceb46be53af0be84e2524f15
3
+ metadata.gz: 56a0a9ea08c727e51af1ad7ab25e85f6f44d242d3e56df6546c20af507a3a30b
4
+ data.tar.gz: 2be796ade8a85a2cfb60d5bd481dd6001334bccb74cc60a6d23270d050c602ea
5
5
  SHA512:
6
- metadata.gz: 5098ce86f6eb4613c30dedbfc894b149b6950674df60d7e2eacbc349ebac3fb8a72d5485a4ed5b8323a7ddbefe4b05bff831736172474b96708ae5b4902f0a97
7
- data.tar.gz: d4b20266d5613b4ade0635e7d5d6a9c0b556b3c47ed0f7c570174490eac345b42494070601414106441a4c50ee117656731165c439ad8fdd8641125d18070550
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
@@ -5,17 +5,18 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
8
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
9
9
  [
10
10
  Obj.new(
11
11
  operacao: :inclusao,
12
- nome: "PRE[#{cpf_do_trabalhador}]",
12
+ nome: "PRE[#{cpf_do_trabalhador}][#{data_de_admissao.delete('-')}][#{matricula}]",
13
13
  itens_do_conteudo: [
14
14
  ['NrRecibo', recibo['recibo/nrRecibo']],
15
15
  ['CPF', cpf_do_trabalhador],
16
16
  ['Nome', cpf_do_trabalhador.then { "#{_1[0..2]}.#{_1[3..5]}.#{_1[6..8]}-#{_1[9..10]}" }],
17
17
  ['DataNascimento', evento['infoRegPrelim/dtNascto'], :data],
18
- ['DataAdmissao', evento['infoRegPrelim/dtAdm'], :data],
18
+ ['DataAdmissao', data_de_admissao, :data],
19
+ ['Matricula', matricula],
19
20
  ['IdEvento', id_do_evento]
20
21
  ]
21
22
  )
@@ -25,6 +26,14 @@ module Teodoro
25
26
  def cpf_do_trabalhador
26
27
  @cpf_do_trabalhador ||= evento['infoRegPrelim/cpfTrab']
27
28
  end
29
+
30
+ def data_de_admissao
31
+ @data_de_admissao ||= evento['infoRegPrelim/dtAdm']
32
+ end
33
+
34
+ def matricula
35
+ @matricula ||= evento['infoRegPrelim/matricula']
36
+ end
28
37
  end
29
38
  end
30
39
  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.55.0'.freeze
2
+ VERSION = '0.57.0'.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.55.0
4
+ version: 0.57.0
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-06 00:00:00.000000000 Z
11
+ date: 2023-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  description:
84
70
  email:
85
71
  executables: