Conjunto 7d9e4be en sipes
- Fecha y hora:
- 09/06/2016 11:31:25 (hace 8 años)
- Branches:
- stable, version-3.0
- Children:
- 92f109b
- Parents:
- a20fcb5
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
0.3-modules/proyectos_operativos_mcti/accion_especifica_mcti.module
r303fae2 r7d9e4be 43 43 $node_type = content_types('accion_especifica'); 44 44 $fields = $node_type['fields']; 45 foreach ($form['#parameters'] as $id => $proyecto) { 46 if ($proyecto->type == 'accion_especifica') { 47 $ae = $proyecto; 48 } 49 } 50 if (!$ae) { 51 $ae_leido = new stdClass(); 52 $ae_leido->type = 'accion_especifica'; 53 $nid = 0; 54 } 55 else { 56 $ae_leido = $ae; 57 $ae_leido->field_accion_titulo[0]['value'] = trim($ae_leido->field_accion_titulo[0]['value']) == '' ? $ae_leido->title : $ae_leido->field_accion_titulo[0]['value']; 58 $nid = $ae->nid; 59 } 60 //nid node 61 foreach ($form['#parameters'] as $id => $proyectos) { 62 if ($proyectos->type == 'proyectos_operativos') { 63 $proyecto = $proyectos; 64 } 65 } 66 if (!$proyecto) { 67 $proyecto = new stdClass(); 68 $proyecto->type = 'proyectos_operativos'; 69 } 70 else { 71 $proyecto = $proyecto; 72 } 73 $geo = variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE); 74 if ($geo) { 75 //agregando el campo geo 76 $arreglo = array( 77 'field_accion_esp_geo' => 'field_accion_esp_geo', 78 ); 79 } 80 if (is_array($fields) && count($fields)) { 81 foreach ($fields as $field_id => $field) { 82 if (array_key_exists($field_id, $arreglo)) { 83 $field_form[] = $field_id; 84 $fields_form[] = $field_id; 85 } 86 elseif (variable_get('proyectos_operativos_ac_muestra_geo_' . $field_id, FALSE)) { 87 $field_form[] = $field_id; 88 $fields_form[] = $field_id; 89 } 90 } 91 } 92 $ejecucion = 0; 93 $acciones_especificas = array(); 45 46 $proyecto = $form['#proyecto']; 47 $ae_leido = $form['#node']; 48 $ejecucion = 0; 94 49 $montos = 0; 95 50 $porcentajes = array(); 96 foreach 51 foreach($proyecto->field_proyecto_accion_esp as $accion) { 97 52 if ($accion['nid'] && $nid != $accion['nid']) { 98 53 $accion_load = node_load($accion['nid']); 99 54 if ($accion_load && $accion_load->type == 'accion_especifica') { 100 55 if ($accion_load->field_accion_esp_programacion[0]['tid']) { 101 foreach 102 foreach 56 foreach($accion_load->field_accion_esp_programacion as $programacion) { 57 foreach($programacion as $id_value => $mesp){ 103 58 if ($id_value != 'tid') { 104 59 $montos +=$mesp; … … 111 66 $ejecucion += $accion_load->field_accion_esp_ponderacion[0]['value']; 112 67 } 113 } 114 elseif ($nid == $accion['nid']) { 115 $acciones_especificas[$ae->nid] = $ae; 116 } 117 } 118 $monto_restante = $form['#proyecto']->field_proyecto_monto_anual[0]['value'] - $montos; 68 } 69 elseif($nid == $accion['nid']) { 70 $acciones_especificas[$ae->nid] = $ae; 71 } 72 } 119 73 $et = 100 - $ejecucion; 120 if ($et != 100) { 121 $form['#mensaje_mostrar'] = t('Se tiene @asignar % de ponderación sin asignar, con un monto de @montos BS asignados en las Acciones EspecÃficas.', array('@asignar' => $et, '@montos' => number_format($monto_restante, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))); 122 } 123 else { 124 $form['#mensaje_mostrar'] = t('Se tiene @asignar % de ponderación Asignada, con un monto total de @montos BS asignados en las Acciones EspecÃficas.', array('@asignar' => $et, '@montos' => number_format($monto_restante, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))); 125 } 126 $form['#proyectos_operativos_fields'] = array_merge($form['#proyectos_operativos_fields'] , $fields_form); 127 if (is_array($field_form) && count($field_form)) { 128 module_load_include('inc', 'content', 'includes/content.node_form'); 129 foreach ($field_form as $field_id) { 130 $field = content_fields($field_id, 'accion_especifica'); 131 $form['#field_info'][$field_id] = $field; 132 $form += (array) content_field_form($form, $form_state, $field); 133 } 134 } 135 foreach ($form['#validate'] as $id => $name) { 136 if ($name == 'proyectos_operativos_accion_especifica_crear_form_validate') { 137 $form['#validate'][$id] = 'proyectos_operativos_mcti_accion_especifica_crear_form_validate'; 138 } 139 } 140 $form['#submit'][] = 'proyectos_operativos_mcti_accion_especifica_crear_form_submit'; 74 $form['#mensaje_mostrar'] = t('Quedan @asignar% de ponderación en las Acciones EspecÃficas.', array('@asignar' => $et)); 75 76 //agregando el campo geo 77 if (variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE)) { 78 $arreglo = array( 79 'field_accion_esp_geo' => 'field_accion_esp_geo', 80 ); 81 if (is_array($fields) && count($fields)) { 82 foreach ($fields as $field_id => $field) { 83 if (array_key_exists($field_id, $arreglo)) { 84 $field_form[] = $field_id; 85 $form['#proyectos_operativos_fields'][] = $field_id; 86 } 87 elseif (variable_get('proyectos_operativos_ac_muestra_geo_' . $field_id, FALSE)) { 88 $field_form[] = $field_id; 89 $form['#proyectos_operativos_fields'][] = $field_id; 90 } 91 } 92 } 93 94 if (is_array($field_form) && count($field_form)) { 95 module_load_include('inc', 'content', 'includes/content.node_form'); 96 foreach ($field_form as $field_id) { 97 $field = content_fields($field_id, 'accion_especifica'); 98 $form['#field_info'][$field_id] = $field; 99 $form += (array) content_field_form($form, $form_state, $field); 100 } 101 } 102 } 103 foreach ($form['#validate'] as $id => $name) { 104 if ($name == 'proyectos_operativos_accion_especifica_crear_form_validate') { 105 $form['#validate'][$id] = 'proyectos_operativos_mcti_accion_especifica_crear_form_validate'; 106 } 107 } 108 $nuevo_submit = array(); 109 foreach ($form['#submit'] as $id => $name) { 110 if ($name == 'proyectos_operativos_accion_especifica_crear_form_submit') { 111 $nuevo_submit[] = 'proyectos_operativos_mcti_accion_especifica_crear_form_submit'; 112 } 113 $nuevo_submit[] = $name; 114 } 115 $form['#esplurianual'] = ($proyecto->field_proyecto_plurianual['value'] == 'SI') ? 1 : 0; 116 $form['#submit'] = $nuevo_submit; 141 117 } 142 118 } … … 155 131 drupal_add_js($proyectos_operativos_path . '/js/accion_especifica.js'); 156 132 drupal_add_js($form['#format_number'], 'setting'); 133 drupal_add_js(array('accion_esp' => array('unidadmpers' => $form['#personas'])), 'setting'); 157 134 //validamos que el porc sea mayor que cero 158 135 if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] >= 100) { 159 136 form_set_error('field_accion_esp_ponderacion', t('La ponderaciones de la Acción especifica debe ser menor que 100')); 160 137 } 138 161 139 //validamos que el porc sea mayor que cero 162 140 if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] <= 0) { … … 166 144 $suma_porc = $form['#ejecucion'] + $form_state['values']['field_accion_esp_ponderacion'][0]['value']; 167 145 if ($suma_porc > 100) { 168 form_set_error('field_accion_esp_ponderacion', t('La suma de las ponderaciones de la Acción especifica debe ser menor o igual a 1oo%')); 169 } 146 form_set_error('field_accion_esp_ponderacion', t('La suma de las ponderaciones de la Acción especifica debe ser menor o igual a 100%')); 147 } 148 // validamos que la cantidad de acciones permitidas cumpla con la minima permitida 149 if (variable_get('accion_especifica_100_ponderation', 0) && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] >= 100) { 150 form_set_error('field_accion_esp_ponderacion', t('La ponderación de la Acción especifica debe ser menor o igual a 100%')); 151 } 170 152 //validamos que la ponderacion no se encuentre repetida 171 153 if (!variable_get('accion_especifica_allow_ponderation', 0) && isset($form['#porcentajes'][$form_state['values']['field_accion_esp_ponderacion'][0]['value']])) { … … 211 193 form_set_error('field_accion_esp_metaf', t('La Distribución de la Meta FisÃca de la Acción especifica debe tener al menos un resultado')); 212 194 } 195 /* 196 $personas = $form['#personas']; 197 if (count($personas) && isset($personas[$form_state['values']['field_accion_esp_unidadm'][0]['value']])) { 198 $totalpersonas = $form_state['values']['field_accion_esp_meta_m'][0]['value'] + $form_state['values']['field_accion_esp_meta_f'][0]['value']; 199 if ($totalpersonas != $suma) { 200 form_set_error('field_accion_esp_meta_m', t('El total de Distribución de la Meta FisÃca de la Acción especifica debe ser igual a la cantidad de personas')); 201 } 202 } 203 */ 213 204 } 214 205 //validamos la accion especifica 215 206 if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) { 216 207 $sumap = 0; 217 foreach 208 foreach($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) { 218 209 if (is_numeric($id_programacion)) { 219 210 for ($i = 0; $i < 12; $i++) { … … 233 224 $first_field = FALSE; 234 225 if (count($form['#fields_financiamiento'])) { 235 foreach 226 foreach($form['#fields_financiamiento'] as $field_id) { 236 227 $start = (float) $form_state['values'][$field_id][0]['value']; 237 228 $start = number_format($start, $form['#format_number']['format_number']['decimals'], '.', ''); … … 253 244 if ($first_field && $sumaf != $sumap) { 254 245 form_set_error($first_field, t('Las fuentes de financiamiento (@f_financiamiento) deben ser igual a la programación presupuestaria (@fuente)', array('@fuente' => number_format($sumap, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@f_financiamiento' => number_format($sumaf, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep'])))); 255 }256 //validamos que la suma de la programacion financiera sea + las otras acciones sean inferiores o iguales a la suma total del proyecto257 $sumaT = $form['#montos'] +$sumap;258 if ($suma_porc == 100 && $sumaT < $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {259 form_set_error('field_accion_esp_programacion', t('La suma de los montos de las acciones especificas (@monto) debe ser menor igual al monto anual del proyecto (@fuente) cuando las ponderaciones de las Acciones EspecÃficas sume 100%', array('@fuente' => number_format($form['#proyecto']->field_proyecto_monto_anual[0]['value'], $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto' => number_format($sumaT, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));260 }261 elseif ($suma_porc < 100 && $sumaT == $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {262 form_set_error('field_accion_esp_ponderacion', t('La suma de las ponderaciones de la Acción especifica debe ser menor o igual a 100% (@suma_porc % alcanzado) y el monto por asignar no es suficiente para nuevas Acciones (Monto Asignado: @monto_asignado Bs, Monto del proyecto: @monto_proyecto Bs)', array('@suma_porc' => number_format($suma_porc, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto_asignado' => number_format($sumaT, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto_proyecto' => number_format($form['#proyecto']->field_proyecto_monto_anual[0]['value'], $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));263 246 } 264 247 } … … 277 260 */ 278 261 function theme_proyectos_operativos_accion_especifica_mcti_crear_form($form) { 279 $output = '';262 $output = ''; 280 263 if (!$form['#proyecto_completed']) { 281 264 $output .= '<div id="mensaje-mostrar" class="mensaje mensaje-mostrar" style="color:red;font-weight: bold;">' . $form['#mensaje_mostrar'] . '</div>'; … … 342 325 $output .= '<fieldset><legend>' . t('Fuentes de Financiamiento') . '</legend>' . theme('table', array(), $rows) . '</fieldset>'; 343 326 } 344 $localizacion = variable_get('proyectos_operativos_muestra_ localizacion_accion', TRUE);327 $localizacion = variable_get('proyectos_operativos_muestra_accion_esp', TRUE); 345 328 if ($localizacion) { 346 329 $output .= '<fieldset><legend>' . t('Localización Geográfica') . '</legend>'; … … 353 336 if ($geo) { 354 337 $output .= '<fieldset><legend>' . t('Localización Geográfica de Ejecución') . '</legend>'; 355 // $output .= drupal_render($form['field_accion_esp_localizacion']) . drupal_render($form['field_accion_esp_latitud']) . drupal_render($form['field_accion_esp_longitud']);356 338 $output .= drupal_render($form['field_accion_esp_geo']); 357 339 $output .= '</fieldset>'; … … 412 394 $node_type = content_types('accion_especifica'); 413 395 if ($op != t('Cancelar')) { 414 if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) {415 $sumap = 0;416 foreach ($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {417 //obtener la fecha de inicio y fin418 $mes = explode('-', $form_state['values']['field_accion_esp_fechai'][0]['value']);419 $mes_inicio = 0;420 if (count($mes)) {421 $mes_inicio = $mes[1] - 1;422 }423 //obtener la fecha de inicio y fin424 $mes = explode('-', $form_state['values']['field_accion_esp_fechaf'][0]['value']);425 $mes_final = 0;426 if (count($mes)) {427 $mes_final = $mes[1] - 1;428 }429 if (is_numeric($id_programacion)) {430 for ($i = 0; $i < 12; $i++) {431 if ($mes_inicio <= $i && $mes_final >= $i) {432 $valor = $i ? 'value_' . $i : 'value';433 $sumap += (float) $programacion[$valor];434 }435 }436 }437 }438 }439 $sumaf = 0;440 396 //validamos el financiamiento 441 397 $first_field = FALSE; … … 453 409 } 454 410 } 455 $sumaT = $form['#montos'] + $sumap; 456 db_query("UPDATE {content_type_proyectos_operativos} SET field_proyecto_monto_anual_value = %d WHERE nid = %d", $sumaT, $form['#proyecto']->nid); 457 db_query("UPDATE {content_type_accion_especifica} SET field_accion_total_financia_value = %d WHERE field_accion_esp_proyecto_nid = %d", $sumaT, $form['#proyecto']->nid); 411 $sumaT = $form['#montos'] + $sumaf; 412 //drupal_set_message('la suma' . $sumaT . '. la suma' . ',' . $sumaf . ', montos' . $form['#montos']); 413 $form['#proyecto']->field_proyecto_monto_anual[0]['value'] = $sumaT; 414 if (!$form['#esplurianual']) { 415 $form['#proyecto']->field_proyecto_total[0]['value'] = $sumaT; 416 } 458 417 } 459 418 }
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.