Changeset 3af6473 in sicp for apps


Ignore:
Timestamp:
Dec 22, 2015, 12:31:57 PM (8 years ago)
Author:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
3576269
Parents:
e79e549
Message:

agregada función para mostrar la composición accionaria de una Unidad Económica

Location:
apps/simulacion/sigesic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/simulacion/sigesic/ajax.py

    r1d976e9 r3af6473  
    2626from django.utils.translation import ugettext_lazy as _
    2727from apps.comun.constantes import MSG_NOT_AJAX
    28 from apps.simulacion.sigesic.models import Producto
     28from apps.simulacion.sigesic.models import Producto, UnidadEconomica, Socio
    2929from apis.chains.sigesic_graph_builder import build_graph
    3030
     
    103103            )
    104104
    105             print gen_graph
    106 
    107105            return HttpResponse(json.dumps({'resultado': True, 'narriba': narriba, 'nabajo': nabajo}))
    108106
     
    113111    except Exception, e:
    114112        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
     113
     114
     115@login_required()
     116def composicion_accionaria(request):
     117    """!
     118    Función que permite mostrar datos de la composicion accionaria de una Unidad Economica para determinar los
     119    factores hegemonicos
     120
     121    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     122    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     123    @date 22-12-2015
     124    @param request <b>{object}</b> Objeto que contiene la petición
     125    @return Devuelve respuesta al sistema con los resultados de la composicion accionaria
     126    """
     127    try:
     128        if not request.is_ajax():
     129            return HttpResponse(json.dumps({'resultado': False, 'error': MSG_NOT_AJAX}))
     130
     131        rif = request.GET.get('rif', None)
     132
     133        socios = Socio.objects.using('sigesic').filter(ue_rif__rif=rif)
     134
     135        lista_socios, lista_empresas, lista_empresas_asociadas = [], [], []
     136
     137        ## Datos de los factores hegemonicos
     138        for socio in socios:
     139            datos_socio = {
     140                'rif_pasaporte': socio.rif_pasaporte,
     141                'nombre': socio.nombre,
     142                'acciones': socio.porcentaje,
     143                'rif_empresa': socio.ue_rif.rif,
     144                'nombre_empresa': socio.ue_rif.nombre,
     145                'nivel': '0 Nivel Base'
     146            }
     147
     148            lista_socios.append(datos_socio)
     149
     150            if socio.rif_pasaporte:
     151                factor_hegemonico = Socio.objects.using('sigesic').filter(rif_pasaporte=socio.rif_pasaporte)#.exclude(pk=socio.pk)
     152
     153                for factor in factor_hegemonico:
     154                    datos_socio = {
     155                        'rif_pasaporte': factor.rif_pasaporte,
     156                        'nombre': factor.nombre,
     157                        'acciones': factor.porcentaje,
     158                        'rif_empresa': factor.ue_rif.rif,
     159                        'nombre_empresa': factor.ue_rif.nombre,
     160                        'nivel': ''
     161                    }
     162
     163                    if socio.rif_pasaporte <> factor.rif_pasaporte:
     164                        lista_socios.append(datos_socio)
     165
     166                    if factor.ue_rif.rif not in lista_empresas:
     167                        lista_empresas.append(factor.ue_rif.rif)
     168
     169        # Datos de las empresas asociadas
     170        if lista_empresas:
     171            for empresa in lista_empresas:
     172                ue = UnidadEconomica.objects.using('sigesic').get(rif=empresa)
     173                for s in Socio.objects.using('sigesic').filter(ue_rif=ue):
     174                    lista_empresas_asociadas.append({
     175                        'rif_pasaporte': s.rif_pasaporte,
     176                        'nombre': s.nombre,
     177                        'rif_empresa': ue.rif,
     178                        'nombre_empresa': ue.nombre
     179                    })
     180
     181
     182        if lista_socios:
     183            return HttpResponse(json.dumps({'resultado': True, 'lista_socios': lista_socios,
     184                                            'lista_empresas_asociadas': lista_empresas_asociadas}))
     185
     186        return HttpResponse(json.dumps({
     187            'resultado': False, 'error': _(u"La Composicion accionaria de las Unidades Economicas que comprenden la "
     188                                           u"cadena productiva no tienen en comun ningun accionista "
     189                                           u"(persona natural y/o juridica)")
     190        }))
     191
     192    except Exception, e:
     193        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
  • apps/simulacion/sigesic/urls.py

    r1d976e9 r3af6473  
    2828    url(r'^ajax/anhos_registro_productos/?$', 'apps.simulacion.sigesic.ajax.anhos_registro_productos', name='anhos_pr'),
    2929    url(r'^ajax/generar_xml_sigesic/?$', 'apps.simulacion.sigesic.ajax.genera_xml_sigesic', name='generar_xml_sigesic'),
     30    url(r'^ajax/composicion_accionaria/?$', 'apps.simulacion.sigesic.ajax.composicion_accionaria',
     31        name='composicion_accionaria'),
    3032]
Note: See TracChangeset for help on using the changeset viewer.