source: sipp/0.3-stable-modules/reportes_sipp/includes/funciones_consulta_bd_proyecto_solo_aprobado.pages.inc

0.3-stable
Last change on this file was a0b4327, checked in by José Gregorio Puentes <jpuentes@…>, 9 años ago

Se agregaron los nuevos cambios a los modulos

  • Propiedad mode establecida a 100644
File size: 10.2 KB
Línea 
1<?php
2  /**
3  * Sistema Integral de Planificación y Presupuesto (SIPP)
4  * @file reportes_sipp.module
5  * Drupal part Module to Sistema Integral de Planificación y Presupuesto (SIPP)
6  * Copyright 2013 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 Uzcátegui
23  * @date 2013-05-01 // (a&#241;o-mes-dia)
24  * @version 0.1 // (0.1)
25  *
26  */
27 
28  /**
29 * consulta cantidad de planificado y ejecutado de meta física del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto)
30 * 02 mayo 2013, por Diego Uzcategui
31 */
32function _seguimiento_metafisica_todosmes_proyecto_load_solo_datos_aprobados($node) {
33 
34  $seguimiento_metafisica_todosmes = array();
35 
36  $acumuladoPlanificado = 0;
37  //calcular planificado 
38  for($mes=0; $mes<12; $mes++){
39    $valor_camp = $mes > 0 ? 'value_' . $mes : 'value';
40    $planificadoMes = $node->field_proyecto_meta_fisica[0][$valor_camp];
41    $seguimientomes = array(
42      'planificadoMes' => $planificadoMes,
43      'ejecutadoMes' => 0,
44      'infocomplementaria_metafisica' => '',
45      'id_seg' => 0,
46    );
47    $seguimiento_metafisica_todosmes[] = $seguimientomes;
48   
49    $acumuladoPlanificado += $planificadoMes;
50  }
51 
52  $estado_aprobado = variable_get('acciones_centralizadas_state_aprobado', NULL);
53 
54  $acumuladoEjecutado = 0;
55  $query = "SELECT * from {seguimiento_proyecto} where nid=%d AND estado=%d ";//consulta seguimiento
56  $queryResult =  db_query ( $query, $node->nid, $estado_aprobado);
57 
58  while ( $seg_metafisica_m = db_fetch_object ( $queryResult ))
59  {
60    $mes_actual = $seg_metafisica_m->mes;
61    $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes'] = isset($seg_metafisica_m->ejecutadometafisica)? $seg_metafisica_m->ejecutadometafisica : 0;
62    $seguimiento_metafisica_todosmes[$mes_actual]['infocomplementaria_metafisica'] = isset($seg_metafisica_m->infocomplementaria_metafisica)? $seg_metafisica_m->infocomplementaria_metafisica : '';
63    $seguimiento_metafisica_todosmes[$mes_actual]['id_seg'] = isset($seg_metafisica_m->id_seg)? $seg_metafisica_m->id_seg : 0;
64   
65    $acumuladoEjecutado += $seguimiento_metafisica_todosmes[$mes_actual]['ejecutadoMes'];
66  }
67 
68  //totales
69  $acum = array(
70    'acumuladoPlanificado' => $acumuladoPlanificado,
71    'acumuladoEjecutado' => $acumuladoEjecutado,
72  );
73  //de cada mes y totales
74  $seguimiento_todos_meses_mf = array(
75    'seguimiento_metafisica_todosmes' => $seguimiento_metafisica_todosmes,
76    'acum' => $acum,
77  );
78
79  return $seguimiento_todos_meses_mf;
80}
81
82/**
83 * 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)
84 * 02 mayo 2013, por Diego Uzcategui
85 */
86function _seguimiento_financiero_todosmes_proyecto_load_solo_datos_aprobados($node) {
87 
88  $asignadoMesAE = array();
89  for($mes=0; $mes<12; $mes++){
90    $asignadoMesAE[$mes] = 0;
91  }
92  foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas
93    $accion_esp_load = node_load($accion['nid']);
94    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
95      foreach($accion_esp_load->field_accion_esp_programacion as $partidas_ae) {//recorrido a partidas de la accion especifica
96        for($mes=0; $mes<12; $mes++){//recorrido de los meses de cada partida
97          $valor_camp = $mes > 0 ? 'value_' . $mes : 'value';
98          $asignadoMesAE[$mes] += $partidas_ae[$valor_camp];//un mes en de una partida
99        }
100      }
101    }
102  }
103 
104  //cargar en arreglo
105  $seguimiento_financiero_todosmes = array();
106  $acumuladoAsignado = 0;
107  for($mes=0; $mes<12; $mes++){
108    $seguimientomes = array(
109      'asignadoMes' => $asignadoMesAE[$mes],
110      'comprometidoMes' => 0,
111      'causadoMes' => 0,
112      'pagadoMes' => 0,
113      'infocomplementaria_metafinanciera' => '',
114      'id_seg' => 0,
115    );
116    $seguimiento_financiero_todosmes[] = $seguimientomes;
117    $acumuladoAsignado += $asignadoMesAE[$mes];
118  }
119 
120  //informacion complementaria financiera proyecto
121  $query = "SELECT * from {seguimiento_proyecto} where nid=%d";//consulta seguimiento
122  $queryResult =  db_query ( $query, $node->nid);
123 
124  while ( $seg_proyecto_m = db_fetch_object ( $queryResult ))
125  {
126    //cargar en arreglo
127    $mes_actual = $seg_proyecto_m->mes;
128    $seguimiento_financiero_todosmes[$mes_actual]['infocomplementaria_metafinanciera'] = isset($seg_proyecto_m->infocomplementaria_metafinanciera)? $seg_proyecto_m->infocomplementaria_metafinanciera : '';
129    $seguimiento_financiero_todosmes[$mes_actual]['id_seg'] = isset($seg_proyecto_m->id_seg)? $seg_proyecto_m->id_seg : 0;
130  }
131 
132  $estado_aprobado = variable_get('acciones_centralizadas_state_aprobado', NULL);
133
134  $comprometidoMesAE = array();
135  $causadoMesAE = array();
136  $pagadoMesAE = array();
137  for($mes=0; $mes<12; $mes++){
138    $comprometidoMesAE[$mes] = 0;
139    $causadoMesAE[$mes] = 0;
140    $pagadoMesAE[$mes] = 0;
141  }
142  foreach($node->field_proyecto_accion_esp as $accion) {//recorrido por todas las acciones específicas
143    $accion_esp_load = node_load($accion['nid']);
144    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
145   
146      for($mes=0; $mes<12; $mes++){//recorrido de los meses de seguimiento
147        $query = "SELECT * from {seguimiento_aeproyecto} where nid=%d and mes=%d AND estado=%d";//consulta seguimiento id
148        $queryResult =  db_query ( $query, $accion_esp_load->nid, $mes, $estado_aprobado);
149        $seg = db_fetch_object ( $queryResult ) ;
150        $seg_identif = $seg->id_seg;
151       
152        //totales de cada accion especifica en un mes
153        $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
154        $queryResult2 =  db_query ( $query2, $seg_identif);
155 
156        $seg_partida_total = db_fetch_object ( $queryResult2 );
157        $comprometidoMesAE[$mes] += isset($seg_partida_total->totalcomprometido)? $seg_partida_total->totalcomprometido : 0;
158        $causadoMesAE[$mes] += isset($seg_partida_total->totalcausado)? $seg_partida_total->totalcausado : 0;
159        $pagadoMesAE[$mes] += isset($seg_partida_total->totalpagado)? $seg_partida_total->totalpagado : 0;
160
161      }
162    }
163  }
164 
165  //cargar en arreglo
166  $acumuladoComprometido = 0;
167  $acumuladoCausado = 0;
168  $acumuladoPagado = 0;
169  for($mes=0; $mes<12; $mes++){
170   
171    $seguimiento_financiero_todosmes[$mes]['comprometidoMes'] = isset($comprometidoMesAE[$mes])? $comprometidoMesAE[$mes] : 0;
172    $seguimiento_financiero_todosmes[$mes]['causadoMes'] = isset($causadoMesAE[$mes])? $causadoMesAE[$mes] : 0;
173    $seguimiento_financiero_todosmes[$mes]['pagadoMes'] = isset($pagadoMesAE[$mes])? $pagadoMesAE[$mes] : 0;
174   
175    $acumuladoComprometido += $seguimiento_financiero_todosmes[$mes]['comprometidoMes'];
176    $acumuladoCausado += $seguimiento_financiero_todosmes[$mes]['causadoMes'];
177    $acumuladoPagado += $seguimiento_financiero_todosmes[$mes]['pagadoMes'];
178
179  }
180 
181  //totales
182  $acum = array(
183    //'acumuladoAsignado' => $acumuladoAsignado,//no incluye las reformulaciones
184    'acumuladoComprometido' => $acumuladoComprometido,
185    'acumuladoCausado' => $acumuladoCausado,
186    'acumuladoPagado' => $acumuladoPagado,
187  );
188  //de cada mes y totales
189  $seguimiento_todos_meses_financiero = array(
190    'seguimiento_financiero_todosmes' => $seguimiento_financiero_todosmes,
191    'acum' => $acum,
192  );
193
194  return $seguimiento_todos_meses_financiero;
195}
196
197/**
198 * consulta cantidad de beneficiarios del proyecto, para todos los meses (funcion utilizada para mostrar los datos seguimiento proyecto)
199 * 02 mayo 2013, por Diego Uzcategui
200 */
201function _seguimiento_beneficiario_todosmes_proyecto_load_solo_datos_aprobados($node) {
202 
203  $seguimiento_todosbeneficiarios_todosmes = array();
204 
205  $cant_beneficiarios_meses = array();
206  for($mes=0; $mes<12; $mes++){
207    $cant_beneficiarios_meses[$mes] = 0;
208  }
209  $total_benef = 0;
210  foreach($node->field_proyecto_beneficiario as $beneficiarios) {
211    $seguimiento_beneficiario = array(
212      'nombre' => $beneficiarios['value'],
213      'cant_meses' => $cant_beneficiarios_meses,
214      'total_benef' => $total_benef,
215    );
216    $seguimiento_todosbeneficiarios_todosmes[] = $seguimiento_beneficiario;
217  }
218 
219  $estado_aprobado = variable_get('acciones_centralizadas_state_aprobado', NULL);
220 
221  //consultar cantidad de beneficiarios
222  for($mes=0; $mes<12; $mes++){
223    $query = "SELECT * from {seguimiento_proyecto} where nid=%d and mes=%d AND estado=%d ";//consulta seguimiento
224    $queryResult =  db_query ( $query, $node->nid, $mes, $estado_aprobado);
225    $seg = db_fetch_object ( $queryResult ) ;
226    $seg_ident = $seg->id_seg;
227    $mes_seg = $seg->mes;
228   
229    $query2 = "SELECT * from {seguimiento_proyecto_beneficiarios} where id_seg=%d";//consulta seguimiento de partidas
230    $queryResult2 =  db_query ( $query2, $seg_ident);
231   
232    while ( $seg_beneficiario = db_fetch_object ( $queryResult2 )){
233      $pos_benef = $seg_beneficiario->posicion_beneficiario;
234      $cantid_benef_mes = $seg_beneficiario->cant_beneficiarios_mes;
235      $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['cant_meses'][$mes_seg] = $cantid_benef_mes;
236      $seguimiento_todosbeneficiarios_todosmes[$pos_benef]['total_benef'] += $cantid_benef_mes;
237    }
238  }
239
240  return $seguimiento_todosbeneficiarios_todosmes;
241}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.