6 Replies Latest reply: Jul 15, 2018 7:33 PM by Thiago Justen Teixeira RSS

    inserir no indicador de afastados os motivos de afastamento

    Alessandra Santos

      Pessoal

       

      boa tarde!

       

       

      Preciso de ajuda...  tenho vários indicadores dentro de um mesmo script: Headcount, Afastamentos e etc ...

       

      preciso colocar destro do indicador  de afastados o motivo do afastamento, tentei fazer  uma  dimensão com essa  informação, mas  não deu certo.

       

       

      a dimensão é essa:

       

       

      IF (R8_TIPO = '1', 'APOSENTADORIA INVALIDEZ',

          IF (R8_TIPO = 'F', 'FÉRIAS',

          IF (R8_TIPO = 'O', 'ACIDENTE TRABALHO',

          IF (R8_TIPO = 'P', 'AUXÍLIO DOENÇA',

          IF (R8_TIPO = 'Q', 'LICENÇA MATERNIDADE',

          IF (R8_TIPO = 'X', 'LICENÇA NÃO REMUNERADA',

          IF (R8_TIPO = 'Y', 'ENCARCERADO',

          IF (R8_TIPO = 'R', 'SERVIÇO MILITAR')))))))) AS [Desc. Afastamento]

       

       

      *********************************************************************************************************************************************

       

      TRACE *******************************************************;
      TRACE Indicador Headcount de Funcionários;

      Funcionarios:
      LOAD
          Mid(FileBaseName(), 5, 2) &'|'& RA_FILIAL   AS %KeyEmpresa,
          RA_MAT &'|'& RA_FILIAL        AS %KeyFuncionario,
          DATE(Date#(RA_ADMISSA,'YYYYMMDD'),'DD/MM/YYYY') AS RA_ADMISSA,
          DATE(Date#(RA_DEMISSA,'YYYYMMDD'),'DD/MM/YYYY') AS RA_DEMISSA
      FROM [lib://QVDs_RH/VSRA020_SENSERH.qvd] (qvd)

      WHERE RA_FILIAL = '01';

      LET vDataInicial = Num('$(vPeriodoInicioCarga)');
      LET vDataFinal = Num(MonthStart(Today()));

       

      //Mapeamento de AFASTAMENTOS (INÍCIO)
      AfastamentosTemp:
      LOAD Date($(vDataInicial) + RowNo() -1) AS DATA_AFASTAMENTO
      AutoGenerate Today() - '1/1/1997' +1;

      Left Join (AfastamentosTemp)
      LOAD Distinct
          R8_MAT,
          R8_FILIAL,
          R8_TIPO,
              Date(Date#(R8_DATAINI, 'YYYYMMDD')) AS R8_DATAINI,
          If (R8_DATAFIM <=0, Today(), Date(Date#(R8_DATAFIM, 'YYYYMMDD'))) AS R8_DATAFIM
      FROM
          [lib://QVDs_RH/VSR8020_SENSERH.qvd] (qvd);

      MapAfastamentos:
      Mapping
      LOAD
          DATA_AFASTAMENTO &'|'& R8_MAT &'|'& R8_FILIAL,
          If (R8_TIPO = 'F', 'Férias', 'Afastado')

             
      Resident
      AfastamentosTemp
      Where
      DATA_AFASTAMENTO >= R8_DATAINI and
      DATA_AFASTAMENTO <= R8_DATAFIM;

      DROP Table AfastamentosTemp;
      //Mapeamento de AFASTAMENTOS (FIM)

       


      //Funções de exclusão para cálculo de Cota de Aprendiz
      FuncoesExclusao:
      LOAD "Cod. Funcao" AS CodFuncaoExcluido
      FROM [lib://ExtData_RH/CadastrosManuais\Aprendiz\Funções Cota Aprendiz.xlsx] (ooxml, embedded labels, table is Plan2)
      WHERE "Funções Direção" = 'X'
      OR "Funções Nivel Tec / Sup" = 'X';

      LooPeriodos:
      LOAD Distinct MonthStart($(vDataInicial) + RowNo() -1) AS Periodos
      AutoGenerate $(vDataFinal) - $(vDataInicial) +1;

      FOR Each vPeriodo in FieldValueList('Periodos')

        //Headcount Funcionários
        Concatenate (Fato)
        LOAD *,
            If (Exists(CodFuncaoExcluido, ApplyMap('MapFuncaoHistoricoFuncionario', %KeyFuncionarioHistor, Null())), 0, 1) AS [Qtd Funcionários Base Cota Aprendiz];
        LOAD
            %KeyEmpresa,
            %KeyFuncionario,
           // ApplyMap('MapItemHistoricoFuncionario', Num('$(vPeriodo)') &'|'& %KeyFuncionario, ApplyMap('MapItemAtualFuncionario', %KeyFuncionario, '0000')) AS %KeyItem,
           // ApplyMap('MapCentroCustoHistoricoFuncionario', Num('$(vPeriodo)') &'|'& %KeyFuncionario, ApplyMap('MapCentroCustoAtualFuncionario', %KeyFuncionario, '0000')) AS %KeyCentroCusto,
            ApplyMap('MapAfastamentos', If (MonthName('$(vPeriodo)') = MonthName(Today()), Today(), MonthEnd('$(vPeriodo)')) &'|'& %KeyFuncionario, 'Não Afastado') AS [Tipo Afastamento],
         
           
           If ('$(vPeriodo)' < '$(vDataMinimaHistoricoFuncionario)',
            Date('$(vDataMinimaHistoricoFuncionario)', 'YYYYMM'), Date('$(vPeriodo)', 'YYYYMM')) &'|'& %KeyFuncionario AS %KeyFuncionarioHistor,
           
            '$(vPeriodo)' AS [Data Fato],
            '$(vPeriodo)', 'Afastados' AS [Flag Caged],
            'HEADCO'   AS %KeyIndicador,

            If (('$(vPeriodo)' - MonthStart(RA_ADMISSA) >= 90 and
           '$(vPeriodo)' - MonthStart(RA_ADMISSA) < 120), 'Sim') AS [Flag Sucesso Seleção],
            If (('$(vPeriodo)' - MonthStart(RA_ADMISSA) >= 120 and
                '$(vPeriodo)' - MonthStart(RA_ADMISSA) < 150), 'Sim') AS [Flag Sucesso Retenção],

            1    AS [Vlr Indicador 1]
        RESIDENT
            Funcionarios
        WHERE
            '$(vPeriodo)' >= MonthStart(RA_ADMISSA) and
            '$(vPeriodo)' <= iF (IsNull(RA_DEMISSA), Today(), AddMonths(RA_DEMISSA,-1));

      NEXT

      DROP Tables Funcionarios,LooPeriodos,FuncoesExclusao;