/
Historico_200. Migração de dias de direito

Historico_200. Migração de dias de direito

Origem dos dados Protheus

ORIGEM 1: DIAS DE DIREITOS TOTALIZADOS


SELECT DIREITOS.*, RA_CATFUNC CATEGORIA_FUNCIONAL FROM (
SELECT
    RF_MAT      MATRICULA,
    RF_PD       VERBA,
    SUBSTR(rf_databas,1,4)  ANO,
    SUM(RF_DIASDIR)  TOTAL_DIAS,
    SUM(RF_DIREMAN)  TOTAL_DIAS_SUSPENSOS,
    MIN(rf_databas)  INICIO_PERIODO_AQUISITIVO,
    MAX(rf_datafim)  FIM_PERIODO_AQUISITIVO
FROM SRF010
WHERE
    SRF010.D_E_L_E_T_ = ' '  and
      RF_STATUS NOT IN ('2','4') -- NÃO CANCELADO NEM PRESCRITO
GROUP BY RF_MAT, SUBSTR(rf_databas,1,4) , RF_PD) DIREITOS
INNER JOIN SRA010 ON MATRICULA = RA_MAT AND SRA010.D_E_L_E_T_ = ' '
ORDER BY ANO, VERBA ;




ORIGEM 2: ANEXOS DE DIAS DE DIREITO


SELECT
RF_MAT      MATRICULA,
RF_DIASDIR  DIAS,
RF_PD       VERBA,
SUBSTR(rf_databas,1,4)  ANO,
rf_databas  INICIO,
rf_datafim  FIM,
rf_status   SITUACAO,
ra_catfunc  CATEGORIA_FUNCIONAL
FROM SRF010
INNER JOIN SRA010 ON RA_MAT = RF_MAT AND SRA010.D_E_L_E_t_ = ' '
WHERE
    SRF010.D_E_L_E_T_ = ' '  and  RF_STATUS NOT IN ('2','4'); -- NÃO CANCELADO NEM PRESCRITO;

Como zerar programações e direitos Athenas

--DELETE FROM dayoff_acQUISITIONPERIODattachment;
--DELETE FROM dayoff_activity_modifieds;

--DELETE FROM dayoff_usufruct;

--DELETE FROM dayoff_activity;
--DELETE FROM dayoff_acquisitionperiod;

Como gravar no Athenas


Periodo Aquisitivos

Instruções para gravar no dayoff_acquisitionperiod

utilizar "ORIGEM 1: DIAS DE DIREITOS TOTALIZADOS"

CamposValorObservaçaõ
status

Se (real_days_cache - booked_days_cache) == 0

então '4'

senão '2'



Status Athenas    

1 - ACQP_WAIT: 'Aguardando Liberação p/ Marcação',
2- ACQP_PROGRESS: 'Em Andamento',
4 - ACQP_FINISHED: 'Concluído',
8 - ACQP_INDEMNIFIED: 'Indenizado Total ou Parcialmente',
12 - ACQP_PRESCRIBED: 'Prescrito',

Status Protheus

0 = Em aquisição
1 = Ativo
2 = Precrito
3 = Pago
4 = Cancelado
5 = Retificado

De/Para:


RF_STATUSAthenas
0 = Em aquisição1 - ACQP_WAIT
1 = Ativo2- ACQP_PROGRESS
2 = Precrito12 - ACQP_PRESCRIBED
3 = Pago4 - ACQP_FINISHED
4 = Cancelado4 - ACQP_FINISHED
5 = Retificado

O status retificado não definido no Athenas:


Se houver saldo

(RF_DIASDIR  - RF_DIASPGR + RF_
RF_DIREMAN) > 0  
então:  2- ACQP_PROGRESS

senão: 4 - ACQP_FINISHED


start_date_acquisition
INICIO_PERIODO_AQUISITIVO

start_date_fruition

INICIO_PERIODO_AQUISITIVO

end_date_acquisition
FIM_PERIODO_AQUISITIVO
 

days
TOTAL_DIAS

suspended_days
TOTAL_DIAS_SUSPENSOS

description

Gerar no seguinte formato "18/01/2021 - 19/01/2021"

sendo as datas ?INICIO_PERIODO_AQUISITIVO? - ?FIM_PERIODO_AQUISITIVO?


group_period_id

SQL para buscar o periodo aquisitivo

select dayoff_groupperiod.*
from dayoff_configuration
inner join dayoff_groupperiod on dayoff_configuration.id = dayoff_groupperiod.configuration_id
where sub_type_of_usufruct = ?sub_type_of_usufruct? AND dayoff_groupperiod.year_reference = ?ANO?



De acordo com a verba do periodo aquisitivo no protheus(campo VERBA), deve buscar a configuração correspondente(tabela dayoff_configuration) de acordo com de-para abaixo:


VERBAcodigo do tipo de usufruto(sub_type_of_usufruct)
S25(Férias)

