source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/proyecto/funciones_consulta_bd_proyecto.pages.inc @ 5932a31

stable
Last change on this file since 5932a31 was 5932a31, checked in by Sipes Apn <root@…>, 7 años ago

se realizo correciones de acceso

  • Propiedad mode establecida a 100755
File size: 15.7 KB
Línea 
1<?php
2  /**
3  * Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana
4  * @file proyecto_operativo_seguimiento.module
5  * Drupal part Module to code proyectos operativos module
6  * Copyright 2012 Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana (CENDITEL)
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21  *
22  * @author CENDITEL Merida - Ing. Diego Uzcategui
23  * @date 2013-02-07 // (anno-mes-dia)
24  * @author CENDITEL Merida - Phd Juan Vizcarrondo (Actualizacion de funciones)
25  * @date 2016-12-14 // (anno-mes-dia)
26  * @version 0.1
27  *
28  */
29 
30/**
31 *
32 */
33function _cargar_totales_seguimiento_aes_delproyecto($node, $mes = 0) {
34  //calcular asignado
35  $ids_valor = $mes > 0 ? 'value_' . $mes : 'value';
36  //calcular comprometido, causado, pagado de las acciones específicas
37  $seg_financiero_aes = array();
38  $TotalComprometidoProyecto = 0;
39  $TotalCausadoProyecto = 0;
40  $TotalPagadoProyecto = 0;
41  if ($node->type == 'proyectos_operativos'){
42    $it = 0;
43    foreach($node->field_proyecto_accion_esp as $accion) {
44      if ($accion['nid']) {
45        $accion_load = node_load($accion['nid']);
46        if ($accion_load && $accion_load->type == 'accion_especifica') {
47          //calcular asignado
48          $totalAsignadoAE=0;
49          foreach($accion_load->field_accion_esp_programacion as $partidascampo) {//recorrido a grupo de partidas en el $mes
50            $totalAsignadoAE += $partidascampo[$ids_valor];
51          }
52          //calcular valor reformulado
53          if(_mes_dentro_de_duracion_ae_proyecto($accion_load, $mes)) {
54            $variacion_ref_total_asignado = _seguimiento_mesactual_total_ae_deproyecto_reformulaciones_load($accion_load, $mes);
55          }
56          else {
57            $variacion_ref_total_asignado = 0;
58          }
59          $consulta_totales_seguimiento_mes = _seguimiento_mesactual_partida_ae_deproyecto_totales_load($accion_load, $mes);
60          $idnodoAE= $accion_load->nid;
61          $nombreAE= $accion_load->title;
62          $totalComprometidoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalcomprometido'])? $consulta_totales_seguimiento_mes['segmespartidastotales']['totalcomprometido']:0;
63          $totalCausadoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalcausado'])?$consulta_totales_seguimiento_mes['segmespartidastotales']['totalcausado']:0;
64          $totalPagadoAE = isset($consulta_totales_seguimiento_mes['segmespartidastotales']['totalpagado'])?$consulta_totales_seguimiento_mes['segmespartidastotales']['totalpagado']:0;
65          $seg_financiero_aes[$it]= array(
66            'idnodosAEs' => $idnodoAE,
67            'nombreAEs' => $nombreAE,
68            'totalAsignadoAEs' => $totalAsignadoAE + $variacion_ref_total_asignado,
69            'totalComprometidoAEs' => $totalComprometidoAE,
70            'totalCausadoAEs' => $totalCausadoAE,
71            'totalPagadoAEs' => $totalPagadoAE,
72          );
73          $TotalAsignadoProyecto += $seg_financiero_aes[$it]['totalAsignadoAEs'];
74          $TotalComprometidoProyecto += $seg_financiero_aes[$it]['totalComprometidoAEs'];
75          $TotalCausadoProyecto += $seg_financiero_aes[$it]['totalCausadoAEs'];
76          $TotalPagadoProyecto += $seg_financiero_aes[$it]['totalPagadoAEs'];
77          $it++;
78        }
79      }
80    }
81  }
82  $seg_financiero_proyecto = array(
83    'idnodoProyecto' => $node->nid,
84    'nombreProyecto' => $node->title,
85    'TotalAsignadoProyecto' => $TotalAsignadoProyecto,
86    'TotalComprometidoProyecto' => $TotalComprometidoProyecto,
87    'TotalCausadoProyecto' => $TotalCausadoProyecto,
88    'TotalPagadoProyecto' => $TotalPagadoProyecto,
89  );
90  $seguimiento_financiero_proyecto = array(
91    'seg_financiero_aes' => $seg_financiero_aes,
92    'seg_financiero_proyecto' => $seg_financiero_proyecto,
93  );
94  return $seguimiento_financiero_proyecto;
95}
96
97
98function _cargar_asignado_mes_ae($node) {
99  $ftypes = array(
100    'value' => t('January'),
101    'value_1' => t('February'),
102    'value_2' => t('March'),
103    'value_3' => t('April'),
104    'value_4' => t('May'),
105    'value_5' => t('June'),
106    'value_6' => t('July'),
107    'value_7' => t('August'),
108    'value_8' => t('September'),
109    'value_9' => t('Octuber'),
110    'value_10' => t('November'),
111    'value_11' => t('December'),
112  );
113  //calcular asignado
114  $asignadoMes = array();
115  $i = 0;
116  foreach($ftypes as $ids =>$texto) {
117    $asignadoMes[$i] = 0;
118    $i++;
119  }
120  $acumuladoAsignado = 0;
121  $id_field1 = 'field_accion_esp_programacion';
122  foreach($node->{$id_field1} as $partidascampo) {//recorrido a grupo de partidas
123    $i = 0;
124    foreach($ftypes as $ids =>$texto) {
125      $asignadoMes[$i] += $partidascampo[$ids];
126      $acumuladoAsignado += $partidascampo[$ids];
127      $i++;
128    }
129  }
130  return $asignadoMes;
131}
132
133function _totalizar_asignadofinanciero_de_aes_proyecto($node) {
134  $cant = 0;
135  $asignadoMesTotal = array();
136  for ( $i = 0 ; $i <= 11 ; $i++) {
137    $asignadoMesTotal[$i] = 0;
138  }
139  $asignado_financiero_aes = array();
140  foreach($node->field_proyecto_accion_esp as $accion) {
141    if ($accion['nid'] && $nid != $accion['nid']) {
142      $accion_load = node_load($accion['nid']);
143      if ($accion_load && $accion_load->type == 'accion_especifica') {
144        $asignado_financiero_ac = _cargar_asignado_mes_ae($accion_load);
145        $asignado_financiero_aes[] = $asignado_financiero_ac;
146        $it=0;
147        foreach($asignado_financiero_ac as $asig_meses) {
148          $asignadoMesTotal[$it] += $asig_meses;
149          $it++;
150        }
151      }
152      $cant++;
153    }
154    elseif($nid = $accion['nid']) {
155      $acciones_especificas[$ae->nid] = $ae;
156    }
157  }
158  return $asignadoMesTotal;
159}
160
161/**
162 * 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
163 */
164function _seguimiento_mesactual_proyecto_load($node, $mes = 0) {
165  $query = "SELECT * from {seguimiento_proyecto} where nid = %d and mes = %d";//consulta seguimiento
166  $queryResult =  db_query ($query, $node->nid, $mes);
167  $seg_arreglo = db_fetch_array($queryResult);
168  $query2 = "SELECT * from {seguimiento_proyecto_beneficiarios} where id_seg = %d";//consulta seguimiento de partidas
169  $queryResult2 =  db_query ( $query2, $seg_arreglo['id_seg']);
170  $seguimientos_beneficiarios = array ();
171  while ($seg_beneficiario_arreglo = db_fetch_array($queryResult2)) {
172    $seguimientos_beneficiarios[] = $seg_beneficiario_arreglo;
173  }
174  $seguimientomes = array(
175    'segmes' => $seg_arreglo,
176    'seguimientos_beneficiarios' => $seguimientos_beneficiarios,
177  );
178  return $seguimientomes;
179}
180
181
182/**
183 * consulta cantidad de planificado y ejecutado de meta física del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto)
184 * 13 marzo 2013, por Diego Uzcategui
185 */
186function _seguimiento_metafisica_todosmes_proyecto_load($node) {
187  $seguimiento_metafisica_todosmes = array();
188  $acumuladoPlanificado = 0;
189  //calcular planificado 
190  for($mes=0; $mes<12; $mes++){
191    $valor_camp = $mes > 0 ? 'value_' . $mes : 'value';
192    $planificadoMes = $node->field_proyecto_meta_fisica[0][$valor_camp];
193    $seguimientomes = array(
194      'planificadoMes' => $planificadoMes,
195      'ejecutadoMes' => 0,
196      'infocomplementaria_metafisica' => '',
197      'id_seg' => 0,
198    );
199    $seguimiento_metafisica_todosmes[] = $seguimientomes;
200    $acumuladoPlanificado += $planificadoMes;
201  }
202  $acumuladoEjecutado = 0;
203  $query = "SELECT * from {seguimiento_proyecto} where nid = %d";//consulta seguimiento
204  $queryResult = db_query($query, $node->nid);
205  while ($seg_metafisica_m = db_fetch_object ( $queryResult )) {
206    $mes_actual = $seg_metafisica_m->mes;
207    $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes'] = isset($seg_metafisica_m->ejecutadometafisica)? $seg_metafisica_m->ejecutadometafisica : 0;
208    $seguimiento_metafisica_todosmes[$mes_actual]['infocomplementaria_metafisica'] = isset($seg_metafisica_m->infocomplementaria_metafisica)? $seg_metafisica_m->infocomplementaria_metafisica : '';
209    $seguimiento_metafisica_todosmes[$mes_actual]['id_seg'] = isset($seg_metafisica_m->id_seg)? $seg_metafisica_m->id_seg : 0;
210    $acumuladoEjecutado += $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes'];
211  }
212  //totales
213  $acum = array(
214    'acumuladoPlanificado' => $acumuladoPlanificado,
215    'acumuladoEjecutado' => $acumuladoEjecutado,
216  );
217  //de cada mes y totales
218  $seguimiento_todos_meses_mf = array(
219    'seguimiento_metafisica_todosmes' => $seguimiento_metafisica_todosmes,
220    'acum' => $acum,
221  );
222  return $seguimiento_todos_meses_mf;
223}
224
225/**
226 * 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)
227 * 13 marzo 2013, por Diego Uzcategui
228 */
229function _seguimiento_financiero_todosmes_proyecto_load($node) {
230  $asignadoMesAE = array();
231  for($mes = 0; $mes < 12; $mes++){
232    $asignadoMesAE[$mes] = 0;
233  }
234  foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas
235    $accion_esp_load = node_load($accion['nid']);
236    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
237      foreach($accion_esp_load->field_accion_esp_programacion as $partidas_ae) {//recorrido a partidas de la accion especifica
238        for($mes = 0; $mes < 12; $mes++){//recorrido de los meses de cada partida
239          $valor_camp = $mes > 0 ? 'value_' . $mes : 'value';
240          $asignadoMesAE[$mes] += $partidas_ae[$valor_camp];//un mes en de una partida
241        }
242      }
243    }
244  }
245  //cargar en arreglo
246  $seguimiento_financiero_todosmes = array();
247  $acumuladoAsignado = 0;
248  for($mes = 0; $mes < 12; $mes++){
249    $seguimientomes = array(
250      'asignadoMes' => $asignadoMesAE[$mes],
251      'comprometidoMes' => 0,
252      'causadoMes' => 0,
253      'pagadoMes' => 0,
254      'infocomplementaria_metafinanciera' => '',
255      'id_seg' => 0,
256    );
257    $seguimiento_financiero_todosmes[] = $seguimientomes;
258    $acumuladoAsignado += $asignadoMesAE[$mes];
259  }
260  //informacion complementaria financiera proyecto
261  $query = "SELECT * from {seguimiento_proyecto} where nid = %d";//consulta seguimiento
262  $queryResult = db_query($query, $node->nid);
263  while ($seg_proyecto_m = db_fetch_object($queryResult)) {
264    //cargar en arreglo
265    $mes_actual = $seg_proyecto_m->mes;
266    $seguimiento_financiero_todosmes[$mes_actual]['infocomplementaria_metafinanciera'] = isset($seg_proyecto_m->infocomplementaria_metafinanciera)? $seg_proyecto_m->infocomplementaria_metafinanciera : '';
267    $seguimiento_financiero_todosmes[$mes_actual]['id_seg'] = isset($seg_proyecto_m->id_seg)? $seg_proyecto_m->id_seg : 0;
268  }
269  $comprometidoMesAE = array();
270  $causadoMesAE = array();
271  $pagadoMesAE = array();
272  for($mes=0; $mes<12; $mes++){
273    $comprometidoMesAE[$mes] = 0;
274    $causadoMesAE[$mes] = 0;
275    $pagadoMesAE[$mes] = 0;
276  }
277  foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas
278    $accion_esp_load = node_load($accion['nid']);
279    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
280      for($mes=0; $mes<12; $mes++){//recorrido de los meses de seguimiento
281        $query = "SELECT * from {seguimiento_aeproyecto} where nid = %d and mes = %d";//consulta seguimiento id
282        $queryResult =  db_query ($query, $accion_esp_load->nid, $mes);
283        $seg = db_fetch_object($queryResult) ;
284        $seg_identif = $seg->id_seg;
285        //totales de cada accion especifica en un mes
286        $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
287        $queryResult2 =  db_query ($query2, $seg_identif);
288        $seg_partida_total = db_fetch_object($queryResult2);
289        $comprometidoMesAE[$mes] += isset($seg_partida_total->totalcomprometido)? $seg_partida_total->totalcomprometido : 0;
290        $causadoMesAE[$mes] += isset($seg_partida_total->totalcausado)? $seg_partida_total->totalcausado : 0;
291        $pagadoMesAE[$mes] += isset($seg_partida_total->totalpagado)? $seg_partida_total->totalpagado : 0;
292      }
293    }
294  }
295  //cargar en arreglo
296  $acumuladoComprometido = 0;
297  $acumuladoCausado = 0;
298  $acumuladoPagado = 0;
299  for($mes = 0; $mes < 12; $mes++){
300    $seguimiento_financiero_todosmes[$mes]['comprometidoMes'] = isset($comprometidoMesAE[$mes])? $comprometidoMesAE[$mes] : 0;
301    $seguimiento_financiero_todosmes[$mes]['causadoMes'] = isset($causadoMesAE[$mes])? $causadoMesAE[$mes] : 0;
302    $seguimiento_financiero_todosmes[$mes]['pagadoMes'] = isset($pagadoMesAE[$mes])? $pagadoMesAE[$mes] : 0;
303    $acumuladoComprometido += $seguimiento_financiero_todosmes[$mes]['comprometidoMes'];
304    $acumuladoCausado += $seguimiento_financiero_todosmes[$mes]['causadoMes'];
305    $acumuladoPagado += $seguimiento_financiero_todosmes[$mes]['pagadoMes'];
306  }
307  //totales
308  $acum = array(
309    'acumuladoAsignado' => $acumuladoAsignado,
310    'acumuladoComprometido' => $acumuladoComprometido,
311    'acumuladoCausado' => $acumuladoCausado,
312    'acumuladoPagado' => $acumuladoPagado,
313  );
314  //de cada mes y totales
315  $seguimiento_todos_meses_financiero = array(
316    'seguimiento_financiero_todosmes' => $seguimiento_financiero_todosmes,
317    'acum' => $acum,
318  );
319  return $seguimiento_todos_meses_financiero;
320}
321
322/**
323 * consulta cantidad de beneficiarios del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto)
324 * 14 marzo 2013, por Diego Uzcategui
325 */
326function _seguimiento_beneficiario_todosmes_proyecto_load($node) {
327  $seguimiento_todosbeneficiarios_todosmes = array();
328  $cant_beneficiarios_meses = array();
329  for($mes = 1; $mes <= 12; $mes++){
330    $cant_beneficiarios_meses[$mes] = 0;
331  }
332  $total_benef = 0;
333  foreach($node->field_proyecto_beneficiario as $beneficiarios) {
334    $seguimiento_beneficiario = array(
335      'nombre' => $beneficiarios['value'],
336      'cant_meses' => $cant_beneficiarios_meses,
337      'total_benef' => $total_benef,
338    );
339    $seguimiento_todosbeneficiarios_todosmes[] = $seguimiento_beneficiario;
340  }
341  //consultar cantidad de beneficiarios
342  for($mes = 1; $mes <= 12; $mes++){
343    $query = "SELECT * from {seguimiento_proyecto} where nid = %d and mes = %d";//consulta seguimiento
344    $queryResult = db_query($query, $node->nid, $mes);
345    $seg = db_fetch_object($queryResult) ;
346    $seg_ident = $seg->id_seg;
347    $mes_seg = $seg->mes;
348    $query2 = "SELECT * from {seguimiento_proyecto_beneficiarios} where id_seg = %d";//consulta seguimiento de partidas
349    $queryResult2 = db_query($query2, $seg_ident);
350    while ($seg_beneficiario = db_fetch_object($queryResult2)){
351      $pos_benef = $seg_beneficiario->posicion_beneficiario;
352      $cantid_benef_mes = $seg_beneficiario->cant_beneficiarios_mes;
353      $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['cant_meses'][$mes_seg] = $cantid_benef_mes;
354      $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['total_benef'] += $cantid_benef_mes;
355    }
356  }
357  return $seguimiento_todosbeneficiarios_todosmes;
358}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.