8 Replies Latest reply: Aug 19, 2015 4:40 PM by Marcos Ferreira RSS

    Como processar Históricos (salarial, funcional), etc... no Qlik

    Marcos Ferreira

      Bom dia.

      Pessoal, a dúvida de hoje parece (pelo menos para mim), mais complicada, afinal, não cheguei nem perto de resolver.

       

      Cenário:

      Na empresa que trabalho, registramos no sistema, os vários salários que uma pessoa teve ao longo do tempo na empresa, assim como as várias funções também, tudo dentro do HISTÓRICO_SALARIAL,  e do HISTÓRICO_FUNCIONAL....

       

      A cada três anos, por exemplo, de acordo com a nossa política salarial, os funcionários (sem nenhum problema, faltas, advertência, etc...), recebem 3% de bonus no salário, com isso, na função que é mudada, entra uma letrinha a mais, além dos 3% citados, além é claro, da correção de salário pela data base da categoria sindical anualmente...

       

      Todo painel que faço, que envolva funcionário e função, tenho que respeitar a função que o funcionário tinha na época consultada, mas não sei como fazer isso. Diversos painés que eu tinha que desenvolver, parei quando encontrei esta dificuldade, ou ignorei, e mostrei apenas a última função e salário, mas sei que está errado. tenho que mostrar o que de fato era na época selecionada.

       

      Anexei a esta discussão, QVDs e QVW, nos QVDs, tem o meu registro, e nele, as vezes (acho que umas 5 de salário e 5 de mudança de função) que ocorreram estas mudanças.

       

      Os tabelas são ligadas pelo ID_FUNCIONARIO.

       

      Exemplo fictício, apenas para ilustrar:

      Fui registrado em 01/01/2009 e minha data de saída é 31/12/2030 (todo registro tem data fim, que é chutada para frente, quando o funcionário é demitido, esta data é alterada para data de sua saída)

      Entre 01/03/2009 e 28/02/2010 meu salário era R$3.000,00 e função era Analista de Sistemas 3A

      Entre 01/03/2010 e 28/02/2011 meu salário era R$3.300,00 e função era de Analista de Sistemas 3E

      Entre 01/03/2011 e 28/02/2012 meu salário era R$3.700,00 e função era de Analista de Sistemas 3G

       

      Resumindo, tenho:

      período para o registro em si (data de admissão e demissão)

      período para cada função exercida

      período para cada salário que recebi

       

      Os dados são fictícios, as datas e valores não refletem a realidade, mas tudo que cito acima, nas nas datas e valores citados, estão nos arquivos QVDs que estou anexando.

       

      Sei que é uma situação mais avançada, mas vocês podem me dar uma força nisso?

       

      Se tiver algum exemplo na comunidade (que não achei), que reflita uma situação semelhante, posso usar como exemplo.

       

      Desde já agradeço pela ajuda de sempre.

      At, Marcos.

      estejam todos na paz.

        • Re: Como processar Históricos (salarial, funcional), etc... no Qlik
          Yuri Nicolett

          Nesta aplicação você vai liberar o filtro de dia ao usuário ou somente do mês?

          • Re: Como processar Históricos (salarial, funcional), etc... no Qlik
            Egnaldo de Sousa

            Tive um problema parecido, e consegui resolver com a ajuda do fernando.tonial.

             

            da uma olhada se ajuda, se não conseguir tento montar a resposta para ajudar.

             

            https: // community.qlik.com/thread/114438?sr=inbox&ru=80625

            • Re: Como processar Históricos (salarial, funcional), etc... no Qlik
              Alessandro Furtado

              Marcos, boa tarde.

               

              Segue a tela do exemplo.

               

              Para o historico salarial,

               

              DT_INICIO_VIGENCIA DT_FIM_VIGENCIA ID_FUNCIONARIO ID_HISTORICO_SALARIAL ID_TIPO_SALARIO VL_SALARIO
              09/02/2009 00:00:0028/02/2013 00:00:00945423552703113890,40
              01/03/2013 00:00:0030/04/2014 00:00:00945424824503114279,44
              01/05/2014 00:00:0031/05/2015 00:00:00945425082053114707,30
              01/06/2015 00:00:0031/12/2030 00:00:00945425348333115093,40

               

              Entao, o resultado seria

               

              Ano Mes NM_FUNCIONARIO Valor Salario
              2009fevMARCOS ANDRE F FERREIRA3890,40
              2009marMARCOS ANDRE F FERREIRA3890,40
              2009abrMARCOS ANDRE F FERREIRA3890,40
              2009maiMARCOS ANDRE F FERREIRA3890,40
              2009junMARCOS ANDRE F FERREIRA3890,40
              2009julMARCOS ANDRE F FERREIRA3890,40
              2009agoMARCOS ANDRE F FERREIRA3890,40
              2009setMARCOS ANDRE F FERREIRA3890,40
              2009outMARCOS ANDRE F FERREIRA3890,40
              2009novMARCOS ANDRE F FERREIRA3890,40
              2009dezMARCOS ANDRE F FERREIRA3890,40
              2010janMARCOS ANDRE F FERREIRA3890,40
              2010fevMARCOS ANDRE F FERREIRA3890,40
              2010marMARCOS ANDRE F FERREIRA3890,40
              2010abrMARCOS ANDRE F FERREIRA3890,40
              2010maiMARCOS ANDRE F FERREIRA3890,40
              2010junMARCOS ANDRE F FERREIRA3890,40
              2010julMARCOS ANDRE F FERREIRA3890,40
              2010agoMARCOS ANDRE F FERREIRA3890,40
              2010setMARCOS ANDRE F FERREIRA3890,40
              2010outMARCOS ANDRE F FERREIRA3890,40
              2010novMARCOS ANDRE F FERREIRA3890,40
              2010dezMARCOS ANDRE F FERREIRA3890,40
              2011janMARCOS ANDRE F FERREIRA3890,40
              2011fevMARCOS ANDRE F FERREIRA3890,40
              2011marMARCOS ANDRE F FERREIRA3890,40
              2011abrMARCOS ANDRE F FERREIRA3890,40
              2011maiMARCOS ANDRE F FERREIRA3890,40
              2011junMARCOS ANDRE F FERREIRA3890,40
              2011julMARCOS ANDRE F FERREIRA3890,40
              2011agoMARCOS ANDRE F FERREIRA3890,40
              2011setMARCOS ANDRE F FERREIRA3890,40
              2011outMARCOS ANDRE F FERREIRA3890,40
              2011novMARCOS ANDRE F FERREIRA3890,40
              2011dezMARCOS ANDRE F FERREIRA3890,40
              2012janMARCOS ANDRE F FERREIRA3890,40
              2012fevMARCOS ANDRE F FERREIRA3890,40
              2012marMARCOS ANDRE F FERREIRA3890,40
              2012abrMARCOS ANDRE F FERREIRA3890,40
              2012maiMARCOS ANDRE F FERREIRA3890,40
              2012junMARCOS ANDRE F FERREIRA3890,40
              2012julMARCOS ANDRE F FERREIRA3890,40
              2012agoMARCOS ANDRE F FERREIRA3890,40
              2012setMARCOS ANDRE F FERREIRA3890,40
              2012outMARCOS ANDRE F FERREIRA3890,40
              2012novMARCOS ANDRE F FERREIRA3890,40
              2012dezMARCOS ANDRE F FERREIRA3890,40
              2013janMARCOS ANDRE F FERREIRA3890,40
              2013fevMARCOS ANDRE F FERREIRA3890,40
              2013marMARCOS ANDRE F FERREIRA4279,44
              2013abrMARCOS ANDRE F FERREIRA4279,44
              2013maiMARCOS ANDRE F FERREIRA4279,44
              2013junMARCOS ANDRE F FERREIRA4279,44
              2013julMARCOS ANDRE F FERREIRA4279,44
              2013agoMARCOS ANDRE F FERREIRA4279,44
              2013setMARCOS ANDRE F FERREIRA4279,44
              2013outMARCOS ANDRE F FERREIRA4279,44
              2013novMARCOS ANDRE F FERREIRA4279,44
              2013dezMARCOS ANDRE F FERREIRA4279,44
              2014janMARCOS ANDRE F FERREIRA4279,44
              2014fevMARCOS ANDRE F FERREIRA4279,44
              2014marMARCOS ANDRE F FERREIRA4279,44
              2014abrMARCOS ANDRE F FERREIRA4279,44
              2014maiMARCOS ANDRE F FERREIRA4707,30
              2014junMARCOS ANDRE F FERREIRA4707,30
              2014julMARCOS ANDRE F FERREIRA4707,30
              2014agoMARCOS ANDRE F FERREIRA4707,30
              2014setMARCOS ANDRE F FERREIRA4707,30
              2014outMARCOS ANDRE F FERREIRA4707,30
              2014novMARCOS ANDRE F FERREIRA4707,30
              2014dezMARCOS ANDRE F FERREIRA4707,30
              2015janMARCOS ANDRE F FERREIRA4707,30
              2015fevMARCOS ANDRE F FERREIRA4707,30
              2015marMARCOS ANDRE F FERREIRA4707,30
              2015abrMARCOS ANDRE F FERREIRA4707,30
              2015maiMARCOS ANDRE F FERREIRA4707,30
              2015junMARCOS ANDRE F FERREIRA5093,40
                • Re: Como processar Históricos (salarial, funcional), etc... no Qlik
                  Alessandro Furtado

                  Segue o script

                   

                  //HISTORICO_FUNCIONAL:

                  Movimento:

                  LOAD

                       ID_FUNCIONARIO,

                       DT_INICIO_VIGENCIA,

                       DT_FIM_VIGENCIA,

                       ID_FUNCAO,

                       ID_UNIDADE_NEGOCIO,

                       Year(addmonths(DT_INICIO_VIGENCIA,(IterNo()-1)))                                        as Ano,

                       month(addmonths(DT_INICIO_VIGENCIA,(IterNo()-1)))                                       as Mes

                  While IterNo() <= Qtde_Meses; 

                  LOAD

                       ID_HISTORICO_FUNCIONAL,

                       ID_FUNCIONARIO,

                       date(floor(DT_INICIO_VIGENCIA))                                                         as DT_INICIO_VIGENCIA,

                       date(floor(if(year(DT_FIM_VIGENCIA)=2030,today(),DT_FIM_VIGENCIA)))                     as DT_FIM_VIGENCIA,

                       round((if(year(DT_FIM_VIGENCIA)=2030,today(),DT_FIM_VIGENCIA) - DT_INICIO_VIGENCIA)/30) as Qtde_Meses,

                       ID_FUNCAO,

                       ID_UNIDADE_NEGOCIO

                  FROM [HISTORICO_FUNCIONAL.qvd] (qvd);

                   

                   

                  HISTORICO_SALARIAL:

                  LOAD

                       ID_FUNCIONARIO,

                       ID_TIPO_SALARIO,

                       DT_INICIO_VIGENCIA,

                       DT_FIM_VIGENCIA,

                       VL_SALARIO,

                       Year(addmonths(DT_INICIO_VIGENCIA,(IterNo()-1)))                                        as Ano,

                       month(addmonths(DT_INICIO_VIGENCIA,(IterNo()-1)))                                       as Mes

                  While IterNo() <= Qtde_Meses;

                  LOAD

                       ID_HISTORICO_SALARIAL,

                       ID_FUNCIONARIO,

                       ID_TIPO_SALARIO,

                       date(floor(DT_INICIO_VIGENCIA))                                                         as DT_INICIO_VIGENCIA,

                       date(floor(if(year(DT_FIM_VIGENCIA)=2030,today(),DT_FIM_VIGENCIA)))                     as DT_FIM_VIGENCIA,

                        round((if(year(DT_FIM_VIGENCIA)=2030,today(),DT_FIM_VIGENCIA) - DT_INICIO_VIGENCIA)/30)as Qtde_Meses,     

                       VL_SALARIO

                  FROM [HISTORICO_SALARIAL.qvd] (qvd);

                  //

                  Concatenate (Movimento)

                  LOAD * Resident HISTORICO_SALARIAL;

                  //

                  DROP Table HISTORICO_SALARIAL;

                  //

                  //

                  FUNCIONARIOS:

                  LOAD ID_FUNCIONARIO,

                       ID_EMPRESA,

                       ID_MOTIVO_SAIDA,

                       NR_CRACHA,

                       NM_FUNCIONARIO,

                       DT_NASCIMENTO,

                       CS_SEXO,

                       DT_INICIO_ATIVIDADE,

                       DT_INICIO_ATIVIDADE as DT_INICIO_ATIVIDADE_FUNC,

                       DT_FIM_ATIVIDADE as DT_FIM_ATIVIDADE_FUNC,

                       CS_INSTRUCAO,

                       NR_LOCAL,

                       TE_MOTIVO,

                       ID_MOTIVO

                  FROM [FUNCIONARIOS.qvd] (qvd);