Árvore de páginas

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                  

  

Informações Gerais

Especificação

Produto

Microsiga Protheus®

Módulo

SIGAGPE

Segmento Executor

Serviços

Chamado

TSOJJO

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

 Necessário implementação do campo RH_DTITENS para realização do cálculo de férias consecutivas. Consultar base de conhecimento para maiores informações. http://tdn.totvs.com/x/QJoGDg

Objetivo

Atualmente o cálculo de Férias Programadas do módulo de Gestão de Pessoal está limitado aos dias de direito do período aquisitivo atual do funcionário. Caso a programação possua maior número de dias do que o disponível, esse número será ignorado e calculado apenas os dias disponíveis.

Disponibilizar forma de cálculo das Férias Programadas para particionar os dias informados em dois ou mais períodos aquisitivos.

 

Definição da Regra de Negócio

Cadastro Programação de Férias em Lote

Alterar a rotina de Programação de Férias a fim de disponibilizar a opção de cadastro de programação em Lote. A opção ficará disponível dentro da lista de Ações Relacionadas, com o título Programação em Lote.

Ao clicar na opção de programação em lote uma nova janela com um grupo de perguntas será exibido a fim de filtrar os funcionários para a gravação das férias programadas em lote.

  • Filtro de Funcionários 
    • Filial De/Até?
    • Centro de Custo De/Até ?
    • Departamento De/Até?
    • Matrícula De/Até?
    • Situações ?
    • Categorias ?

Validações quanto ao filtro de funcionários:

  • Os campos Situações e Categorias são de preenchimento obrigatório.
  • As perguntas Até? devem ser de preenchimento obrigatório.

 

Após o preenchimento e confirmação do filtro, uma nova janela é aberta exibindo os campos de Programação de Férias para preenchimento e exibindo uma lista dos funcionários selecionados.

  • Programação
    • Data da 1ª programação
    • Quantidade de Dias da 1ª programação
    • Dias de Abono 1ª programação
    • Data da 2ª programação
    • Quantidade de Dias da 2ª programação
    • Dias de Abono 2ª programação
    • Data da 3ª programação
    • Quantidade de Dias da 3ª programação
    • Dias de Abono 3ª programação
    • Tem Abono Pecuário ?
    • Período de Abono

Validações quanto ao preenchimento das programações:

  • As datas das programações devem ser preenchidas de forma crescente. Ou seja, a 2ª programação só poderá ser preenchida após o preenchimento da 1ª, e assim por diante.
  • As datas das programações devem possuir valor crescente. Ou seja, a data da 2ª programação deverá ser superior ao término da 1ª programação.
    • A data fim da programação é o resultado da soma entre a data inicial da programação e a quantidade de dias de férias.
    • A data inicial da programação seguinte deverá ser superior à data fim da programação anterior.
  • Emitir aviso ao funcionário caso a data inicial da programação seja sábado, domingo ou feriado
    • Perguntar se deseja continuar com a data preenchida.
    • Realizar a validação às três datas de programação.
  • A soma dos campos Dias 1ª programação Dias abono 1ª programação + Dias 2ª programação + Dias abono 2ª programação + Dias 3ª programação + Dias abono 3ª programação  deve ser menor ou igual a 30 dias.
  • A quantidade total de dias de abono não deve ultrapassar a 1/3 dos dias de direito do funcionário.
  • Observação: a validação de dias de direito do funcionário será feita durante o cálculo, mantendo a lógica atual da rotina. Essa opção apenas realizará a gravação, em formato de lote, dos campos referentes à data de programação, quantidade de dias de férias e quantidade de dias de abono.

 

 

Cálculo de Programação de Férias Partidas