Se servidor CATEGORIA_FUNCIONAL not in ('0','1') então 9000

Se servidor CATEGORIA_FUNCIONAL in ('0','1') então 9001

S67(DISPENSA ELEITORAL) 9004
S68(PLANTAO)9007
D82(GRATIFICACAO PLANTAO)9005
S58(RECESSO-ESTAGIARIO)9010
S59(BS LICENCA PREMIO) 9009
S60(BS FER COMP-MEMBRO)9008
S69(CONCURSO ESTAGIARIO)9012
S81(FOLGA COMPENSATORIA)9006
S83(RECESSO FORENSE)9002
S85(CONCURSO PROM SUBSTI)9011

9000 - Férias Regulamentares

9001 - Férias Individuais

9002 - Recesso Forense

9003 - Folga de Aniversário

9004 - Folga Eleitoral

9005 - Plantão (Servidores)

9006 - <vago>

9007 - Folgas Compensatórias de Membros

9008 - Férias Compensatórias de Membros

9009- Licença Prêmio

9010 - Recesso de Estagiário

9011 - Concurso Promotor Substituto

9012 - Concurso de Estagiários




Rascunho

1 - Férias
2 - Recesso Forense
3 - Folga de Aniversário
4 - Folga Eleitoral
5 - Folga de Plantão
6 - Folga por Compensação
7 - Licença Prêmio


employee_id

select id From rh_servidor where matricula = MATRICULA

Unknown macro: {converter MATRICULA para numerico para ficar no padrão Athenas pois o campo Matricula_origem não é preenchido mais.}

indemnifiedfalse
notefalse
pendencyfalse
continuous_periodfalse
blockedfalse
automatic_createdfalse
real_days_cache
TOTAL_DIAS

booked_days_cache

SELECT DIAS_TOTAL FROM (
select ria_mat MATRICULA,
ria_pd VERBA,
SUBSTR(RIA_DTINPA,1,4) ANO,
SUM(RIA_NRDGOZ + RIA010.RIA_NRDIND) DIAS_TOTAL ,
RA_CATFUNC CATEGORIA_FUNCIONAL
FROM ria010
INNER JOIN SRA010 ON RA_MAT = RIA010.RIA_MAT AND SRA010.D_E_L_E_T_ = ' '
where ria010.D_E_L_E_T_ = ' ' AND RIA_STATUS <> '1'
GROUP BY RIA_MAT, RIA_PD, RIA_DTINPA, RA_CATFUNC)
WHERE VERBA = ?VERBA? AND MATRICULA = '?MATRICULA?' AND ANO = ?ANO?;


days_to_enjoy_cache
real_days_cache - booked_days_cache

paid_days_cacheSELECT DIAS_TOTAL FROM (
select ria_mat MATRICULA,
ria_pd VERBA,
SUBSTR(RIA_DTINPA,1,4) ANO,
SUM(RIA010.RIA_NRDIND) DIAS_TOTAL ,
RA_CATFUNC CATEGORIA_FUNCIONAL
FROM ria010
INNER JOIN SRA010 ON RA_MAT = RIA010.RIA_MAT AND SRA010.D_E_L_E_T_ = ' '
where ria010.D_E_L_E_T_ = ' ' AND RIA_STATUS <> '1'
GROUP BY RIA_MAT, RIA_PD, RIA_DTINPA, RA_CATFUNC)
WHERE VERBA = ?VERBA? AND MATRICULA = '?MATRICULA?' AND ANO = ?ANO?;

days_not_booked_cache
real_days_cache - booked_days_cache

paid_without_payrollfalse

Anexos dos periodos aquisitivos

Instruções para gravar no dayoff_acquisitionperiodattachment

utilizar "ORIGEM 2: ANEXOS DE DIAS DE DIREITOS"

Somente para VERBA diferente de S25(Férias) e S59(BS LICENCA PREMIO)

id

Gerado automaticamente
created_atData de hoje
modified_atData de hoje
description
INICIO - FIM

Ex. 20/01/2021 - 21/01/2021


information

date_start
INICIO 

date_end
FIM

days_law
DIAS

acquisition_period_id

Para buscar o periodo aquisitivo correspondente:

RF_PD

sub_type_of_usufruct

S25(Férias)

Se servidor CATEGORIA_FUNCIONAL not in ('0','1') então 9000

Se servidor CATEGORIA_FUNCIONAL in ('0','1') então 9001

S67(DISPENSA ELEITORAL)9004
S68(PLANTAO)9007
D82(GRATIFICACAO PLANTAO)9005
S58(RECESSO-ESTAGIARIO)9010
S59(BS LICENCA PREMIO)9009
S60(BS FER COMP-MEMBRO)9008
S69(CONCURSO ESTAGIARIO)9012
S81(FOLGA COMPENSATORIA)9006
S83(RECESSO FORENSE)9002
S85(CONCURSO PROM SUBSTI)9011


