source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/funciones_consulta_valores_reformulaciones.pages.inc

stableversion-3.0
Last change on this file was 303fae2, checked in by José Gregorio Puentes <jpuentes@…>, 9 años ago

se agregaron los modulos

  • Propiedad mode establecida a 100755
File size: 9.3 KB
Línea 
1<?php
2
3/*
4 * Consulta la cantidad de asignado reformulado para TODAS LAS PARTIDAS de una accion especifica.
5 * por Diego Uzcategui, el 18-04-13
6 */
7function _seguimiento_mesactual_partida_ae_deproyecto_reformulaciones_load($node, $mes = 0) {
8 
9  //cargar el nodo del proyecto al que pertenece
10  $nodoproyecto = node_load($node->field_accion_esp_proyecto[0]['nid']);
11 
12  //cargar identificadores de reformulaciones aprobadas
13  $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto);
14  $condicion_consulta_ref_aprob='no tiene';
15  $primero = 1;
16  foreach ($reformulaciones_aprobadas as $ref_aprob){
17    if($primero == 1){
18      $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql
19      $primero = 0;
20    }else{
21      $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref'];
22    }
23  }
24   
25  //identificar el nombre del campo en bd segun el mes
26  if(($mes >= 0)&&($mes < 12)){
27    $valor1 = $mes > 0 ? 'value_' . $mes : 'value';
28  }else{
29    $valor1 = 'por asignar';
30  }
31 
32  //identificar el nombre del campo para esta accion especifica $node->nid
33  $nombre_campo = 'field_accion_esp_programacion_'.$node->nid;
34 
35  $ref_arreglo=array();
36 
37  //realizar consulta
38  if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){
39   
40//    $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento
41$query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' ";
42    $query .= "AND (".$condicion_consulta_ref_aprob.")";
43//echo $query;   
44    $queryResult =  db_query ( $query, $nodoproyecto->nid, $nombre_campo);
45   
46    while ($ref_a = db_fetch_array ( $queryResult ) ){
47
48      $ref_a_i['id_ref'] = $ref_a['id_ref'];
49      $ref_a_i['partida'] = $ref_a['partida'];
50      $ref_a_i['asignado_mes'] = $ref_a[$valor1];
51      $ref_a_i['tomado_en_cuenta'] = 0;
52      $ref_arreglo[] = $ref_a_i;
53    }
54  }
55
56  return $ref_arreglo;
57}
58
59
60/*
61 * Consulta la cantidad de asignado reformulado total (TODAS LAS PARTIDAS) de una accion especifica para un mes especifico.
62 * Igual al anterior pero es solo el total
63 * por Diego Uzcategui, el 18-04-13
64 */
65function _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($node, $mes = 0) {
66 
67  //cargar el nodo del proyecto al que pertenece
68  $nodoproyecto = node_load($node->field_accion_esp_proyecto[0]['nid']);
69 
70  //cargar identificadores de reformulaciones aprobadas
71  $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto);
72  $condicion_consulta_ref_aprob='no tiene';
73  $primero = 1;
74  foreach ($reformulaciones_aprobadas as $ref_aprob){
75    if($primero == 1){
76      $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql
77      $primero = 0;
78    }else{
79      $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref'];
80    }
81  }
82   
83  //identificar el nombre del campo en bd segun el mes
84  if(($mes >= 0)&&($mes < 12)){
85    $valor1 = $mes > 0 ? 'value_' . $mes : 'value';
86  }else{
87    $valor1 = 'por asignar';
88  }
89 
90  //identificar el nombre del campo para esta accion especifica $node->nid
91  $nombre_campo = 'field_accion_esp_programacion_'.$node->nid;
92 
93  //variacion total de la accion especifica
94  $ref_total_asignado = 0;
95  //realizar consulta
96  if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){
97   
98//    $query = "SELECT SUM(".$valor1.") AS total FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento
99    $query = "SELECT SUM(".$valor1.") AS total FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' ";
100    $query .= "AND (".$condicion_consulta_ref_aprob.")";
101   
102    $queryResult =  db_query ( $query, $nodoproyecto->nid, $nombre_campo);
103   
104    $ref_a = db_fetch_array ( $queryResult );
105   
106    $ref_total_asignado = $ref_a['total'];
107
108  }
109
110  $ref_total_asignado = isset($ref_total_asignado) ? $ref_total_asignado : 0;
111  return $ref_total_asignado;
112}
113
114/*
115 * Consulta la cantidad de asignado reformulado total (TODAS LAS PARTIDAS) de todas las acciones especificas
116 * Similar al anterior pero para todo el proyecto
117 * por Diego Uzcategui, el 18-04-13
118 */
119function _seguimiento_mesactual_total_proyecto_reformulaciones_load($node, $mes = 0) {
120 
121  //cargar el nodo del proyecto al que pertenece
122  $nodoproyecto = $node;
123 
124  $variacion_total_ref_asignado = 0;
125 
126  foreach($nodoproyecto->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones especificas
127    $accion_especifica = node_load($accion['nid']);
128    if ($accion_especifica && $accion_especifica->type == 'accion_especifica') {//accion especifica cargada
129   
130      //variación por reformulado de una accion
131      $variacion_ae_ref_asignado = _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($accion_especifica, $mes);
132   
133      $variacion_total_ref_asignado += $variacion_ae_ref_asignado;
134    }
135  }
136
137  $variacion_total_ref_asignado = isset($variacion_total_ref_asignado) ? $variacion_total_ref_asignado : 0;
138  return $variacion_total_ref_asignado;
139}
140
141/*
142 * Consulta la calcula la variacion de la meta fisica de una ae
143 * por Diego Uzcategui, el 18-04-13
144 */
145function _seguimiento_mesactual_metafisica_ae_deproyecto_reformulaciones_load($node, $mes = 0) {
146   
147  //cargar el nodo del proyecto al que pertenece
148  $nodoproyecto = node_load($node->field_accion_esp_proyecto[0]['nid']);
149 
150  //cargar identificadores de reformulaciones aprobadas
151  $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto);
152  $condicion_consulta_ref_aprob='no tiene';
153  $primero = 1;
154  foreach ($reformulaciones_aprobadas as $ref_aprob){
155    if($primero == 1){
156      $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql
157      $primero = 0;
158    }else{
159      $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref'];
160    }
161  }
162   
163  //identificar el nombre del campo en bd segun el mes
164  if(($mes >= 0)&&($mes < 12)){
165    $valor1 = $mes > 0 ? 'value_' . $mes : 'value';
166  }else{
167    $valor1 = 'por asignar';
168  }
169 
170  //identificar el nombre del campo (meta fisica) para esta accion especifica $node->nid
171  $nombre_campo = 'field_accion_esp_metaf_'.$node->nid;
172 
173  $variacion_planificado_mes = 0;
174 
175  //realizar consulta
176  if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){
177   
178//    $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento
179$query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' ";
180    $query .= "AND (".$condicion_consulta_ref_aprob.")";
181   
182    $queryResult =  db_query ( $query, $nodoproyecto->nid, $nombre_campo);
183   
184    $ref_a = db_fetch_array ( $queryResult );
185    $variacion_planificado_mes = $ref_a[$valor1];
186
187  }
188
189  $variacion_planificado_mes = isset($variacion_planificado_mes)? $variacion_planificado_mes : 0;
190  return $variacion_planificado_mes;
191 
192}
193
194
195/*
196 * Consulta la variacion de la meta fisica del proyecto
197 * por Diego Uzcategui, el 18-04-13
198 */
199function _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $mes = 0) {
200   
201  //cargar el nodo del proyecto al que pertenece
202  $nodoproyecto = $node;
203 
204  //cargar identificadores de reformulaciones aprobadas
205  $reformulaciones_aprobadas = _proyectos_reformula_all_load($nodoproyecto);
206  $condicion_consulta_ref_aprob='no tiene';
207  $primero = 1;
208  foreach ($reformulaciones_aprobadas as $ref_aprob){
209    if($primero == 1){
210      $condicion_consulta_ref_aprob = 'id_ref='.$ref_aprob['id_ref'];//construir condicion sql
211      $primero = 0;
212    }else{
213      $condicion_consulta_ref_aprob .= ' OR '.'id_ref='.$ref_aprob['id_ref'];
214    }
215  }
216   
217  //identificar el nombre del campo en bd segun el mes
218  if(($mes >= 0)&&($mes < 12)){
219    $valor1 = $mes > 0 ? 'value_' . $mes : 'value';
220  }else{
221    $valor1 = 'por asignar';
222  }
223 
224  //identificar el nombre del campo (meta fisica) para esta accion especifica $node->nid
225  $nombre_campo = 'field_proyecto_meta_fisica';
226 
227  $variacion_planificado_mes = 0;
228 
229  //realizar consulta
230  if(($valor1 != 'por asignar')&&($condicion_consulta_ref_aprob != 'no tiene')){
231   
232//    $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' AND ".$valor1.">0 ";//consulta seguimiento
233    $query = "SELECT * FROM {proyectos_reformula} WHERE nid=%d AND field_name='%s' ";
234    $query .= "AND (".$condicion_consulta_ref_aprob.")";
235   
236    $queryResult =  db_query ( $query, $nodoproyecto->nid, $nombre_campo);
237   
238    $ref_a = db_fetch_array ( $queryResult );
239    $variacion_planificado_mes = $ref_a[$valor1];
240
241  }
242
243  $variacion_planificado_mes = isset($variacion_planificado_mes) ? $variacion_planificado_mes : 0;
244  return $variacion_planificado_mes;
245 
246}
247
248
249/*
250 * Consulta la variacion de la meta fisica del proyecto
251 * por Diego Uzcategui, el 02-05-13
252 */
253function _variacion_monto_total_por_reformulaciones_proyecto_load($node) {
254 
255  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
256  $result = db_query("SELECT SUM(variacion) AS variacion_total FROM {proyectos_reformular} WHERE nid = %d AND estado = %d ", $node->nid, $estado_aprobado);
257  $reformulaciones_parobadas = db_fetch_array($result);
258  $variacion_total_aprobada = isset($reformulaciones_parobadas['variacion_total']) ? $reformulaciones_parobadas['variacion_total']:0;
259 
260  return $variacion_total_aprobada;
261 
262}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.