teodoro 0.2.1 → 0.3.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: 8e0e7936bf18da7baec67a376680936534f02994e00a5de2efac44df2d7dd87b
4
- data.tar.gz: 013300c8ce8be341f9dad9577c32b7f64988d05188dbbed01b99fc929a47c598
3
+ metadata.gz: 2e6c7d2702336deb603b6bf1af61cfcb1cb3dc0c7e51c4d3fc7aa9af64dcebc6
4
+ data.tar.gz: 6168b994e77d309e4851373489f17b9e552f18a7d00f13cecd7a075be6c481d6
5
5
  SHA512:
6
- metadata.gz: 8d2c71bdbac95f6c53d6e1b721d16757557f49afce15ac49b1a8ccb3cf53890df02a9f422cce5ed52bfd59b8d9fa5d034f44ced4d1772b1782d16f8589abe052
7
- data.tar.gz: '074959274a36a5b8c1d171e61cd3cbafb047e74972c1162f6e833de4e5f148173a7cc026ffc8bcf9fc997379b815a92bf9e9fe03d099a07a45dfecb1a80ae49f'
6
+ metadata.gz: 753c9e372d0186e738cd617cbe541c21f969d11c90f6f9e5b01af5369e430d361d9f1aba9204809a2cebd35bd00c6b711a5652930fc995f1090da9d132f29202
7
+ data.tar.gz: 4033bae8e9b865508a384958a42c5c5f5331c9c694b9460b7ad211b88a2560c587fafb3a55dfa8c3cb93f427bae6473b8322f9402bcc4dc60ef1f6a958d27679
@@ -122,8 +122,10 @@ module Teodoro
122
122
  end
123
123
 
124
124
  class ContratosDeEmprego
125
- def <<(contrato)
126
- contratos_por_matricula[contrato.matricula] = contrato
125
+ def registrar_admissao(admissao)
126
+ Contrato.new(**admissao).then do
127
+ contratos_por_matricula[_1.matricula] = _1
128
+ end
127
129
  end
128
130
 
129
131
  def [](matricula)
@@ -132,8 +134,7 @@ module Teodoro
132
134
 
133
135
  def *(cpf_do_trabalhador:, data:)
134
136
  contratos
135
- .select { _1.cpf_do_trabalhador == cpf_do_trabalhador }
136
- .select { _1.data_de_admissao <= data } # data de rescisao
137
+ .select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
137
138
  .sort_by(&:data_de_admissao)
138
139
  end
139
140
 
@@ -150,25 +151,50 @@ module Teodoro
150
151
  def contratos
151
152
  contratos_por_matricula.values
152
153
  end
154
+
155
+ class Contrato
156
+ private
157
+
158
+ def initialize(matricula:, data_de_admissao:, categoria_do_trabalhador:, cpf_do_trabalhador:, recibo:)
159
+ @matricula = matricula
160
+ @data_de_admissao = data_de_admissao
161
+ @categoria_do_trabalhador = categoria_do_trabalhador
162
+ @cpf_do_trabalhador = cpf_do_trabalhador
163
+ @recibo = recibo
164
+ end
165
+
166
+ attr_reader :data_de_desligamento
167
+
168
+ public
169
+
170
+ attr_reader :matricula, :data_de_admissao, :categoria_do_trabalhador, :cpf_do_trabalhador, :recibo
171
+
172
+ attr_writer :data_de_desligamento
173
+
174
+ def ativo?(data)
175
+ data_de_admissao <= data && (!data_de_desligamento || data_de_desligamento >= data)
176
+ end
177
+ end
153
178
  end
154
179
 
155
180
  class ContratosDeTrabalhoSemVinculo
156
- def <<(contrato)
157
- contratos << contrato
181
+ def registrar_inicio_de_contrato(inicio_de_contrato)
182
+ contratos << Contrato.new(**inicio_de_contrato)
158
183
  end
159
184
 
160
185
  def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
161
186
  contratos
162
- .select { _1.cpf_do_trabalhador == cpf_do_trabalhador }
163
- .select { _1.categoria_do_trabalhador == categoria_do_trabalhador}
164
- .select { _1.data_de_inicio <= data }
187
+ .select {
188
+ _1.cpf_do_trabalhador == cpf_do_trabalhador &&
189
+ _1.categoria_do_trabalhador == categoria_do_trabalhador &&
190
+ _1.ativo?(data)
191
+ }
165
192
  .max_by(&:data_de_inicio)
