Conjunto f591439 en seiven
- Fecha y hora:
- 06/09/2017 13:31:10 (hace 7 años)
- Branches:
- master
- Children:
- 3546d14, 0ce0b64
- Parents:
- ad313bb
- Ficheros:
-
- 4 editados
Leyenda
- No modificado
- Añadido
- Eliminado
-
base/constant.py
r3782a0d rf591439 293 293 ) 294 294 295 ## Plazo en días de Operaciones Interbancarias 296 PLAZO = ( 297 ("01", _("Plazo 1 día")), 298 ("07", _("Plazo 7 días")), 299 ("10", _("Plazo 10 días")), 300 ("14", _("Plazo 14 días")), 301 ("20", _("Plazo 20 días")), 302 ("30", _("Plazo 30 días")), 303 ("60", _("Plazo 60 días")), 304 ) -
economico/models.py
rad313bb rf591439 24 24 from base.constant import ( 25 25 DOMINIO, PERIODICIDAD, TRIMESTRES, MESES, ECONOMICO_SUB_AREA, CONVERT_MES, EMAIL_SUBJECT_LOAD_DATA,EMAIL_SUBJECT_CM_RESULT, 26 TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL, BALANZA_DATOS, INVERSION_CARTERA, SECTOR_DEUDA,CONVERT_DOMINIO 26 TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL, BALANZA_DATOS, INVERSION_CARTERA, SECTOR_DEUDA,CONVERT_DOMINIO, PLAZO 27 27 ) 28 28 from base.functions import enviar_correo, check_val_data … … 2199 2199 2200 2200 ## Modelo de Operaciones Interbancarias 2201 #Constantes de Operaciones Interbancarias (luego se pasará a base/constant.py) 2202 PLAZO = ( 2203 ("01", _("Plazo 1 día")), 2204 ("07", _("Plazo 7 día")), 2205 ("10", _("Plazo 10 día")), 2206 ("14", _("Plazo 14 día")), 2207 ("20", _("Plazo 20 día")), 2208 ("30", _("Plazo 30 día")), 2209 ("60", _("Plazo 60 día")), 2210 ) 2211 2212 @python_2_unicode_compatible 2213 class OperacionInterbancariaPeriodicidad(models.Model): 2201 @python_2_unicode_compatible 2202 class OperacionInterbancaria(models.Model): 2214 2203 """! 2215 Clase que gestiona l a periodicidaddel sub-área Operaciones Interbancarias2204 Clase que gestiona los datos del sub-área Operaciones Interbancarias 2216 2205 2217 2206 @author William Páez (wpaez at cenditel.gob.ve) … … 2221 2210 """ 2222 2211 2223 ## Establece la fecha de la Operación Interbancaria . La periodicidad es diaria2212 ## Establece la fecha de la Operación Interbancaria (diaria) 2224 2213 fecha = models.DateField(null=True, verbose_name=_("Fecha")) 2225 2226 class OperacionInterbancaria(models.Model):2227 2214 2228 2215 ## Establece el plazo en días de la Operación Interbancaria … … 2249 2236 ) 2250 2237 2251 ## Establece la relación con la periodicidad 2252 oip = models.ForeignKey(OperacionInterbancariaPeriodicidad, verbose_name=_('Periodicidad de la Operación Interbancaria')) 2238 def gestion_init(self, *args, **kwargs): 2239 """Método que permite descargar un archivo con los datos a gestionar 2240 @author William Páez (wpaez at cenditel.gob.ve) 2241 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 2242 @date 04-09-2017 2243 @param self <b>{object}</b> Objeto que instancia la clase 2244 @param args <b>{tupla}</b> Tupla con argumentos opcionales 2245 @param kwargs <b>{dic}</b> Diccionario con filtros opcionales 2246 @return Devuelve los datos a incluír en el archivo 2247 """ 2248 #print(kwargs) 2249 2250 fields = [ 2251 [ 2252 {'tag': '', 'cabecera': True}, 2253 {'tag': str(_("Plazo 1 día")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2254 {'tag': str(_("Plazo 7 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2255 {'tag': str(_("Plazo 10 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2256 {'tag': str(_("Plazo 14 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2257 {'tag': str(_("Plazo 20 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2258 {'tag': str(_("Plazo 30 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2259 {'tag': str(_("Plazo 60 días")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 2260 ], 2261 [ 2262 {'tag': str(OperacionInterbancaria._meta.get_field('fecha').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2263 ## Plazo 1 día 2264 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2265 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2266 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2267 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2268 ## Plazo 7 Días 2269 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2270 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2271 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2272 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2273 ## Plazo 10 días 2274 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2275 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2276 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2277 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2278 ## Plazo 14 días 2279 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2280 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2281 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2282 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2283 ## Plazo 20 días 2284 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2285 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2286 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2287 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2288 ## Plazo 30 días 2289 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2290 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2291 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2292 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2293 ## Plazo 60 días 2294 {'tag': str(OperacionInterbancaria._meta.get_field('monto_negocioado').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2295 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_minima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2296 {'tag': str(OperacionInterbancaria._meta.get_field('tasa_maxima').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2297 {'tag': str(OperacionInterbancaria._meta.get_field('promedio').verbose_name), 'color': 'orange', 'text_color': 'white', 'cabecera': True}, 2298 ] 2299 ] 2300 2301 """ 2302 colocar en el archivo de salida las fechas excepto fines de semana segun la seleccion del usuario 2303 """ 2304 2305 inicio=datetime.strptime(kwargs['fecha__gte'], "%d/%m/%Y") 2306 fin=datetime.strptime(kwargs['fecha__lte'], "%d/%m/%Y") 2307 delta = timedelta(days=1) 2308 while inicio <= fin: 2309 if inicio.weekday() < 5: 2310 fields.append([ {'tag': str(_(str(inicio.strftime('%d/%m/%Y'))))}]) 2311 inicio+= delta 2312 2313 return {'fields': fields, 'output': 'operaciones_interbancarias'} 2314 2315 def gestion_process(self, user, *args, **kwargs): 2316 """! 2317 Método que permite cargar y gestionar datos 2318 2319 @author William Páez (wpaez at cenditel.gob.ve) 2320 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 2321 @date 04-09-2017 2322 @param self <b>{object}</b> Objeto que instancia la clase 2323 @param user <b>{object}</b> Objeto que contiene los datos del usuario que realiza la acción 2324 @param args <b>{tupla}</b> Tupla con argumentos opcionales 2325 @param kwargs <b>{dic}</b> Diccionario con filtros opcionales 2326 @return Devuelve el resultado de la acción con su correspondiente mensaje 2327 """ 2328 2329 ## En base al archivo cargado, se validan y cargan a la base de datos los valores contenidos en el archivo 2330 load_file = pyexcel.get_book(bookdict=kwargs['file_content'])[0] 2331 errors, result, message = '', True, '' 2332 load_data_msg = str(_("Datos Cargados")) 2333 2334 ## Comprueba si el archivo está vacio 2335 if len(load_file.row_range()) < 2: 2336 result = False 2337 2338 ## Si el archivo no pasa las validaciones, devuelve False y un mensaje indicando el problema 2339 if not result: 2340 return { 2341 'result': False, 2342 'message': str(_("El documento a cargar no es válido o no corresponde a los parámetros seleccionados")) 2343 } 2344 2345 for row in load_file.row[2:]: 2346 2347 try: 2348 fecha=datetime.strptime(row[0], "%d/%m/%Y") 2349 ## Plazo 1 día 2350 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[0][0], defaults={ 2351 'monto_negocioado': check_val_data(row[1]), 2352 'tasa_minima': check_val_data(row[2]), 2353 'tasa_maxima': check_val_data(row[3]), 2354 'promedio': check_val_data(row[4]), 2355 }) 2356 ## Plazo 7 días 2357 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[1][0], defaults={ 2358 'monto_negocioado': check_val_data(row[5]), 2359 'tasa_minima': check_val_data(row[6]), 2360 'tasa_maxima': check_val_data(row[7]), 2361 'promedio': check_val_data(row[8]), 2362 }) 2363 ## Plazo 10 días 2364 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[2][0], defaults={ 2365 'monto_negocioado': check_val_data(row[9]), 2366 'tasa_minima': check_val_data(row[10]), 2367 'tasa_maxima': check_val_data(row[11]), 2368 'promedio': check_val_data(row[12]), 2369 }) 2370 ## Plazo 14 días 2371 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[3][0], defaults={ 2372 'monto_negocioado': check_val_data(row[13]), 2373 'tasa_minima': check_val_data(row[14]), 2374 'tasa_maxima': check_val_data(row[15]), 2375 'promedio': check_val_data(row[16]), 2376 }) 2377 ## Plazo 20 días 2378 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[4][0], defaults={ 2379 'monto_negocioado': check_val_data(row[17]), 2380 'tasa_minima': check_val_data(row[18]), 2381 'tasa_maxima': check_val_data(row[19]), 2382 'promedio': check_val_data(row[20]), 2383 }) 2384 ## Plazo 30 días 2385 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[5][0], defaults={ 2386 'monto_negocioado': check_val_data(row[21]), 2387 'tasa_minima': check_val_data(row[22]), 2388 'tasa_maxima': check_val_data(row[23]), 2389 'promedio': check_val_data(row[24]), 2390 }) 2391 ## Plazo 60 días 2392 operacion_interbancaria, created = OperacionInterbancaria.objects.update_or_create(fecha=fecha, plazo=PLAZO[6][0], defaults={ 2393 'monto_negocioado': check_val_data(row[25]), 2394 'tasa_minima': check_val_data(row[26]), 2395 'tasa_maxima': check_val_data(row[27]), 2396 'promedio': check_val_data(row[28]), 2397 }) 2398 except Exception as e: 2399 errors += "- %s\n" % str(e) 2400 2401 if errors: 2402 message = str(_("Error procesando datos. Verifique su correo para detalles del error")) 2403 load_data_msg = str(_("Error al procesar datos del area Economía - Monetario - Operaciones Interbancarias")) 2404 2405 2406 ## Envia correo electronico al usuario indicando el estatus de la carga de datos 2407 enviar_correo(user.email, 'gestion.informacion.load.mail', EMAIL_SUBJECT_LOAD_DATA, { 2408 'load_data_msg': load_data_msg, 'administrador': administrador, 'admin_email': admin_email, 2409 'errors': errors 2410 }) 2411 2412 return {'result': result, 'message': message} 2413 2253 2414 2254 2415 #-----------------------------Economía - Externo - Reservas, Tipo de Cambio -
economico/templates/economico.operaciones.interbancarias.html
r226ff11 rf591439 41 41 </div> 42 42 </div> 43 {% include 'base.down.up.files.html' %} 43 <div id="upload" class="invisible"> 44 {% include 'base.down.up.files.html' with app='economico' mod='OperacionInterbancaria' %} 45 </div> 44 46 </div> 45 47 </div> 46 48 {% endblock %} 49 {% block extra_footer %} 50 <script> 51 var fecha = $(".fecha"); 52 var fecha_ini = $("#{{ form.start_date.auto_id }}"); 53 var fecha_fin = $("#{{ form.end_date.auto_id }}"); 54 55 function set_filters() { 56 /** 57 * @brief Realiza cambios en la vista ocasionados por modificaciones 58 * en los formularios. Almacena los valores de los parámetros que serán usados 59 * en el modelo 60 * 61 * @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) 62 * @author William Páez (wpaez at cenditel.gob.ve) 63 * @copyright GNU/GPLv2 64 * @date 04-09-2017 65 */ 66 67 var f_ini = fecha_ini.val().split("/"); 68 var f_fin = fecha_fin.val().split("/"); 69 var filters = $("#filters"), json_filter = ''; 70 71 if (fecha_ini.val()) { 72 json_filter += "\"fecha__gte\": \"" + fecha_ini.val() + "\","; 73 } 74 if (fecha_fin.val()) { 75 json_filter += "\"fecha__lte\": \"" + fecha_fin.val() + "\","; 76 } 77 78 if (json_filter) { 79 json_filter = json_filter.slice(0, -1); 80 filters.val(json_filter); 81 } 82 83 // Se valida mostrar el formulario de descarga 84 if (fecha_ini.val()!='' && fecha_fin.val()!='') { 85 $('#upload').removeClass('invisible'); 86 } 87 else{ 88 $('#upload').addClass('invisible'); 89 } 90 } 91 92 $(document).ready(function() { 93 fecha_ini.on('change', function() { set_filters() }); 94 fecha_fin.on('change', function() { set_filters() }); 95 fecha.on('changeDate', function() { set_filters() }); 96 }); 97 98 fecha.datepicker( { 99 format: "dd/mm/yyyy" 100 }).on('changeDate', function (ev) { 101 $(this).datepicker('hide'); 102 }); 103 </script> 104 {% endblock %} -
economico/views.py
r98c5f0b rf591439 94 94 'form': form, 'url_down': reverse('cm_descargar_archivo'), 'url_up': reverse('cm_cargar_datos') 95 95 }) 96 96 97 97 @login_required 98 98 def oferta_global(request): … … 146 146 form = MonetarioOperacionesInterbancariasForm() 147 147 148 return render(request, 'economico.operaciones.interbancarias.html', {'form': form })148 return render(request, 'economico.operaciones.interbancarias.html', {'form': form, 'url_down': reverse('cm_descargar_archivo'), 'url_up': reverse('cm_cargar_datos')}) 149 149 150 150 … … 359 359 """ 360 360 form = RealDemandaGlobalForm() 361 361 362 362 return render(request, 'economico.consulta.demanda.global.html', { 363 363 'form':form
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.