Ajustar rotina de cálculo de programação de férias para quando o funcionário não possuir todos os dias de férias no período atual, calcular os dias restantes utilizando o próximo período como base.

  • Criar o parâmetro MV_PROFERP (Programação de Férias Partidas) que definirá como será realizado o cálculo das férias programadas.
  • O parâmetro MV_PROFERP será do tipo numérico, aceitando os seguintes valores:
    • 0 (zero) - Não utiliza [ programação de férias partidas ] 
      • Mantém o cálculo da forma que está.
    • 1 (um)  - Sempre segunda-feira.
      • Inicia a segunda parte das férias sempre na segunda-feira, independente da data final da primeira parte da programação.
    • 2 (dois) - Dias corridos.
      • Inicia a segunda parte das férias no dia seguinte ao término da primeira parte da programação independentemente da data fim.

Cenário de Cálculo:

Para realizar o cálculo partido das férias programadas é necessário guardar as seguintes informações:

  • Data de início da segunda parcela de férias
  • Quantidade de dias restantes para cálculo
  • Quantidade de abono, se houver.

data de recibo e a data de pagamento do segundo cálculo devem ser as mesmas do primeiro cálculo.

Realizar alterações nas funções GPM060Proc() e fCProgr() a fim de tratar o cálculo das férias programadas partidas.

A rotina de processamento realiza o cálculo de férias programadas percorrendo os registros da SRA, realizando o processamento para os funcionários selecionados. Ao fim de todo o fluxo é realizado o  skip na tabela. Na alteração a ser realizada, modificar o momento do skip a fim de verificar se foi calculado todos os dias das férias programadas ou apenas uma parte dos dias. Caso a quantidade de dias calculados seja menor que os dias informados e o parâmetro MV_PROFERP esteja com conteúdo maior que 0 (zero) realizar novamente o processamento sem mudar o funcionário, porém informando os novos dados para o cálculo da segunda parcela das férias.

Na rotina fCProgr() as informações sobre as férias são obtidas através da tabela SRF, porém, no cálculo da segunda parte essas informações deverão ser obtidas através do array aProFerP uma vez que os dados da SRF somente são atualizados após o fechamento mensal.

Posições do array aProFerP que deve ser atualizado no momento da validação dos dias de férias gravados: 

  • aProFerP[1] = Dias de férias remanescentes
  • aProFerP[2] = nova Data inicial
  • aProFerP[3] = novo Período aquisitivo
  • aProFerP[4] = data de pagamento
  • aProFerP[5] = data de recibo
  • aProFerP[6] = data de aviso
  • A data de pagamento, data de recibo e data de aviso devem permanecer as mesmas que do primeiro cálculo.

O array aProFerP e todas as variáveis de controle do cálculo particionado devem ser zeradas a cada mudança (skip) de funcionário na lista de processamento.

Criar a função fProFerPDt() que receberá como parâmetro a data inicial da segunda partição das férias e validará o dia inicial conforme o preenchimento do parâmetro MV_PROFERP, retornando a data atualizada.

 

Cenários de exemplo:

FuncionárioPeríodo AquisitivoDias AntecipadosFaltasData ProgramaçãoDias ProgramaçãoData InicialDiasData ReciboData Pagamento
00000108/11/2013 - 07/11/201420-16/03/20152016/03/20151013/02/201512/03/2015
 08/11/2014 - 07/11/2015----26/03/20151013/02/201512/03/2015
 
00000218/11/2013 - 17/11/201410  -16/03/20152016/03/20152013/02/201512/03/2015
 
00000318/11/2013 - 17/11/2014 -16/03/20152016/03/20152013/02/201512/03/2015
 
00000429/05/2014 - 28/05/201520  -16/03/20152016/03/20151013/02/201512/03/2015
 29/05/2015 - 28/05/2016 - ---26/03/20151013/02/201512/03/2015
 
00000529/01/2015 - 28/01/2016--16/03/20152016/03/20152013/02/201512/03/2015
 
00000729/01/2014 - 28/01/2015105 (não possui desconto)16/03/20152016/03/20152013/02/201512/03/2015
 
00000829/01/2014 - 28/01/20151010 (desconta 6 dias)16/03/20152016/03/20151413/02/201512/03/2015
 29/01/2015 - 28/01/2015----30/03/2015613/02/201512/03/2015
 
