Tutoriais:Contribuição sindical na RAIS
Ir para navegação
Ir para pesquisar
- Após gerar os dados da rais, executar o script abaixo.
OBS.: Não deve excluir e gerar novamente. Apenas filtrar o que foi incluído na RAIS.
execute block as declare variable AUTOINC bigint; declare variable CNPJ_SINDICATO varchar(18); declare variable INDICE integer; declare variable CARACTER char; declare variable VALOR_CT_SINDICAL_ numeric(18,2); declare variable VALOR_CT_ASSISTENCIAL_ numeric(18,2); declare variable VALOR_CT_CONFEDERATIVA_ numeric(18,2); begin for select DP_DADOS_RAIS.AUTOINC_DDR, DP_DADOS_RAIS.VALOR_CT_SINDICAL_DDR, DP_DADOS_RAIS.VALOR_CT_ASSISTENCIAL_DDR, DP_DADOS_RAIS.VALOR_CT_CONFEDERATIVA_DDR, DP_SINDICATO.CNPJ_SINDICATO from DP_DADOS_RAIS left join DP_SETOR_FUNCAO_REGISTRO on (DP_SETOR_FUNCAO_REGISTRO.REGISTRO_SFREG = DP_DADOS_RAIS.REGISTRO_DDR and DP_SETOR_FUNCAO_REGISTRO.DATA_SFREG = (select max(DP_SETOR_FUNCAO_REGISTRO_B.DATA_SFREG) from DP_SETOR_FUNCAO_REGISTRO DP_SETOR_FUNCAO_REGISTRO_B where DP_SETOR_FUNCAO_REGISTRO_B.REGISTRO_SFREG = DP_SETOR_FUNCAO_REGISTRO.REGISTRO_SFREG and extract(year from DP_SETOR_FUNCAO_REGISTRO_B.DATA_SFREG) <= dp_dados_rais.ANO_DDR)) left join DP_SINDICATO on (DP_SINDICATO.CODIGO_SINDICATO = DP_SETOR_FUNCAO_REGISTRO.SINDICATO_SFREG) where ((DP_DADOS_RAIS.VALOR_CT_SINDICAL_DDR != 0) and (coalesce(DP_DADOS_RAIS.SINDICATO_CT_SINDICAL_DDR,) = )) or ((DP_DADOS_RAIS.VALOR_CT_ASSISTENCIAL_DDR != 0) and (coalesce(DP_DADOS_RAIS.SINDICATO_CT_ASSISTENCIAL_DDR,) = )) or ((DP_DADOS_RAIS.VALOR_CT_CONFEDERATIVA_DDR != 0) and (coalesce(DP_DADOS_RAIS.SINDICATO_CT_CONFEDERATIVA_DDR,) = )) into :AUTOINC, :VALOR_CT_SINDICAL_, :VALOR_CT_ASSISTENCIAL_, :VALOR_CT_CONFEDERATIVA_, :CNPJ_SINDICATO do begin INDICE = char_length(:CNPJ_SINDICATO); while (:INDICE > 0) do begin CARACTER = cast(substring(:CNPJ_SINDICATO from :INDICE for 1) as char(1)); if (not(:CARACTER between '0' and '9')) then CNPJ_SINDICATO = substring(:CNPJ_SINDICATO from 1 for (:INDICE - 1)) || substring(:CNPJ_SINDICATO from (:INDICE + 1) for (char_length(:CNPJ_SINDICATO) - :INDICE)); INDICE = :INDICE - 1; end if (:VALOR_CT_SINDICAL_ != 0) then begin update DP_DADOS_RAIS set SINDICATO_CT_SINDICAL_DDR = :CNPJ_SINDICATO where AUTOINC_DDR = :AUTOINC and coalesce(SINDICATO_CT_SINDICAL_DDR, ) = ; end if (:VALOR_CT_ASSISTENCIAL_ != 0) then begin update DP_DADOS_RAIS set SINDICATO_CT_ASSISTENCIAL_DDR = :CNPJ_SINDICATO where AUTOINC_DDR = :AUTOINC and coalesce(SINDICATO_CT_ASSISTENCIAL_DDR, ) = ; end if (:VALOR_CT_CONFEDERATIVA_ != 0) then begin update DP_DADOS_RAIS set SINDICATO_CT_CONFEDERATIVA_DDR = :CNPJ_SINDICATO where AUTOINC_DDR = :AUTOINC and coalesce(SINDICATO_CT_CONFEDERATIVA_DDR, ) = ; end end update DP_DADOS_RAIS set DP_DADOS_RAIS.VALOR_CT_SINDICAL_DDR = (DP_DADOS_RAIS.VALOR_CT_SINDICAL_DDR * -1) where DP_DADOS_RAIS.VALOR_CT_SINDICAL_DDR < 0; update DP_DADOS_RAIS set DP_DADOS_RAIS.VALOR_CT_ASSISTENCIAL_DDR = (DP_DADOS_RAIS.VALOR_CT_ASSISTENCIAL_DDR * -1) where DP_DADOS_RAIS.VALOR_CT_ASSISTENCIAL_DDR < 0; update DP_DADOS_RAIS set DP_DADOS_RAIS.VALOR_CT_CONFEDERATIVA_DDR = (DP_DADOS_RAIS.VALOR_CT_CONFEDERATIVA_DDR * -1) where DP_DADOS_RAIS.VALOR_CT_CONFEDERATIVA_DDR < 0; end
Esse irá preencher o campo cnpj do sindicato que será exportado para a rais.