166
193
  end
167
194
 
168
195
  def *(cpf_do_trabalhador:, data:)
169
196
  contratos
170
- .select { _1.cpf_do_trabalhador == cpf_do_trabalhador }
171
- .select { _1.data_de_inicio <= data } # FIXME: Tales data de termino
197
+ .select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
172
198
  .sort_by(&:data_de_inicio)
173
199
  end
174
200
 
@@ -181,6 +207,29 @@ module Teodoro
181
207
  def contratos
182
208
  @contratos ||= []
183
209
  end
210
+
211
+ class Contrato
212
+ private
213
+
214
+ def initialize(cpf_do_trabalhador:, categoria_do_trabalhador:, data_de_inicio:, recibo:)
215
+ @cpf_do_trabalhador = cpf_do_trabalhador
216
+ @categoria_do_trabalhador = categoria_do_trabalhador
217
+ @data_de_inicio = data_de_inicio
218
+ @recibo = recibo
219
+ end
220
+
221
+ attr_reader :data_do_termino
222
+
223
+ public
224
+
225
+ attr_reader :cpf_do_trabalhador, :categoria_do_trabalhador, :data_de_inicio, :recibo
226
+
227
+ attr_writer :data_do_termino
228
+
229
+ def ativo?(data)
230
+ data_de_inicio <= data && (!data_do_termino || data_do_termino >= data)
231
+ end
232
+ end
184
233
  end
185
234
  end
186
235
  end
@@ -8,7 +8,7 @@ module Teodoro
8
8
 
9
9
  super
10
10
 
11
- registrar_contrato_de_emprego
11
+ registrar_admissao
12
12
  end
13
13
 
14
14
  private
@@ -17,8 +17,12 @@ module Teodoro
17
17
  contratos_de_emprego.remover(numero_do_recibo_a_retificar)
18
18
  end
19
19
 
