Changeset 90c186a in sicp


Ignore:
Timestamp:
Mar 10, 2016, 11:29:35 AM (8 years ago)
Author:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
9e4505c
Parents:
d0e081f
Message:

se agrega función que permite buscar datos de combos anidados para mostrarlos

Location:
apps/simulacion
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • apps/simulacion/ajax.py

    r645daf8 r90c186a  
    102102            price.append(s.attrib.get('price', 0))
    103103
     104        logger.info(
     105            u"Se ha generado con éxito el proceso de simulación del producto %s solicitado por el usuario %s"
     106            % (producto, str(request.user))
     107        )
     108
    104109        return HttpResponse(json.dumps({
    105110            'resultado': True, 'produccion': produccion, 'employees': employees, 'cost1': cost1, 'cost2': cost2,
     
    111116
    112117    except Exception, e:
    113         #logger.error(_(u"Error al procesar la solicitud de simulación. Detalles: %s") % e)
     118        logger.error(
     119            u"Error al procesar la solicitud de simulación por el usuario %s. Detalles: %s"
     120            % (str(request.user), str(e))
     121        )
    114122        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
    115123
     
    162170        cp.save()
    163171
    164         #logger.info(_(u"Se registro una nueva modificación para la cadena [%s] con el ID [%s]") % (producto_id, cp.pk))
     172        logger.info(
     173            u"Se registro una nueva modificación para la cadena [%s] con el ID [%s]" % (producto_id, str(cp.pk))
     174        )
    165175
    166176        #remover nodos y arcos de la cadena modificada
     
    171181
    172182    except Exception, e:
    173         """pr_id = request.GET.get('producto_id', None)
     183        pr_id = request.GET.get('producto_id', None)
    174184        if pr_id:
    175             logger.error(_(u"Error al modificar la cadena de producción del producto [%s]. Detalles: %s")
    176                          % (pr_id, e))"""
     185            logger.error(u"Error al modificar la cadena de producción del producto [%s]. Detalles: %s" % (pr_id, e))
    177186        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
    178187
     
    207216            dataSet[cadena.id] = cp
    208217
    209         #logger.info(_(u"Petición solicitada por el usuario [%s] para mostrar el listado de cadenas modificadas") % str(request.username))
     218        logger.info(
     219            u"Petición solicitada por el usuario [%s] para mostrar el listado de cadenas modificadas"
     220            % str(request.username)
     221        )
    210222
    211223        return HttpResponse(json.dumps({'resultado': True, 'dataSet': dataSet}))
     
    213225    except Exception, e:
    214226        #print e
    215         #logger.error(_(u"Error al procesar la petición de mostrar listado de cadenas modificadas. Detalles: %s") % e)
     227        logger.error(
     228            u"Error al procesar la petición de mostrar listado de cadenas modificadas solicitada por el usuario %s. "
     229            u"Detalles: %s" % (str(request.user), str(e))
     230        )
    216231        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
    217232
     
    238253            }))
    239254
    240         #logger.info(_(u"Generando la cadena con ID %s") % str(cadena_id))
     255        logger.info(u"Generando la cadena con ID %s" % str(cadena_id))
    241256
    242257        listNodes, listArcs = [], []
     
    298313        })
    299314
    300         #logger.info(_(u"Se genero la cadena a comparar con el ID %s") % str(cadena_id))
     315        logger.info(u"Se genero la cadena a comparar con el ID %s" % str(cadena_id))
    301316
    302317        return HttpResponse(json.dumps({
     
    305320
    306321    except Exception, e:
    307         #logger.error(_(u"Error al procesar los datos para la comparación de la cadena. Detalles: %s" % e))
     322        logger.error(u"Error al procesar los datos para la comparación de la cadena. Detalles: %s" % e)
    308323        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
    309324
     
    337352        f.close()
    338353
     354        logger.info(
     355            u"Se generó un nuevo archivo xml con la cadena modificada del producto %s solicitada por el usuario %s"
     356            % (str(cad.producto_id), str(request.user))
     357        )
     358
    339359        return HttpResponse(json.dumps({'resultado': True, 'producto_id': cad.producto_id}))
    340360    except Exception, e:
    341         return HttpResponse(json.dumps({'resultado': False, 'error': e}))
     361        logger.error(
     362            u"Ocurrió un error al generar un nuevo archivo con la cadena modificada solicitada por el usuario %s. "
     363            u"Detalles: %s" % (str(request.user), str(e))
     364        )
     365        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
  • apps/simulacion/functions.py

    rbe811f4 r90c186a  
    2222from xml.etree.ElementTree import ElementTree
    2323from apps.simulacion.sigesic.models import Producto, Insumo, ProductoInsumo, ConsumoPreciosR
     24
     25import logging
     26
     27logger = logging.getLogger('simulacion')
    2428
    2529def remove_nodos_cadena(producto_id, archivo_xml, nombre_cadena=None):
     
    4953                if sa.attrib['input_id'] in producto_id:
    5054                    a.remove(sa)
     55
     56    logger.info(u"Se han eliminado nodos de la cadena del producto %s a solicitud del usuario %s" % str(archivo_xml))
    5157
    5258    tree.write(archivo_xml)
  • apps/simulacion/views.py

    r3d3c191 r90c186a  
    3434from apis.chains.simulator import simulate
    3535from apps.comun.functions import render_cadena, render_simulacion
     36from apps.simulacion.sigesic.models import UnidadEconomica
    3637
    3738import os
     
    4041from PIL import Image
    4142
    42 logger = logging.getLogger(__name__)
     43logger = logging.getLogger('simulacion')
    4344
    4445@login_required()
     
    5556
    5657    cadena = render_cadena(str(request.user))
     58
     59    logger.info(u"El usuario %s ha generado un nuevo escenario para la simulación" % str(request.user))
    5760
    5861    return render_to_response('construir_escenario.html', {'node': cadena['node'], 'arc': cadena['arc'],
     
    101104    request.session['escenarios_post'] = request.POST
    102105
     106    logger.info(u"El usuario %s ha generado el archivo para el proceso de simulación" % str(request.user))
     107
    103108    return HttpResponseRedirect(reverse('resultados_simulacion', args=()))
    104109
     
    123128    escenarios_post = request.session.get('escenarios_post')
    124129    #del request.session['escenarios_post']
     130    logger.info(
     131        u"Se han generado con éxito los resultados del proceso de simulación solicitados por el usuario %s"
     132        % str(request.user)
     133    )
    125134    return render_to_response('resultado_escenario.html', {'node':cadena['node'], 'arc': cadena['arc'],
    126135                                                           'narriba': cadena['narriba'], 'nabajo': cadena['nabajo'],
     
    215224    """
    216225
    217     cadena = render_cadena(str(request.user))
    218 
     226    #cadena = render_cadena(str(request.user))
     227
     228    ## cambio nominal de la divisa para el año a estimar
    219229    cambio_nominal = request.GET.get("cambio", None)
     230
     231    ## tipo de consulta, ue = para el calculo por unidad economica, y pr = para el calculo por producto
    220232    tipo = request.GET.get('tipo', None)
     233
     234    ## identificador de la consulta, numero de rif para la consulta por unidad economica o id del producto para consultas por producto
    221235    id = request.GET.get('id', None)
    222236
    223     return render_to_response('requerimiento_divisas.html', {'node': cadena['node'], 'arc': cadena['arc'],
    224                                                          'narriba': cadena['narriba'], 'nabajo': cadena['nabajo'],
    225                                                          'anho': cadena['anho'], 'cambio_nominal': cambio_nominal,
    226                                                          'tipo': tipo, 'id': id},
     237    ## Año de consulta para el cálculo de divisas
     238    anho = request.GET.get('anho', None)
     239
     240    ## Contiene el número de productos que produce la Unidad Económica
     241    nro_productos = 0
     242
     243    ## Diccionario que contiene la estructura de la cadena productiva
     244    arbol = {'nivel': {}}
     245
     246    if cambio_nominal and tipo and id and anho:
     247        if tipo == 'ue':
     248            nivel, i = 0, 0
     249            arbol['nivel'][str(nivel)] = []
     250
     251            ue = UnidadEconomica.objects.using('sigesic').get(rif=id)
     252
     253            # Consulta todas las Sub Unidades Económicas que indicaron producir y que a su vez hayan registrado insumos
     254            for produccion in ue.subunidadeconomica_set.all().exclude(producto=None, insumo=None):
     255                arbol['nivel'][str(nivel)].append({
     256                    'rif': produccion.ue_rif.rif,
     257                    'nombre': produccion.nombre,
     258                    'productos': []
     259                })
     260
     261                nro_productos += produccion.producto_set.filter(produccionpreciosr__anho__year=anho).count()
     262                # Consulta todos los productos de cada Sub Unidad Económica
     263                for pr in produccion.producto_set.filter(produccionpreciosr__anho__year=anho):
     264                    precios_producto = pr.produccionpreciosr_set.get(anho__year=anho)
     265                    arbol['nivel'][str(nivel)][i]['productos'].append({
     266                        'nombre': pr.nombre,
     267                        'cantidad': precios_producto.cant_producido,
     268                        'medida': pr.unidad_medida.nombre
     269                    })
     270                    pass
     271
     272                i += 1
     273
     274            print arbol
     275
     276    return render_to_response('requerimiento_divisas.html', {'cambio_nominal': cambio_nominal, 'anho': anho,
     277                                                             'tipo': tipo, 'id': id, 'nro_productos':nro_productos},
    227278                              context_instance=RequestContext(request))
Note: See TracChangeset for help on using the changeset viewer.