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', '.'), ); $form['#format_number'] = array('format_number' => $format_number); drupal_add_js($form['#format_number'], 'setting'); //reformulaciones aprobadas $ref_aprob = _seguimiento_mesactual_partida_ae_deproyecto_reformulaciones_load($ae, $mes); $meses = json_decode(MESES); drupal_set_title(t('Seguimiento y Control de Acción Específica de Proyecto Operativo (Mes de '.$meses[$mes].')')); $form = array(); $campo = ''; $form['#accion_especifica_de_proyecto_seguimiento'] = $settings['accion_especifica_de_proyecto_seguimiento']; $form['#node'] = $ae; $form['#proyecto'] = $proyecto; $form['#mes'] = $mes; $form['#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'), ); $output = ''; $consultaseguimientoactual = _seguimiento_mesactual_partida_ae_deproyecto_load($ae, $mes); //estado $estado = (isset($consultaseguimientoactual['segmes']['estado'])) ? $consultaseguimientoactual['segmes']['estado'] : -1; $form['#state_creation'] = $estado; //get first state $form['#estado_inicial'] = 0; if ($estado == -1 && module_exists('workflow')) { $estados = _proyectos_operativos_reformulacion_obtiene_estados(); $estado_inicial = variable_get('proyectos_operativos_state_seguimiento', 0); $form['#estado_inicial'] = _workflow_creation_state($estados['wid']); if ($estados['wid']) { if ($estado_inicial && $estados['states'][$estado_inicial]) { $form['#state_creation'] = $estado_inicial; } else { $form['#state_creation'] = $form['#estado_inicial']; } } } $header = array(); $header[] = array('data' => t('Partida')); $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')); $grupos_form = array(); $alguna_partida_con_asignado_cero = 0;//bandera para verificar que si se muestra el mensajes sobre reformulaciones $partidas_accion_especifica = $ae->field_accion_esp_programacion; foreach ($partidas_accion_especifica as $partida) { if ($partida['tid']) { //calcular la variacion si existe $variacion_por_ref = 0; foreach ($ref_aprob as $id => $ref_aprob_i){ if(($ref_aprob_i['partida']==$partida['tid'])&&($ref_aprob_i['tomado_en_cuenta']==0)){ $variacion_por_ref += $ref_aprob_i['asignado_mes']; $ref_aprob[$id]['tomado_en_cuenta']=1; } } $term = taxonomy_get_term($partida['tid']); // If this term's vocabulary supports localization. if (module_exists('i18ntaxonomy') && i18ntaxonomy_vocabulary($term->vid) == I18N_TAXONOMY_LOCALIZE) { $term->name = tt("taxonomy:term:$term->tid:name", $term->name); } $valor1 = $mes > 0 ? 'value_' . $mes : 'value'; $comprometidov = 0; $causadov = 0; $pagadov = 0; $asignadov = $partida[$valor1] + $variacion_por_ref; // if($asignadov){ foreach ($consultaseguimientoactual['segmespartidas'] as $consultapartida) {//colocando valor por omision (consultado de base de datos si esta) if($partida['tid']==$consultapartida['partida']){ $comprometidov = isset($consultapartida['comprometido']) && $consultapartida['comprometido'] > 0? $consultapartida['comprometido'] : 0; $causadov = isset($consultapartida['causado']) && $consultapartida['causado'] > 0 ? $consultapartida['causado'] : 0; $pagadov = isset($consultapartida['pagado']) && $consultapartida['pagado'] > 0 ? $consultapartida['pagado'] : 0; } } /* }else{ $alguna_partida_con_asignado_cero = 1; } */ $desabilitarasignado = $asignadov == 0 ? TRUE : FALSE; $zonacritica = $asignadov ? ($causadov/$asignadov)*100 : -1; $porczonacritica = $zonacritica >= 0 ? ($zonacritica * 100) . '%' : 'N/A'; $porczonacritica = round($porczonacritica, 2); //$porczonacritica = $zonacritica >= 0 ? ($zonacritica) . '%' : $causadov ? 'N/D' : 'N/A'; //no definido|no agregado $form[$partida['tid'] . '_asignado'] = array( '#type' => 'textfield', '#default_value' => $asignadov, '#size' => 15, '#disabled' => $desabilitarasignado, '#attributes' => array('class' => 'number campo-asignado'), ); $disabled = $asignadov == 0 ? TRUE : FALSE; $form[$partida['tid'] . '_comprometido'] = array( '#type' => 'textfield', '#default_value' => $comprometidov, '#size' => 15, // '#disabled' => $disabled, '#attributes' => array('class' => 'number', 'onchange' => "valpositivo('" . $partida['tid'] . '-comprometido' . "'); valentero('" . $partida['tid'] . '-comprometido' . "');"), ); $form[$partida['tid'] . '_causado'] = array( '#type' => 'textfield', '#default_value' => $causadov, '#size' => 15, // '#disabled' => $disabled, '#attributes' => array('class' => 'number indicadores-financieros-por-partidas', 'onchange' => "valpositivo('" . $partida['tid'] . '-causado' . "');calculaporc('" . $partida['tid'] . "');valentero('" . $partida['tid'] . '-causado' . "');"), ); $form[$partida['tid'] . '_pagado'] = array( '#type' => 'textfield', '#default_value' => $pagadov, '#size' => 15, // '#disabled' => $disabled, '#attributes' => array('class' => 'number', 'onchange' => "valpositivo('" . $partida['tid'] . '-pagado' . "');valentero('" . $partida['tid'] . '-pagado' . "');"), ); $form[$partida['tid'] . '_porcen'] = array( '#type' => 'textfield', '#default_value' => $porczonacritica, '#size' => 5, '#disabled' => TRUE, ); } } $form['#alguna_partida_con_asignado_cero']= $alguna_partida_con_asignado_cero; $partidas_nuevas_por_ref = array(); //colocar partidas nuevas por reformulacion ********************************************************************************** foreach ($ref_aprob as $id_0 => $ref_aprob_i_0) { if($ref_aprob_i_0['tomado_en_cuenta']==0){ $ref_aprob[$id_0]['tomado_en_cuenta']=1; $partida_actual = $ref_aprob_i_0['partida']; $partidas_nuevas_por_ref[] = $partida_actual; //buscar todas las reformulaciones sobre esa partida en el mes actual $variacion_por_ref = $ref_aprob_i_0['asignado_mes']; foreach ($ref_aprob as $id => $ref_aprob_i){ if(($ref_aprob_i['partida']==$partida_actual)&&($ref_aprob_i['tomado_en_cuenta']==0)){ $variacion_por_ref += $ref_aprob_i['asignado_mes']; $ref_aprob[$id]['tomado_en_cuenta']=1; } } $term = taxonomy_get_term($partida_actual); // If this term's vocabulary supports localization. if (module_exists('i18ntaxonomy') && i18ntaxonomy_vocabulary($term->vid) == I18N_TAXONOMY_LOCALIZE) { $term->name = tt("taxonomy:term:$term->tid:name", $term->name); } $asignadov = $variacion_por_ref; $comprometidov = 0; $causadov = 0; $pagadov = 0; foreach ($consultaseguimientoactual['segmespartidas'] as $consultapartida) {//colocando valor por omision (consultado de base de datos si esta) if($partida_actual==$consultapartida['partida']){ $comprometidov = isset($consultapartida['comprometido']) && $consultapartida['comprometido'] > 0? $consultapartida['comprometido'] : 0; $causadov = isset($consultapartida['causado']) && $consultapartida['causado'] > 0 ? $consultapartida['causado'] : 0; $pagadov = isset($consultapartida['pagado']) && $consultapartida['pagado'] > 0 ? $consultapartida['pagado'] : 0; } } $desabilitarasignado = $asignadov == 0 ? TRUE : FALSE; $zonacritica = $asignadov ? $causadov/$asignadov : -1; $porczonacritica = $zonacritica >= 0 ? ($zonacritica * 100) . '%' : 'N/A'; $porczonacritica = round($porczonacritica, 2); //$porczonacritica = $zonacritica >= 0 ? ($zonacritica * 100) . '%' : $causadov ? 'N/D' : 'N/A'; $form[$partida_actual . '_asignado'] = array( '#type' => 'textfield', '#default_value' => $asignadov, '#size' => 15, '#disabled' => $desabilitarasignado, '#attributes' => array('class' => 'number campo-asignado'), ); $disabled = $asignadov == 0 ? TRUE : FALSE; $form[$partida_actual . '_comprometido'] = array( '#type' => 'textfield', '#default_value' => $comprometidov, '#size' => 15, // '#disabled' => $disabled, '#attributes' => array('class' =>'number', 'onchange' => "valpositivo('" . $partida_actual . '-comprometido' . "'); valentero('" . $partida_actual . '-comprometido' . "');"), ); $form[$partida_actual . '_causado'] = array( '#type' => 'textfield', '#default_value' => $causadov, '#size' => 15, '#disabled' => $disabled, '#attributes' => array('class' =>'number indicadores-financieros-por-partidas','onchange' => "valpositivo('" . $partida_actual . '-causado' . "');calculaporc('" . $partida_actual . "');valentero('" . $partida_actual . '-causado' . "');"), ); $form[$partida_actual . '_pagado'] = array( '#type' => 'textfield', '#default_value' => $pagadov, '#size' => 15, // '#disabled' => $disabled, '#attributes' => array('class' =>'number','onchange' => "valpositivo('" . $partida_actual . '-pagado' . "');valentero('" . $partida_actual . '-pagado' . "');"), ); $form[$partida_actual . '_porcen'] = array( '#type' => 'textfield', '#default_value' => $porczonacritica, '#size' => 15, '#disabled' => TRUE, ); } } $form['#partidas_nuevas_por_ref'] = $partidas_nuevas_por_ref; //*************************************************************************************************************************** //calcular variacion en el planificado de la meta fisica $variacion_planificado_mes = _seguimiento_mesactual_metafisica_ae_deproyecto_reformulaciones_load($ae, $mes); $valor_texto = $mes > 0 ? 'value_' . $mes : 'value'; $cant_metafisica_planif = $ae->field_accion_esp_metaf[0][$valor_texto] + $variacion_planificado_mes; $disabled = $cant_metafisica_planif == 0 ? TRUE : FALSE; $form['#metafisica_con_planificado_cero'] = $cant_metafisica_planif == 0 ? 1 : 0; $form['cantidad_metafisica_planificado'] = array( //'#title' => t('Ejecutado Meta Fisica'), '#type' => 'textfield', '#size' => 15, '#default_value' => $cant_metafisica_planif, '#attributes' => array('class' => 'number campo-asignado'), ); $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); $mes_inicio = (int) $fecha[1]; $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); if ($mes_inicio <= ($mes_final + 1)) { $form['acumulativo_metafisica_planificado'] = array( //'#title' => t('Es acumulativo'), '#type' => 'select', '#options' => array(t('NO'), t('SI')), '#default_value' => ($ae->es_acumulativo) ? 1 : 0, '#required' => TRUE, ); } $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos'); drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js'); $seg_proyecto_path = drupal_get_path('module', 'accion_especifica_de_proyecto_seguimiento'); drupal_add_js($seg_proyecto_path . '/js/seguimiento_proyecto.js'); $cant_metafisica_ej = isset($consultaseguimientoactual['segmes']['ejecutadometafisica']) ? $consultaseguimientoactual['segmes']['ejecutadometafisica'] : 0; $form['cantidad_metafisica_ejecutado'] = array( //'#title' => t('Ejecutado Meta Fisica'), '#type' => 'textfield', '#size' => 15, '#default_value' => $cant_metafisica_ej, // '#disabled' => $disabled, '#attributes' => array('class' => 'number cantidad_metafisica_ejecutado', 'onchange' => "valpositivo('" . 'cantidad-metafisica-ejecutado' . "');calculaporc_metafisica('" . "');valenterometafisica('cantidad-metafisica-ejecutado')"), ); $zonacritica1 = $cant_metafisica_planif ? $cant_metafisica_ej/$cant_metafisica_planif : -1; $porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : 'N/A'; $porczonacritica1 = round($porczonacritica1, 2); //$porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : $cant_metafisica_ej ? 'N/D' : 'N/A'; $form['cantidad_metafisica_porcen'] = array( '#type' => 'textfield', '#default_value' => $porczonacritica1, '#size' => 15, '#disabled' => TRUE, ); if ($field == 'comentario_metafisica' || $field == 'full') { $infocomplementaria_fisica = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafisica']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafisica'] : ''; $form['comentario_metafisica'] = array( '#title' => t('Información Complementaria (Meta Física)'), '#type' => 'textarea', '#default_value' => $infocomplementaria_fisica, ); } $infocomplementaria_financiera = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera'] : ''; if ($field == 'comentario_informacionfinanciera' || $field == 'full') { $form['comentario_informacionfinanciera'] = array( '#title' => t('Información Complementaria (Financiera)'), '#type' => 'textarea', '#default_value' => $infocomplementaria_financiera, ); } $form['buttons'] = array( '#prefix' => '
', '#suffix' => '
', ); $form['buttons']['submit'] = array( '#type' => 'submit', '#value' => t('Guardar'), ); $form['buttons']['cancel'] = array('#value' => l('Cancelar', 'proyectosop/' . $form['#proyecto']->nid . '/seguimiento/ae' . $form['#node']->nid . '/partidas/' . $form['#mes'])); return $form; } /** * Implementation of hook_theme(). */ function accion_especifica_de_proyecto_seguimiento_theme() { return array( 'seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form' => array( 'arguments' => array('form' => NULL), ), ); } /** * Formato para el formulario (campos en tablas y carga de algunos datos) */ function theme_seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form($form) { $node= $form['#node']; $meses = json_decode(MESES); $header = array(); $header[] = array('data' => t('Partida')); $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')); $rows = array(); $partidas_accion_especifica = $node->field_accion_esp_programacion; foreach ($partidas_accion_especifica as $partida) { if ($partida['tid']) { $term = taxonomy_get_term($partida['tid']); // If this term's vocabulary supports localization. if (module_exists('i18ntaxonomy') && i18ntaxonomy_vocabulary($term->vid) == I18N_TAXONOMY_LOCALIZE) { $term->name = tt("taxonomy:term:$term->tid:name", $term->name); } $asignadov = $form[$partida['tid'] . '_asignado']['#value']; $causadov = $form[$partida['tid'] . '_causado']['#value']; $estatus_ejecucion = _calcularzonacritica($asignadov, $causadov); $porczonacritica = $estatus_ejecucion['porczonacritica']; $textozona = $estatus_ejecucion['textozona']; $colorzona = $estatus_ejecucion['colorzona']; $colorfontzona = $estatus_ejecucion['colorfontzona']; $row = array(); $row[] = array('data' => $term->name,); $row[] = array('data' => drupal_render($form[$partida['tid'] . '_asignado']),); $row[] = array('data' => drupal_render($form[$partida['tid'] . '_comprometido']),); $row[] = array('data' => drupal_render($form[$partida['tid'] . '_causado']),); $row[] = array('data' => drupal_render($form[$partida['tid'] . '_pagado']),); $row[] = array('data' => drupal_render($form[$partida['tid'] . '_porcen']),); $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona, 'id' => $partida['tid'] . '-inversion-form',); $rows[] = $row; } } $partidas_nuevas_por_ref = $form['#partidas_nuevas_por_ref']; //colocar partidas nuevas por reformulacion ********************************************************************************** foreach ($partidas_nuevas_por_ref as $id_0 => $ref_aprob_i_0){ //buscar todas las reformulaciones sobre esa partida $partida_actual = $ref_aprob_i_0; $term = taxonomy_get_term($partida_actual); // If this term's vocabulary supports localization. if (module_exists('i18ntaxonomy') && i18ntaxonomy_vocabulary($term->vid) == I18N_TAXONOMY_LOCALIZE) { $term->name = tt("taxonomy:term:$term->tid:name", $term->name); } $asignadov = $form[$partida_actual . '_asignado']['#value']; $causadov = $form[$partida_actual . '_causado']['#value']; $estatus_ejecucion = _calcularzonacritica($asignadov, $causadov); $porczonacritica = $estatus_ejecucion['porczonacritica']; $textozona = $estatus_ejecucion['textozona']; $colorzona = $estatus_ejecucion['colorzona']; $colorfontzona = $estatus_ejecucion['colorfontzona']; $row = array(); $row[] = array('data' => $term->name,); $row[] = array('data' => drupal_render($form[$partida_actual . '_asignado']),); $row[] = array('data' => drupal_render($form[$partida_actual . '_comprometido']),); $row[] = array('data' => drupal_render($form[$partida_actual . '_causado']),); $row[] = array('data' => drupal_render($form[$partida_actual . '_pagado']),); $row[] = array('data' => drupal_render($form[$partida_actual . '_porcen']),); $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona, 'id' => $partida_actual . '-inversion-form',); $rows[] = $row; } $header2 = array(); $header2[] = array('data' => t('Planificado')); $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); $mes_inicio = (int) $fecha[1]; $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); $header2[] = array('data' => t('Ejecutado')); $header2[] = array('data' => t('% de Logro')); $header2[] = array('data' => t('Estatus de la Inversión')); $rows2 = array(); $planificadov = $form['cantidad_metafisica_planificado']['#value']; $ejecutadov = $form['cantidad_metafisica_ejecutado']['#value']; $estatus_ejecucion = _calcularzonacritica($planificadov, $ejecutadov); $porczonacritica = $estatus_ejecucion['porczonacritica']; $textozona = $estatus_ejecucion['textozona']; $colorzona = $estatus_ejecucion['colorzona']; $colorfontzona = $estatus_ejecucion['colorfontzona']; $row2 = array(); $row2[] = array('data' => drupal_render($form['cantidad_metafisica_planificado']),); $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); $mes_inicio = (int) $fecha[1]; $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); $row2[] = array('data' => drupal_render($form['cantidad_metafisica_ejecutado']),); $row2[] = array('data' => drupal_render($form['cantidad_metafisica_porcen']),); $row2[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona, 'id' => 'metafisica-inversion-form',); $rows2[] = $row2; $output = ''; $output .= '
'; $grupo = explode('-', $form['#grupo']['label']); //cargar el nodo del proyecto al que pertenece $nodoproyecto = $form['#proyecto']; $output .= '
' . t('Datos del Proyecto al que pertenece la Acción Específica') . ' '; $output .= '' . t('Código del Proyecto') . ': '.$nodoproyecto->field_proyecto_codigo[0]['value'].'
'; $output .= '' . t('Nombre del Proyecto') . ': '.$nodoproyecto->titulo_asignado.'
'; $output .= '
'; $output .= '
' . t('Datos de la Acción Específica') . '' . '
' . t('Nombre de la Acción Específica:') .' ' . $node->titulo_asignado . '
'. '
'; $add = false; if (isset($form['comentario_metafisica'])) { $output .= '
' . t('Indicadores de Meta Física de la Acción Específica') . '' ; if ($node->field_accion_esp_unidadm) { $output .= '' . t("Unidad de Medida de la acción Especifica: ") . ''; $count = 0; $output .= ''; } if ($mes_inicio <= ($mes_final + 1)) { $add = true; $title[] = '' . t('La unidad de medida se considera acumulativa:') . ''; $column[] = array('data' => drupal_render($form['acumulativo_metafisica_planificado'])); $columns[] = $column; $output .= theme('table', $title, $columns) . '
'; } $output .= '
' . t('Mes de Seguimiento Actual:') . ' ' . $meses[$form['#mes'] - 1] . '
' . theme('table', $header2, $rows2) ; if ($form['#metafisica_con_planificado_cero'] == 1){ $output .= '
' . t('Nota') . ': ' . t('Si desea ingresar una cantidad de ejecutado de meta física mayor que cero, primero debe realizar una reformulación a la meta física de este mes.') . '
'; } $output .= drupal_render($form['comentario_metafisica']); $output .= '
'; } if (isset($form['comentario_informacionfinanciera'])) { if ($mes_inicio <= ($mes_final + 1) && empty($add)) { $title[] = '' . t('La unidad de medida se considera acumulativa:') . ''; $column[] = array('data' => drupal_render($form['acumulativo_metafisica_planificado'])); $columns[] = $column; $output .= theme('table', $title, $columns) . '
'; } $output .= '
' . t('Indicadores Financieros (por Partidas) de la Acción Específica') . '' . '
' . t('Mes de Seguimiento Actual:') . ' ' . $meses[$form['#mes'] - 1] . '
' . theme('table', $header, $rows) ; $output .= '
' . t('Nota') . ': .' . "La relación entre las cantidades debe ser: 'Comprometido' >= 'Causado' >= 'Pagado'" . '.
'; if($form['#alguna_partida_con_asignado_cero'] == 1){ $output .= '' . t('Nota 2') . ': '. t('Si desea ingresar los valores de comprometido, causado y pagado de una partida con valor de asignado cero (0), primero debe realizar una reformulación a dicha partida.') . '
'; } $output .= drupal_render($form['comentario_informacionfinanciera']); $output .= '
'; } $output .= _mostrarleyendazonacritica(); $output .= '
'; $output .= drupal_render($form); return $output; } /* * validacion del formulario * Implementation of seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form_validate() */ function seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form_validate($form, &$form_state) { //valores positivos meta fisica if ($form_state['values']['cantidad_metafisica_ejecutado'] < 0) { form_set_error('cantidad_metafisica_ejecutado', t('El valor \'Ejecutado\' en la meta física debe ser mayor o igual a cero')); } $proyectos_reformulacion_path = drupal_get_path('module', 'proyectos_reformulacion'); $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos'); drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js'); drupal_add_js($proyectos_reformulacion_path . '/js/proyectos_reformulacion.js'); drupal_add_js($form['#format_number'], 'setting'); $modulo_seguimiento_proyecto_y_aes_path = drupal_get_path('module', 'accion_especifica_de_proyecto_seguimiento'); drupal_add_js($modulo_seguimiento_proyecto_y_aes_path . '/js/seg_proyecto_validaciones_original.js'); /* print '
';
print_r($form);
print '
'; asas(); */ $node= $form['#node']; $partidas_accion_especifica = $node->field_accion_esp_programacion; foreach ($partidas_accion_especifica as $partida) { if ($partida['tid']) { //comprometido < causado if ($form_state['values'][$partida['tid'] . '_comprometido'] < $form_state['values'][$partida['tid'] . '_causado']) { //$output .= '
Nota: La relacion entre las cantidades debe ser: \'Comprometido\' >= \'Causado\' >= \'Pagado\''; form_set_error($partida['tid'] . '_comprometido', t("El valor 'Comprometido @comprometido' debe ser mayor o igual que el valor de 'Causado @causado'.", array("@comprometido" => $form_state['values'][$partida['tid'] . '_comprometido'], "@causado" => $form_state['values'][$partida['tid'] . '_causado']))); } //causado < pagado if ($form_state['values'][$partida['tid'] . '_causado'] < $form_state['values'][$partida['tid'] . '_pagado']) { //$output .= '
Nota: La relacion entre las cantidades debe ser: \'Comprometido\' >= \'Causado\' >= \'Pagado\''; form_set_error($partida['tid'] . '_causado', t("El valor 'Causado @causado' debe ser mayor o igual que el valor de 'Pagado @pagado'.", array("@causado" => $form_state['values'][$partida['tid'] . '_causado'], "@pagado" => $form_state['values'][$partida['tid'] . '_pagado']))); } //asignado < comprometido if ($form_state['values'][$partida['tid'] . '_asignado'] || $form_state['values'][$partida['tid'] . '_comprometido']) { if ($form_state['values'][$partida['tid'] . '_asignado'] < $form_state['values'][$partida['tid'] . '_comprometido']) { form_set_error($partida['tid'] . '_comprometido', t("El valor 'Comprometido @comprometido' debe ser menor o igual al valor de 'Asignado @asignado.", array("@comprometido" => $form_state['values'][$partida['tid'] . '_asignado'], "@asignado" => $form_state['values'][$partida['tid'] . '_comprometido']))); } } //asignado < causado if ($form_state['values'][$partida['tid'] . '_asignado'] || $form_state['values'][$partida['tid'] . '_causado']) { if ($form_state['values'][$partida['tid'] . '_asignado'] < $form_state['values'][$partida['tid'] . '_causado']) { form_set_error($partida['tid'] . '_causado', t("El valor 'Causado @causado' debe ser menor o igual al valor de 'Asignado @asignado'.", array("@causado" => $form_state['values'][$partida['tid'] . '_asignado'], "@asignado" => $form_state['values'][$partida['tid'] . '_causado']))); } } //asignado < pagado if ($form_state['values'][$partida['tid'] . '_asignado'] || $form_state['values'][$partida['tid'] . '_pagado']) { if ($form_state['values'][$partida['tid'] . '_asignado'] < $form_state['values'][$partida['tid'] . '_pagado']) { form_set_error($partida['tid'] . '_pagado', t("El valor 'Pagado @pagado' debe ser menor o igual al valor de 'Asignado @asignado'.", array("@pagado" => $form_state['values'][$partida['tid'] . '_pagado'], "@asignado" => $form_state['values'][$partida['tid'] . '_asignado']))); } } //valores positivos if ($form_state['values'][$partida['tid'] . '_comprometido'] < 0) { form_set_error($partida['tid'] . '_comprometido', t("El valor 'Comprometido @comprometido' debe ser mayor o igual a cero", array("@comprometido" => $form_state['values'][$partida['tid'] . '_comprometido']))); } if ($form_state['values'][$partida['tid'] . '_causado'] < 0) { form_set_error($partida['tid'] . '_causado', t("El valor 'Causado @causado' debe ser mayor o igual a cero", array("@causado" => $form_state['values'][$partida['tid'] . '_causado']))); } if ($form_state['values'][$partida['tid'] . '_pagado'] < 0) { form_set_error($partida['tid'] . '_pagado', t("El valor 'Pagado @pagado' debe ser mayor o igual a cero", array("@pagado" => $form_state['values'][$partida['tid'] . '_pagado']))); } } } /* //partidas nuevas $partidas_nuevas_por_ref = $form['#partidas_nuevas_por_ref']; foreach ($partidas_nuevas_por_ref as $id_0 => $ref_aprob_i_0) { //comprometido < causado if ($form_state['values'][$ref_aprob_i_0 . '_comprometido'] < $form_state['values'][$ref_aprob_i_0 . '_causado']) { //$output .= '
Nota: La relacion entre las cantidades debe ser: \'Comprometido\' >= \'Causado\' >= \'Pagado\''; form_set_error($ref_aprob_i_0 . '_comprometido', t('El valor \'Comprometido\' debe ser mayor o igual que el valor de \'Causado\'. ')); } //causado < pagado if ($form_state['values'][$ref_aprob_i_0 . '_causado'] < $form_state['values'][$ref_aprob_i_0 . '_pagado']) { //$output .= '
Nota: La relacion entre las cantidades debe ser: \'Comprometido\' >= \'Causado\' >= \'Pagado\''; form_set_error($ref_aprob_i_0 . '_causado', t('El valor \'Causado\' debe ser mayor o igual que el valor de \'Pagado\'. ')); } //asignado < comprometido if ($form_state['values'][$ref_aprob_i_0 . '_asignado'] < $form_state['values'][$ref_aprob_i_0 . '_comprometido']) { form_set_error($ref_aprob_i_0 . '_comprometido', t('El valor \'Comprometido\' debe ser menor o igual al valor de \'Asignado\'.')); } //asignado < causado if ($form_state['values'][$ref_aprob_i_0 . '_asignado'] < $form_state['values'][$ref_aprob_i_0 . '_causado']) { form_set_error($ref_aprob_i_0 . '_causado', t('El valor \'Causado\' debe ser menor o igual al valor de \'Asignado\'. ')); } //asignado < pagado if ($form_state['values'][$ref_aprob_i_0 . '_asignado'] < $form_state['values'][$ref_aprob_i_0 . '_pagado']) { form_set_error($ref_aprob_i_0 . '_pagado', t('El valor \'Pagado\'debe ser menor o igual al valor de \'Asignado\'. ')); } //valores positivos if ($form_state['values'][$ref_aprob_i_0 . '_comprometido'] < 0) { form_set_error($ref_aprob_i_0 . '_comprometido', t('El valor \'Comprometido\' debe ser mayor o igual a cero')); } if ($form_state['values'][$ref_aprob_i_0 . '_causado'] < 0) { form_set_error($partida['tid'] . '_causado', t('El valor \'Causado\' debe ser mayor o igual a cero')); } if ($form_state['values'][$ref_aprob_i_0 . '_pagado'] < 0) { form_set_error($partida['tid'] . '_pagado', t('El valor \'Pagado\' debe ser mayor o igual a cero')); } } */ } /* * procesamiento del formulario * Implementation of seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form_submit() */ function seguimiento_accion_especifica_deproyecto_partidaspormes_modificar_form_submit($form, &$form_state) { $consultaseguimientoactual = _seguimiento_mesactual_partida_ae_deproyecto_load($form['#node'], $form['#mes']); global $user; if(isset($consultaseguimientoactual['segmes']['id_seg'])) { //actualizar $es_acumulativo = isset($form_state['values']['acumulativo_metafisica_planificado']) ? $form_state['values']['acumulativo_metafisica_planificado'] : $form['#node']->es_acumulativo; if (isset($form_state['values']['comentario_metafisica'])) { $ss1=check_plain($form_state['values']['comentario_metafisica']); $exe_query = db_query("UPDATE {seguimiento_aeproyecto} SET ejecutadometafisica = %d, infocomplementaria_metafisica = '%s', acumulativa = %d WHERE id_seg = %d", $form_state['values']['cantidad_metafisica_ejecutado'], $ss1, $es_acumulativo, $consultaseguimientoactual['segmes']['id_seg']); } if (isset($form_state['values']['comentario_informacionfinanciera'])) { $sss=check_plain($form_state['values']['comentario_informacionfinanciera']); $exe_query = db_query("UPDATE {seguimiento_aeproyecto} SET ejecutadometafisica = %d, infocomplementaria_metafinanciera = '%s', acumulativa = %d WHERE id_seg = %d", $form_state['values']['cantidad_metafisica_ejecutado'], $sss, $es_acumulativo, $consultaseguimientoactual['segmes']['id_seg']); } $id_seg = $consultaseguimientoactual['segmes']['id_seg']; $exe_query = db_query("UPDATE {seguimiento_aeproyecto} SET acumulativa = %d WHERE nid = %d", $es_acumulativo, $form['#node']->nid); }else{ $es_acumulativo = isset($form_state['values']['acumulativo_metafisica_planificado']) ? $form_state['values']['acumulativo_metafisica_planificado'] : $form['#node']->es_acumulativo; //insertar $exe_query = db_query("INSERT INTO {seguimiento_aeproyecto} (nid, mes, ejecutadometafisica, infocomplementaria_metafisica, infocomplementaria_metafinanciera, fecha, estado, uid, acumulativa) VALUES (%d, %d, %d, '%s', '%s', %d, %d, %d, %d)", $form['#node']->nid, $form['#mes'], $form_state['values']['cantidad_metafisica_ejecutado'], check_plain($form_state['values']['comentario_metafisica']), check_plain($form_state['values']['comentario_informacionfinanciera']), time(), $form['#state_creation'], $user->uid, $es_acumulativo); $id_seg = db_last_insert_id('seguimiento_aeproyecto', 'id_seg'); //construir transicion (creacion) -> ingresado if (module_exists('workflow') && $form['#estado_inicial']) { $wid = workflow_get_workflow_for_type('proyectos_operativos'); $estadoInicialFlujo = _workflow_creation_state($wid); //Siguiente estado $transitions = workflow_allowable_transitions($estadoInicialFlujo); unset($transitions[$estadoInicialFlujo]); db_query("INSERT INTO {seguimiento_aeproyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", key($transitions), $form['#estado_inicial'], t('Creación del Seguimiento del mes @mes de la AE: @nodo ', array('@mes' => $form['#mes'], '@nodo' => check_plain($form['#node']->titulo_asignado))), time(), $id_seg, $user->uid); $ultima_id_transicion_seg = db_query("SELECT max(a.id_seg_transicion_estado) AS id FROM {seguimiento_aeproyecto_transiciones_estados} AS a WHERE a.id_seg = %d", $id_seg); $seg_transicion_estado = db_fetch_object ( $ultima_id_transicion_seg ) ; db_query('UPDATE {seguimiento_aeproyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', key($transitions), $seg_transicion_estado->id, $id_seg); } } //echo $id_seg.'
'; $node= $form['#node']; $partidas_accion_especifica = $node->field_accion_esp_programacion; foreach ($partidas_accion_especifica as $partida) { $suma = $form_state['values'][$partida['tid'] . '_comprometido'] + $form_state['values'][$partida['tid'] . '_causado'] +$form_state['values'][$partida['tid'] . '_pagado']; $actualizada=0; foreach ($consultaseguimientoactual['segmespartidas'] as $consultapartida) {//colocando valor por omision (consultado de base de datos si esta) if($partida['tid']==$consultapartida['partida']){ //actualizar $exe_query = db_query("UPDATE {seguimiento_aeproyecto_partida} SET comprometido = %d, causado = %d, pagado = %d WHERE id_seg_partida = %d", $form_state['values'][$partida['tid'] . '_comprometido'], $form_state['values'][$partida['tid'] . '_causado'], $form_state['values'][$partida['tid'] . '_pagado'], $consultapartida['id_seg_partida']); $actualizada=1; } } if($actualizada==0){//revisar //insertar if ($partida['tid'] && $suma) { $exe_query = db_query("INSERT INTO {seguimiento_aeproyecto_partida} (id_seg, partida, comprometido, causado, pagado) VALUES (%d, %d, %d, %d, %d)", $id_seg, $partida['tid'], $form_state['values'][$partida['tid'] . '_comprometido'], $form_state['values'][$partida['tid'] . '_causado'], $form_state['values'][$partida['tid'] . '_pagado']); } } } //partidas nuevas $partidas_nuevas_por_ref = $form['#partidas_nuevas_por_ref']; foreach ($partidas_nuevas_por_ref as $id_0 => $ref_aprob_i_0) { $suma = $form_state['values'][$ref_aprob_i_0 . '_comprometido'] + $form_state['values'][$ref_aprob_i_0 . '_causado'] +$form_state['values'][$ref_aprob_i_0 . '_pagado']; $actualizada=0; foreach ($consultaseguimientoactual['segmespartidas'] as $consultapartida) {//colocando valor por omision (consultado de base de datos si esta) if($ref_aprob_i_0==$consultapartida['partida']){ //actualizar $exe_query = db_query("UPDATE {seguimiento_aeproyecto_partida} SET comprometido = %d, causado = %d, pagado = %d WHERE id_seg_partida = %d", $form_state['values'][$ref_aprob_i_0 . '_comprometido'], $form_state['values'][$ref_aprob_i_0 . '_causado'], $form_state['values'][$ref_aprob_i_0 . '_pagado'], $consultapartida['id_seg_partida']); $actualizada=1; } } if($actualizada==0){//revisar //insertar if ($ref_aprob_i_0 && $suma) { $exe_query = db_query("INSERT INTO {seguimiento_aeproyecto_partida} (id_seg, partida, comprometido, causado, pagado) VALUES (%d, %d, %d, %d, %d)", $id_seg, $ref_aprob_i_0, $form_state['values'][$ref_aprob_i_0 . '_comprometido'], $form_state['values'][$ref_aprob_i_0 . '_causado'], $form_state['values'][$ref_aprob_i_0 . '_pagado']); } } } if ($exe_query == true) { $meses = json_decode(MESES); $mes =$form['#mes']; drupal_set_message(t('Se ha guardado el seguimiento del mes de @mes para la AE: @title', array('@mes' => $meses[$mes], '@title' => check_plain($form['#node']->titulo_asignado)))); } if (!$_REQUEST['destination']) { $form_state['redirect'] = 'proyectosop/' . $form['#proyecto']->nid . '/seguimiento'; } }