~~ODT~~

Última atualização: 2017/04/03 18:18 (edição externa)

Dimensionar Força de Trabalho

Este caso de uso está tratado em Força de Trabalho.

Os responsáveis por uma unidade de lotação terão acesso a esse caso de uso.

  • RN01 - Quando o usuário é um gestor organizacional, a busca por Unidade Gestora só irá exibir as unidades gestoras que contenham unidades filhas com servidores lotados. (60945 - v4.9.0)

Sistema: SIGRH

Módulo: Portal do Servidor

Link(s): Chefia de Unidade → Dimensionamento → Força de Trabalho

Usuário: mirian, alc

Papel que usuário deve ter: SigrhPapeis.GESTOR_DIMENSIONAMENTO, SipacPapeis.GESTOR_ORGANIZACIONAL

Alterar a localização de um servidor neste UC e em seguida averiguar se a localização foi corretamente alterada em:

  • Menu Servidor → Chefia de Unidade → Dimensionamento → Localização → Localizar servidor

O seguinte link é importante para realizar os testes:

  • Menu Servidor → Chefia da Unidade → Dimensionamento → Força do Trabalho
  • Chefia da Unidade → Outros → Dimensionamento → Força do Trabalho
  • Dimensionamento → Operações → Força do Trabalho

Para validar a RN03, realize o cadastro do plano individual de trabalho para um servidor (Menu Servidor → Planejamento → Plano Individual de Trabalho), após o cadastro realize o dimensionamento do servidor (Menu Servidor → Localização → Localizar Servidor) e altere a localização ao qual foi feito o plano individual de trabalho do servidor. Esta regra de negócio é válida apenas para dimensionamento com localização vinculada ao processo de avaliação.

No cadastro de pessoal terceirizado, o combo contrato é populado a partir da unidade gestora e da unidade de lotação subordinada selecionadas no formulário anterior a este formulário. Então, caso não tenha nenhum contrato para a unidade selecionada, o combo contrato estará vazio. Para consultar as unidades em que existe contrato, use a consulta sql:

SELECT DISTINCT c.id, c.numero AS "N°", c.ano AS "Ano", c.data_inicio AS "Data de Início", c.data_fim AS "Data de Término" ,
u.nome AS "Unidade de Lotação Subordinada", u.id_unidade AS "ID Unidade de Lotação Subordinada", ug.nome AS "Unidade Gestora", mc.id_mao_obra_contratada AS "ID Mão de Obra Contratada"
FROM contratos.contrato c 
JOIN contratos.mao_obra_contratada mc ON c.id=mc.id_contrato
LEFT JOIN contratos.mao_obra_unidade_beneficiada m USING(id_mao_obra_contratada) 
LEFT JOIN contratos.unidade_beneficiada ub ON ub.id=m.id_unidade_beneficiada 
LEFT JOIN comum.unidade u ON ub.id_unidade = u.id_unidade
LEFT JOIN comum.unidade ug ON c.id_unidade_gestora = ug.id_unidade
WHERE (c.id_sub_tipo=3 OR c.id_sub_tipo=5);

Para considerar apenas os contratos vigentes:

SELECT DISTINCT c.id, c.numero AS "N°", c.ano AS "Ano", c.data_inicio AS "Data de Início", c.data_fim AS "Data de Término" ,
u.nome AS "Unidade de Lotação Subordinada", u.id_unidade AS "ID Unidade de Lotação Subordinada", ug.nome AS "Unidade Gestora", mc.id_mao_obra_contratada AS "ID Mão de Obra Contratada"
FROM contratos.contrato c 
JOIN contratos.mao_obra_contratada mc ON c.id=mc.id_contrato
LEFT JOIN contratos.mao_obra_unidade_beneficiada m USING(id_mao_obra_contratada) 
LEFT JOIN contratos.unidade_beneficiada ub ON ub.id=m.id_unidade_beneficiada 
LEFT JOIN comum.unidade u ON ub.id_unidade = u.id_unidade
LEFT JOIN comum.unidade ug ON c.id_unidade_gestora = ug.id_unidade
WHERE (c.id_sub_tipo=3 OR c.id_sub_tipo=5) 
AND c.data_fim>= now();

Para consultar os contratos com as quantidades de vagas:

SELECT mb.id_mao_obra_contratada AS "ID Mão de ObraContratada", 
mb.quantidade AS "Quant. Vagas Para Contrato", 
u.id_unidade AS "ID Unidade", u.nome AS "Unidade de Lotação"
FROM contratos.mao_obra_unidade_beneficiada mb 
INNER JOIN contratos.unidade_beneficiada ub ON mb.id_unidade_beneficiada=ub.id 
INNER JOIN comum.unidade u ON ub.id_unidade=u.id_unidade 
INNER JOIN contratos.mao_obra_contratada mc ON mb.id_mao_obra_contratada=mc.id_mao_obra_contratada;

Para consultar a quantidade de vagas estipulada no contrato a partir da mão de obra e unidade selecionadas (Substitua os ? respectivamente pelo ID da mão de obra contratada e ID da unidade de lotação subordinada na qual será feita o dimensionamento):

SELECT mb.id_mao_obra_contratada AS "ID Mão de ObraContratada", 
mb.quantidade AS "Quant. Vagas Para Contrato", 
u.id_unidade AS "ID Unidade", u.nome AS "Unidade de Lotação"
FROM contratos.mao_obra_unidade_beneficiada mb 
INNER JOIN contratos.unidade_beneficiada ub ON mb.id_unidade_beneficiada=ub.id 
INNER JOIN comum.unidade u ON ub.id_unidade=u.id_unidade 
INNER JOIN contratos.mao_obra_contratada mc ON mb.id_mao_obra_contratada=mc.id_mao_obra_contratada 
WHERE mc.id_mao_obra_contratada=?
AND u.id_unidade=?;

Consulta de servidores não ativos:

SELECT * FROM rh.servidor WHERE id_ativo != 1

Consulta de unidades sem servidores alocados:

SELECT DISTINCT u.* FROM comum.unidade u
EXCEPT SELECT DISTINCT u.* FROM comum.unidade u JOIN rh.servidor s ON (s.id_unidade=u.id_unidade)

Consulta de unidades com servidores alocados:

SELECT * FROM comum.unidade u JOIN rh.servidor s ON (s.id_unidade=u.id_unidade)
  • desenvolvimento/especificacoes/sigrh/portal_do_servidor/casos_de_uso/chefia_de_unidade/dimensionamento/forca_de_trabalho.txt
  • Última modificação: 2017/04/03 18:18
  • (edição externa)