20
- def registrar_contrato_de_emprego
21
- contratos_de_emprego << Obj.new(
20
+ def contratos_de_emprego
21
+ empresa.contratos_de_emprego
22
+ end
23
+
24
+ def registrar_admissao
25
+ contratos_de_emprego.registrar_admissao(
22
26
  matricula: matricula_do_trabalhador,
23
27
  data_de_admissao: data_de_admissao,
24
28
  categoria_do_trabalhador: categoria_do_trabalhador,
@@ -27,10 +31,6 @@ module Teodoro
27
31
  )
28
32
  end
29
33
 
30
- def contratos_de_emprego
31
- empresa.contratos_de_emprego
32
- end
33
-
34
34
  def data_de_admissao
35
35
  @data_de_admissao ||= evento['evtAdmissao/vinculo/infoRegimeTrab/infoCeletista/dtAdm']
36
36
  end
@@ -3,10 +3,30 @@ module Teodoro
3
3
  class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
- # FIXME: Tales registrar na empresa
6
+ def processar
7
+ super
8
+
9
+ registrar_desligamento
10
+ end
7
11
 
8
12
  private
9
13
 
14
+ def registrar_desligamento
15
+ contrato_de_emprego.data_de_desligamento = data_de_desligamento
16
+ end
17
+
18
+ def contrato_de_emprego
19
+ @contrato_de_emprego ||= contratos_de_emprego[matricula_do_trabalhador]
20
+ end
21
+
22
+ def contratos_de_emprego
23
+ empresa.contratos_de_emprego
24
+ end
25
+
26
+ def data_de_desligamento
27
+ @data_de_desligamento ||= evento['evtDeslig/infoDeslig/dtDeslig']
28
+ end
29
+
10
30
  def noh_principal_do_evento
11
31
  'evtDeslig'
12
32
  end
@@ -28,14 +48,6 @@ module Teodoro
28
48
  contrato_de_emprego.data_de_admissao
29
49
  end
30
50
 
31
- def contrato_de_emprego
32
- @contrato_de_emprego ||= contratos_de_emprego[matricula_do_trabalhador]
33
- end
34
-
35
- def contratos_de_emprego
36
- empresa.contratos_de_emprego
37
- end
38
-
39
51
  def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
40
52
  [
41
53
  # rubocop:disable Layout/LineLength
@@ -44,7 +56,7 @@ module Teodoro
44
56
  ['ESX_CATEGORIA'],
45
57
  %w[ESX_SEMVINCULO 0],
46
58
  ['ESX_DATAADMISSAO'],
47
- ['ESX_DATADESLIGAMENTO', evento['evtDeslig/infoDeslig/dtDeslig']],
59
+ ['ESX_DATADESLIGAMENTO', data_de_desligamento],
48
60
  ['ESX_INFOWEB_RESCISAO_IDEDMDEV', identificador_do_demonstrativo],
49
61
  ['ESX_INFOWEB_RESCISAO_RECIBO', numero_do_recibo],
50
62
  ['ESX_INFOWEB_RESCISAO_MOTIVO', evento['evtDeslig/infoDeslig/mtvDeslig']],
@@ -4,21 +4,21 @@ module Teodoro
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
6
  def processar
7
- remover_registro_do_contrato_de_trabalhador_sem_vinculo if retificacao?
7
+ remover_registro_do_contrato_de_trabalho if retificacao?
8
8
 
9
9
  super
10
10
 
11
- registrar_contrato_de_trabalhador_sem_vinculo
11
+ registrar_inicio_de_contrato
12
12
  end
13
13
 
14
14
  private
15
15
 
16
- def remover_registro_do_contrato_de_trabalhador_sem_vinculo
16
+ def remover_registro_do_contrato_de_trabalho
17
17
  contratos_de_trabalho_sem_vinculo.remover(numero_do_recibo_a_retificar)
18
18
  end
19
19
 
20
- def registrar_contrato_de_trabalhador_sem_vinculo
21
- contratos_de_trabalho_sem_vinculo << Obj.new(
20
+ def registrar_inicio_de_contrato
21
+ contratos_de_trabalho_sem_vinculo.registrar_inicio_de_contrato(
22
22
  cpf_do_trabalhador: cpf_do_trabalhador,
23
23
  categoria_do_trabalhador: categoria_do_trabalhador,
24
24
  data_de_inicio: data_de_inicio,
@@ -3,10 +3,34 @@ module Teodoro
3
3
  class ArquivoS2399 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
- # FIXME: Tales registrar termino na empresa
6
+ def processar
7
+ super
8
+
9
+ registrar_termino_do_contrato
10
+ end
7
11
 
8
12
  private
9
13
 
14
+ def registrar_termino_do_contrato
15
+ contrato_de_trabalho.data_do_termino = data_do_termino
16
+ end
17
+
18
+ def contrato_de_trabalho
19
+ contratos_de_trabalho_sem_vinculo[
20
+ cpf_do_trabalhador: cpf_do_trabalhador,
21
+ categoria_do_trabalhador: categoria_do_trabalhador,
22
+ data: data_do_termino
23
+ ]
24
+ end
25
+
26
+ def contratos_de_trabalho_sem_vinculo
27
+ empresa.contratos_de_trabalho_sem_vinculo
28
+ end
29
+
30
+ def data_do_termino
31
+ @data_do_termino ||= evento['evtTSVTermino/infoTSVTermino/dtTerm']
32
+ end
33
+
10
34
  def noh_principal_do_evento
11
35
  'evtTSVTermino'
12
36
  end
@@ -28,22 +52,6 @@ module Teodoro
28
52
  contrato_de_trabalho.data_de_inicio
29
53
  end
30
54
 
31
- def contrato_de_trabalho
32
- contratos_de_trabalho_sem_vinculo[
33
- cpf_do_trabalhador: cpf_do_trabalhador,
34
- categoria_do_trabalhador: categoria_do_trabalhador,
35
- data: data_do_termino
36
- ]
37
- end
38
-
39
- def contratos_de_trabalho_sem_vinculo
40
- empresa.contratos_de_trabalho_sem_vinculo
41
- end
42
-
43
- def data_do_termino
44
- @data_do_termino ||= evento['evtTSVTermino/infoTSVTermino/dtTerm']
45
- end
46
-
47
55
  def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
48
56
  [
49
57
  # rubocop:disable Layout/LineLength
@@ -3,6 +3,8 @@ module Teodoro
3
3
  class ArquivoS3000
4
4
  include ArquivoDeEventoProcessadorDeArquivoData
5
5
 
6
+ # FIXME: Tales aspectos em empresa
7
+
6
8
  def processar
7
9
  excluir_arquivos_data if tipo_de_evento_processavel?
8
10
  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.2.1
4
+ version: 0.3.1
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-04-15 00:00:00.000000000 Z
11
+ date: 2021-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri