Changeset 4359346 in sicp for static


Ignore:
Timestamp:
Jun 23, 2015, 8:14:05 AM (9 years ago)
Author:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
c6bbc4d
Parents:
d78f2cd
Message:

se agregan plantillas, funciones y archivos javascript para el proceso de simulación de escenarios

Location:
static
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • static/css/styles.css

    r660f2ec r4359346  
    6969.fuente-10 { font-size: 10px; }
    7070.disable_btn, .disable_btn > i { color: slategray; cursor: none; }
     71
     72/** Estilos para los gráficos */
     73.graphic-content {width:550px;height:250px;margin:0 auto;}
  • static/js/ajax-request.js

    r49799c2 r4359346  
    4545    $.getJSON(url, {id:id, narriba:narriba, nabajo:nabajo, anho:anho}, function(datos) {
    4646        if (datos.resultado) {
    47             alert('archivo generado');
    4847            return true
    4948        }
     
    5453    });
    5554}
     55
     56/**
     57 * @brief Función que genera los gráficos como resultado del procesod e simulación
     58 *
     59 * @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     60 * @copyright GNU/GPLv2
     61 * @date 10-06-2015
     62 * @param url       Variable de tipo string que contiene la URL que procesa la petición
     63 * @param nodo_id   Variable de tipo string que contiene el identificador del nodo a consultar para la representación
     64 *                  de los correspondientes gráficos
     65 * @return Muestra un mensaje de error al usuario en caso de un fallo en la obtención de los datos a graficar, en caso
     66 *          contrario muestra los correspondientes gráficos
     67 */
     68function cargar_datos_sim(url, nodo_id) {
     69    $.getJSON(url, {nodo_id: nodo_id}, function(datos) {
     70        if (datos.resultado) {
     71            /** Asignación de datos en la pestaña de producción */
     72            $("#cadena-empresa").html(datos.ue.toUpperCase());
     73            $("#cadena-rif").html(datos.rif.toUpperCase());
     74            $("#producto-nombre").html(datos.producto.toUpperCase());
     75            $("#producto-codigo-arancelario").html(datos.cod_aran);
     76
     77            /** Instrucción que asigna una etiqueta div para mostrar los mensajes en el gráfico */
     78            $("<div id='tooltip' data-toggle='tooltip' class='tip-top'></div>").css({
     79                position: "absolute",
     80                display: "none",
     81                border: "1px solid #4D7299",
     82                padding: "2px 10px 2px 10px",
     83                "background-color": "#73B6E5",
     84                opacity: 0.80,
     85                "box-shadow": "rgba(0, 0, 0, 0.3) 20px 20px 20px",
     86                "font-size": 10,
     87                "font-weight": "bold",
     88                color: "#000",
     89                "border-radius": "15px"
     90            }).appendTo("body");
     91
     92            var moneda = "Bs.";
     93
     94            if (datos.attrib_pr == "imports") {
     95                moneda = "$";
     96            }
     97
     98            /** Inicialización de variables con los datos obtenidos de la consulta */
     99            var r = datos.produccion, e = datos.employees, cost1 = datos.cost1, cost2 = datos.cost2,
     100                cost3 = datos.cost3, cost4 = datos.cost4, price = datos.price;
     101
     102            /** Inicialización de variabes con los datos a representar en el gráfico */
     103            var d1 = [['0', r[0]], ['1', r[1]], ['2', r[2]], ['3', r[3]]],
     104                d2 = [['0', e[0]], ['1', e[1]], ['2', e[2]], ['3', e[3]]],
     105                c1 = [['0', cost1[0]], ['1', cost1[1]], ['2', cost1[2]], ['3', cost1[3]]],
     106                c2 = [['0', cost2[0]], ['1', cost2[1]], ['2', cost2[2]], ['3', cost2[3]]],
     107                c3 = [['0', cost3[0]], ['1', cost3[1]], ['2', cost3[2]], ['3', cost3[3]]],
     108                c4 = [['0', cost4[0]], ['1', cost4[1]], ['2', cost4[2]], ['3', cost4[3]]],
     109                p = [['0', price[0]], ['1', price[1]], ['2', price[2]], ['3', price[3]]];
     110
     111            var axis_data = [
     112                {
     113                    'graph': '#graph-produccion',
     114                    'colors': [datos.linecolor],
     115                    'data': [{label: '&#160;'+datos.tipo_pr, data: d1}],
     116                    'tabla': {
     117                        'id': '#table-produccion',
     118                        'campos': "<tr><td>" + datos.tipo_pr.toUpperCase() + " (" + datos.unid_medida + ")" + "</td>" +
     119                                  "<td class'text-right'>" + r[0] + "</td>" + "<td class'text-right'>" + r[1] +
     120                                  "</td><td class'text-right'>" + r[2] + "</td><td class'text-right'> " + r[3] +
     121                                  "</td></tr>"
     122                    }
     123                },
     124                {
     125                    'graph': '#graph-empleo',
     126                    'colors': [datos.linecolor],
     127                    'data': [{label: '&#160;'+datos.empleados_leyenda, data: d2}],
     128                    'tabla': {
     129                        'id': '#table-empleo',
     130                        'campos': "<tr><td>" + GRAPH_TABLE_EMPLEO + "</td><td>" + e[0] + "</td><td>" + e[1] + "</td>" +
     131                                  "<td>" + e[2] + "</td><td>" + e[3] + "</td></tr>"
     132                    }
     133                },
     134                {
     135                    'graph': '#graph-costos',
     136                    'colors': ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d"],
     137                    'data': [
     138                        {label: '&#160;'+datos.costos_leyenda[0], data: c1},
     139                        {label: '&#160;'+datos.costos_leyenda[1], data: c2},
     140                        {label: '&#160;'+datos.costos_leyenda[2], data: c3},
     141                        {label: '&#160;'+datos.costos_leyenda[3], data: c4}
     142                    ],
     143                    'tabla': {
     144                        'id': '#table-costos',
     145                        'campos': "<tr><td>" + GRAPH_TABLE_COSTOS[0] + "</td>" +
     146                                  "<td class'text-right'>" + cost1[0] + "</td><td class'text-right'>" + cost1[1] +
     147                                  "</td><td class'text-right'>" + cost1[2] + "</td>" +
     148                                  "<td class'text-right'>" + cost1[3] + "</td></tr><tr><td>" + GRAPH_TABLE_COSTOS[1] +
     149                                  "</td>" + "<td class'text-right'>" + cost2[0] +
     150                                  "</td><td class'text-right'>" + cost2[1] + "</td><td class'text-right'>" + cost2[2] +
     151                                  "</td>" + "<td class'text-right'>" + cost2[3] + "</td></tr><tr><td>" +
     152                                  GRAPH_TABLE_COSTOS[2] + "</td>" + "<td class'text-right'>" + cost3[0] +
     153                                  "</td><td class'text-right'>" + cost3[1] + "</td><td class'text-right'>" + cost3[2] +
     154                                  "</td>" + "<td class'text-right'>" + cost3[3] + "</td></tr><tr><td>" +
     155                                  GRAPH_TABLE_COSTOS[3] + "</td>" + "<td class'text-right'>" + cost4[0] +
     156                                  "</td><td class'text-right'>" + cost4[1] + "</td><td class'text-right'>" + cost4[2] +
     157                                  "</td>" + "<td class'text-right'>" + cost4[3] + "</td></tr>"
     158                    }
     159                },
     160                {
     161                    'graph': '#graph-precios',
     162                    'colors': [datos.linecolor],
     163                    'data': [{label: '&#160;'+datos.precios_leyenda, data: p}],
     164                    'tabla': {
     165                        'id': '#table-precios',
     166                        'campos': "<tr><td>" + moneda + "</td><td>" + price[0] + "</td><td>" + price[1] + "</td>" +
     167                                  "<td>" + price[2] + "</td><td>" + price[3] + "</td></tr>"
     168                    }
     169                }
     170            ];
     171
     172            for (i=0; i<axis_data.length; i++) {
     173                /** Instrucción que muestra el correspondiente gráfico con los datos obtenidos */
     174                $.plot(axis_data[i].graph, axis_data[i].data, {
     175                    colors: axis_data[i].colors,
     176                    series: {
     177                        lines: { show: true },
     178                        points: { show:true }
     179                    },
     180                    xaxis: {
     181                        ticks: [ [0, GRAPH_YEARS[0]], [1, GRAPH_YEARS[1]], [2, GRAPH_YEARS[2]], [3, GRAPH_YEARS[3]] ]
     182                    },
     183                    grid: {
     184                        backgroundColor: { colors: [ "#fff", "#eee" ] },
     185                        borderWidth: {
     186                            top: 1,
     187                            right: 1,
     188                            bottom: 2,
     189                            left: 2
     190                        },
     191                        hoverable: true
     192                    }
     193                });
     194
     195                /** Instrucción que captura el evento del cursor cuando se posiciona sobre el gráfico */
     196                $(axis_data[i].graph).bind("plothover", function(event, pos, item) {
     197                    if (item) {
     198                        var x = item.datapoint[0], y = item.datapoint[1].toFixed(2);
     199                        $("#tooltip").html(item.series.label + " " + GRAPH_TOOLTIPS + " " + x + " = " + y).css({
     200                            top: item.pageY-30, left: item.pageX
     201                        }).fadeIn(200);
     202                    }
     203                    else {
     204                        $("#tooltip").hide();
     205                    }
     206                });
     207
     208                /** Instrucción que muestra los datos en la tabla de producción */
     209                $(axis_data[i].tabla.id).find("tbody").html(axis_data[i].tabla.campos);
     210            }
     211
     212        }
     213        else {
     214            /** Muestra un mensaje de alerta en caso de no haber obtenido datos de la consulta */
     215            bootbox.alert(datos.error);
     216        }
     217    });
     218}
  • static/js/layout.js

    raaab7e3 r4359346  
    118118                },
    119119                onNodeSelected: function (event, node) {
    120                     $("#cadena-empresa").html(node.tags[0].nombre_ue.toUpperCase());
    121                     $("#cadena-rif").html(node.tags[0].rif.toUpperCase());
    122                     $("#cadena-nivel").html(node.tags[0].nivel);
    123                     $("#cadena-ubicacion").html(node.tags[0].ubicacion.toUpperCase());
    124                     $("#producto-nombre").html(node.tags[0].pr_name.toUpperCase());
    125                     $("#producto-codigo-arancelario").html(node.tags[0].cod_aran);
    126                     /** Instrucciones para determinar la capacidad de produccion si es nacional */
    127                     var produccion = "";
    128                     var precio_unit = node.tags[0].precio_unit;
    129                     if (typeof node.tags[0].produccion != "undefined") {
    130                         produccion = node.tags[0].produccion;
     120                    if (!$("#type-sim").length) {
     121                        $("#cadena-empresa").html(node.tags[0].nombre_ue.toUpperCase());
     122                        $("#cadena-rif").html(node.tags[0].rif.toUpperCase());
     123                        $("#cadena-nivel").html(node.tags[0].nivel);
     124                        $("#cadena-ubicacion").html(node.tags[0].ubicacion.toUpperCase());
     125                        $("#producto-nombre").html(node.tags[0].pr_name.toUpperCase());
     126                        $("#producto-codigo-arancelario").html(node.tags[0].cod_aran);
     127                        /** Instrucciones para determinar la capacidad de produccion si es nacional */
     128                        var produccion = "";
     129                        var precio_unit = node.tags[0].precio_unit;
     130
     131                        if (node.tags[0].nacionalidad == "V") {
     132                            produccion = node.tags[0].produccion;
     133                            precio_unit += " Bs.";
     134                        }
     135                        else {
     136                            produccion = node.tags[0].imports + " (Importado)";
     137                            precio_unit += " $";
     138                        }
     139                        $("#producto-produccion").html(produccion);
     140                        $("#producto-unidad-medida").html(node.tags[0].unidad_medida);
     141                        $("#producto-precio_unitario").html(precio_unit);
    131142                    }
    132                     else {
    133                         produccion = parseInt(node.tags[0].request_qty) - parseInt(node.tags[0].imports);
     143                    else if ($("#type-sim").val() == 'res') {
     144                        cargar_datos_sim(URL_GET_NODE_SIM, node.tags[0].pr_index);
    134145                    }
    135                     if (produccion==0) {
    136                         produccion += " (Importado)";
    137                         precio_unit += " $";
    138                     }
    139                     else {
    140                         precio_unit += " Bs.";
    141                     }
    142                     $("#producto-produccion").html(produccion);
    143                     $("#producto-unidad-medida").html(node.tags[0].unidad_medida);
    144                     $("#producto-precio_unitario").html(precio_unit);
    145146                }
    146147            });
     148
     149            if ($("#type-sim").length && $("#type-sim").val() == 'res') {
     150                $("[id^='graph-']").each(function () {
     151                    $.plot(this, GRAPH_INIT_DATA, {
     152                        series: {
     153                            lines: {show: true},
     154                            points: {show:true}
     155                        },
     156                        xaxis: {
     157                            ticks: [
     158                                [0, "Año 0"],
     159                                [1, "Año 1"],
     160                                [2, "Año 2"],
     161                                [3, "Año 3"]
     162                            ]
     163                        },
     164                        grid: {
     165                            backgroundColor: { colors: [ "#fff", "#eee" ] },
     166                            borderWidth: {
     167                                top: 1,
     168                                right: 1,
     169                                bottom: 2,
     170                                left: 2
     171                            }
     172                        }
     173                    });
     174                });
     175
     176            }
     177
    147178        });
    148179    }
Note: See TracChangeset for help on using the changeset viewer.