# -*- coding: utf-8 -*- from django.shortcuts import * from django.contrib.auth.decorators import login_required from comun.utilidades import dictfetchall, codigos_armonizados_con_longitud from comun.constantes import IMPORTACIONES, EXPORTACIONES, \ ESTANDAR_CLASIFICACION, \ MAXIMO_PRINCIPALES_PRODUCTOS_ORIGEN, \ REPORTES_DISPONIBLES, MIL, MILLON from comun.models import Pais from django.utils.translation import ugettext_lazy as _l, ugettext as _ from aranceles.models import consolidados import os import json def dictfetchall(cursor): "Returns all rows from a cursor as a dict" desc = cursor.description return [ dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall() ] def miCursorSql(): from django.db import connection micuro = connection.cursor() micuro.execute("select id,iso3166_2,iso3166_3 from comun_pais where anyo_inclusion is not null") return dictfetchall(micuro) def miCursorSql2(): from django.db import connection micuro = connection.cursor() micuro.execute("select * from aranceles_consolidados") return dictfetchall(micuro) def paisesjson(request): start = int(request.GET['jtStartIndex']) end = int(request.GET['jtStartIndex']) + int(request.GET['jtPageSize']) #paises = Pais.objects.filter(anyo_inclusion__isnull=False) ttarea = miCursorSql() for row in ttarea: row['iso3166_3']=_(row['iso3166_3']) cuantos = ttarea.__len__() ltarea = ttarea[start:end] jsota = {} registros = [] if (cuantos/10>1): proximo = True else: proximo = None jsota["meta"]= {"limit": 10, "next": proximo, "offset": 0, "previous": None, "total_count": cuantos} jsota["Result"]= "OK" jsota["TotalRecordCount"] = cuantos jsota["Records"]=ltarea return HttpResponse(json.dumps(jsota),content_type="application/json") from decimal import Decimal class fakefloat(float): def __init__(self, value): self._value = value def __repr__(self): return str(self._value) def defaultencode(o): if isinstance(o, Decimal): # Subclass float with custom repr? return fakefloat(o) raise TypeError(repr(o) + " is not JSON serializable") def consolidadosjson(request): start = int(request.GET['jtStartIndex']) end = int(request.GET['jtStartIndex']) + int(request.GET['jtPageSize']) idpaises = [1] # ttarea = consolidados.objects.filter(pais__in = idpaises) ttarea = miCursorSql2() # for row in ttarea: # row['iso3166_3']=_(row['iso3166_3']) cuantos = ttarea.__len__() ltarea = ttarea[start:end] jsota = {} registros = [] if (cuantos/10>1): proximo = True else: proximo = None jsota["meta"]= {"limit": 10, "next": proximo, "offset": 0, "previous": None, "total_count": cuantos} jsota["Result"]= "OK" jsota["TotalRecordCount"] = cuantos jsota["Records"]=ltarea print jsota return HttpResponse(json.dumps(jsota, default=defaultencode),content_type="application/json") def codigos_arancelarios(request): paises = request.POST['paises'] if paises == '': return render_to_response('aranceles/aranceles_consulta.html', context_instance=RequestContext(request)) paises = paises.split(",")[:-1] dpaises = Pais.objects.filter(iso3166_2__in = paises) idpaises = [e.id for e in dpaises] return render_to_response('aranceles/aranceles.html', context_instance=RequestContext(request)) @login_required def aranceles(request): """ Vista inicial para filtros de aranceles """ return render_to_response('aranceles/aranceles.html', context_instance=RequestContext(request)) @login_required def aranceles_consulta(request): """ Vista inicial para filtros consulta de aranceles """ return render_to_response('aranceles/aranceles_consulta.html', context_instance=RequestContext(request)) @login_required def aranceles_resultados(request): """ Vista inicial para filtros consulta de aranceles """ return render_to_response('aranceles/aranceles_resultados.html', context_instance=RequestContext(request))