'; $output .= _mostrar_datos_proyecto($node); $output .= _mostrar_indicadores_metafisica_seg_proyecto($node); $output .= _mostrar_indicadores_financieros_seg_proyecto($node); if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE)) { $output .= _mostrar_beneficiarios_seg_proyecto($node); } $output .= _mostrarleyendazonacritica(); return $output; } /** * Pagina que carga los datos generales de una accion especifica (datos del proyecto y datos de la accion) */ function _mostrar_datos_proyecto($node) { $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node); $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg); $state_name = t("Por ingresar"); if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) { $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']); } //print_r($seguimiento_proyecto); $output = ''; $opciones = array(t('SI'), t('NO')); $node_type = content_types('proyectos_operativos'); $fields = $node_type['fields']; $output .= '
' . t('Datos del Proyecto Operativo') . ''; $output .= '' . $fields['field_proyecto_codigo']['widget']['label'] . ': '.$node->field_proyecto_codigo[0]['value'].'
'; $output .= '' . t('Nombre del Proyecto') . ': '.$node->titulo_asignado.'
'; $acumulativo = $opciones[$node->es_acumulativo] ? $opciones[$node->es_acumulativo] : 'N/D'; $output .= '' . t('Es acumulativo: ') . ' '. $acumulativo . '
'; $output .= '' . t('Estado del Seguimiento: ') . '' . $state_name . '
'; $id_field1 = 'field_proyecto_fecha_i'; $fecha = explode(' ', $node->{$id_field1}[0]['value']); $fecha = explode('-', $fecha[0]); $output .= '' . $fields[$id_field1]['widget']['label'] . ': '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'
'; $id_field1 = 'field_proyecto_fecha_f'; $fecha = explode(' ', $node->{$id_field1}[0]['value']); $fecha = explode('-', $fecha[0]); $output .= '' . $fields[$id_field1]['widget']['label'] . ': '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'
'; if (variable_get('proyectos_operativos_muestra_mcti', TRUE)) { $term = taxonomy_get_term($node->field_proyecto_mcti[0]['value']); $output .= '' . $fields['field_proyecto_mcti']['widget']['label'] . ': '.$term->name.'
'; } if (variable_get('proyectos_operativos_muestra_pndes', TRUE)) { //$term = taxonomy_get_term($node->field_proyecto_pndes[0]['value']); $PP = array_reverse(taxonomy_get_parents_all($node->field_proyecto_pndes[0]['value'])); //$PP = explode('.', $term->name); if (isset($PP[0])) { $output .= '' . t('Objetivo Histórico') . ': '. $PP[0]->name . ' - ' . $PP[0]->description . '
'; } if (isset($PP[1])) { $output .= '' . t('Objetivo Nacional') . ': '. $PP[1]->name . ' - ' . $PP[1]->description . '
'; } if (isset($PP[2])) { $output .= '' . t('Objetivo Estratégico') . ': '. $PP[2]->name . ' - ' . $PP[2]->description . '
'; } if (isset($PP[3])) { $output .= '' . t('Objetivo General') . ': '. $PP[3]->name . ' - ' . $PP[3]->description . '
'; } } $output .= '
'; return $output; } /** * Pagina que carga la tabla de indicadores de meta física del proyecto * revisado 13 marzo 2013 */ function _mostrar_indicadores_metafisica_seg_proyecto($node) { $output = ''; $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); $mess = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) - 1; $meses = json_decode(MESES); $format_number = array( 'decimals' => variable_get('proyectos_operativos_number_decimals', 0), 'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','), 'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'), ); //tabla de indicadores financieros de la accion especific $seg_metafisica_todos = _seguimiento_metafisica_todosmes_proyecto_load($node); $tablas = array(); $header = array(); $header[] = array('data' => t('Mes')); $header[] = array('data' => t('Planificado')); $header[] = array('data' => t('Ejecutado')); $header[] = array('data' => t('% de Logro')); $header[] = array('data' => t('Estatus de Ejecución')); $header[] = array('data' => t('Información Complementaria')); $header[] = array('data' => t('Opciones Disponibles'),); $rows = array(); $acumulativo = TRUE; for($i=0; $i<12; $i++) { //calcular variacion por reformulacion $variacion_planificado_mes = _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $i); $planificadoMes = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$i]['planificadoMes'] + $variacion_planificado_mes; $Ejecutado = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$i]['ejecutadoMes']; $infocomplementaria_metafisica = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$i]['infocomplementaria_metafisica']; $estatus_ejecucion = _calcularzonacritica($planificadoMes, $Ejecutado); $porczonacritica = $estatus_ejecucion['porczonacritica']; $textozona = $estatus_ejecucion['textozona']; $colorzona = $estatus_ejecucion['colorzona']; $colorfontzona = $estatus_ejecucion['colorfontzona']; $row = array(); $row[] = array('data' => $meses[$i],); //si el mes esta dentro del periodo de duracion de la accion especifica if(_mes_dentro_de_duracion_proyecto($node, $i)){ $row[] = array('data' => number_format($planificadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => number_format($Ejecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => $porczonacritica,); $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona); $row[] = array('data' => $infocomplementaria_metafisica,); $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $i); if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)){ $title = ' ' . t('Agregar'); if ($seguimiento_proyecto['segmes']['estado']) { $title = ' ' . t('Modificar'); } $links = array(); $links[] = ''.l( $title, 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $i . '/edit/comentario_metafisica').''; $row[] = array('data' => theme('item_list', $links),); }else{ $row[] = array('data' => '',); } }else{ $row[] = array('data' => '-',);//planificado $row[] = array('data' => '-',);//ejecutado $row[] = array('data' => '-',);//porcentaje $row[] = array('data' => '-',);//estatus de ejecucion $row[] = array('data' => '-',);//info complementaria $row[] = array('data' => '-',); } $rows[] = $row; } $acumuladoPlanificado = $seg_metafisica_todos['acum']['acumuladoPlanificado']; $AcumuladoEjecutado = $seg_metafisica_todos['acum']['acumuladoEjecutado']; $row = array(); if (is_numeric($node->es_acumulativo) && !$node->es_acumulativo) { $row[] = array('data' => t('Acumulado'),); } $row[] = array('data' => number_format($acumuladoPlanificado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); if (is_numeric($node->es_acumulativo) && !$node->es_acumulativo) { $row[] = array('data' => number_format($AcumuladoEjecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total ejecutado } $row[] = array('data' => '', 'colspan' => 4); $rows[] = $row; $tablas[]= theme('table', $header, $rows); if (count($tablas)) { $output .= '
Indicadores de la Meta Física del Proyecto'; $output .= 'Descripción del Bien y Servicio: '.$node->field_proyecto_descripcion_bien[0]['value'].'
'; $term = taxonomy_get_term($node->field_proyecto_unidadm[0]['value']); $output .= 'Unidad de Medida: '.$term->name.'