00000929/01/2015 - 28/01/20162010 (desconta 6 dias)16/03/20152016/03/2015413/02/201512/03/2015
 29/01/2016 - 28/01/2017-10 (não desconta faltas porque é férias antecipada)--20/03/2015 1613/02/201512/03/2015
          
00001029/01/2013 - 28/01/20142020 (desconta 12 dias)16/03/201520perde período0  
 29/01/2014 - 28/01/2015----16/03/20152013/02/201512/03/2015

Rotina

Tipo de Operação

Opção de Menu

GPEA050

Alteração

Atualizações -> Funcionário -> Programação Férias

GPEA051InclusãoAtualizações -> Funcionários -> Programação Férias -- Ações Relacionadas -> Programação em Lote

GPEM060

Alteração

Miscelânea -> Cálculos -> Fér. Colet./Progr.

 

Tabelas Utilizadas

  • SRA - Cadastro de Funcionários
  • SRF - Programação de Férias
  • SRH - Fèrias
  • SRR - Itens de Férias e Rescisões
  • SR8 - Afastamentos


Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Grupo de Perguntas

Nome: GPEA053

X1_ORDEM

01

X1_PERGUNT

Filial De ?

X1_TIPO

C

X1_TAMANHO

02

X1_GSC

G

X1_VAR01

MV_PAR01

X1_F3

SM0

X1_GRPSXG

033

X1_HELP

.RHFILDE.

X1_ORDEM

02

X1_PERGUNT

Filial Até ?

X1_TIPO

C

X1_TAMANHO

02

X1_GSC

G

X1_VALIDNaoVazio()

X1_VAR01

MV_PAR02

X1_F3

SM0

X1_GRPSXG

033

X1_HELP

.RHFILAT.

X1_ORDEM

03

X1_PERGUNT

Centro de Custo De ?

X1_TIPO

C

X1_TAMANHO

9

X1_GSC

G

X1_VAR01

MV_PAR03

X1_F3

SI3

X1_GRPSXG

004

X1_HELP

.RHCCDE.

X1_ORDEM

04

X1_PERGUNT

Centro de Custo Até ?

X1_TIPO

C

X1_TAMANHO

9

X1_GSC

G

X1_VALIDNaoVazio()

X1_VAR01

MV_PAR04

X1_F3

SI3

X1_GRPSXG

004

X1_HELP

.RHCCAT.

X1_ORDEM

05

X1_PERGUNT

Departamento De ?

X1_TIPO

C

X1_TAMANHO

9

X1_GSC

G

X1_VAR01

MV_PAR05

X1_F3

SQB

X1_GRPSXG

025

X1_HELP

.RHDPTDE.

X1_ORDEM

06

X1_PERGUNT

Departamento Até ?

X1_TIPO

C

X1_TAMANHO

9

X1_GSC

G

X1_VALIDNaoVazio()

X1_VAR01

MV_PAR06

X1_F3

SQB

X1_GRPSXG

025

X1_HELP

.RHDPTAT.

X1_ORDEM

07

X1_PERGUNT

Matrícula De ?

X1_TIPO

C

X1_TAMANHO

6

X1_GSC

G

X1_VAR01

MV_PAR07

X1_F3

SRA

X1_GRPSXG

121

X1_HELP

.RHMATD.

X1_ORDEM

08

X1_PERGUNT

Matrícula Até ?

X1_TIPO

C

X1_TAMANHO

6

X1_GSC

G

X1_VALIDNaoVazio()

X1_VAR01

MV_PAR08

X1_F3

SRA

X1_GRPSXG

121

X1_HELP

.RHMATA.

X1_ORDEM

09

X1_PERGUNT

Categorias ?

X1_TIPO

C

X1_TAMANHO

15

X1_GSC

G

X1_VALIDfCategoria() .AND. NaoVazio()

X1_VAR01

MV_PAR09

X1_HELP

.RHCATEG.

X1_ORDEM

10

X1_PERGUNT

Situações ?

X1_TIPO

C

X1_TAMANHO

5

X1_GSC

G

X1_VALIDfSituacao() .AND. NaoVazio()

X1_VAR01

MV_PAR10

X1_HELP

.RHSITUA.

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.