def _get_obj(field, identifier, person_type): if person_type == 'pessoa-fisica': Socios = Dataset.objects.get(slug='socios-brasil')\ .get_table('socios')\ .get_model() return Socios.objects.filter(**{field: identifier}).first() elif person_type == 'pessoa-juridica': try: return get_company_by_document(numbers_only(identifier)) except ObjectDoesNotExist: return None
def _get_obj(field, identifier, person_type): if person_type == "pessoa-fisica": Socios = get_table_model("socios-brasil", "socios") return Socios.objects.filter(**{field: identifier}).first() elif person_type == "pessoa-juridica": try: return get_company_by_document(numbers_only(identifier)) except ValueError: raise ValidationError( _("Invalid value: %(value)s"), params={"value": identifier}, ) except ObjectDoesNotExist: return None
def _get_obj(field, identifier, person_type): if person_type == 'pessoa-fisica': Socios = Dataset.objects.get(slug='socios-brasil')\ .get_table('socios')\ .get_model() return Socios.objects.filter(**{field: identifier}).first() elif person_type == 'pessoa-juridica': try: return get_company_by_document(numbers_only(identifier)) except ValueError: raise ValidationError( _('Invalid value: %(value)s'), params={'value': identifier}, ) except ObjectDoesNotExist: return None
def document_detail(request, document): Candidatos = get_table_model("eleicoes-brasil", "candidatos") Documents = get_table_model("documentos-brasil", "documents") Empresas = get_table_model("socios-brasil", "empresas") Holdings = get_table_model("socios-brasil", "holdings") Socios = get_table_model("socios-brasil", "socios") FiliadosPartidos = get_table_model("eleicoes-brasil", "filiados") GastosDeputados = get_table_model("gastos-deputados", "cota_parlamentar") GastosDiretos = get_table_model("gastos-diretos", "gastos") encrypted = False if len(document) not in (11, 14): # encrypted try: encrypted_document = document.encode("ascii") document_bytes = cipher_suite.decrypt(encrypted_document) document = document_bytes.decode("ascii") except (UnicodeEncodeError, InvalidToken, UnicodeDecodeError): raise Http404 else: encrypted = True document = document.replace(".", "").replace("-", "").replace("/", "").strip() document_size = len(document) is_company = document_size == 14 is_person = document_size == 11 branches = Documents.objects.none() branches_cnpjs = [] if is_company: doc_prefix = document[:8] try: obj = get_company_by_document(document) except Documents.DoesNotExist: raise Http404 # From here only HQs or companies without HQs if document != obj.document: if obj.document[:12].endswith("0001"): # HQ return redirect_company(document, obj.document, warn=False) else: return redirect_company(document, obj.document, warn=True) branches = Documents.objects.filter(docroot=obj.docroot, document_type="CNPJ") branches_cnpjs = [branch.document for branch in branches] else: # not a company doc_prefix = None obj = get_object_or_404(Documents, document=document) obj_dict = obj.__dict__ partners_data = Socios.objects.none() companies_data = Socios.objects.none() applications_data = Candidatos.objects.none() filiations_data = FiliadosPartidos.objects.none() applications_fields = _get_fields( get_table("eleicoes-brasil", "candidatos"), remove=["cpf_candidato", "nome_candidato"], ) companies_fields = _get_fields(get_table("socios-brasil", "socios"), remove=["cpf_cnpj_socio", "nome_socio"]) camara_spending_fields = _get_fields( get_table("gastos-deputados", "cota_parlamentar"), remove=["txtcnpjcpf", "txtfornecedor"], ) federal_spending_fields = _get_fields( get_table("gastos-diretos", "gastos"), remove=["codigo_favorecido", "nome_favorecido"], ) partners_fields = _get_fields(get_table("socios-brasil", "socios"), remove=["cnpj", "razao_social"]) filiations_fields = _get_fields(get_table("eleicoes-brasil", "filiados"), remove=[]) branches_fields = _get_fields( get_table("documentos-brasil", "documents"), remove=["document_type", "sources", "text"], ) if is_company: partners_data = Socios.objects.filter( cnpj__in=branches_cnpjs).order_by("nome_socio") company = Empresas.objects.filter(cnpj=obj.document).first() obj_dict["state"] = company.uf if company else "" companies_data = Holdings.objects.filter( cnpj_socia__in=branches_cnpjs).order_by("razao_social") companies_fields = _get_fields(get_table("socios-brasil", "holdings"), remove=["cnpj_socia"]) # all appearances of 'obj.document' camara_spending_data = GastosDeputados.objects.filter( txtcnpjcpf__in=branches_cnpjs).order_by("-datemissao") federal_spending_data = GastosDiretos.objects.filter( codigo_favorecido__in=branches_cnpjs).order_by("-data_pagamento") elif is_person: companies_data = (Socios.objects.filter( nome_socio=unaccent(obj.name)).distinct( "cnpj", "razao_social").order_by("razao_social")) applications_data = Candidatos.objects.filter( cpf_candidato=obj.document) filiations_data = FiliadosPartidos.objects.filter( nome_do_filiado=unaccent(obj.name)) # all appearances of 'obj.document' camara_spending_data = GastosDeputados.objects.filter( txtcnpjcpf=obj.document).order_by("-datemissao") federal_spending_data = GastosDiretos.objects.filter( codigo_favorecido=obj.document).order_by("-data_pagamento") original_document = request.GET.get("original_document", None) context = { "applications_data": applications_data, "applications_fields": applications_fields, "branches": branches, "branches_fields": branches_fields, "camara_spending_data": camara_spending_data, "camara_spending_fields": camara_spending_fields, "companies_data": companies_data, "companies_fields": companies_fields, "doc_prefix": doc_prefix, "encrypted": encrypted, "federal_spending_data": federal_spending_data, "federal_spending_fields": federal_spending_fields, "filiations_data": filiations_data, "filiations_fields": filiations_fields, "obj": obj_dict, "original_document": original_document, "partners_data": partners_data, "partners_fields": partners_fields, } return render(request, "specials/document-detail.html", context)
def document_detail(request, document): datasets = get_datasets() Candidatos = datasets['eleicoes-brasil']['candidatos'].get_model() Documents = datasets['documentos-brasil']['documents'].get_model() Empresas = datasets['socios-brasil']['empresas'].get_model() Holdings = datasets['socios-brasil']['holdings'].get_model() Socios = datasets['socios-brasil']['socios'].get_model() FiliadosPartidos = datasets['eleicoes-brasil']['filiados'].get_model() GastosDeputados = datasets['gastos-deputados'][ 'cota_parlamentar'].get_model() GastosDiretos = datasets['gastos-diretos']['gastos'].get_model() encrypted = False if len(document) not in (11, 14): # encrypted try: encrypted_document = document.encode('ascii') document_bytes = cipher_suite.decrypt(encrypted_document) document = document_bytes.decode('ascii') except (UnicodeEncodeError, InvalidToken, UnicodeDecodeError): raise Http404 else: encrypted = True document = document.replace('.', '').replace('-', '').replace('/', '').strip() document_size = len(document) is_company = document_size == 14 is_person = document_size == 11 branches = Documents.objects.none() branches_cnpjs = [] if is_company: doc_prefix = document[:8] try: obj = get_company_by_document(document) except Documents.DoesNotExist: raise Http404 # From here only HQs or companies without HQs if document != obj.document: if obj.document[:12].endswith('0001'): # HQ return redirect_company(document, obj.document, warn=False) else: return redirect_company(document, obj.document, warn=True) branches = Documents.objects.filter( docroot=obj.docroot, document_type='CNPJ', ) branches_cnpjs = [branch.document for branch in branches] else: # not a company doc_prefix = None obj = get_object_or_404(Documents, document=document) obj_dict = obj.__dict__ partners_data = Socios.objects.none() companies_data = Socios.objects.none() applications_data = Candidatos.objects.none() filiations_data = FiliadosPartidos.objects.none() applications_fields = _get_fields( datasets['eleicoes-brasil']['candidatos'], remove=['cpf_candidato', 'nome_candidato']) companies_fields = _get_fields( datasets['socios-brasil']['socios'], remove=['cpf_cnpj_socio', 'nome_socio'], ) camara_spending_fields = _get_fields( datasets['gastos-deputados']['cota_parlamentar'], remove=['txtcnpjcpf', 'txtfornecedor'], ) federal_spending_fields = _get_fields( datasets['gastos-diretos']['gastos'], remove=['codigo_favorecido', 'nome_favorecido'], ) partners_fields = _get_fields( datasets['socios-brasil']['socios'], remove=['cnpj', 'razao_social'], ) filiations_fields = _get_fields( datasets['eleicoes-brasil']['filiados'], remove=[], ) branches_fields = _get_fields( datasets['documentos-brasil']['documents'], remove=['document_type', 'sources', 'text'], ) if is_company: partners_data = \ Socios.objects.filter(cnpj__in=branches_cnpjs)\ .order_by('nome_socio') company = Empresas.objects.filter(cnpj=obj.document).first() obj_dict['state'] = company.uf if company else '' companies_data = Holdings.objects.filter(cnpj_socia__in=branches_cnpjs)\ .order_by('razao_social') companies_fields = _get_fields( datasets['socios-brasil']['holdings'], remove=['cnpj_socia'], ) # all appearances of 'obj.document' camara_spending_data = \ GastosDeputados.objects.filter(txtcnpjcpf__in=branches_cnpjs)\ .order_by('-datemissao') federal_spending_data = \ GastosDiretos.objects.filter(codigo_favorecido__in=branches_cnpjs)\ .order_by('-data_pagamento') elif is_person: companies_data = \ Socios.objects.filter(nome_socio=unaccent(obj.name))\ .distinct('cnpj', 'razao_social')\ .order_by('razao_social') applications_data = \ Candidatos.objects.filter(cpf_candidato=obj.document) filiations_data = \ FiliadosPartidos.objects.filter(nome_do_filiado=unaccent(obj.name)) # all appearances of 'obj.document' camara_spending_data = \ GastosDeputados.objects.filter(txtcnpjcpf=obj.document)\ .order_by('-datemissao') federal_spending_data = \ GastosDiretos.objects.filter(codigo_favorecido=obj.document)\ .order_by('-data_pagamento') original_document = request.GET.get('original_document', None) context = { 'applications_data': applications_data, 'applications_fields': applications_fields, 'branches': branches, 'branches_fields': branches_fields, 'camara_spending_data': camara_spending_data, 'camara_spending_fields': camara_spending_fields, 'companies_data': companies_data, 'companies_fields': companies_fields, 'doc_prefix': doc_prefix, 'encrypted': encrypted, 'federal_spending_data': federal_spending_data, 'federal_spending_fields': federal_spending_fields, 'filiations_data': filiations_data, 'filiations_fields': filiations_fields, 'obj': obj_dict, 'original_document': original_document, 'partners_data': partners_data, 'partners_fields': partners_fields, } return render(request, 'specials/document-detail.html', context)