'; $output .= implode('', $tablas).'
'; } return $output; } /** * Pagina que carga la tabla de indicadores de meta física de la accion especifica */ function _mostrar_indicadores_financieros_seg_proyecto($node) { $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL); $seguimiento_todos_meses_financiero = _seguimiento_financiero_todosmes_proyecto_load($node); $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); $meses = array( 0 => t('January'), 1 => t('February'), 2 => t('March'), 3 => t('April'), 4 => t('May'), 5 => t('June'), 6 => t('July'), 7 => t('August'), 8 => t('September'), 9 => t('Octuber'), 10 => t('November'), 11 => t('December'), ); $format_number = array( 'decimals' => variable_get('proyectos_operativos_number_decimals', 0), 'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','), 'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'), ); //tabla de indicadores financieros del proyecto $tablas = array(); $header = array(); $header[] = array('data' => t('Mes')); $header[] = array('data' => t('Asignado')); $header[] = array('data' => t('Comprometido')); $header[] = array('data' => t('Causado')); $header[] = array('data' => t('Pagado')); $header[] = array('data' => t('% de Inversión')); $header[] = array('data' => t('Estatus de la Inversión')); $header[] = array('data' => t('Información Complementaria')); $header[] = array('data' => t('Opciones Disponibles'),); $rows = array(); for($mes=0; $mes<12; $mes++){ //calcular variación por reformulación $variacion_total_ref_asignado = _seguimiento_mesactual_total_proyecto_reformulaciones_load($node, $mes); $asignadoMes = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['asignadoMes'] + $variacion_total_ref_asignado; $totalComprometido = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['comprometidoMes']; $totalCausado = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['causadoMes']; $totalPagado = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['pagadoMes']; $infocomplementaria_financiera = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['infocomplementaria_metafinanciera']; $estatus_inversion = _calcularzonacritica($asignadoMes, $totalCausado); $porczonacritica = $estatus_inversion['porczonacritica']; $textozona = $estatus_inversion['textozona']; $colorzona = $estatus_inversion['colorzona']; $colorfontzona = $estatus_inversion['colorfontzona']; $row = array(); $row[] = array('data' => $meses[$mes],); //si el mes esta dentro del periodo de duracion del proyecto if(_mes_dentro_de_duracion_proyecto($node, $mes)){ $row[] = array('data' => number_format($asignadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => number_format($totalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => number_format($totalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => number_format($totalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => $porczonacritica,); $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona); $row[] = array('data' => $infocomplementaria_financiera,); $links = array(); if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mes)){ $title = ' ' . t('Modificar'); if (!_proyecto_seguimiento_mes_mover_estado_access($node, $mes)) { $transiciones = _obtener_transiciones_disponibles_proyecto($node, $mes); if (!count($transiciones['transic']) && $transiciones['estado_actual']<0){ $title = ' ' . t('Agregar'); $sn++; } } $links[] = ''.l(t($title), 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . ($mes) . '/edit/comentario_informacionfinanciera').''; } $row[] = array('data' => theme('item_list', $links),); }else{ $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); $row[] = array('data' => '-',); } $rows[] = $row; } $acumuladoAsignado = $seguimiento_todos_meses_financiero['acum']['acumuladoAsignado']; $AcumuladoTotalComprometido = $seguimiento_todos_meses_financiero['acum']['acumuladoComprometido']; $AcumuladoTotalCausado = $seguimiento_todos_meses_financiero['acum']['acumuladoCausado']; $AcumuladoTotalPagado = $seguimiento_todos_meses_financiero['acum']['acumuladoPagado']; $row = array(); $row[] = array('data' => t('Acumulado'),); $row[] = array('data' => number_format($acumuladoAsignado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $row[] = array('data' => number_format($AcumuladoTotalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total comprometido $row[] = array('data' => number_format($AcumuladoTotalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total causado $row[] = array('data' => number_format($AcumuladoTotalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total pagado $row[] = array('data' => '', 'colspan' => 4); $rows[] = $row; $tablas[]= theme('table', $header, $rows); if (count($tablas)) { $output .= '
Indicadores Financieros del Proyecto' . implode('', $tablas); $output .= '
Nota: Los valores de \'Comprometido\', \'Causado\' y \'Pagado\', corresponden al total de los seguimiento de las acciones específicas. Si desea modificar estos valores para algun mes, debe modificar los seguimientos de las acciones específicas para ese mes.'; $output .= '
'; } return $output; } /** * Pagina que carga la tabla de seguimiento de beneficiarios */ function _mostrar_beneficiarios_seg_proyecto($node) { $seguimiento_todos_meses_beneficiario = _seguimiento_beneficiario_todosmes_proyecto_load($node); $format_number = array( 'decimals' => variable_get('proyectos_operativos_number_decimals', 0), 'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','), 'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'), ); //tabla de indicadores financieros del proyecto $tablas = array(); $header = array(); $header[] = array('data' => t('Beneficiario')); $header[] = array('data' => t('ENE')); $header[] = array('data' => t('FEB')); $header[] = array('data' => t('MAR')); $header[] = array('data' => t('ABR')); $header[] = array('data' => t('MAY')); $header[] = array('data' => t('JUN')); $header[] = array('data' => t('JUL')); $header[] = array('data' => t('AGO')); $header[] = array('data' => t('SEP')); $header[] = array('data' => t('OCT')); $header[] = array('data' => t('NOV')); $header[] = array('data' => t('DIC')); $header[] = array('data' => t('TOTAL'),); $rows = array(); foreach($seguimiento_todos_meses_beneficiario as $seg_benef){ $row = array(); $row[] = array('data' => $seg_benef['nombre'],); for($mes=0; $mes<12; $mes++){ if(_mes_dentro_de_duracion_proyecto($node, $mes)){ $row[] = array('data' => number_format($seg_benef['cant_meses'][$mes], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); }else{ $row[] = array('data' => '-',); } } $row[] = array('data' => number_format($seg_benef['total_benef'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),); $rows[] = $row; } $tablas[]= theme('table', $header, $rows); if (count($tablas)) { $output .= '
' . t('Beneficiarios del Proyecto (Durante la Ejecución)') . '' . implode('', $tablas); $output .= '
'; } return $output; } /** * Pagina que muestra la lsita de los seguimientos de las acciones especificas del proyecto */ function seguimiento_proyecto_y_aes_lista_page($node) { drupal_set_title(t('Seguimiento y Control del Proyecto y sus Acciones Específicas')); /* $output = ''; $output .= '
'; //acciones especificas $output .= '

