Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     SELECT
  2.         fn.fun_cod AS id,
  3.         CASE
  4.         WHEN fn.fun_matricula IS NOT NULL
  5.             THEN  CAST ( psfn.pes_nome AS varchar )|| CAST ( ' - ' AS varchar )|| CAST ( fn.fun_matricula AS varchar )
  6.             ELSE psfn.pes_nome
  7.         END AS label
  8.        
  9.     FROM edu_funcionario efn
  10.  
  11.     INNER JOIN rh_funcionario fn
  12.         ON fn.fun_cod = efn.efunc_funcod
  13.  
  14.     INNER JOIN rh_contrato ct
  15.         ON ct.contr_funcod = fn.fun_cod
  16.  
  17.     INNER JOIN rh_cargo cg
  18.         ON cg.carg_cod = ct.contr_cargcod
  19.             AND cg.carg_docencia = 1
  20.  
  21.     INNER JOIN rh_tipo_cargo tcg
  22.         ON tcg.tpcarg_cod = cg.carg_tpcargcod
  23.  
  24.     INNER JOIN bas_status st_tp_cargo_classificacao
  25.         ON st_tp_cargo_classificacao.sta_cod = tcg.tpcarg_classficacao
  26.  
  27.     INNER JOIN rh_contrato_sede cts
  28.         ON cts.contrsede_contrcod = ct.contr_cod
  29.     -- sede ativa
  30.     AND (
  31.     (
  32.         cts.contrsede_dt_fim IS NOT NULL
  33.             AND '2019-02-20' BETWEEN cts.contrsede_dt_ini AND cts.contrsede_dt_fim
  34.     )
  35.     OR (
  36.         cts.contrsede_dt_fim IS NULL
  37.             AND '2019-02-20' >= cts.contrsede_dt_ini
  38.     )
  39.     )
  40.    
  41.  
  42.     INNER JOIN bas_pessoa psfn
  43.         ON psfn.pes_cod = fn.fun_pescod
  44.  
  45.     LEFT JOIN edu_inscricao_atribuicao ia
  46.         ON ia.insat_funcod = fn.fun_cod
  47.             AND ia.insat_atribuicao = 1
  48.             AND ia.insat_ano = 2019
  49.  
  50.     WHERE
  51.         1=1
  52.         AND (          
  53.                 (
  54.                 -- em cargo EFETIVO eh obrigatoria a inscricao
  55.                 tcg.tpcarg_classficacao = 54 -- (bas_status 'TP_CARGO_CLASSIFICACAO')
  56.                 AND (
  57.                     -- se a inscrição não for nula, ele entra
  58.                     ia.insat_cod IS NOT NULL
  59.                     OR(
  60.                     -- se a inscrição for nula e a adimissão dele foi posterior ao periodo de inscrição para atribuição
  61.                         ia.insat_cod IS NULL
  62.                         AND (
  63.                             SELECT
  64.                                 ecp.cfgptu_insc_atrib_de < ct.contr_dtadmissao
  65.  
  66.                             FROM edu_cfg_pontuacao ecp
  67.  
  68.                             WHERE 1=1
  69.                                 AND ecp.cfgptu_ano_letivo = 2019
  70.                         )
  71.                     )
  72.                 )
  73.             )
  74.             OR (
  75.                 -- em cargo nao EFITIVO a inscricaonao eh obrigatoria
  76.                 tcg.tpcarg_classficacao<> 54 -- (bas_status 'TP_CARGO_CLASSIFICACAO')
  77.                 AND ia.insat_cod IS NULL
  78.             )
  79.         )
  80.         AND (
  81.             (
  82.         -- funcionarios de locais de trabalho que o usuario logado tem permissao
  83.             SELECT
  84.                 count(1)
  85.             FROM rh_cargo_funcionario cfn
  86.  
  87.             INNER JOIN rh_cargo_fun_loc_trab cfnlt
  88.                 ON cfnlt.cfunlctrab_cfuncod = cfn.cfun_cod
  89.                 AND (
  90.                     (
  91.                         cfnlt.cfunlctrab_dt_fim IS NOT NULL
  92.                         AND '2019-02-20' BETWEEN cfnlt.cfunlctrab_dt_inicio AND cfnlt.cfunlctrab_dt_fim
  93.                     )
  94.                     OR (
  95.                         cfnlt.cfunlctrab_dt_fim IS NULL
  96.                         AND '2019-02-20' >= cfnlt.cfunlctrab_dt_inicio
  97.                     )
  98.                 )
  99.                            
  100.         INNER JOIN bas_local_trabalho lt
  101.             ON lt.lctrab_cod = cfnlt.cfunlctrab_lctrabcod
  102.                        
  103.         INNER JOIN edu_escola es   
  104.             ON es.escol_pescod = lt.lctrab_pescod
  105.                        
  106.         INNER JOIN edu_escola_usuario eu
  107.             ON eu.escolusu_escolcod = es.escol_cod
  108.                 AND eu.escolusu_usucod = 809
  109.                            
  110.         WHERE
  111.             1=1
  112.             AND cfn.cfun_funcod = fn.fun_cod
  113.             AND (
  114.                 (
  115.                     cfn.cfun_dtfim IS NOT NULL
  116.                     AND '2019-02-20' BETWEEN cfn.cfun_dtinicio AND cfn.cfun_dtfim
  117.                 )
  118.                 OR (
  119.                     cfn.cfun_dtfim IS NULL
  120.                     AND '2019-02-20' >= cfn.cfun_dtinicio
  121.                 )
  122.             )
  123.     ) > 0
  124.     OR (
  125.         -- funcionarios de sede que o usuario logado tem permissao
  126.         cts.contrsede_lctrabcod IN (
  127.             SELECT
  128.                 lt.lctrab_cod
  129.             FROM edu_escola_usuario eu
  130.  
  131.             INNER JOIN edu_escola es
  132.                 ON es.escol_cod = eu.escolusu_escolcod
  133.  
  134.             INNER JOIN bas_local_trabalho lt
  135.                 ON lt.lctrab_pescod = es.escol_pescod
  136.  
  137.             WHERE
  138.                 1=1
  139.                 AND eu.escolusu_usucod = 809
  140.         )
  141.     )
  142. )
  143.  
  144. GROUP BY
  145.     fn.fun_cod,
  146.     psfn.pes_nome,
  147.     fn.fun_matricula
  148.  
  149. ORDER BY
  150.     psfn.pes_nome
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement