Untitled
unknown
python
a year ago
4.7 kB
4
Indexable
# -*- coding: utf-8 -*- import sys import csv from rh.models import * from rh.gfp.models import * import os NOME_PASTA = settings.UPLOAD_STORE_DIR+'/servidores_cti/' NOME_ARQUIVO = 'cti_SERVIDORES_' if not os.path.exists(NOME_PASTA): os.makedirs(NOME_PASTA) ANOS = [2023] servidores = Servidor.objects.filter( entries__folha__periodo__ano__in=ANOS, ).order_by('pessoa_fisica__nome').distinct() servidores_filtro = [] def get_fez_value(ano,servidores): fes = FolhaEvento.objects.filter( folha__periodo__ano=ano, contracheque__pensioner__isnull=True, status='CT', servidor__in=servidores, evento__tipo='P' ) return fes def get_fes_patronal(ano,servidores): rubricas_prev = ['93000','93100','91000','91100','94000','94100','94500','94600'] fes_prev = FolhaEvento.objects.filter( folha__periodo__ano=ano, contracheque__pensioner__isnull=True, status='CT', servidor__in=servidores, evento__numero__in=rubricas_prev ) return fes_prev def get_total_value(fes=None,servidor=None): fes = fes.filter(servidor=servidor) total = 0 for fe in fes: total += fe.value return total def get_total_patronal(fes=None,servidor=None): fes = fes.filter(servidor=servidor) total_prev = 0 for fes_p in fes: total_prev += fes_p.patronal return total_prev def get_servidores_cti_all(ano,filter=None,texto=None): data_inicial = date(ano,1,1) data_final = date(ano,12,31) servidores = Servidor.objects.filter(servidor_lotacao__lotacao__pk__in=[16,531]) servidores = servidores.filter( Q(servidor_lotacao__data_vigencia_inicio__lte=data_final) & (Q(servidor_lotacao__data_vigencia_fim__gte=data_inicial) | Q(servidor_lotacao__data_vigencia_fim=None)) ) servidores_gaeco = Servidor.objects.filter(matricula=335) servidores = servidores | servidores_gaeco servidores = servidores.distinct() if filter: servidores = servidores.filter(type_by_possession__in=filter) return servidores def get_gastos_cti(ano): servidores = get_servidores_cti_all(ano) fes_valor = get_fez_value(ano,servidores) fes_patronal = get_fes_patronal(ano,servidores) print 'GASTOS SERVIDORES CTI:',ano total_value = 0 total_patronal = 0 for s in servidores: valor = get_total_value(fes_valor,s) patronal = get_total_patronal(fes_patronal,s) print s, 'TOTAL - FOLHA :',valor, 'TOTAL PATRONAL :',patronal total_value += valor total_patronal = patronal print 'TOTAL - FOLHA :',total_value, 'TOTAL - PATRONAL:',total_patronal print 'TOTAL:',total_patronal + total_value def get_servidores_cti(ano,filter=None,texto=None): servidores = get_servidores_cti_all(ano,filter) if filter: servidores = servidores.filter(type_by_possession__in=filter) if texto: print texto print 'ANO:'+str(ano) print 'QUANTIDADE :'+ str(len(servidores)) for s in servidores: print s,s.type_by_possession def get_usuarios(ano): data_inicial = date(ano,1,1) data_final = date(ano,12,31) servidores = Servidor.objects.filter( Q(exercise_date__lte=data_final) & (Q(termination_date__gte=data_inicial) | Q(termination_date=None)) ).distinct() print 'QUANTIDADE USUARIOS:'+ str(len(servidores)) def get_servidores_carreira(ano): get_servidores_cti(ano,['EFE','EFC','ECM'],'SERVIDORES EFETIVOS DE TI') def get_servidores_todos(ano): get_servidores_cti(ano=ano,texto='TODOS SERVIDORES DE TI') def run(): anos = [2023] for ano in anos: # get_servidores_carreira(ano) # get_servidores_todos(ano) # get_usuarios(ano) get_gastos_cti(ano) run() # print 'SERVIDORES DA CTI 2022' # for s in servidores_filtro: # fes_filter = fes.filter(servidor=s) # fes_prev_filter = fes_prev.filter(servidor=s) # print s, 'FOLHA :', get_total_value(fes_filter), 'PATRONAL:', get_total_patronal(fes_prev_filter) # def is_servidor_cti(servidor=None): # data_inicial = date(ANO,1,1) # data_final = date(ANO,12,31) # query = servidor.servidor_lotacao.all() # query = query.filter(lotacao__id=16) # query = query.filter(Q(data_vigencia_inicio__lte=data_inicial) & (Q(data_vigencia_fim__gte=data_final) | Q(data_vigencia_fim=None))) # return query.exists() # print '\n' # print 'TOTAL GASTO COM SERVIDORES' # print get_total_value(fes) # print 'TOTAL GASTO COM PREVIDENCIA DE SERVIDORES' # print get_total_patronal(fes_prev)
Editor is loading...
Leave a Comment