' . t('Acciones Específicas') . '

'; $header = array(); $header[] = array('data' => t('Nombre de la Acción Específica')); $header[] = array('data' => t('Enlace')); $rows = array(); foreach($node->field_proyecto_accion_esp as $accionEspecifica) {//recorrido por todas las acciones especificas $accion_esp_load = node_load($accionEspecifica['nid']); if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada $row = array(); $links = array(); $row[] = array('data' => $accion_esp_load->titulo_asignado,); $links[] = ''.l(t('Seguimiento de la AE'), 'proyectosop/' . $node->nid . '/seguimiento/ae/' . $accion_esp_load->nid . '/view') . ''; $row[] = array('data' => theme('item_list', $links),); $rows[] = $row; } } $output .= theme('table', $header, $rows); //proyecto $output .= '

' . t('Proyecto Operativo') . '

'; $header = array(); $header[] = array('data' => t('Nombre del Proyecto')); $header[] = array('data' => t('Enlace')); $rows = array(); $row = array(); $links = array(); $row[] = array('data' => $node->titulo_asignado,); $links[] = ''.l(t('Seguimiento del Proyecto'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto').''; $row[] = array('data' => theme('item_list', $links),); $rows[] = $row; $output .= theme('table', $header, $rows); */ //$nodo_proyecto = node_load($proyecto->nid); if (_proyectooperativo_esta_aprobado($node)) { $output .= '
' . t('Estimado(a) Usuario(a), para ingresar el Seguimiento del Proyecto Operativo debe ingresar primero los Seguimiento de las Acciones Específicas del mismo, los cuales se muestran a continuación.
'); $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node); $transiciones_dispo = _obtener_transiciones_disponibles($form['#node'], $form['#mes']); $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg); $state_name = t("Por ingresar"); if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) { $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']); } $output .= '

