Untitled
unknown
python
2 years ago
4.7 kB
7
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