- Fecha y hora:
- 04/05/2017 11:29:35 (hace 7 años)
- Branches:
- master, carga
- Children:
- b561813, f93ccdf
- Parents:
- 7ec3358
- Ubicación:
- economico
- Ficheros:
-
- 4 editados
Leyenda
- No modificado
- Añadido
- Eliminado
-
economico/forms.py
rf093433 re50220a 26 26 from base.constant import ( 27 27 DOMINIO_PRECIOS, DOMINIO_PIB, DOMINIO_AGREGADO_MONETARIO, TIPO_PIB, TIPO_DEMANDA_GLOBAL, TIPO_OFERTA_GLOBAL, TRIMESTRES, MESES, 28 DOMINIO_COMERCIAL, DOMINIO_CAMBIO, DOMINIO_CUENTA_CAPITAL 28 DOMINIO_COMERCIAL, DOMINIO_CAMBIO, DOMINIO_CUENTA_CAPITAL, TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL 29 29 ) 30 30 from base.functions import cargar_anho_base … … 434 434 435 435 @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) 436 @author Rodrigo Boet (rboet at cenditel.gob.ve) 436 437 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 437 438 @date 19-09-2016 … … 441 442 def __init__(self, *args, **kwargs): 442 443 super(ExternoBalanzaComercialForm, self).__init__(*args, **kwargs) 443 self.fields['tipo'].choices = TIPO_PIB 444 self.fields['dominio'].choices = DOMINIO_COMERCIAL 444 self.fields['tipo'].choices = TIPO_BALANZA_COMERCIAL 445 self.fields['dominio'].choices = DOMINIO_BALANZA_COMERCIAL 446 self.fields['anho_base'].choices = cargar_anho_base(anho_inicial='1997',anho_final='1997') 447 self.fields['anho_base'].required = False 448 ## Se deshabilitan los campos 449 self.fields['dominio'].widget.attrs.update({'disabled': True}) 450 self.fields['anho_base'].widget.attrs.update({'disabled': True}) 451 self.fields['periodo_trimestre_ini'].widget.attrs.update({'disabled': True}) 452 self.fields['periodo_trimestre_fin'].widget.attrs.update({'disabled': True}) 453 self.fields['periodo_anho_ini'].widget.attrs.update({'disabled': True}) 454 self.fields['periodo_anho_fin'].widget.attrs.update({'disabled': True}) 455 ## Se agregan las funciones javascript 456 self.fields['tipo'].widget.attrs.update({'onchange': 'edit_dom_bc($(this).val(),"id_dominio");'}) 445 457 446 458 -
economico/models.py
rf093433 re50220a 23 23 24 24 from base.constant import ( 25 DOMINIO, PERIOCIDAD, TRIMESTRES, MESES, ECONOMICO_SUB_AREA, CONVERT_MES, EMAIL_SUBJECT_LOAD_DATA 25 DOMINIO, PERIOCIDAD, TRIMESTRES, MESES, ECONOMICO_SUB_AREA, CONVERT_MES, EMAIL_SUBJECT_LOAD_DATA, 26 TIPO_BALANZA_COMERCIAL, DOMINIO_BALANZA_COMERCIAL, BALANZA_DATOS 26 27 ) 27 28 from base.functions import enviar_correo, check_val_data … … 1370 1371 class Meta: 1371 1372 verbose_name = _('Oferta Externa') 1373 1374 1375 # ------------ Económico Externo - Balanza Comercial -------------------- 1376 1377 @python_2_unicode_compatible 1378 class BalanzaComercialBase(models.Model): 1379 """! 1380 Clase que contiene los registros base de la Balanza Comercial 1381 1382 @author Rodrigo Boet (rboet at cenditel.gob.ve) 1383 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1384 @date 02-05-2017 1385 @version 1.0.0 1386 """ 1387 1388 ## Año base del registro 1389 anho_base = models.CharField(max_length=4, null=True) 1390 1391 ## Año al que pertenece el(los) registro(s) 1392 anho = models.CharField(max_length=4, verbose_name=_("Año")) 1393 1394 ## Trimestre del registro 1395 trimestre = models.CharField(max_length=2, choices=TRIMESTRES[1:], verbose_name=_("Trimestre")) 1396 1397 ## Tipo del registro 1398 tipo = models.CharField(max_length=2, choices=TIPO_BALANZA_COMERCIAL[1:]) 1399 1400 ## Dominio del registro 1401 dominio = models.CharField(max_length=2, choices=DOMINIO_BALANZA_COMERCIAL[1:]) 1402 1403 def gestion_init(self, *args, **kwargs): 1404 """! 1405 Método que permite descargar un archivo con los datos a gestionar 1406 1407 @author Rodrigo Boet (rboet at cenditel.gob.ve) 1408 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1409 @date 02-05-2017 1410 @param self <b>{object}</b> Objeto que instancia la clase 1411 @param args <b>{tupla}</b> Tupla con argumentos opcionales 1412 @param kwargs <b>{dic}</b> Diccionario con filtros opcionales 1413 @return Devuelve los datos a incluír en el archivo 1414 """ 1415 nombre_archivo = 'balanza_comercial' 1416 fields = [] 1417 ## Cabecera para precios corrientes en bs y precios constantes 1418 if(kwargs['dominio']!='BD' and kwargs['tipo']!='PI'): 1419 header = [ 1420 {'tag': '', 'cabecera': True}, 1421 {'tag': '', 'cabecera': True}, 1422 {'tag': str(_("Exportaciones de bienes FOB")), 'color': 'ocean_blue', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1423 {'tag': '', 'color': 'gray25', 'cabecera': True}, 1424 {'tag': str(_("Importaciones de Bienes CIF")), 'color': 'aqua', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1425 {'tag': '', 'color': 'gray25', 'cabecera': True}, 1426 ] 1427 sub_header = [ 1428 {'tag': str(_("Trimestre")), 'color': 'white', 'text_color': 'black','cabecera': True}, 1429 {'tag': str(_("Año")), 'color': 'white', 'text_color': 'black', 'cabecera': True}, 1430 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1431 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_no_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1432 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1433 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_no_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1434 {'tag': str(_(BalanzaComercialServicios._meta.get_field('exportacion_servicio').verbose_name)), 'color': 'gray25', 'cabecera': True}, 1435 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1436 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_no_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1437 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1438 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_no_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1439 {'tag': str(_(BalanzaComercialServicios._meta.get_field('importacion_servicio').verbose_name)), 'color': 'gray25', 'cabecera': True}, 1440 ] 1441 ## Cabecera para el índice de precios implícitos 1442 elif(kwargs['tipo']=='PI'): 1443 header = [ 1444 {'tag': '', 'cabecera': True}, 1445 {'tag': '', 'cabecera': True}, 1446 {'tag': str(_("Exportaciones de bienes FOB")), 'color': 'ocean_blue', 'text_color': 'white', 'combine': 7, 'cabecera': True}, 1447 {'tag': '', 'color': 'gray25', 'cabecera': True}, 1448 {'tag': str(_("Importaciones de Bienes CIF")), 'color': 'aqua', 'text_color': 'white', 'combine': 7, 'cabecera': True}, 1449 {'tag': '', 'color': 'gray25', 'cabecera': True}, 1450 ] 1451 sub_header = [ 1452 {'tag': str(_("Trimestre")), 'color': 'white', 'text_color': 'black','cabecera': True}, 1453 {'tag': str(_("Año")), 'color': 'white', 'text_color': 'black', 'cabecera': True}, 1454 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('exportacion_bien').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1455 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('exportacion_publica').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1456 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1457 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_no_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1458 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('exportacion_privada').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1459 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1460 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_no_petroleo').verbose_name)), 'color': 'ocean_blue', 'text_color': 'white', 'cabecera': True}, 1461 {'tag': str(_(BalanzaComercialServicios._meta.get_field('exportacion_servicio').verbose_name)), 'color': 'gray25', 'cabecera': True}, 1462 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('importacion_bien').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1463 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('importacion_publica').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1464 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1465 {'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_no_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1466 {'tag': str(_(BalanzaComercialPrecioImplicito._meta.get_field('importacion_privada').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1467 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1468 {'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_no_petroleo').verbose_name)), 'color': 'aqua', 'text_color': 'white', 'cabecera': True}, 1469 {'tag': str(_(BalanzaComercialServicios._meta.get_field('importacion_servicio').verbose_name)), 'color': 'gray25', 'cabecera': True}, 1470 ] 1471 ## Cabecera para precios corrientes en usd 1472 else: 1473 header = [ 1474 {'tag': '', 'color': 'white', 'text_color': 'black','cabecera': True}, 1475 {'tag': '', 'color': 'white', 'text_color': 'black','cabecera': True}, 1476 {'tag': str(_("Exportaciones de bienes FOB")), 'color': 'ocean_blue', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1477 {'tag': str(_("Exportaciones de Servicios")), 'color': 'orange', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1478 {'tag': str(_("Importaciones de Bienes CIF")), 'color': 'indigo', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1479 {'tag': str(_("Fletes y Seguros")), 'color': 'green', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1480 {'tag': str(_("Importaciones de Servicios")), 'color': 'aqua', 'text_color': 'white', 'combine': 4, 'cabecera': True}, 1481 ] 1482 sub_header = [ 1483 {'tag': str(_("Trimestre")), 'cabecera': True}, 1484 {'tag': str(_("Año")), 'cabecera': True}, 1485 ] 1486 colors = ['ocean_blue','orange','indigo','green','aqua'] 1487 for item in colors: 1488 sub_header.append({'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_petroleo').verbose_name)), 'color': item, 'text_color': 'white', 'cabecera': True}) 1489 sub_header.append({'tag': str(_(BalanzaComercialDatos._meta.get_field('publico_no_petroleo').verbose_name)), 'color': item, 'text_color': 'white', 'cabecera': True}) 1490 sub_header.append({'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_petroleo').verbose_name)), 'color': item, 'text_color': 'white', 'cabecera': True}) 1491 sub_header.append({'tag': str(_(BalanzaComercialDatos._meta.get_field('privado_no_petroleo').verbose_name)), 'color': item, 'text_color': 'white', 'cabecera': True}) 1492 ## Se añade la cabecera 1493 fields.append(header); 1494 ## Se añade la subcabecera 1495 fields.append(sub_header); 1496 1497 ## Se asigna el año base (si existe) 1498 anho_base = kwargs['anho_base'] if 'anho_base' in kwargs else '' 1499 1500 # Almacena los datos de año y trimestre inicial provenientes del formulario 1501 anho_ini = int(kwargs['anho__gte']) 1502 trimestre_ini = int(kwargs['trimestre__gte']) 1503 1504 # Genera los años y trimestres correspondientes a los parámetros del formulario 1505 registros = [] 1506 while True: 1507 registros = [({'tag': trimestre_ini})] 1508 registros.append({'tag': anho_ini}) 1509 ## Se intenta búscar el registro base 1510 balanza_base = BalanzaComercialBase.objects.filter( 1511 anho_base=anho_base, 1512 anho=anho_ini, 1513 trimestre=trimestre_ini, 1514 tipo=kwargs['tipo'], 1515 dominio=kwargs['dominio'] 1516 ) 1517 ## Si el registro existe se obtiene 1518 if(balanza_base): 1519 balanza_base = balanza_base.get() 1520 ## Si el registro base corresponde a balanza comercial corriente (bs) o constante 1521 if balanza_base.dominio!='BD' and balanza_base.tipo!='PI': 1522 ## Se busca el registro para Exportaciones de bienes FOB 1523 balanza_datos_eb = BalanzaComercialDatos.objects.filter( 1524 balanza_id=balanza_base.id, 1525 tipo="EB" 1526 ).get() 1527 ## Se busca el registro para Importaciones de Bienes CIF 1528 balanza_datos_ib = BalanzaComercialDatos.objects.filter( 1529 balanza_id=balanza_base.id, 1530 tipo="IB" 1531 ).get() 1532 ## Se busca el registro de las exportaciones/importaciones de servicios 1533 balanza_servicios = BalanzaComercialServicios.objects.filter(balanza_id=balanza_base.id,).get() 1534 ## Se añaden los registros a la lista 1535 registros.append({'tag':balanza_datos_eb.publico_petroleo}) 1536 registros.append({'tag':balanza_datos_eb.publico_no_petroleo}) 1537 registros.append({'tag':balanza_datos_eb.privado_petroleo}) 1538 registros.append({'tag':balanza_datos_eb.privado_no_petroleo}) 1539 registros.append({'tag':balanza_servicios.exportacion_servicio}) 1540 registros.append({'tag':balanza_datos_ib.publico_petroleo}) 1541 registros.append({'tag':balanza_datos_ib.publico_no_petroleo}) 1542 registros.append({'tag':balanza_datos_ib.privado_petroleo}) 1543 registros.append({'tag':balanza_datos_ib.privado_no_petroleo}) 1544 registros.append({'tag':balanza_servicios.importacion_servicio}) 1545 ## Si el registro corresponde a balanza comercial índice de precios implícitos 1546 elif(kwargs['tipo']=='PI'): 1547 ## Se busca el registro para Exportaciones de bienes FOB 1548 balanza_datos_eb = BalanzaComercialDatos.objects.filter( 1549 balanza_id=balanza_base.id, 1550 tipo="EB" 1551 ).get() 1552 ## Se busca el registro para Importaciones de Bienes CIF 1553 balanza_datos_ib = BalanzaComercialDatos.objects.filter( 1554 balanza_id=balanza_base.id, 1555 tipo="IB" 1556 ).get() 1557 ## Se busca el registro de las exportaciones/importaciones de servicios 1558 balanza_servicios = BalanzaComercialServicios.objects.filter(balanza_id=balanza_base.id,).get() 1559 ## Se buscar el registro para los precios implícitos 1560 balanza_implicito = BalanzaComercialPrecioImplicito.objects.filter(balanza = balanza_base.id).get() 1561 ## Se añaden los registros a la lista 1562 registros.append({'tag':balanza_implicito.exportacion_bien}) 1563 registros.append({'tag':balanza_implicito.exportacion_publica}) 1564 registros.append({'tag':balanza_datos_eb.publico_petroleo}) 1565 registros.append({'tag':balanza_datos_eb.publico_no_petroleo}) 1566 registros.append({'tag':balanza_implicito.exportacion_privada}) 1567 registros.append({'tag':balanza_datos_eb.privado_petroleo}) 1568 registros.append({'tag':balanza_datos_eb.privado_no_petroleo}) 1569 registros.append({'tag':balanza_servicios.exportacion_servicio}) 1570 registros.append({'tag':balanza_implicito.importacion_bien}) 1571 registros.append({'tag':balanza_implicito.importacion_publica}) 1572 registros.append({'tag':balanza_datos_ib.publico_petroleo}) 1573 registros.append({'tag':balanza_datos_ib.publico_no_petroleo}) 1574 registros.append({'tag':balanza_implicito.importacion_privada}) 1575 registros.append({'tag':balanza_datos_ib.privado_petroleo}) 1576 registros.append({'tag':balanza_datos_ib.privado_no_petroleo}) 1577 registros.append({'tag':balanza_servicios.importacion_servicio}) 1578 ## Si el registro corresponde a precios corrientes (usd) 1579 else: 1580 ## Se busca el registro para Exportaciones de bienes FOB 1581 balanza_datos_eb = BalanzaComercialDatos.objects.filter(balanza = balanza_base, tipo="EB").get() 1582 ## Se busca el registro para Exportaciones de Servicios 1583 balanza_datos_es = BalanzaComercialDatos.objects.filter(balanza = balanza_base, tipo="ES").get() 1584 ## Se busca el registro para Importaciones de Bienes CIF 1585 balanza_datos_ib = BalanzaComercialDatos.objects.filter(balanza = balanza_base, tipo="IB").get() 1586 ## Se busca el registro para Fletes y Seguros 1587 balanza_datos_fs = BalanzaComercialDatos.objects.filter(balanza = balanza_base, tipo="FS").get() 1588 ## Se busca el registro para Importaciones de Servicios 1589 balanza_datos_is = BalanzaComercialDatos.objects.filter(balanza = balanza_base, tipo="IS").get() 1590 ## Se añaden los registros a la lista 1591 registros.append({'tag':balanza_datos_eb.publico_petroleo}) 1592 registros.append({'tag':balanza_datos_eb.publico_no_petroleo}) 1593 registros.append({'tag':balanza_datos_eb.privado_petroleo}) 1594 registros.append({'tag':balanza_datos_eb.privado_no_petroleo}) 1595 registros.append({'tag':balanza_datos_es.publico_petroleo}) 1596 registros.append({'tag':balanza_datos_es.publico_no_petroleo}) 1597 registros.append({'tag':balanza_datos_es.privado_petroleo}) 1598 registros.append({'tag':balanza_datos_es.privado_no_petroleo}) 1599 registros.append({'tag':balanza_datos_ib.publico_petroleo}) 1600 registros.append({'tag':balanza_datos_ib.publico_no_petroleo}) 1601 registros.append({'tag':balanza_datos_ib.privado_petroleo}) 1602 registros.append({'tag':balanza_datos_ib.privado_no_petroleo}) 1603 registros.append({'tag':balanza_datos_fs.publico_petroleo}) 1604 registros.append({'tag':balanza_datos_fs.publico_no_petroleo}) 1605 registros.append({'tag':balanza_datos_fs.privado_petroleo}) 1606 registros.append({'tag':balanza_datos_fs.privado_no_petroleo}) 1607 registros.append({'tag':balanza_datos_is.publico_petroleo}) 1608 registros.append({'tag':balanza_datos_is.publico_no_petroleo}) 1609 registros.append({'tag':balanza_datos_is.privado_petroleo}) 1610 registros.append({'tag':balanza_datos_is.privado_no_petroleo}) 1611 # Agrega los datos a la nueva fila del archivo a generar 1612 fields.append(registros) 1613 if (anho_ini == int(kwargs['anho__lte']) and trimestre_ini == int(kwargs['trimestre__lte'])): 1614 break 1615 if (trimestre_ini == 4): 1616 trimestre_ini = 0 1617 anho_ini += 1 1618 trimestre_ini += 1 1619 1620 if(kwargs['tipo']=='PR' and kwargs['dominio']=='BB'): 1621 nombre_archivo+= '_bolivares_corriente' 1622 elif(kwargs['tipo']=='PR' and kwargs['dominio']=='BD'): 1623 nombre_archivo+= '_dolares' 1624 elif(kwargs['tipo']=='PC'): 1625 nombre_archivo+= '_bolivares_constante' 1626 elif(kwargs['tipo']=='PI'): 1627 nombre_archivo+= '_bolivales_preciosimplicitos' 1628 ## Devuelve los datos correspondientes al archivo a descargar y el nombre de ese archivo 1629 return {'fields': fields, 'output': nombre_archivo} 1630 1631 def gestion_process(self, file, user, *args, **kwargs): 1632 """! 1633 Método que permite cargar y gestionar datos 1634 1635 @author Rodrigo boet (rboet at cenditel.gob.ve) 1636 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1637 @date 02-05-2017 1638 @param self <b>{object}</b> Objeto que instancia la clase 1639 @param file <b>{string}</b> Ruta y nombre del archivo a gestionar 1640 @param user <b>{object}</b> Objeto que contiene los datos del usuario que realiza la acción 1641 @param args <b>{tupla}</b> Tupla con argumentos opcionales 1642 @param kwargs <b>{dic}</b> Diccionario con filtros opcionales 1643 @return Devuelve el resultado de la acción con su correspondiente mensaje 1644 """ 1645 1646 load_file = pyexcel.get_sheet(file_name=file) 1647 anho_base, errors, result, message = '', '', True, '' 1648 load_data_msg = str(_("Datos Cargados")) 1649 1650 ## Se asigna un valor al año base 1651 anho_base = kwargs['anho_base'] if 'anho_base' in kwargs else '' 1652 1653 for row in load_file.row[2:]: 1654 try: 1655 ## Se crea el registro base 1656 balanza_base, created = BalanzaComercialBase.objects.update_or_create( 1657 anho_base=anho_base, 1658 anho=row[1], 1659 trimestre=row[0], 1660 tipo=kwargs['tipo'], 1661 dominio=kwargs['dominio']) 1662 1663 ## Se crean las balanzas para precios corrientes (bs) y precios constantes 1664 if(kwargs['dominio']!='BD' and kwargs['tipo']!='PI'): 1665 ## Se crea el registro para Exportaciones de bienes FOB 1666 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="EB", defaults={ 1667 'publico_petroleo':check_val_data(row[2]), 1668 'publico_no_petroleo':check_val_data(row[3]), 1669 'privado_petroleo':check_val_data(row[4]), 1670 'privado_no_petroleo':check_val_data(row[5]), 1671 }) 1672 1673 ## Se crea el registro para Importaciones de Bienes CIF 1674 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="IB", defaults={ 1675 'publico_petroleo':check_val_data(row[7]), 1676 'publico_no_petroleo':check_val_data(row[8]), 1677 'privado_petroleo':check_val_data(row[9]), 1678 'privado_no_petroleo':check_val_data(row[10]), 1679 }) 1680 1681 ## Se crea el registro de las exportaciones/importaciones de servicios 1682 BalanzaComercialServicios.objects.update_or_create(balanza = balanza_base, defaults={ 1683 'exportacion_servicio': check_val_data(row[6]), 1684 'importacion_servicio': check_val_data(row[11]), 1685 }) 1686 ## Se crea la balanza para el índice de precios implícitos 1687 elif(kwargs['tipo']=='PI'): 1688 ## Se crea el registro para los precios implícitos 1689 BalanzaComercialPrecioImplicito.objects.update_or_create(balanza = balanza_base, defaults={ 1690 'importacion_publica':check_val_data(row[11]), 1691 'importacion_privada':check_val_data(row[14]), 1692 'exportacion_publica':check_val_data(row[3]), 1693 'exportacion_privada':check_val_data(row[6]), 1694 'importacion_bien':check_val_data(row[10]), 1695 'exportacion_bien':check_val_data(row[2]), 1696 }) 1697 1698 ## Se crea el registro para Exportaciones de bienes FOB 1699 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="EB", defaults={ 1700 'publico_petroleo':check_val_data(row[4]), 1701 'publico_no_petroleo':check_val_data(row[5]), 1702 'privado_petroleo':check_val_data(row[7]), 1703 'privado_no_petroleo':check_val_data(row[8]), 1704 }) 1705 1706 ## Se crea el registro para Importaciones de Bienes CIF 1707 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="IB", defaults={ 1708 'publico_petroleo':check_val_data(row[12]), 1709 'publico_no_petroleo':check_val_data(row[13]), 1710 'privado_petroleo':check_val_data(row[15]), 1711 'privado_no_petroleo':check_val_data(row[16]), 1712 }) 1713 1714 ## Se crea el registro de las exportaciones/importaciones de servicios 1715 BalanzaComercialServicios.objects.update_or_create(balanza = balanza_base, defaults={ 1716 'exportacion_servicio': check_val_data(row[9]), 1717 'importacion_servicio': check_val_data(row[17]), 1718 }) 1719 ## Se crea la balanza para precios corrientes (usd) 1720 else: 1721 ## Se crea el registro para Exportaciones de bienes FOB 1722 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="EB", defaults={ 1723 'publico_petroleo':check_val_data(row[2]), 1724 'publico_no_petroleo':check_val_data(row[3]), 1725 'privado_petroleo':check_val_data(row[4]), 1726 'privado_no_petroleo':check_val_data(row[5]), 1727 }) 1728 ## Se crea el registro para Exportaciones de Servicios 1729 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="ES", defaults={ 1730 'publico_petroleo':check_val_data(row[6]), 1731 'publico_no_petroleo':check_val_data(row[7]), 1732 'privado_petroleo':check_val_data(row[8]), 1733 'privado_no_petroleo':check_val_data(row[9]), 1734 }) 1735 ## Se crea el registro para Importaciones de Bienes CIF 1736 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="IB", defaults={ 1737 'publico_petroleo':check_val_data(row[10]), 1738 'publico_no_petroleo':check_val_data(row[11]), 1739 'privado_petroleo':check_val_data(row[12]), 1740 'privado_no_petroleo':check_val_data(row[13]), 1741 }) 1742 ## Se crea el registro para Fletes y Seguros 1743 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="FS", defaults={ 1744 'publico_petroleo':check_val_data(row[14]), 1745 'publico_no_petroleo':check_val_data(row[15]), 1746 'privado_petroleo':check_val_data(row[16]), 1747 'privado_no_petroleo':check_val_data(row[17]), 1748 }) 1749 ## Se crea el registro para Importaciones de Servicios 1750 BalanzaComercialDatos.objects.update_or_create(balanza = balanza_base, tipo="IS", defaults={ 1751 'publico_petroleo':check_val_data(row[18]), 1752 'publico_no_petroleo':check_val_data(row[19]), 1753 'privado_petroleo':check_val_data(row[20]), 1754 'privado_no_petroleo':check_val_data(row[21]), 1755 }) 1756 1757 except Exception as e: 1758 errors += "- %s\n" % str(e) 1759 1760 if errors: 1761 message = str(_("Error procesando datos. Verifique su correo para detalles del error")) 1762 load_data_msg = str(_("Error al procesar datos del área Económica - Externo")) 1763 1764 1765 # Envia correo electronico al usuario indicando el estatus de la carga de datos 1766 enviar_correo(user.email, 'gestion.informacion.load.mail', EMAIL_SUBJECT_LOAD_DATA, { 1767 'load_data_msg': load_data_msg, 'administrador': administrador, 'admin_email': admin_email, 1768 'errors': errors 1769 }) 1770 1771 return {'result': result, 'message': message} 1772 1773 @python_2_unicode_compatible 1774 class BalanzaComercialDatos(models.Model): 1775 """! 1776 Clase que contiene los registros de datos de la Balanza Comercial 1777 1778 @author Rodrigo Boet (rboet at cenditel.gob.ve) 1779 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1780 @date 02-05-2017 1781 @version 1.0.0 1782 """ 1783 1784 ## Valor público del petróleo 1785 publico_petroleo = models.DecimalField( 1786 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Pública Petrólera") 1787 ) 1788 1789 ## Valor no público del petróleo 1790 publico_no_petroleo = models.DecimalField( 1791 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Pública No Petrólera") 1792 ) 1793 1794 ## Valor privado del petróleo 1795 privado_petroleo = models.DecimalField( 1796 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Privado Petrólero") 1797 ) 1798 1799 ## Valor no privado del petróleo 1800 privado_no_petroleo = models.DecimalField( 1801 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Privado No Petrólero") 1802 ) 1803 1804 ## Tipo de dato de la balanza 1805 tipo = models.CharField(max_length=2, choices=BALANZA_DATOS) 1806 1807 ## Relación con la balanza base 1808 balanza = models.ForeignKey(BalanzaComercialBase) 1809 1810 @python_2_unicode_compatible 1811 class BalanzaComercialServicios(models.Model): 1812 """! 1813 Clase que contiene los registros de datos de la Balanza Comercial 1814 1815 @author Rodrigo Boet (rboet at cenditel.gob.ve) 1816 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1817 @date 02-05-2017 1818 @version 1.0.0 1819 """ 1820 1821 ## Valor de importacion del servicio 1822 exportacion_servicio = models.DecimalField( 1823 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Exportaciones de Servicios") 1824 ) 1825 1826 ## Valor de exportación del servicio 1827 importacion_servicio = models.DecimalField( 1828 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Importaciones de Servicios") 1829 ) 1830 1831 ## Relación con la balanza base 1832 balanza = models.ForeignKey(BalanzaComercialBase) 1833 1834 @python_2_unicode_compatible 1835 class BalanzaComercialPrecioImplicito(models.Model): 1836 """! 1837 Clase que contiene los registros de datos de Precios Implicitos de la Balanza Comercial 1838 1839 @author Rodrigo Boet (rboet at cenditel.gob.ve) 1840 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 1841 @date 03-05-2017 1842 @version 1.0.0 1843 """ 1844 ## Valor público de la importación 1845 importacion_publica = models.DecimalField( 1846 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Importaciones Públicas") 1847 ) 1848 1849 ## Valor privado de la importación 1850 importacion_privada = models.DecimalField( 1851 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Importaciones Privadas") 1852 ) 1853 1854 ## Valor público de la exportación 1855 exportacion_publica = models.DecimalField( 1856 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Exportaciones Públicas") 1857 ) 1858 1859 ## Valor privado de la exportación 1860 exportacion_privada = models.DecimalField( 1861 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Exportaciones Privadas") 1862 ) 1863 1864 ## Valor de importación de los bienes 1865 importacion_bien = models.DecimalField( 1866 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Importaciones de Bienes CIF") 1867 ) 1868 1869 ## Valor de exportación de los bienes 1870 exportacion_bien = models.DecimalField( 1871 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Exportaciones de Bienes FOB") 1872 ) 1873 1874 ## Relación con la balanza base 1875 balanza = models.ForeignKey(BalanzaComercialBase) -
economico/templates/economico.balanza.comercial.html
r3957a55 re50220a 24 24 </div> 25 25 <div class="row separador-row"> 26 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset- 3 col-sm-offset-3 col-md-offset-3 col-lg-offset-3">26 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-2 col-sm-offset-2 col-md-offset-2 col-lg-offset-2"> 27 27 <label for="{{ form.tipo.auto_id }}" class="control-label"> 28 28 {{ form.tipo.label }} 29 29 </label> 30 30 </div> 31 <div class="col-xs- 1 col-sm-1 col-md-1 col-lg-1">{{ form.tipo }}</div>31 <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">{{ form.tipo }}</div> 32 32 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"> 33 33 <label for="{{ form.dominio.auto_id }}" class="control-label"> … … 35 35 </label> 36 36 </div> 37 <div class="col-xs- 1 col-sm-1 col-md-1 col-lg-1">{{ form.dominio }}</div>37 <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">{{ form.dominio }}</div> 38 38 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"> 39 39 <label for="{{ form.anho_base.auto_id }}" class="control-label"> … … 43 43 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.anho_base }}</div> 44 44 </div> 45 <div class="row separador-row"> 46 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-6 col-sm-offset-6 col-md-offset-6 col-lg-offset-6 text-center"> 47 <label class="control-label">{% trans 'Trimestral' %}</label> 48 </div> 49 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 text-center"> 50 <label class="control-label">{% trans 'Año' %}</label> 51 </div> 52 </div> 53 <div class="row separador-row"> 54 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-4 col-sm-offset-4 col-md-offset-4 col-lg-offset-4"> 55 <label class="control-label">{% trans 'Período' %}</label> 56 </div> 57 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"> 58 <label for="{{ form.periodo_trimestre_ini.auto_id }}" class="control-label"> 59 {{ form.periodo_trimestre_ini.label }} 60 </label> 61 </div> 62 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_trimestre_ini }}</div> 63 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_anho_ini }}</div> 64 </div> 65 <div class="row separador-row"> 66 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-5 col-sm-offset-5 col-md-offset-5 col-lg-offset-5"> 67 <label for="{{ form.periodo_semana_fin.auto_id }}" class="control-label"> 68 {{ form.periodo_trimestre_fin.label }} 69 </label> 70 </div> 71 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_trimestre_fin }}</div> 72 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_anho_fin }}</div> 73 </div> 74 {% include 'base.down.up.files.html' %} 45 <div id="periodo" style="display: none;"> 46 <div class="row separador-row"> 47 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-6 col-sm-offset-6 col-md-offset-6 col-lg-offset-6 text-center"> 48 <label class="control-label">{% trans 'Trimestral' %}</label> 49 </div> 50 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 text-center"> 51 <label class="control-label">{% trans 'Año' %}</label> 52 </div> 53 </div> 54 <div class="row separador-row"> 55 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-4 col-sm-offset-4 col-md-offset-4 col-lg-offset-4"> 56 <label class="control-label">{% trans 'Período' %}</label> 57 </div> 58 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"> 59 <label for="{{ form.periodo_trimestre_ini.auto_id }}" class="control-label"> 60 {{ form.periodo_trimestre_ini.label }} 61 </label> 62 </div> 63 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_trimestre_ini }}</div> 64 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_anho_ini }}</div> 65 </div> 66 <div class="row separador-row"> 67 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-offset-5 col-sm-offset-5 col-md-offset-5 col-lg-offset-5"> 68 <label for="{{ form.periodo_semana_fin.auto_id }}" class="control-label"> 69 {{ form.periodo_trimestre_fin.label }} 70 </label> 71 </div> 72 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_trimestre_fin }}</div> 73 <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">{{ form.periodo_anho_fin }}</div> 74 </div> 75 </div> 76 <div id="upload" style="display: none;"> 77 {% include 'base.down.up.files.html' with url_down='/gestion-informacion/ajax/descargar_archivo' url_up='/gestion-informacion/ajax/cargar_archivo' app='economico' mod='BalanzaComercialBase' %} 78 </div> 75 79 </div> 76 80 </div> 77 81 {% endblock %} 82 83 {% block extra_footer %} 84 <script> 85 var tipo = $('#{{ form.tipo.auto_id }}'); 86 var dominio = $('#{{ form.dominio.auto_id }}'); 87 var anho_base = $("#{{ form.anho_base.auto_id }}"); 88 var periodo_mes_ini = $("#{{ form.periodo_trimestre_ini.auto_id }}"); 89 var periodo_mes_fin = $("#{{ form.periodo_trimestre_fin.auto_id }}"); 90 var periodo_anho_ini = $("#{{ form.periodo_anho_ini.auto_id }}"); 91 var periodo_anho_fin = $("#{{ form.periodo_anho_fin.auto_id }}"); 92 93 /** 94 * Función que configura los filtros de acuerdo a la selección del usuario 95 */ 96 function set_filters() { 97 var filters = $("#filters"), json_filter = ''; 98 99 if (tipo.val()) { 100 json_filter += "\"tipo\": \"" + tipo.val() + "\","; 101 } 102 if (dominio.val()) { 103 json_filter += "\"dominio\": \"" + dominio.val() + "\","; 104 } 105 if (anho_base.val()) { 106 json_filter += "\"anho_base\": \"" + anho_base.val() + "\","; 107 } 108 if (periodo_mes_ini.val()) { 109 json_filter += "\"trimestre__gte\": \"" + periodo_mes_ini.val() + "\","; 110 } 111 if (periodo_mes_fin.val()) { 112 json_filter += "\"trimestre__lte\": \"" + periodo_mes_fin.val() + "\","; 113 } 114 if (periodo_anho_ini.val()) { 115 json_filter += "\"anho__gte\": \"" + periodo_anho_ini.val() + "\","; 116 } 117 if (periodo_anho_fin.val()) { 118 json_filter += "\"anho__lte\": \"" + periodo_anho_fin.val() + "\","; 119 } 120 121 if (json_filter) { 122 json_filter = json_filter.slice(0, -1); 123 filters.val(json_filter); 124 } 125 126 // Validación de los campos ocultos 127 var aprobado = false; 128 // Se valida mostrar y habilitar los períodos 129 if (tipo.val()=='PR' && (dominio.val()=='BB' || dominio.val()=='BD')) { 130 enable_periodo_bc(true); 131 $('#periodo').show(); 132 aprobado = true; 133 } 134 else if ((tipo.val()=='PC' || tipo.val()=='PI') && anho_base.val()!='') { 135 enable_periodo_bc(true); 136 $('#periodo').show(); 137 aprobado = true; 138 } 139 else{ 140 enable_periodo_bc(false); 141 $('#periodo').hide(); 142 aprobado = false; 143 } 144 // Se valida mostrar el formulario de descarga 145 if (periodo_mes_ini.val()!='' && periodo_mes_fin.val()!='' && periodo_anho_ini.val()!='' 146 && periodo_anho_fin.val()!='') { 147 var anho_trimestre = validar_anho_trimestre(); 148 if (aprobado && anho_trimestre) { 149 $('#upload').show(); 150 } 151 else{ 152 $('#upload').hide(); 153 } 154 } 155 156 } 157 158 $(document).ready(function() { 159 tipo.on('change', function() { set_filters() }); 160 dominio.on('change', function() { set_filters() }); 161 anho_base.on('change', function() { set_filters() }); 162 periodo_mes_ini.on('change', function() { set_filters() }); 163 periodo_mes_fin.on('change', function() { set_filters() }); 164 periodo_anho_ini.on('change', function() { set_filters() }); 165 periodo_anho_fin.on('change', function() { set_filters() }); 166 }); 167 </script> 168 {% endblock %} -
economico/templates/economico.cuenta.capital.html
r8ec1e94 re50220a 17 17 <p> 18 18 {% blocktrans %} 19 Para cargar los datos asociados a la <b> Balanza Comercial</b> seleccione el dominio.19 Para cargar los datos asociados a la <b>Cuenta Capital</b> seleccione el dominio. 20 20 {% endblocktrans %} 21 21 </p>
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.