1 | # -*- coding: utf-8 -*- |
---|
2 | from django.shortcuts import * |
---|
3 | from django.contrib.auth.decorators import login_required |
---|
4 | from comun.utilidades import dictfetchall, codigos_armonizados_con_longitud |
---|
5 | from comun.constantes import IMPORTACIONES, EXPORTACIONES, \ |
---|
6 | ESTANDAR_CLASIFICACION, \ |
---|
7 | MAXIMO_PRINCIPALES_PRODUCTOS_ORIGEN, \ |
---|
8 | REPORTES_DISPONIBLES, MIL, MILLON |
---|
9 | from comun.models import Pais |
---|
10 | from django.utils.translation import ugettext_lazy as _l, ugettext as _ |
---|
11 | from aranceles.models import consolidados |
---|
12 | |
---|
13 | import os |
---|
14 | import json |
---|
15 | |
---|
16 | def 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 | |
---|
24 | def 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 | |
---|
30 | def miCursorSql2(): |
---|
31 | from django.db import connection |
---|
32 | micuro = connection.cursor() |
---|
33 | micuro.execute("select * from aranceles_consolidados") |
---|
34 | return dictfetchall(micuro) |
---|
35 | |
---|
36 | def 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 | |
---|
63 | from decimal import Decimal |
---|
64 | |
---|
65 | class fakefloat(float): |
---|
66 | def __init__(self, value): |
---|
67 | self._value = value |
---|
68 | def __repr__(self): |
---|
69 | return str(self._value) |
---|
70 | |
---|
71 | def 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 | |
---|
78 | def 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 | |
---|
110 | def 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 |
---|
122 | def 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 |
---|
130 | def 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 |
---|
138 | def 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)) |
---|