teodoro 0.47.1 → 0.47.2
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/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
|