teodoro 0.47.1 → 0.47.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/teodoro/empresa/contratos_de_emprego.rb +13 -9
- data/lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb +9 -5
- data/lib/teodoro/empresa.rb +11 -0
- data/lib/teodoro/leiaute/arquivo_s2200.rb +2 -2
- data/lib/teodoro/leiaute/arquivo_s2230.rb +31 -4
- data/lib/teodoro/leiaute/arquivo_s2300.rb +2 -2
- data/lib/teodoro/leiaute/arquivo_s3000.rb +25 -0
- data/lib/teodoro/version.rb +1 -1
- 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: 633d5f559929ec8fe7a59b388232b8fea4f04570f196508e2a8318b05a9330c4
|
4
|
+
data.tar.gz: 9464417d8099ccca9abe3566d34f5d051770bd2dde3f2e17c3395c61159f21e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5821044cf923941e5171ee054184d8d90f3da0e9a98433573ab4305fa57d7ba03e63b1dc0455c2b32791988c40d4631b2653384c43bf5c0d018f6c0169182285
|
7
|
+
data.tar.gz: 5aeaba0986ebe6e31cacd5e5ba455d6f60710c038c939fbdeb7ba3610b7e6780b82244377b8f74eabdcc2df357422ae74b5423c37a1a2aa16cfe1fb2008cb4d4
|
@@ -11,9 +11,13 @@ module Teodoro
|
|
11
11
|
|
12
12
|
public
|
13
13
|
|
14
|
-
def
|
14
|
+
def to_a
|
15
|
+
contratos
|
16
|
+
end
|
17
|
+
|
18
|
+
def registrar_admissao(admissao:, inicio_de_afastamento:)
|
15
19
|
contratos_por_matricula[admissao.matricula_do_trabalhador] =
|
16
|
-
Contrato.new(admissao: admissao,
|
20
|
+
Contrato.new(admissao: admissao, inicio_de_afastamento: inicio_de_afastamento)
|
17
21
|
trabalhadores << admissao.trabalhador
|
18
22
|
end
|
19
23
|
|
@@ -38,20 +42,20 @@ module Teodoro
|
|
38
42
|
|
39
43
|
private
|
40
44
|
|
41
|
-
def contratos_por_matricula
|
42
|
-
@contratos_por_matricula ||= {}
|
43
|
-
end
|
44
|
-
|
45
45
|
def contratos
|
46
46
|
contratos_por_matricula.values
|
47
47
|
end
|
48
48
|
|
49
|
+
def contratos_por_matricula
|
50
|
+
@contratos_por_matricula ||= {}
|
51
|
+
end
|
52
|
+
|
49
53
|
class Contrato
|
50
54
|
private
|
51
55
|
|
52
|
-
def initialize(admissao:,
|
56
|
+
def initialize(admissao:, inicio_de_afastamento:)
|
53
57
|
@admissao = admissao
|
54
|
-
@
|
58
|
+
@inicios_de_afastamento = inicio_de_afastamento ? [inicio_de_afastamento] : []
|
55
59
|
|
56
60
|
@tipo_de_regime_previdenciario = admissao.tipo_de_regime_previdenciario
|
57
61
|
@natureza_da_atividade = admissao.natureza_da_atividade
|
@@ -77,7 +81,7 @@ module Teodoro
|
|
77
81
|
:categoria_do_trabalhador,
|
78
82
|
:recibo
|
79
83
|
|
80
|
-
attr_accessor :
|
84
|
+
attr_accessor :inicios_de_afastamento
|
81
85
|
|
82
86
|
attr_reader :tipo_de_regime_previdenciario, :natureza_da_atividade, :duracao
|
83
87
|
|
@@ -11,8 +11,12 @@ module Teodoro
|
|
11
11
|
|
12
12
|
public
|
13
13
|
|
14
|
-
def
|
15
|
-
contratos
|
14
|
+
def to_a
|
15
|
+
contratos
|
16
|
+
end
|
17
|
+
|
18
|
+
def registrar_inicio_de_contrato(inicio_de_contrato:, inicio_de_afastamento:)
|
19
|
+
contratos << Contrato.new(inicio_de_contrato: inicio_de_contrato, inicio_de_afastamento: inicio_de_afastamento)
|
16
20
|
trabalhadores << inicio_de_contrato.trabalhador
|
17
21
|
end
|
18
22
|
|
@@ -47,9 +51,9 @@ module Teodoro
|
|
47
51
|
class Contrato
|
48
52
|
private
|
49
53
|
|
50
|
-
def initialize(inicio_de_contrato:,
|
54
|
+
def initialize(inicio_de_contrato:, inicio_de_afastamento:)
|
51
55
|
@inicio_de_contrato = inicio_de_contrato
|
52
|
-
@
|
56
|
+
@inicios_de_afastamento = inicio_de_afastamento ? [inicio_de_afastamento] : []
|
53
57
|
end
|
54
58
|
|
55
59
|
attr_reader :inicio_de_contrato, :data_do_termino
|
@@ -65,7 +69,7 @@ module Teodoro
|
|
65
69
|
:data_de_inicio,
|
66
70
|
:recibo
|
67
71
|
|
68
|
-
attr_accessor :
|
72
|
+
attr_accessor :inicios_de_afastamento
|
69
73
|
|
70
74
|
attr_writer :data_do_termino
|
71
75
|
|
data/lib/teodoro/empresa.rb
CHANGED
@@ -89,6 +89,17 @@ module Teodoro
|
|
89
89
|
@funcoes_geradas ||= FuncoesGeradas.new(self)
|
90
90
|
end
|
91
91
|
|
92
|
+
def inicios_de_afastamento_por_numero_do_recibo
|
93
|
+
contratos_de_trabalho
|
94
|
+
.sum([], &:inicios_de_afastamento)
|
95
|
+
.group_by(&:numero_do_recibo)
|
96
|
+
.transform_values { _1.size == 1 ? _1.first : raise }
|
97
|
+
end
|
98
|
+
|
99
|
+
def contratos_de_trabalho
|
100
|
+
[*contratos_de_emprego, *contratos_de_trabalho_sem_vinculo]
|
101
|
+
end
|
102
|
+
|
92
103
|
private
|
93
104
|
|
94
105
|
def dar_feedback_para_o_usuario
|
@@ -14,7 +14,7 @@ module Teodoro
|
|
14
14
|
def registrar_admissao
|
15
15
|
contratos_de_emprego.registrar_admissao(
|
16
16
|
admissao: admissao,
|
17
|
-
|
17
|
+
inicio_de_afastamento: inicio_de_afastamento
|
18
18
|
)
|
19
19
|
end
|
20
20
|
|
@@ -127,7 +127,7 @@ module Teodoro
|
|
127
127
|
empresa.contratos_de_emprego
|
128
128
|
end
|
129
129
|
|
130
|
-
def
|
130
|
+
def inicio_de_afastamento
|
131
131
|
evento['vinculo/afastamento']&.then do |afastamento|
|
132
132
|
Obj.new(
|
133
133
|
data_de_inicio: afastamento['dtIniAfast'],
|
@@ -32,9 +32,11 @@ module Teodoro
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def registrar_inicio_do_afastamento
|
35
|
-
contrato_de_trabalho.
|
35
|
+
contrato_de_trabalho.inicios_de_afastamento << InicioDeAfastamento.new(
|
36
|
+
inicios_de_afastamento: contrato_de_trabalho.inicios_de_afastamento,
|
36
37
|
data_de_inicio: data_de_inicio_do_afastamento,
|
37
|
-
codigo_do_motivo: codigo_do_motivo_de_afastamento
|
38
|
+
codigo_do_motivo: codigo_do_motivo_de_afastamento,
|
39
|
+
numero_do_recibo: numero_do_recibo
|
38
40
|
)
|
39
41
|
end
|
40
42
|
|
@@ -43,7 +45,7 @@ module Teodoro
|
|
43
45
|
if inicio_do_afastamento?
|
44
46
|
inicio_do_afastamento['dtIniAfast']
|
45
47
|
else
|
46
|
-
|
48
|
+
ultimo_inicio_de_afastamento_do_contrato_de_trabalho.then do |afastamento|
|
47
49
|
raise 'término de afastamento sem início de afastamento' unless afastamento
|
48
50
|
|
49
51
|
afastamento.data_de_inicio
|
@@ -51,12 +53,16 @@ module Teodoro
|
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
56
|
+
def ultimo_inicio_de_afastamento_do_contrato_de_trabalho
|
57
|
+
@ultimo_inicio_de_afastamento_do_contrato_de_trabalho ||= contrato_de_trabalho.inicios_de_afastamento.last
|
58
|
+
end
|
59
|
+
|
54
60
|
def codigo_do_motivo_de_afastamento
|
55
61
|
@codigo_do_motivo_de_afastamento ||=
|
56
62
|
if inicio_do_afastamento?
|
57
63
|
evento['infoAfastamento/iniAfastamento/codMotAfast']
|
58
64
|
else
|
59
|
-
|
65
|
+
ultimo_inicio_de_afastamento_do_contrato_de_trabalho.codigo_do_motivo
|
60
66
|
end
|
61
67
|
end
|
62
68
|
|
@@ -170,6 +176,27 @@ module Teodoro
|
|
170
176
|
def data_de_inicio_do_contrato_de_trabalho
|
171
177
|
contrato_de_trabalho_sem_vinculo.data_de_inicio
|
172
178
|
end
|
179
|
+
|
180
|
+
class InicioDeAfastamento
|
181
|
+
private
|
182
|
+
|
183
|
+
def initialize(inicios_de_afastamento:, data_de_inicio:, codigo_do_motivo:, numero_do_recibo:)
|
184
|
+
@inicios_de_afastamento = inicios_de_afastamento
|
185
|
+
@data_de_inicio = data_de_inicio
|
186
|
+
@codigo_do_motivo = codigo_do_motivo
|
187
|
+
@numero_do_recibo = numero_do_recibo
|
188
|
+
end
|
189
|
+
|
190
|
+
attr_reader :inicios_de_afastamento
|
191
|
+
|
192
|
+
public
|
193
|
+
|
194
|
+
attr_reader :data_de_inicio, :codigo_do_motivo, :numero_do_recibo
|
195
|
+
|
196
|
+
def excluir
|
197
|
+
inicios_de_afastamento.pop.then { raise unless _1 == self }
|
198
|
+
end
|
199
|
+
end
|
173
200
|
end
|
174
201
|
end
|
175
202
|
end
|
@@ -14,7 +14,7 @@ module Teodoro
|
|
14
14
|
def registrar_inicio_de_contrato
|
15
15
|
contratos_de_trabalho_sem_vinculo.registrar_inicio_de_contrato(
|
16
16
|
inicio_de_contrato: inicio_de_contrato,
|
17
|
-
|
17
|
+
inicio_de_afastamento: inicio_de_afastamento
|
18
18
|
)
|
19
19
|
end
|
20
20
|
|
@@ -119,7 +119,7 @@ module Teodoro
|
|
119
119
|
)
|
120
120
|
end
|
121
121
|
|
122
|
-
def
|
122
|
+
def inicio_de_afastamento
|
123
123
|
evento['infoTSVInicio/afastamento']&.then do |afastamento|
|
124
124
|
Obj.new(
|
125
125
|
data_de_inicio: afastamento['dtIniAfast'],
|
@@ -7,6 +7,7 @@ module Teodoro
|
|
7
7
|
excluir_arquivos_data if tipo_de_evento_processavel?
|
8
8
|
excluir_admissao if exclusao_de_admissao?
|
9
9
|
excluir_inicio_de_tsv if exclusao_de_inicio_de_tsv?
|
10
|
+
excluir_inicio_de_afastamento if exclusao_de_inicio_de_afastamento?
|
10
11
|
end
|
11
12
|
|
12
13
|
private
|
@@ -50,6 +51,30 @@ module Teodoro
|
|
50
51
|
def contratos_de_trabalho_sem_vinculo
|
51
52
|
empresa.contratos_de_trabalho_sem_vinculo
|
52
53
|
end
|
54
|
+
|
55
|
+
def exclusao_de_inicio_de_afastamento?
|
56
|
+
exclusao_de_afastamento? && inicio_de_afastamento?
|
57
|
+
end
|
58
|
+
|
59
|
+
def exclusao_de_afastamento?
|
60
|
+
tipo_de_evento == 'S2230'
|
61
|
+
end
|
62
|
+
|
63
|
+
def inicio_de_afastamento?
|
64
|
+
inicio_de_afastamento
|
65
|
+
end
|
66
|
+
|
67
|
+
def inicio_de_afastamento
|
68
|
+
@inicio_de_afastamento ||= inicios_de_afastamento_por_numero_do_recibo[numero_de_recibo_do_evento_a_excluir]
|
69
|
+
end
|
70
|
+
|
71
|
+
def inicios_de_afastamento_por_numero_do_recibo
|
72
|
+
empresa.inicios_de_afastamento_por_numero_do_recibo
|
73
|
+
end
|
74
|
+
|
75
|
+
def excluir_inicio_de_afastamento
|
76
|
+
inicio_de_afastamento.excluir
|
77
|
+
end
|
53
78
|
end
|
54
79
|
end
|
55
80
|
end
|
data/lib/teodoro/version.rb
CHANGED
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.47.
|
4
|
+
version: 0.47.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fortes Tecnologia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|