1 | # coding=utf-8 |
---|
2 | from datetime import date |
---|
3 | from django.http import HttpResponse |
---|
4 | from django.conf import settings |
---|
5 | from apps.comun.constantes import MSG_NOT_AJAX |
---|
6 | import os |
---|
7 | import json |
---|
8 | import sys |
---|
9 | import logging |
---|
10 | |
---|
11 | logger = logging.getLogger("matrizip") |
---|
12 | |
---|
13 | #Importar wrapper constructor de cadenas |
---|
14 | extapps_path = os.path.join(settings.PATH, "apis/chains/") |
---|
15 | |
---|
16 | if not extapps_path in sys.path: |
---|
17 | sys.path.insert(1, extapps_path) |
---|
18 | del extapps_path |
---|
19 | from apis.chains import _svg_activities_builder |
---|
20 | |
---|
21 | def generar_grafico_prod(request): |
---|
22 | """! |
---|
23 | Función que permite generar el gráfico de la cadena productiva a partir de un código de producción |
---|
24 | @author Ing. Roldan D. Vargas G. rvargas@cenditel.gob.ve |
---|
25 | @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida |
---|
26 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
27 | @date 28-07-2014 |
---|
28 | @pre Requiere auntenticación del usuario y selección de eslabon principal del cual generar la cadena |
---|
29 | @param[in] request Variable de tipo object que contiene las peticiones del sistema |
---|
30 | @return Devuelve respuesta al sistema con los parámetros que permiten visualizar la ventana emergente sobre la |
---|
31 | cual mostrar el gráfico de la cadena de producción |
---|
32 | """ |
---|
33 | try: |
---|
34 | if not request.is_ajax(): |
---|
35 | return HttpResponse(json.dumps({'resultado': False, 'error': MSG_NOT_AJAX})) |
---|
36 | |
---|
37 | codigo = request.GET.get('rif', None) |
---|
38 | narriba = request.GET.get('narriba', None) |
---|
39 | nabajo = request.GET.get('nabajo', None) |
---|
40 | |
---|
41 | if codigo and narriba and nabajo: |
---|
42 | comando = "cd %s;%s --host=%s --port=%s --username=%s --password=%s --dbname=%s --levelsup=%s " \ |
---|
43 | "--levelsdown=%s --output=%s PROD %s" |
---|
44 | |
---|
45 | gen_graph = _svg_activities_builder.buildSvg(int(narriba),int(nabajo), |
---|
46 | settings.DATABASES['default']['HOST'], |
---|
47 | settings.DATABASES['default']['PORT'], |
---|
48 | settings.DATABASES['default']['NAME'], |
---|
49 | settings.DATABASES['default']['USER'], |
---|
50 | settings.DATABASES['default']['PASSWORD'], |
---|
51 | os.path.join(settings.PATH, "tmp/")+str(request.user), |
---|
52 | "PROD",str(codigo)) |
---|
53 | |
---|
54 | ahora = date.today().isoformat() |
---|
55 | |
---|
56 | logger.info( |
---|
57 | u"Se ha generado un nuevo gráfico de la matriz insumo / producto con el código de producción %s " |
---|
58 | u"solicitado por el usuario %s" % (codigo, str(request.user)) |
---|
59 | ) |
---|
60 | |
---|
61 | return HttpResponse(json.dumps({'resultado': True, 'ahora': ahora, 'arriba': narriba, 'abajo': nabajo, |
---|
62 | 'usuario': str(request.user), 'varpk': 'codigo'})) |
---|
63 | |
---|
64 | else: |
---|
65 | return HttpResponse(json.dumps({'resultado': False, 'error': 'Debe indicar los parámetros necesarios ' |
---|
66 | 'para generar el gráfico solicitado'})) |
---|
67 | |
---|
68 | except Exception, e: |
---|
69 | logger.error( |
---|
70 | u"Ocurrió un error al generar el gráfico de la matriz insumo / producto solicitado por el usuario %s del " |
---|
71 | u"código de producción %s. Detalles: %s" % (str(request.user), request.GET.get('rif', ''), str(e)) |
---|
72 | ) |
---|
73 | return HttpResponse(json.dumps({'resultado': False, 'error': e})) |
---|
74 | |
---|
75 | |
---|
76 | def generar_grafico_act(request): |
---|
77 | """! |
---|
78 | Función que permite generar el gráfico de la cadena productiva a partir de un código de actividad |
---|
79 | @author Ing. Roldan D. Vargas G. rvargas@cenditel.gob.ve |
---|
80 | @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida |
---|
81 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
82 | @date 28-07-2014 |
---|
83 | @pre Requiere auntenticación del usuario y selección de eslabon principal del cual generar la cadena |
---|
84 | @param[in] request Variable de tipo object que contiene las peticiones del sistema |
---|
85 | @return Devuelve respuesta al sistema con los parámetros que permiten visualizar la ventana emergente sobre la |
---|
86 | cual mostrar el gráfico de la cadena de producción según la actividad seleccionada |
---|
87 | """ |
---|
88 | try: |
---|
89 | if not request.is_ajax(): |
---|
90 | return HttpResponse(json.dumps({'resultado': False, 'error': MSG_NOT_AJAX})) |
---|
91 | |
---|
92 | codigo = request.GET.get('rif', None) |
---|
93 | narriba = request.GET.get('narriba', None) |
---|
94 | nabajo = request.GET.get('nabajo', None) |
---|
95 | |
---|
96 | if codigo and narriba and nabajo: |
---|
97 | |
---|
98 | gen_graph = _svg_activities_builder.buildSvg(int(narriba),int(nabajo), |
---|
99 | settings.DATABASES['default']['HOST'], |
---|
100 | settings.DATABASES['default']['PORT'], |
---|
101 | settings.DATABASES['default']['NAME'], |
---|
102 | settings.DATABASES['default']['USER'], |
---|
103 | settings.DATABASES['default']['PASSWORD'], |
---|
104 | os.path.join(settings.PATH, "tmp/")+str(request.user), |
---|
105 | "ACT",str(codigo)) |
---|
106 | |
---|
107 | ahora = date.today().isoformat() |
---|
108 | |
---|
109 | logger.info( |
---|
110 | u"Se ha generado un nuevo gráfico de la matriz insumo / producto de la actividad económica %s " |
---|
111 | u"solicitada por el usuario %s" % (codigo, str(request.user)) |
---|
112 | ) |
---|
113 | |
---|
114 | return HttpResponse(json.dumps({'resultado': True, 'ahora': ahora, 'arriba': narriba, 'abajo': nabajo, |
---|
115 | 'usuario': str(request.user), 'varpk': 'codigo'})) |
---|
116 | |
---|
117 | else: |
---|
118 | return HttpResponse(json.dumps({'resultado': False, 'error': 'Debe indicar los parámetros necesarios ' |
---|
119 | 'para generar el gráfico solicitado'})) |
---|
120 | |
---|
121 | except Exception, e: |
---|
122 | logger.error( |
---|
123 | u"Ocurrió un error al generar el gráfico de la matriz insumo / producto para la actividad económica %s " |
---|
124 | u"solicitado por el usuario %s. Detalles: %s" % (request.GET.get('rif', ''), str(request.user), str(e)) |
---|
125 | ) |
---|
126 | return HttpResponse(json.dumps({'resultado': False, 'error': e})) |
---|