source: ecoalba/apps/aranceles/views.py @ f8f2094

Last change on this file since f8f2094 was f8f2094, checked in by eparedes <eparedes@…>, 8 years ago

funcionalidad aranceles

  • Property mode set to 100755
File size: 4.3 KB
Line 
1# -*- coding: utf-8 -*-
2from django.shortcuts import *
3from django.contrib.auth.decorators import login_required
4from comun.utilidades import dictfetchall, codigos_armonizados_con_longitud
5from comun.constantes import IMPORTACIONES, EXPORTACIONES, \
6                            ESTANDAR_CLASIFICACION, \
7                            MAXIMO_PRINCIPALES_PRODUCTOS_ORIGEN, \
8                            REPORTES_DISPONIBLES, MIL, MILLON
9from comun.models import Pais
10from django.utils.translation import ugettext_lazy as _l, ugettext as _
11from aranceles.models import consolidados
12
13import os
14import json
15
16def dictfetchall(cursor):
17        "Returns all rows from a cursor as a dict"
18        desc = cursor.description
19        return [
20        dict(zip([col[0] for col in desc], row))
21        for row in cursor.fetchall()
22      ]
23
24def miCursorSql():
25        from django.db import  connection
26        micuro = connection.cursor()
27        micuro.execute("select id,iso3166_2,iso3166_3 from comun_pais where anyo_inclusion is not null")
28        return dictfetchall(micuro)
29
30def miCursorSql2():
31        from django.db import  connection
32        micuro = connection.cursor()
33        micuro.execute("select * from aranceles_consolidados")
34        return dictfetchall(micuro)
35       
36def paisesjson(request):
37    start = int(request.GET['jtStartIndex'])
38    end = int(request.GET['jtStartIndex']) + int(request.GET['jtPageSize'])
39    #paises =  Pais.objects.filter(anyo_inclusion__isnull=False)
40   
41    ttarea = miCursorSql()
42    for row in ttarea:
43        row['iso3166_3']=_(row['iso3166_3'])
44       
45    cuantos = ttarea.__len__()
46    ltarea = ttarea[start:end]
47    jsota = {}
48    registros = []
49    if (cuantos/10>1):
50        proximo = True
51    else: 
52        proximo = None
53   
54    jsota["meta"]= {"limit": 10, "next": proximo, "offset": 0, "previous": None, "total_count": cuantos}
55    jsota["Result"]= "OK"
56    jsota["TotalRecordCount"] = cuantos
57   
58   
59    jsota["Records"]=ltarea
60   
61    return HttpResponse(json.dumps(jsota),content_type="application/json")
62
63from decimal import Decimal
64
65class fakefloat(float):
66    def __init__(self, value):
67        self._value = value
68    def __repr__(self):
69        return str(self._value)
70
71def defaultencode(o):
72    if isinstance(o, Decimal):
73        # Subclass float with custom repr?
74        return fakefloat(o)
75    raise TypeError(repr(o) + " is not JSON serializable")
76
77
78def consolidadosjson(request):
79    start = int(request.GET['jtStartIndex'])
80    end = int(request.GET['jtStartIndex']) + int(request.GET['jtPageSize'])
81    idpaises = [1]
82#    ttarea = consolidados.objects.filter(pais__in =  idpaises)
83 
84    ttarea = miCursorSql2()
85
86#    for row in ttarea:
87#       row['iso3166_3']=_(row['iso3166_3'])
88       
89    cuantos = ttarea.__len__()
90
91    ltarea = ttarea[start:end]
92   
93    jsota = {}
94    registros = []
95    if (cuantos/10>1):
96        proximo = True
97    else: 
98        proximo = None
99   
100    jsota["meta"]= {"limit": 10, "next": proximo, "offset": 0, "previous": None, "total_count": cuantos}
101    jsota["Result"]= "OK"
102    jsota["TotalRecordCount"] = cuantos
103   
104   
105    jsota["Records"]=ltarea
106    print jsota
107    return HttpResponse(json.dumps(jsota, default=defaultencode),content_type="application/json")
108   
109
110def codigos_arancelarios(request):
111    paises = request.POST['paises']
112    if paises == '':         
113        return render_to_response('aranceles/aranceles_consulta.html', context_instance=RequestContext(request))
114               
115    paises = paises.split(",")[:-1]
116    dpaises = Pais.objects.filter(iso3166_2__in = paises)
117    idpaises = [e.id for e in dpaises]
118    return render_to_response('aranceles/aranceles.html', context_instance=RequestContext(request))
119       
120       
121@login_required
122def aranceles(request):
123    """
124    Vista inicial para filtros de aranceles
125    """
126   
127    return render_to_response('aranceles/aranceles.html', context_instance=RequestContext(request))
128
129@login_required
130def aranceles_consulta(request):
131    """
132    Vista inicial para filtros consulta de aranceles
133    """
134   
135    return render_to_response('aranceles/aranceles_consulta.html', context_instance=RequestContext(request))
136
137@login_required
138def aranceles_resultados(request):
139    """
140    Vista inicial para filtros consulta de aranceles
141    """
142   
143    return render_to_response('aranceles/aranceles_resultados.html', context_instance=RequestContext(request))
Note: See TracBrowser for help on using the repository browser.