field_accion_esp_proyecto[0]['nid']); //cargar identificadores de reformulaciones aprobadas $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto); $condicion_consulta_ref_aprob='no tiene'; $primero = 1; foreach ($reformulaciones_aprobadas as $ref_aprob){ if($primero == 1){ $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql $primero = 0; }else{ $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref']; } } //identificar el nombre del campo en bd segun el mes if(($mes >= 0)&&($mes < 12)){ $valor1 = $mes > 0 ? 'value_' . $mes : 'value'; }else{ $valor1 = 'por asignar'; } //identificar el nombre del campo para esta accion especifica $node->nid $nombre_campo = 'field_accion_esp_programacion_'.$node->nid; $ref_arreglo=array(); //realizar consulta if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){ // $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' "; $query .= "AND (".$condicion_consulta_ref_aprob.")"; //echo $query; $queryResult = db_query ( $query, $nodoproyecto->nid, $nombre_campo); while ($ref_a = db_fetch_array ( $queryResult ) ){ $ref_a_i['id_ref'] = $ref_a['id_ref']; $ref_a_i['partida'] = $ref_a['partida']; $ref_a_i['asignado_mes'] = $ref_a[$valor1]; $ref_a_i['tomado_en_cuenta'] = 0; $ref_arreglo[] = $ref_a_i; } } return $ref_arreglo; } /* * Consulta la cantidad de asignado reformulado total (TODAS LAS PARTIDAS) de una accion especifica para un mes especifico. * Igual al anterior pero es solo el total * por Diego Uzcategui, el 18-04-13 */ function _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($node, $mes = 0) { //cargar el nodo del proyecto al que pertenece $nodoproyecto = node_load($node->field_accion_esp_proyecto[0]['nid']); //cargar identificadores de reformulaciones aprobadas $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto); $condicion_consulta_ref_aprob='no tiene'; $primero = 1; foreach ($reformulaciones_aprobadas as $ref_aprob){ if($primero == 1){ $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql $primero = 0; }else{ $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref']; } } //identificar el nombre del campo en bd segun el mes if(($mes >= 0)&&($mes < 12)){ $valor1 = $mes > 0 ? 'value_' . $mes : 'value'; }else{ $valor1 = 'por asignar'; } //identificar el nombre del campo para esta accion especifica $node->nid $nombre_campo = 'field_accion_esp_programacion_'.$node->nid; //variacion total de la accion especifica $ref_total_asignado = 0; //realizar consulta if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){ // $query = "SELECT SUM(".$valor1.") AS total FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento $query = "SELECT SUM(".$valor1.") AS total FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' "; $query .= "AND (".$condicion_consulta_ref_aprob.")"; $queryResult = db_query ( $query, $nodoproyecto->nid, $nombre_campo); $ref_a = db_fetch_array ( $queryResult ); $ref_total_asignado = $ref_a['total']; } $ref_total_asignado = isset($ref_total_asignado) ? $ref_total_asignado : 0; return $ref_total_asignado; } /* * Consulta la cantidad de asignado reformulado total (TODAS LAS PARTIDAS) de todas las acciones especificas * Similar al anterior pero para todo el proyecto * por Diego Uzcategui, el 18-04-13 */ function _seguimiento_mesactual_total_proyecto_reformulaciones_load($node, $mes = 0) { //cargar el nodo del proyecto al que pertenece $nodoproyecto = $node; $variacion_total_ref_asignado = 0; foreach($nodoproyecto->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones especificas $accion_especifica = node_load($accion['nid']); if ($accion_especifica && $accion_especifica->type == 'accion_especifica') {//accion especifica cargada //variaciĆ³n por reformulado de una accion $variacion_ae_ref_asignado = _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($accion_especifica, $mes); $variacion_total_ref_asignado += $variacion_ae_ref_asignado; } } $variacion_total_ref_asignado = isset($variacion_total_ref_asignado) ? $variacion_total_ref_asignado : 0; return $variacion_total_ref_asignado; } /* * Consulta la calcula la variacion de la meta fisica de una ae * por Diego Uzcategui, el 18-04-13 */ function _seguimiento_mesactual_metafisica_ae_deproyecto_reformulaciones_load($node, $mes = 0) { //cargar el nodo del proyecto al que pertenece $nodoproyecto = node_load($node->field_accion_esp_proyecto[0]['nid']); //cargar identificadores de reformulaciones aprobadas $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto); $condicion_consulta_ref_aprob='no tiene'; $primero = 1; foreach ($reformulaciones_aprobadas as $ref_aprob){ if($primero == 1){ $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql $primero = 0; }else{ $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref']; } } //identificar el nombre del campo en bd segun el mes if(($mes >= 0)&&($mes < 12)){ $valor1 = $mes > 0 ? 'value_' . $mes : 'value'; }else{ $valor1 = 'por asignar'; } //identificar el nombre del campo (meta fisica) para esta accion especifica $node->nid $nombre_campo = 'field_accion_esp_metaf_'.$node->nid; $variacion_planificado_mes = 0; //realizar consulta if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){ // $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' "; $query .= "AND (".$condicion_consulta_ref_aprob.")"; $queryResult = db_query ( $query, $nodoproyecto->nid, $nombre_campo); $ref_a = db_fetch_array ( $queryResult ); $variacion_planificado_mes = $ref_a[$valor1]; } $variacion_planificado_mes = isset($variacion_planificado_mes)? $variacion_planificado_mes : 0; return $variacion_planificado_mes; } /* * Consulta la variacion de la meta fisica del proyecto * por Diego Uzcategui, el 18-04-13 */ function _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $mes = 0) { //cargar el nodo del proyecto al que pertenece $nodoproyecto = $node; //cargar identificadores de reformulaciones aprobadas $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto); $condicion_consulta_ref_aprob='no tiene'; $primero = 1; foreach ($reformulaciones_aprobadas as $ref_aprob){ if($primero == 1){ $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql $primero = 0; }else{ $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref']; } } //identificar el nombre del campo en bd segun el mes if(($mes >= 0)&&($mes < 12)){ $valor1 = $mes > 0 ? 'value_' . $mes : 'value'; }else{ $valor1 = 'por asignar'; } //identificar el nombre del campo (meta fisica) para esta accion especifica $node->nid $nombre_campo = 'field_proyecto_meta_fisica'; $variacion_planificado_mes = 0; //realizar consulta if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){ // $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' "; $query .= "AND (".$condicion_consulta_ref_aprob.")"; $queryResult = db_query ( $query, $nodoproyecto->nid, $nombre_campo); $ref_a = db_fetch_array ( $queryResult ); $variacion_planificado_mes = $ref_a[$valor1]; } $variacion_planificado_mes = isset($variacion_planificado_mes) ? $variacion_planificado_mes : 0; return $variacion_planificado_mes; } /* * Consulta la variacion de la meta fisica del proyecto * por Diego Uzcategui, el 02-05-13 */ function _variacion_monto_total_por_reformulaciones_proyecto_load($node) { $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL); $result = db_query("SELECT SUM(variacion) AS variacion_total FROM {proyectos_reformular} WHERE nid = %d AND estado = %d ", $node->nid, $estado_aprobado); $reformulaciones_parobadas = db_fetch_array($result); $variacion_total_aprobada = isset($reformulaciones_parobadas['variacion_total']) ? $reformulaciones_parobadas['variacion_total']:0; return $variacion_total_aprobada; }