forlogic-core 2.4.13 → 2.4.14

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.
package/dist/types.d.ts CHANGED
@@ -463,6 +463,7 @@ export interface SelectedUnit {
463
463
  id: string;
464
464
  name: string;
465
465
  alias: string;
466
+ appGroupId?: number | null;
466
467
  }
467
468
  export interface CompanyTokenData {
468
469
  id: string;
@@ -24,13 +24,9 @@ CREATE TABLE [import].[occurrences_categories_staging](
24
24
  [active_cause_analysis] [varchar](10) NULL,
25
25
  [active_effectiveness_check] [varchar](10) NULL,
26
26
  [active_standardization] [varchar](10) NULL,
27
- [aprove_cause_analysis] [varchar](10) NULL,
28
- [aprove_action_plan_elaboration] [varchar](10) NULL,
29
- [aprove_action_plan_execution] [varchar](10) NULL,
30
- [aprove_effectiveness_check] [varchar](10) NULL,
31
- [aprove_standardization] [varchar](10) NULL,
32
27
  [aprove_evaluation] [varchar](10) NULL,
33
28
  [all_types_associated] [varchar](10) NULL,
29
+ [id_rule_prioritization] [char](8) NULL,
34
30
  [id_company] [char](8) NOT NULL,
35
31
  CONSTRAINT [pk_occurrences_categories_staging] PRIMARY KEY CLUSTERED
36
32
  (
@@ -82,11 +78,6 @@ BEGIN
82
78
  (s.active_cause_analysis IS NOT NULL AND s.active_cause_analysis COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
83
79
  OR (s.active_effectiveness_check IS NOT NULL AND s.active_effectiveness_check COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
84
80
  OR (s.active_standardization IS NOT NULL AND s.active_standardization COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
85
- OR (s.aprove_cause_analysis IS NOT NULL AND s.aprove_cause_analysis COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
86
- OR (s.aprove_action_plan_elaboration IS NOT NULL AND s.aprove_action_plan_elaboration COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
87
- OR (s.aprove_action_plan_execution IS NOT NULL AND s.aprove_action_plan_execution COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
88
- OR (s.aprove_effectiveness_check IS NOT NULL AND s.aprove_effectiveness_check COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
89
- OR (s.aprove_standardization IS NOT NULL AND s.aprove_standardization COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
90
81
  OR (s.aprove_evaluation IS NOT NULL AND s.aprove_evaluation COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
91
82
  OR (s.all_types_associated IS NOT NULL AND s.all_types_associated COLLATE Latin1_General_CS_AS NOT IN ('Sim','Não'))
92
83
  );
@@ -105,6 +96,43 @@ BEGIN
105
96
  OR (s.days_evaluation IS NOT NULL AND TRY_CAST(s.days_evaluation AS INT) IS NULL)
106
97
  );
107
98
 
99
+ -- Validação 6: Prazo da Análise de causa é obrigatório quando a etapa está ativa
100
+ INSERT INTO import.errors (id_batch, row_num, error_msg)
101
+ SELECT @id_batch, s.row_num, 'Prazo de Análise de causa é obrigatório quando a etapa está ativa'
102
+ FROM import.occurrences_categories_staging s WITH (NOLOCK)
103
+ WHERE s.id_batch = @id_batch
104
+ AND s.active_cause_analysis COLLATE Latin1_General_CS_AS = 'Sim'
105
+ AND (s.days_causes_analysis IS NULL OR LTRIM(RTRIM(s.days_causes_analysis)) = '');
106
+
107
+ -- Validação 7: Prazo da Verificação de eficácia é obrigatório quando a etapa está ativa
108
+ INSERT INTO import.errors (id_batch, row_num, error_msg)
109
+ SELECT @id_batch, s.row_num, 'Prazo de Verificação de eficácia é obrigatório quando a etapa está ativa'
110
+ FROM import.occurrences_categories_staging s WITH (NOLOCK)
111
+ WHERE s.id_batch = @id_batch
112
+ AND s.active_effectiveness_check COLLATE Latin1_General_CS_AS = 'Sim'
113
+ AND (s.days_effectiveness_check IS NULL OR LTRIM(RTRIM(s.days_effectiveness_check)) = '');
114
+
115
+ -- Validação 8: Prazo da Padronização/Divulgação é obrigatório quando a etapa está ativa
116
+ INSERT INTO import.errors (id_batch, row_num, error_msg)
117
+ SELECT @id_batch, s.row_num, 'Prazo de Padronização/Divulgação é obrigatório quando a etapa está ativa'
118
+ FROM import.occurrences_categories_staging s WITH (NOLOCK)
119
+ WHERE s.id_batch = @id_batch
120
+ AND s.active_standardization COLLATE Latin1_General_CS_AS = 'Sim'
121
+ AND (s.days_standardization IS NULL OR LTRIM(RTRIM(s.days_standardization)) = '');
122
+
123
+ -- Validação 9: Regra de priorização informada deve existir
124
+ INSERT INTO import.errors (id_batch, row_num, error_msg)
125
+ SELECT @id_batch, s.row_num, 'Regra de priorização não encontrada'
126
+ FROM import.occurrences_categories_staging s WITH (NOLOCK)
127
+ WHERE s.id_batch = @id_batch
128
+ AND s.id_rule_prioritization IS NOT NULL
129
+ AND LTRIM(RTRIM(s.id_rule_prioritization)) <> ''
130
+ AND NOT EXISTS (
131
+ SELECT 1 FROM occurrences.rules_prioritization rp WITH (NOLOCK)
132
+ WHERE rp.id = s.id_rule_prioritization COLLATE Latin1_General_CS_AS
133
+ AND rp.id_company = s.id_company COLLATE Latin1_General_CS_AS
134
+ );
135
+
108
136
  -- INSERÇÃO DOS DADOS VÁLIDOS
109
137
  INSERT INTO occurrences.categories
110
138
  (
@@ -112,8 +140,7 @@ BEGIN
112
140
  days_causes_analysis, days_action_plan_elaboration, days_action_plan_execution,
113
141
  days_effectiveness_check, days_standardization, days_evaluation,
114
142
  active_cause_analysis, active_effectiveness_check, active_standardization,
115
- aprove_cause_analysis, aprove_action_plan_elaboration, aprove_action_plan_execution,
116
- aprove_effectiveness_check, aprove_standardization, aprove_evaluation, all_types_associated
143
+ aprove_evaluation, all_types_associated, id_rule_prioritization
117
144
  )
118
145
  SELECT
119
146
  s.id_company,
@@ -125,22 +152,21 @@ BEGIN
125
152
  SYSDATETIMEOFFSET() AS creation_date,
126
153
  SYSDATETIMEOFFSET() AS last_modified,
127
154
  0 AS removed,
128
- TRY_CAST(s.days_causes_analysis AS INT),
155
+ CASE WHEN s.active_cause_analysis COLLATE Latin1_General_CS_AS = 'Sim'
156
+ THEN TRY_CAST(s.days_causes_analysis AS INT) ELSE NULL END,
129
157
  ISNULL(TRY_CAST(s.days_action_plan_elaboration AS INT), 0),
130
158
  ISNULL(TRY_CAST(s.days_action_plan_execution AS INT), 0),
131
- TRY_CAST(s.days_effectiveness_check AS INT),
132
- TRY_CAST(s.days_standardization AS INT),
159
+ CASE WHEN s.active_effectiveness_check COLLATE Latin1_General_CS_AS = 'Sim'
160
+ THEN TRY_CAST(s.days_effectiveness_check AS INT) ELSE NULL END,
161
+ CASE WHEN s.active_standardization COLLATE Latin1_General_CS_AS = 'Sim'
162
+ THEN TRY_CAST(s.days_standardization AS INT) ELSE NULL END,
133
163
  TRY_CAST(s.days_evaluation AS INT),
134
164
  CASE WHEN s.active_cause_analysis COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
135
165
  CASE WHEN s.active_effectiveness_check COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
136
166
  CASE WHEN s.active_standardization COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
137
- CASE WHEN s.aprove_cause_analysis COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
138
- CASE WHEN s.aprove_action_plan_elaboration COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
139
- CASE WHEN s.aprove_action_plan_execution COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
140
- CASE WHEN s.aprove_effectiveness_check COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
141
- CASE WHEN s.aprove_standardization COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
142
167
  CASE WHEN s.aprove_evaluation COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
143
- CASE WHEN s.all_types_associated COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END
168
+ CASE WHEN s.all_types_associated COLLATE Latin1_General_CS_AS = 'Sim' THEN 1 ELSE 0 END,
169
+ NULLIF(LTRIM(RTRIM(s.id_rule_prioritization)), '')
144
170
  FROM import.occurrences_categories_staging s WITH (NOLOCK)
145
171
  WHERE s.id_batch = @id_batch
146
172
  AND NOT EXISTS (SELECT 1 FROM import.errors e WHERE e.id_batch = s.id_batch AND e.row_num = s.row_num);
@@ -21,7 +21,7 @@ CREATE TABLE [import].[risks_staging](
21
21
  [name] [nvarchar](200) NOT NULL,
22
22
  [description] [nvarchar](max) NULL,
23
23
  [group_name] [nvarchar](200) NOT NULL,
24
- [responsible_email] [varchar](150) NOT NULL,
24
+ [id_responsible_user] [char](8) NOT NULL,
25
25
  [place_name] [nvarchar](200) NULL,
26
26
  [category_name] [nvarchar](200) NULL,
27
27
  [is_active] [varchar](20) NULL,
@@ -43,6 +43,7 @@ AS
43
43
  BEGIN
44
44
  SET NOCOUNT ON;
45
45
 
46
+ -- Validação 1: Código duplicado no arquivo
46
47
  INSERT INTO import.errors (id_batch, row_num, error_msg)
47
48
  SELECT @id_batch, s.row_num, 'Código duplicado no arquivo'
48
49
  FROM (
@@ -53,6 +54,7 @@ BEGIN
53
54
  ) s
54
55
  WHERE s.cnt > 1;
55
56
 
57
+ -- Validação 2: Código já existente na produção
56
58
  INSERT INTO import.errors (id_batch, row_num, error_msg)
57
59
  SELECT @id_batch, s.row_num, 'Código de risco já existe na base para esta unidade'
58
60
  FROM import.risks_staging s WITH (NOLOCK)
@@ -62,6 +64,7 @@ BEGIN
62
64
  AND t.removed = 0
63
65
  WHERE s.id_batch = @id_batch;
64
66
 
67
+ -- Validação 3: Nome duplicado no arquivo
65
68
  INSERT INTO import.errors (id_batch, row_num, error_msg)
66
69
  SELECT @id_batch, s.row_num, 'Nome do risco duplicado no arquivo'
67
70
  FROM (
@@ -71,6 +74,7 @@ BEGIN
71
74
  ) s
72
75
  WHERE s.cnt > 1;
73
76
 
77
+ -- Validação 4: Nome já existente na produção
74
78
  INSERT INTO import.errors (id_batch, row_num, error_msg)
75
79
  SELECT @id_batch, s.row_num, 'Nome do risco já existe na base para esta unidade'
76
80
  FROM import.risks_staging s WITH (NOLOCK)
@@ -80,6 +84,7 @@ BEGIN
80
84
  AND t.removed = 0
81
85
  WHERE s.id_batch = @id_batch;
82
86
 
87
+ -- Validação 5: Campos Obrigatórios Vazios
83
88
  INSERT INTO import.errors (id_batch, row_num, error_msg)
84
89
  SELECT @id_batch, s.row_num, 'Código, Nome, Grupo e Responsável são obrigatórios'
85
90
  FROM import.risks_staging s WITH (NOLOCK)
@@ -88,15 +93,17 @@ BEGIN
88
93
  NULLIF(RTRIM(LTRIM(s.code)), '') IS NULL OR
89
94
  NULLIF(RTRIM(LTRIM(s.name)), '') IS NULL OR
90
95
  NULLIF(RTRIM(LTRIM(s.group_name)), '') IS NULL OR
91
- NULLIF(RTRIM(LTRIM(s.responsible_email)), '') IS NULL
96
+ NULLIF(RTRIM(LTRIM(s.id_responsible_user)), '') IS NULL
92
97
  );
93
98
 
99
+ -- Validação 6: Validação de Situação (Ativo / Inativo) com Regra Estrita
94
100
  INSERT INTO import.errors (id_batch, row_num, error_msg)
95
101
  SELECT @id_batch, s.row_num, 'Situação inválida (selecione Ativo ou Inativo na planilha)'
96
102
  FROM import.risks_staging s WITH (NOLOCK)
97
103
  WHERE s.id_batch = @id_batch
98
104
  AND ISNULL(s.is_active, '') COLLATE Latin1_General_CS_AS NOT IN ('Ativo', 'Inativo');
99
105
 
106
+ -- Validação 7: Grupo não encontrado
100
107
  INSERT INTO import.errors (id_batch, row_num, error_msg)
101
108
  SELECT @id_batch, s.row_num, 'Grupo de risco não encontrado ou inativo'
102
109
  FROM import.risks_staging s WITH (NOLOCK)
@@ -108,31 +115,35 @@ BEGIN
108
115
  AND NULLIF(RTRIM(LTRIM(s.group_name)), '') IS NOT NULL
109
116
  AND g.id IS NULL;
110
117
 
118
+ -- Validação 8: Responsável não encontrado
111
119
  INSERT INTO import.errors (id_batch, row_num, error_msg)
112
120
  SELECT @id_batch, s.row_num, 'Usuário responsável não encontrado'
113
121
  FROM import.risks_staging s WITH (NOLOCK)
114
122
  LEFT JOIN dbo.users u WITH (NOLOCK)
115
- ON u.email COLLATE Latin1_General_CS_AS = s.responsible_email COLLATE Latin1_General_CS_AS
123
+ ON u.id COLLATE Latin1_General_CS_AS = s.id_responsible_user COLLATE Latin1_General_CS_AS
124
+ AND u.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
116
125
  AND u.removed = 0
117
126
  WHERE s.id_batch = @id_batch
118
- AND NULLIF(RTRIM(LTRIM(s.responsible_email)), '') IS NOT NULL
127
+ AND NULLIF(RTRIM(LTRIM(s.id_responsible_user)), '') IS NOT NULL
119
128
  AND u.id IS NULL;
120
129
 
130
+ -- Validação 9: Local (Place) não encontrado
121
131
  INSERT INTO import.errors (id_batch, row_num, error_msg)
122
132
  SELECT @id_batch, s.row_num, 'Local não encontrado ou inativo'
123
133
  FROM import.risks_staging s WITH (NOLOCK)
124
- LEFT JOIN common.places p WITH (NOLOCK)
125
- ON p.title COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
134
+ LEFT JOIN dbo.places p WITH (NOLOCK)
135
+ ON p.name COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
126
136
  AND p.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
127
137
  AND p.removed = 0
128
138
  WHERE s.id_batch = @id_batch
129
139
  AND NULLIF(RTRIM(LTRIM(s.place_name)), '') IS NOT NULL
130
140
  AND p.id IS NULL;
131
141
 
142
+ -- Validação 10: Categoria não encontrada
132
143
  INSERT INTO import.errors (id_batch, row_num, error_msg)
133
144
  SELECT @id_batch, s.row_num, 'Categoria não encontrada ou inativa'
134
145
  FROM import.risks_staging s WITH (NOLOCK)
135
- LEFT JOIN risks.categories c WITH (NOLOCK)
146
+ LEFT JOIN risks.risks_categories c WITH (NOLOCK)
136
147
  ON c.title COLLATE Latin1_General_CS_AS = s.category_name COLLATE Latin1_General_CS_AS
137
148
  AND c.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
138
149
  AND c.removed = 0
@@ -140,6 +151,7 @@ BEGIN
140
151
  AND NULLIF(RTRIM(LTRIM(s.category_name)), '') IS NOT NULL
141
152
  AND c.id IS NULL;
142
153
 
154
+ -- INSERÇÃO DOS DADOS VÁLIDOS
143
155
  INSERT INTO risks.risks
144
156
  (
145
157
  id_company,
@@ -178,13 +190,14 @@ BEGIN
178
190
  AND g.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
179
191
  AND g.removed = 0
180
192
  LEFT JOIN dbo.users u WITH (NOLOCK)
181
- ON u.email COLLATE Latin1_General_CS_AS = s.responsible_email COLLATE Latin1_General_CS_AS
193
+ ON u.id COLLATE Latin1_General_CS_AS = s.id_responsible_user COLLATE Latin1_General_CS_AS
194
+ AND u.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
182
195
  AND u.removed = 0
183
- LEFT JOIN common.places p WITH (NOLOCK)
184
- ON p.title COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
196
+ LEFT JOIN dbo.places p WITH (NOLOCK)
197
+ ON p.name COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
185
198
  AND p.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
186
199
  AND p.removed = 0
187
- LEFT JOIN risks.categories c WITH (NOLOCK)
200
+ LEFT JOIN risks.risks_categories c WITH (NOLOCK)
188
201
  ON c.title COLLATE Latin1_General_CS_AS = s.category_name COLLATE Latin1_General_CS_AS
189
202
  AND c.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
190
203
  AND c.removed = 0
@@ -16,7 +16,7 @@ CREATE TABLE [import].[risks_groups_staging](
16
16
  [name] [nvarchar](200) NOT NULL,
17
17
  [description] [nvarchar](max) NULL,
18
18
  [is_active] [varchar](20) NULL,
19
- [responsible_email] [varchar](150) NOT NULL,
19
+ [id_responsible_user] [char](8) NOT NULL,
20
20
  [place_name] [nvarchar](200) NULL,
21
21
  [rule_name] [nvarchar](200) NULL,
22
22
  [id_creation_user] [char](8) NOT NULL,
@@ -37,6 +37,7 @@ AS
37
37
  BEGIN
38
38
  SET NOCOUNT ON;
39
39
 
40
+ -- Validação 1: Código duplicado no arquivo
40
41
  INSERT INTO import.errors (id_batch, row_num, error_msg)
41
42
  SELECT @id_batch, s.row_num, 'Código duplicado no arquivo'
42
43
  FROM (
@@ -47,15 +48,17 @@ BEGIN
47
48
  ) s
48
49
  WHERE s.cnt > 1;
49
50
 
51
+ -- Validação 2: Código já existente na produção (mesma unidade)
50
52
  INSERT INTO import.errors (id_batch, row_num, error_msg)
51
53
  SELECT @id_batch, s.row_num, 'Código de grupo já existe na base para esta unidade'
52
54
  FROM import.risks_groups_staging s WITH (NOLOCK)
53
55
  INNER JOIN risks.groups t WITH (NOLOCK)
54
- ON t.code = s.code COLLATE Latin1_General_CS_AS
56
+ ON t.code COLLATE Latin1_General_CS_AS = s.code COLLATE Latin1_General_CS_AS
57
+ AND t.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
55
58
  AND t.removed = 0
56
- AND t.id_company = s.id_company COLLATE Latin1_General_CS_AS
57
59
  WHERE s.id_batch = @id_batch;
58
60
 
61
+ -- Validação 3: Nome duplicado no arquivo
59
62
  INSERT INTO import.errors (id_batch, row_num, error_msg)
60
63
  SELECT @id_batch, s.row_num, 'Nome do grupo duplicado no arquivo'
61
64
  FROM (
@@ -65,53 +68,60 @@ BEGIN
65
68
  ) s
66
69
  WHERE s.cnt > 1;
67
70
 
71
+ -- Validação 4: Nome já existente na produção (mesma unidade)
68
72
  INSERT INTO import.errors (id_batch, row_num, error_msg)
69
73
  SELECT @id_batch, s.row_num, 'Nome do grupo já existe na base para esta unidade'
70
74
  FROM import.risks_groups_staging s WITH (NOLOCK)
71
75
  INNER JOIN risks.groups t WITH (NOLOCK)
72
- ON t.name = s.name COLLATE Latin1_General_CS_AS
76
+ ON t.name COLLATE Latin1_General_CS_AS = s.name COLLATE Latin1_General_CS_AS
77
+ AND t.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
73
78
  AND t.removed = 0
74
- AND t.id_company = s.id_company COLLATE Latin1_General_CS_AS
75
79
  WHERE s.id_batch = @id_batch;
76
80
 
81
+ -- Validação 5: Situação (is_active) inválida - Validação Estrita
77
82
  INSERT INTO import.errors (id_batch, row_num, error_msg)
78
83
  SELECT @id_batch, s.row_num, 'Situação inválida (selecione Ativo ou Inativo na planilha)'
79
84
  FROM import.risks_groups_staging s WITH (NOLOCK)
80
85
  WHERE s.id_batch = @id_batch
81
86
  AND ISNULL(s.is_active, '') COLLATE Latin1_General_CS_AS NOT IN ('Ativo', 'Inativo', '');
82
87
 
88
+ -- Validação 6: Responsável não encontrado
83
89
  INSERT INTO import.errors (id_batch, row_num, error_msg)
84
90
  SELECT @id_batch, s.row_num, 'Usuário responsável não encontrado'
85
91
  FROM import.risks_groups_staging s WITH (NOLOCK)
86
92
  LEFT JOIN dbo.users u WITH (NOLOCK)
87
- ON u.email = s.responsible_email COLLATE Latin1_General_CS_AS
93
+ ON u.id COLLATE Latin1_General_CS_AS = s.id_responsible_user COLLATE Latin1_General_CS_AS
94
+ AND u.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
88
95
  AND u.removed = 0
89
96
  WHERE s.id_batch = @id_batch
90
- AND NULLIF(RTRIM(LTRIM(s.responsible_email)), '') IS NOT NULL
97
+ AND NULLIF(RTRIM(LTRIM(s.id_responsible_user)), '') IS NOT NULL
91
98
  AND u.id IS NULL;
92
99
 
100
+ -- Validação 7: Local (Place) não encontrado (Opcional)
93
101
  INSERT INTO import.errors (id_batch, row_num, error_msg)
94
102
  SELECT @id_batch, s.row_num, 'Local não encontrado ou inativo'
95
103
  FROM import.risks_groups_staging s WITH (NOLOCK)
96
- LEFT JOIN common.places p WITH (NOLOCK)
97
- ON p.title = s.place_name COLLATE Latin1_General_CS_AS
98
- AND p.id_company = s.id_company COLLATE Latin1_General_CS_AS
104
+ LEFT JOIN dbo.places p WITH (NOLOCK)
105
+ ON p.name COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
106
+ AND p.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
99
107
  AND p.removed = 0
100
108
  WHERE s.id_batch = @id_batch
101
109
  AND NULLIF(RTRIM(LTRIM(s.place_name)), '') IS NOT NULL
102
110
  AND p.id IS NULL;
103
111
 
112
+ -- Validação 8: Regra (Rule) não encontrada (Opcional)
104
113
  INSERT INTO import.errors (id_batch, row_num, error_msg)
105
114
  SELECT @id_batch, s.row_num, 'Regra não encontrada ou inativa'
106
115
  FROM import.risks_groups_staging s WITH (NOLOCK)
107
- LEFT JOIN risks.rules r WITH (NOLOCK)
108
- ON r.title = s.rule_name COLLATE Latin1_General_CS_AS
109
- AND r.id_company = s.id_company COLLATE Latin1_General_CS_AS
116
+ LEFT JOIN risks.analysis_rules r WITH (NOLOCK)
117
+ ON r.name COLLATE Latin1_General_CS_AS = s.rule_name COLLATE Latin1_General_CS_AS
118
+ AND (r.id_company IS NULL OR r.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS)
110
119
  AND r.removed = 0
111
120
  WHERE s.id_batch = @id_batch
112
121
  AND NULLIF(RTRIM(LTRIM(s.rule_name)), '') IS NOT NULL
113
122
  AND r.id IS NULL;
114
123
 
124
+ -- INSERÇÃO DOS DADOS VÁLIDOS
115
125
  INSERT INTO risks.groups
116
126
  (
117
127
  id_company,
@@ -147,11 +157,17 @@ BEGIN
147
157
  0 AS removed
148
158
  FROM import.risks_groups_staging s WITH (NOLOCK)
149
159
  LEFT JOIN dbo.users u WITH (NOLOCK)
150
- ON u.email = s.responsible_email COLLATE Latin1_General_CS_AS AND u.removed = 0
151
- LEFT JOIN common.places p WITH (NOLOCK)
152
- ON p.title = s.place_name COLLATE Latin1_General_CS_AS AND p.id_company = s.id_company AND p.removed = 0
153
- LEFT JOIN risks.rules r WITH (NOLOCK)
154
- ON r.title = s.rule_name COLLATE Latin1_General_CS_AS AND r.id_company = s.id_company AND r.removed = 0
160
+ ON u.id COLLATE Latin1_General_CS_AS = s.id_responsible_user COLLATE Latin1_General_CS_AS
161
+ AND u.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
162
+ AND u.removed = 0
163
+ LEFT JOIN dbo.places p WITH (NOLOCK)
164
+ ON p.name COLLATE Latin1_General_CS_AS = s.place_name COLLATE Latin1_General_CS_AS
165
+ AND p.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS
166
+ AND p.removed = 0
167
+ LEFT JOIN risks.analysis_rules r WITH (NOLOCK)
168
+ ON r.name COLLATE Latin1_General_CS_AS = s.rule_name COLLATE Latin1_General_CS_AS
169
+ AND (r.id_company IS NULL OR r.id_company COLLATE Latin1_General_CS_AS = s.id_company COLLATE Latin1_General_CS_AS)
170
+ AND r.removed = 0
155
171
  WHERE s.id_batch = @id_batch
156
172
  AND NOT EXISTS (
157
173
  SELECT 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forlogic-core",
3
- "version": "2.4.13",
3
+ "version": "2.4.14",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",