select *
from dayoff_configuration
inner join dayoff_groupperiod on dayoff_configuration.id = dayoff_groupperiod.configuration_id
inner join dayoff_acquisitionperiod on dayoff_groupperiod.id = dayoff_acquisitionperiod.group_period_id
where sub_type_of_usufruct = ?sub_type_of_usufruct? and dayoff_groupperiod.year_reference = ?ANO?


sub_type_of_usufruct

9000 - Férias Regulamentares

9001 - Férias Individuais

9002 - Recesso Forense

9003 - Folga de Aniversário

9004 - Folga Eleitoral

9005 - Gratificação de Plantão(Servidores)

9006 - Folga Compensatória(Servidores)

9007 - Folgas Compensatórias de Membros

9008 - Férias Compensatórias de Membros

9009- Licença Prêmio

9010 - Recesso de Estagiário

9011 - Concurso Promotor Substituto

9012 - Concurso de Estagiários

attachment_idNULL
created_by_id1
modified_by_id1















Rascunho
select
    status,
    start_date_acquisition,
    end_date_acquisition,
    start_date_fruition,
    days,
    suspended_days,
    description,
    group_period_id,
    employee_id
from dayoff_acquisitionperiod;


INSERT INTO public.dayoff_groupperiod (created_at, modified_at, created_by_id, modified_by_id, title, period, start_date_book, start_date_fruition, year_reference, blocked, configuration_id)
VALUES
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2022-01-01', '2022-01-01', 2021, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2021-01-01', '2021-01-01', 2020, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2020-01-01', '2020-01-01', 2019, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2019-01-01', '2019-01-01', 2018, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2018-01-01', '2018-01-01', 2017, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2017-01-01', '2017-01-01', 2016, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2016-01-01', '2016-01-01', 2015, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2015-01-01', '2015-01-01', 2014, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2014-01-01', '2014-01-01', 2013, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2013-01-01', '2013-01-01', 2012, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2012-01-01', '2012-01-01', 2011, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2011-01-01', '2011-01-01', 2010, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2010-01-01', '2010-01-01', 2009, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2009-01-01', '2009-01-01', 2008, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2008-01-01', '2008-01-01', 2007, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2007-01-01', '2007-01-01', 2006, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2006-01-01', '2006-01-01', 2005, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2005-01-01', '2005-01-01', 2004, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2004-01-01', '2004-01-01', 2003, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2003-01-01', '2003-01-01', 2002, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2002-01-01', '2002-01-01', 2001, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '2001-01-01', '2001-01-01', 2000, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '1999-01-01', '1999-01-01', 1998, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '1997-01-01', '1997-01-01', 1996, false, 10),
(now(), now(), 1,1, 'FERIAS REGULAMENTARES ', 1, '1991-01-01', '1991-01-01', 1990, false, 10)
;





select from rh_servidor where id = '631274'-- 006402
select from dayoff_configuration where type_of_usufruct = '4'-- tipo eleicoes
select from dayoff_groupperiod where configuration_id = '4';
select
    start_date_acquisition INICIO_PERIODO_AQUISITIVO,
    end_date_acquisition   FIM_PERIODO_AQUISITIVO,
    days TOTAL,
    booked_days_cache DIAS_AGENDADOS,
    days_to_enjoy_cache SALDO,
    suspended_days DIAS_SUSPENSOS
from dayoff_acquisitionperiod
where
    group_period_id in ('19','4','17','18'and
    employee_id = '631274' and
    status not in (1, 4, 12);



ria_status

0 = Programado
1 = Cancelado
2 = Suspenso
3 = Retificado
4 = Quitado



INSERT INTO public.dayoff_acquisitionperiod

(indemnified, note, pendency, continuous_period,blocked,automatic_created, real_days_cache, booked_days_cache, days_to_enjoy_cache, paid_days_cache, days_not_booked_cache, paid_without_payroll, created_at,modified_at,status,start_date_acquisition,end_date_acquisition,start_date_fruition,days,suspended_days,created_by_id,employee_id,group_period_id,modified_by_id)

VALUES (false,  false, false, false, false, false, 30, 0,30, 0,30, false, now(),now(),2,'2013-02-13','2014-02-12','2014-01-01', 30,  0,  1, 627393, 41, 1);

Related content

Historico_300. Migração de afastamentos
Historico_300. Migração de afastamentos
More like this
Historico_250. Migração de Programações
Historico_250. Migração de Programações
More like this
Historico_02- Intranet
Historico_02- Intranet
More like this
Historico_Ajustes Athenas via banco de dados
Historico_Ajustes Athenas via banco de dados
More like this
Historico_Mapeamento dos Relatórios do Protheus
Historico_Mapeamento dos Relatórios do Protheus
More like this
Historico_03- Aposentados
Historico_03- Aposentados
More like this