-
PT
-
ES
-
AO
-
CV
-
MZ
-
ST
-
GW
-
Professional
-
Executive
-
Public Sector
-
Omnia
-
Evolution
Esta função devolve uma lista de entradas e saídas de funcionário num determinado ano. É utilizada para o preenchimento do "Quadro II - Trabalhadores" do Anexo B - Fluxo de Entrada ou Saída de Trabalhadores, do Relatório Único.
Poderá verificar os dados de entrada e saída de cada funcionário no ERP em Recursos Humanos | Salários e Honorários | Gestão Contratual | Histórico Contratual. São também considerados os funcionários que tenham os campos Data Demissão e Motivo Saída da sua ficha preenchidos, quando essa informação não se encontrar no histórico contratual. Desta forma, é garantido que são também considerados os funcionários demitidos, mas sem registo do final do contrato.
Apenas são considerados os funcionários que tenham realizados descontos para a Segurança Social, Caixa Geral de Aposentações ou outros. Para verificar ou editar estes processamentos, deverá aceder a Recursos Humanos | Salários e Honorários | Alterações Mensais | Por Funcionário.
Critérios
| Parâmetro | Descrição |
| Ano | Ano em análise. |
| IRTaExcluir | Lista com os IRT separados pelo "|" (Instrumentos de Regulamentação do Trabalho) que definem os funcionários a excluir da tabela. Caso não exista, todos os funcionarios de todos os IRT do sistema são considerados. Este parâmetro é opcional. |
Exemplos
Exemplo 1: ListaAdmissoesDemissoes(2010)
Devolve a lista de entradas e saídas dos funcionários no ano 2010.
Query
Caso pretenda, por exemplo, verificar quais os funcionários que deram entrada num determinado ano e que tenham feito descontos, poderá executar a seguinte query na área Dentro de Ficheiros, no Administrador do ERP:
SELECT Regime = CASE WHEN LEN(ISNULL(F.CodSegSocial,'')) <> 0 THEN 1 WHEN LEN(ISNULL(F.CGA,''))<> 0 THEN 2 ELSE 8 END , NumID = CASE WHEN LEN(ISNULL(F.CodSegSocial,'')) <> 0 THEN CAST(F.NumBeneficiario as varchar(20)) WHEN LEN(ISNULL(F.CGA,''))<> 0 THEN F.NumCGA ELSE '' END , F.Nome , CASE WHEN HF.TipoContrato = 1 THEN '10' -- Permanente ELSE CASE WHEN HF.TipoContrato = 2 THEN '20' -- Termo Certo ELSE CASE WHEN HF.TipoContrato = 3 THEN '30' -- Termo Incerto ELSE CASE WHEN HF.TipoContrato = 4 THEN '10' -- Cedência Temporária - Permanente ELSE CASE WHEN HF.TipoContrato = 5 THEN '20' -- Cedência Temporária - Termo Certo ELSE CASE WHEN HF.TipoContrato = 6 THEN '14' -- Cedência Temporária - Termo Incerto ELSE '80' -- Outros END END END END END END AS TipoContrato , CASE WHEN HF.TipoLinha = 'A' THEN CAST(YEAR(HF.DataIni) AS VARCHAR) + '-' + RIGHT('00'+CAST(MONTH(HF.DataIni) AS VARCHAR),2) ELSE NULL END AS DataEntrada , CASE WHEN HF.TipoLinha = 'A' THEN MA.CodigoRelUnico ELSE NULL END AS MotivoEntrada , CASE WHEN HF.TipoLinha = 'S' THEN CAST(YEAR(HF.DataIni) AS VARCHAR) + '-' + RIGHT('00'+CAST(MONTH(HF.DataIni) AS VARCHAR),2) ELSE NULL END AS DataSaida , CASE WHEN HF.TipoLinha = 'S' THEN MS.CodigoRelUnico ELSE NULL END AS MotivoSaida , CASE WHEN Sexo = 1 THEN 'F' ELSE 'M' END AS Sexo , CAST(YEAR(F.DataNascimento) AS VARCHAR) + '-' + RIGHT('00'+CAST(MONTH(F.DataNascimento) AS VARCHAR),2) AS DataNascimento , LEFT(N.CodQuadroPessoal,2) AS Nacionalidade , H.CodigoQP as Habilitacao , CASE WHEN F.CodSituacaoQP = '1' THEN '1' -- Empregador ELSE CASE WHEN F.CodSituacaoQP = '2' THEN '2' -- Trabalhador Familiar não Remunerado ELSE CASE WHEN F.CodSituacaoQP = '3' THEN '3' -- Trabalhador por conta de outrem ELSE CASE WHEN F.CodSituacaoQP = '4' THEN '4' -- Membro activo de Cooper. Produção ELSE 8 -- Outra END END END END AS Situacao , P.CodigoQP AS Profissao , HX.HorasExtrasAcrescimoTrabalho , HX.HorasExtrasForcaMaior , F.Codigo AS Funcionario INTO #TEMP_F FROM Funcionarios F INNER JOIN HistoricoContratoFunc HF ON F.Codigo = HF.Funcionario AND HF.TipoLinha ='A' LEFT JOIN MotivosSaida MS ON HF.MotivoSaida = MS.MotivoSaida LEFT JOIN MotivosAdmissao MA ON HF.MotivoAdmissao = MA.Motivo LEFT JOIN Habilitacoes H ON F.Habilitacao = H.Habilitacao LEFT JOIN Profissoes P ON F.Profissao = P.Profissao LEFT JOIN Nacionalidades N ON F.Nacionalidade = N.Nacionalidade LEFT JOIN (SELECT M.Funcionario, SUM(CASE WHEN HE.MotivoHorasExtra = 1 THEN M.Tempo ELSE 0 END) HorasExtrasAcrescimoTrabalho, SUM(CASE WHEN HE.MotivoHorasExtra = 2 THEN M.Tempo ELSE 0 END) HorasExtrasForcaMaior FROM MovimentosFuncionarios M INNER JOIN HorasExtras HE ON M.CodMov = HE.HorasExtra WHERE M.Ano = [Ano] AND M.TipoTabela = 2 AND M.TipoVenc = 1 -- onde [Ano] deve ser alterado pelo ano em análise, por exemplo 2009 GROUP BY M.Funcionario) HX ON F.Codigo = HX.Funcionario WHERE YEAR(HF.DataIni) = 2009
-- com desconto para Segurança Social: SELECT Regime = 1 , #TEMP_F.NumID , #TEMP_F.Nome , #TEMP_F.TipoContrato , #TEMP_F.DataEntrada , #TEMP_F.MotivoEntrada , #TEMP_F.DataSaida , #TEMP_F.MotivoSaida , #TEMP_F.Sexo , #TEMP_F.DataNascimento , #TEMP_F.Nacionalidade , #TEMP_F.Habilitacao , #TEMP_F.Situacao , #TEMP_F.Profissao , #TEMP_F.HorasExtrasAcrescimoTrabalho , #TEMP_F.HorasExtrasForcaMaior , MF.FuncionarioFROM #TEMP_F LEFT JOIN MovimentosFuncionarios MF ON #TEMP_F.Funcionario = MF.Funcionario WHERE MF.Ano = [Ano] and MF.TipoTabela = 3 AND MF.CodMov in (SELECT CodSegSocial FROM ParametrosRHP) -- onde [Ano] deve ser alterado pelo ano em análise, por exemplo 2009 GROUP BY MF.Funcionario , #TEMP_F.Regime , #TEMP_F.NumID , #TEMP_F.Nome , #TEMP_F.TipoContrato , #TEMP_F.DataEntrada , #TEMP_F.MotivoEntrada , #TEMP_F.DataSaida , #TEMP_F.MotivoSaida , #TEMP_F.Sexo , #TEMP_F.DataNascimento , #TEMP_F.Nacionalidade , #TEMP_F.Habilitacao , #TEMP_F.Situacao , #TEMP_F.Profissao , #TEMP_F.HorasExtrasAcrescimoTrabalho , #TEMP_F.HorasExtrasForcaMaior
DROP TABLE #TEMP_F