' . t('Estado del Seguimiento: ') . $state_name . '


'; $meses = json_decode(MESES); $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); //proyectosop/%proyectosop/seguimiento/proyecto_aes if ($mes_seguimiento_proyecto_y_aes < ($mes_fase_seg+1)) { $output = t('No se puede realizar el seguimiento, Estara disponible a partir de @mes, fecha de inicio del proyecto.', array('@mes' => $meses[$mes_fase_seg])); $output .= '
'; return '
' . $output . '
'; } else { $output .= '

' . t('Acciones Especificas:', array('@mes' => $meses[$i])) . ''; foreach($node->field_proyecto_accion_esp as $accion) { $k++; $accion_nid = (object) $accion; $accion = node_load($accion_nid->nid); $output .= "

$k-) " . $accion->field_accion_titulo[0]['value'] . "

"; $output .= "'; if (!_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) { $enlace_fase_seg = ''.l(t('Fase de Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/ae/$accion_nid->nid/view") . ''; $output .= t("Consultar el resumen de la ") . ' ' . $enlace_fase_seg; } } $output .= '' . l(t('Consultar el Resumen General de las Acciones Especificas', array('@mes' => $meses[$i])), 'proyectosop/' . $node->nid. "/seguimiento/ae") . '
'; $output .= '

' . t('Proyecto:') . '

'; $output .= '

' . $node->field_proyecto_titulo[0]['value'] . '

'; $output .= t("Consultar ") . '' . l(t('el resumen general del proyecto y reportar el seguimiento.'), 'proyectosop/' . $node->nid. "/seguimiento/proyecto") . ''; if (_proyecto_seguimiento_mes_mover_estado_access($node, $mes_fase_seg, true)) { $output .= '
'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow") . '. (' . t("Haga Click Para reportar el seguimiento del proyecto") . ')
'; } $output .= ''; } } return $output; }