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 +4 -4
- data/lib/teodoro/empresa.rb +60 -11
- data/lib/teodoro/leiaute/arquivo_s2200.rb +7 -7
- data/lib/teodoro/leiaute/arquivo_s2299.rb +22 -10
- data/lib/teodoro/leiaute/arquivo_s2300.rb +5 -5
- data/lib/teodoro/leiaute/arquivo_s2399.rb +25 -17
- data/lib/teodoro/leiaute/arquivo_s3000.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e6c7d2702336deb603b6bf1af61cfcb1cb3dc0c7e51c4d3fc7aa9af64dcebc6
|
4
|
+
data.tar.gz: 6168b994e77d309e4851373489f17b9e552f18a7d00f13cecd7a075be6c481d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 753c9e372d0186e738cd617cbe541c21f969d11c90f6f9e5b01af5369e430d361d9f1aba9204809a2cebd35bd00c6b711a5652930fc995f1090da9d132f29202
|
7
|
+
data.tar.gz: 4033bae8e9b865508a384958a42c5c5f5331c9c694b9460b7ad211b88a2560c587fafb3a55dfa8c3cb93f427bae6473b8322f9402bcc4dc60ef1f6a958d27679
|
data/lib/teodoro/empresa.rb
CHANGED
@@ -122,8 +122,10 @@ module Teodoro
|
|
122
122
|
end
|
123
123
|
|
124
124
|
class ContratosDeEmprego
|
125
|
-
def
|
126
|
-
|
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
|
157
|
-
contratos <<
|
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 {
|
163
|
-
|
164
|
-
|
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
|
-
|
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
|
21
|
-
contratos_de_emprego
|
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
|
-
|
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',
|
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
|
-
|
7
|
+
remover_registro_do_contrato_de_trabalho if retificacao?
|
8
8
|
|
9
9
|
super
|
10
10
|
|
11
|
-
|
11
|
+
registrar_inicio_de_contrato
|
12
12
|
end
|
13
13
|
|
14
14
|
private
|
15
15
|
|
16
|
-
def
|
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
|
21
|
-
contratos_de_trabalho_sem_vinculo
|
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
|
-
|
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
|
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.
|
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-
|
11
|
+
date: 2021-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|