from datetime import date
from django.db.models import Q

from sigi.apps.servicos.models import TipoServico

anos = range(2006, 2016)

print '\t'.join(map(str, ['tipo'] + anos))


def prim_jan_ano_seguinte(ano):
    return date(ano + 1, 1, 1)


for tipo_servico in TipoServico.objects.all():
    print '\t'.join(map(str,
                        [tipo_servico] +
                        [tipo_servico.servico_set.filter(
                            Q(data_ativacao__lt=prim_jan_ano_seguinte(ano)),
                            Q(data_desativacao=None) | Q(data_desativacao__gte=prim_jan_ano_seguinte(ano))
                        ).count() for ano in anos]
                        ))