0 ? 'value_' . $mes : 'value'; //calcular comprometido, causado, pagado de las acciones específicas $seg_financiero_aes = array(); $TotalComprometidoProyecto = 0; $TotalCausadoProyecto = 0; $TotalPagadoProyecto = 0; if ($node->type == 'proyectos_operativos'){ $it = 0; foreach($node->field_proyecto_accion_esp as $accion) { if ($accion['nid']) { $accion_load = node_load($accion['nid']); if ($accion_load && $accion_load->type == 'accion_especifica') { //calcular asignado $totalAsignadoAE=0; foreach($accion_load->field_accion_esp_programacion as $partidascampo) {//recorrido a grupo de partidas en el $mes $totalAsignadoAE += $partidascampo[$ids_valor]; } //calcular valor reformulado if(_mes_dentro_de_duracion_ae_proyecto($accion_load, $mes)) { $variacion_ref_total_asignado = _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($accion_load, $mes); } else { $variacion_ref_total_asignado = 0; } $consulta_totales_seguimiento_mes = _seguimiento_mesactual_partida_ae_deproyecto_totales_load($accion_load, $mes); $idnodoAE= $accion_load->nid; $nombreAE= $accion_load->title; $totalComprometidoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalcomprometido'])? $consulta_totales_seguimiento_mes['segmespartidastotales']['totalcomprometido']:0; $totalCausadoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalcausado'])?$consulta_totales_seguimiento_mes['segmespartidastotales']['totalcausado']:0; $totalPagadoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalpagado'])?$consulta_totales_seguimiento_mes['segmespartidastotales']['totalpagado']:0; $seg_financiero_aes[$it]= array( 'idnodosAEs' => $idnodoAE, 'nombreAEs' => $nombreAE, 'totalAsignadoAEs' => $totalAsignadoAE + $variacion_ref_total_asignado, 'totalComprometidoAEs' => $totalComprometidoAE, 'totalCausadoAEs' => $totalCausadoAE, 'totalPagadoAEs' => $totalPagadoAE, ); $TotalAsignadoProyecto += $seg_financiero_aes[$it]['totalAsignadoAEs']; $TotalComprometidoProyecto += $seg_financiero_aes[$it]['totalComprometidoAEs']; $TotalCausadoProyecto += $seg_financiero_aes[$it]['totalCausadoAEs']; $TotalPagadoProyecto += $seg_financiero_aes[$it]['totalPagadoAEs']; $it++; } } } } $seg_financiero_proyecto = array( 'idnodoProyecto' => $node->nid, 'nombreProyecto' => $node->title, 'TotalAsignadoProyecto' => $TotalAsignadoProyecto, 'TotalComprometidoProyecto' => $TotalComprometidoProyecto, 'TotalCausadoProyecto' => $TotalCausadoProyecto, 'TotalPagadoProyecto' => $TotalPagadoProyecto, ); $seguimiento_financiero_proyecto = array( 'seg_financiero_aes' => $seg_financiero_aes, 'seg_financiero_proyecto' => $seg_financiero_proyecto, ); return $seguimiento_financiero_proyecto; } function _cargar_asignado_mes_ae($node) { $ftypes = array( 'value' => t('January'), 'value_1' => t('February'), 'value_2' => t('March'), 'value_3' => t('April'), 'value_4' => t('May'), 'value_5' => t('June'), 'value_6' => t('July'), 'value_7' => t('August'), 'value_8' => t('September'), 'value_9' => t('Octuber'), 'value_10' => t('November'), 'value_11' => t('December'), ); //calcular asignado $asignadoMes = array(); $i = 0; foreach($ftypes as $ids =>$texto) { $asignadoMes[$i] = 0; $i++; } $acumuladoAsignado = 0; $id_field1 = 'field_accion_esp_programacion'; foreach($node->{$id_field1} as $partidascampo) {//recorrido a grupo de partidas $i = 0; foreach($ftypes as $ids =>$texto) { $asignadoMes[$i] += $partidascampo[$ids]; $acumuladoAsignado += $partidascampo[$ids]; $i++; } } return $asignadoMes; } function _totalizar_asignadofinanciero_de_aes_proyecto($node) { $cant = 0; $asignadoMesTotal = array(); for ( $i = 0 ; $i <= 11 ; $i++) { $asignadoMesTotal[$i] = 0; } $asignado_financiero_aes = array(); foreach($node->field_proyecto_accion_esp as $accion) { if ($accion['nid'] && $nid != $accion['nid']) { $accion_load = node_load($accion['nid']); if ($accion_load && $accion_load->type == 'accion_especifica') { $asignado_financiero_ac = _cargar_asignado_mes_ae($accion_load); $asignado_financiero_aes[] = $asignado_financiero_ac; $it=0; foreach($asignado_financiero_ac as $asig_meses) { $asignadoMesTotal[$it] += $asig_meses; $it++; } } $cant++; } elseif($nid = $accion['nid']) { $acciones_especificas[$ae->nid] = $ae; } } return $asignadoMesTotal; } /** * Consulta la cantidad de comprometido, causado y pagado para TODAS LAS PARTIDAS de una accion especifica. Tambien el ejecutado de meta física, y las informaciones complementarias */ function _seguimiento_mesactual_proyecto_load($node, $mes = 0) { $query = "SELECT * from {seguimiento_proyecto} where nid = %d and mes = %d";//consulta seguimiento $queryResult = db_query ($query, $node->nid, $mes); $seg_arreglo = db_fetch_array($queryResult); $query2 = "SELECT * from {seguimiento_proyecto_beneficiarios} where id_seg = %d";//consulta seguimiento de partidas $queryResult2 = db_query ( $query2, $seg_arreglo['id_seg']); $seguimientos_beneficiarios = array (); while ($seg_beneficiario_arreglo = db_fetch_array($queryResult2)) { $seguimientos_beneficiarios[] = $seg_beneficiario_arreglo; } $seguimientomes = array( 'segmes' => $seg_arreglo, 'seguimientos_beneficiarios' => $seguimientos_beneficiarios, ); return $seguimientomes; } /** * consulta cantidad de planificado y ejecutado de meta física del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto) * 13 marzo 2013, por Diego Uzcategui */ function _seguimiento_metafisica_todosmes_proyecto_load($node) { $seguimiento_metafisica_todosmes = array(); $acumuladoPlanificado = 0; //calcular planificado for($mes=0; $mes<12; $mes++){ $valor_camp = $mes > 0 ? 'value_' . $mes : 'value'; $planificadoMes = $node->field_proyecto_meta_fisica[0][$valor_camp]; $seguimientomes = array( 'planificadoMes' => $planificadoMes, 'ejecutadoMes' => 0, 'infocomplementaria_metafisica' => '', 'id_seg' => 0, ); $seguimiento_metafisica_todosmes[] = $seguimientomes; $acumuladoPlanificado += $planificadoMes; } $acumuladoEjecutado = 0; $query = "SELECT * from {seguimiento_proyecto} where nid = %d";//consulta seguimiento $queryResult = db_query($query, $node->nid); while ($seg_metafisica_m = db_fetch_object ( $queryResult )) { $mes_actual = $seg_metafisica_m->mes; $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes'] = isset($seg_metafisica_m->ejecutadometafisica)? $seg_metafisica_m->ejecutadometafisica : 0; $seguimiento_metafisica_todosmes[$mes_actual]['infocomplementaria_metafisica'] = isset($seg_metafisica_m->infocomplementaria_metafisica)? $seg_metafisica_m->infocomplementaria_metafisica : ''; $seguimiento_metafisica_todosmes[$mes_actual]['id_seg'] = isset($seg_metafisica_m->id_seg)? $seg_metafisica_m->id_seg : 0; $acumuladoEjecutado += $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes']; } //totales $acum = array( 'acumuladoPlanificado' => $acumuladoPlanificado, 'acumuladoEjecutado' => $acumuladoEjecutado, ); //de cada mes y totales $seguimiento_todos_meses_mf = array( 'seguimiento_metafisica_todosmes' => $seguimiento_metafisica_todosmes, 'acum' => $acum, ); return $seguimiento_todos_meses_mf; } /** * consulta cantidad de asignado, comprometido, causado, pagado de meta financiera del proyecto (totales de acciones específicas), para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto) * 13 marzo 2013, por Diego Uzcategui */ function _seguimiento_financiero_todosmes_proyecto_load($node) { $asignadoMesAE = array(); for($mes = 0; $mes < 12; $mes++){ $asignadoMesAE[$mes] = 0; } foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas $accion_esp_load = node_load($accion['nid']); if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada foreach($accion_esp_load->field_accion_esp_programacion as $partidas_ae) {//recorrido a partidas de la accion especifica for($mes = 0; $mes < 12; $mes++){//recorrido de los meses de cada partida $valor_camp = $mes > 0 ? 'value_' . $mes : 'value'; $asignadoMesAE[$mes] += $partidas_ae[$valor_camp];//un mes en de una partida } } } } //cargar en arreglo $seguimiento_financiero_todosmes = array(); $acumuladoAsignado = 0; for($mes = 0; $mes < 12; $mes++){ $seguimientomes = array( 'asignadoMes' => $asignadoMesAE[$mes], 'comprometidoMes' => 0, 'causadoMes' => 0, 'pagadoMes' => 0, 'infocomplementaria_metafinanciera' => '', 'id_seg' => 0, ); $seguimiento_financiero_todosmes[] = $seguimientomes; $acumuladoAsignado += $asignadoMesAE[$mes]; } //informacion complementaria financiera proyecto $query = "SELECT * from {seguimiento_proyecto} where nid = %d";//consulta seguimiento $queryResult = db_query($query, $node->nid); while ($seg_proyecto_m = db_fetch_object($queryResult)) { //cargar en arreglo $mes_actual = $seg_proyecto_m->mes; $seguimiento_financiero_todosmes[$mes_actual]['infocomplementaria_metafinanciera'] = isset($seg_proyecto_m->infocomplementaria_metafinanciera)? $seg_proyecto_m->infocomplementaria_metafinanciera : ''; $seguimiento_financiero_todosmes[$mes_actual]['id_seg'] = isset($seg_proyecto_m->id_seg)? $seg_proyecto_m->id_seg : 0; } $comprometidoMesAE = array(); $causadoMesAE = array(); $pagadoMesAE = array(); for($mes=0; $mes<12; $mes++){ $comprometidoMesAE[$mes] = 0; $causadoMesAE[$mes] = 0; $pagadoMesAE[$mes] = 0; } foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas $accion_esp_load = node_load($accion['nid']); if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada for($mes=0; $mes<12; $mes++){//recorrido de los meses de seguimiento $query = "SELECT * from {seguimiento_aeproyecto} where nid = %d and mes = %d";//consulta seguimiento id $queryResult = db_query ($query, $accion_esp_load->nid, $mes); $seg = db_fetch_object($queryResult) ; $seg_identif = $seg->id_seg; //totales de cada accion especifica en un mes $query2 = "SELECT SUM(comprometido) as totalcomprometido, SUM(causado) as totalcausado, SUM(pagado) as totalpagado from {seguimiento_aeproyecto_partida} where id_seg = %d";//consulta seguimiento de partidas $queryResult2 = db_query ($query2, $seg_identif); $seg_partida_total = db_fetch_object($queryResult2); $comprometidoMesAE[$mes] += isset($seg_partida_total->totalcomprometido)? $seg_partida_total->totalcomprometido : 0; $causadoMesAE[$mes] += isset($seg_partida_total->totalcausado)? $seg_partida_total->totalcausado : 0; $pagadoMesAE[$mes] += isset($seg_partida_total->totalpagado)? $seg_partida_total->totalpagado : 0; } } } //cargar en arreglo $acumuladoComprometido = 0; $acumuladoCausado = 0; $acumuladoPagado = 0; for($mes = 0; $mes < 12; $mes++){ $seguimiento_financiero_todosmes[$mes]['comprometidoMes'] = isset($comprometidoMesAE[$mes])? $comprometidoMesAE[$mes] : 0; $seguimiento_financiero_todosmes[$mes]['causadoMes'] = isset($causadoMesAE[$mes])? $causadoMesAE[$mes] : 0; $seguimiento_financiero_todosmes[$mes]['pagadoMes'] = isset($pagadoMesAE[$mes])? $pagadoMesAE[$mes] : 0; $acumuladoComprometido += $seguimiento_financiero_todosmes[$mes]['comprometidoMes']; $acumuladoCausado += $seguimiento_financiero_todosmes[$mes]['causadoMes']; $acumuladoPagado += $seguimiento_financiero_todosmes[$mes]['pagadoMes']; } //totales $acum = array( 'acumuladoAsignado' => $acumuladoAsignado, 'acumuladoComprometido' => $acumuladoComprometido, 'acumuladoCausado' => $acumuladoCausado, 'acumuladoPagado' => $acumuladoPagado, ); //de cada mes y totales $seguimiento_todos_meses_financiero = array( 'seguimiento_financiero_todosmes' => $seguimiento_financiero_todosmes, 'acum' => $acum, ); return $seguimiento_todos_meses_financiero; } /** * consulta cantidad de beneficiarios del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto) * 14 marzo 2013, por Diego Uzcategui */ function _seguimiento_beneficiario_todosmes_proyecto_load($node) { $seguimiento_todosbeneficiarios_todosmes = array(); $cant_beneficiarios_meses = array(); for($mes = 0; $mes < 12; $mes++){ $cant_beneficiarios_meses[$mes] = 0; } $total_benef = 0; foreach($node->field_proyecto_beneficiario as $beneficiarios) { $seguimiento_beneficiario = array( 'nombre' => $beneficiarios['value'], 'cant_meses' => $cant_beneficiarios_meses, 'total_benef' => $total_benef, ); $seguimiento_todosbeneficiarios_todosmes[] = $seguimiento_beneficiario; } //consultar cantidad de beneficiarios for($mes = 0; $mes < 12; $mes++){ $query = "SELECT * from {seguimiento_proyecto} where nid = %d and mes = %d";//consulta seguimiento $queryResult = db_query($query, $node->nid, $mes); $seg = db_fetch_object($queryResult) ; $seg_ident = $seg->id_seg; $mes_seg = $seg->mes; $query2 = "SELECT * from {seguimiento_proyecto_beneficiarios} where id_seg = %d";//consulta seguimiento de partidas $queryResult2 = db_query($query2, $seg_ident); while ($seg_beneficiario = db_fetch_object($queryResult2)){ $pos_benef = $seg_beneficiario->posicion_beneficiario; $cantid_benef_mes = $seg_beneficiario->cant_beneficiarios_mes; $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['cant_meses'][$mes_seg] = $cantid_benef_mes; $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['total_benef'] += $cantid_benef_mes; } } return $seguimiento_todosbeneficiarios_todosmes; }