IESA
Programa de Feedback Gerencial y Liderazgo
 Todo Estructuras de Datos Archivos Funciones Variables
Actividad.class.php
Ir a la documentación de este archivo.
00001 <?php
00002 
00003 class Actividad{
00004 
00005         protected $dic_codigo;
00006         protected $act_descriptor;
00007         protected $prg_codigo;
00008         
00009         protected $prg_fec_ini;
00010         protected $prg_fec_fin;
00011         
00012 
00013         protected $dic_doc_codigo;
00014         protected $docente;
00015         protected $usuario_docente;
00016         protected $correo_docente1;
00017 
00018         protected $act_tact_codigo;
00019         protected $tact_descriptor;
00020         
00021         protected $prg_loc_codigo;
00022         protected $loc_descriptor;
00023 
00024         protected $mat_post_codigo;
00025         protected $mat_descriptor;
00026 
00027 
00033         private function limpiar(  ){
00034 
00035                 foreach( get_object_vars($this) as $name => $value )
00036                         switch( $name ){
00037                                 default: $this->{$name} = NULL; break;
00038                         }
00039 
00040         }
00041 
00053         public function getActividad( $data ){
00054 
00055                 $this->limpiar(  );
00056 
00057                 try{
00058 
00059                         $db = Database::getInstance(  );
00060 
00061                         $attr = array(  );
00062 
00063                         foreach( get_object_vars($this) as $name => $val )
00064                                 array_push( $attr, $name );
00065 
00066                         $query = 'SELECT '.implode( $attr, ', ' ).' FROM VW_ACTIVIDADES WHERE '.$data['where'];
00067                         
00068                         $consulta = $db->prepare( $query );
00069                         $consulta->execute( $data['data'] );
00070 
00071                         $resultado = $consulta->fetch( PDO::FETCH_ASSOC );
00072                         $consulta->closeCursor(  );
00073                         unset( $consulta );
00074 
00075                         if( !$resultado )
00076                                 return false;
00077                         else
00078                                 foreach( $resultado as $name => $value )
00079                                         $this->{$name} = $value;
00080 
00081                         return true;
00082                 }catch( PDOException $e ){ throw $e; }
00083         }
00084 
00097         public function getActividadPorId( $id ){
00098 
00099                 return $this->getActividad( array( 
00100                         'where' => 'dic_codigo = :id',
00101                         'data'=> array(
00102                                 ':id'=>$id
00103                         )
00104                 ));
00105 
00106         }
00107 
00115         public function getId(  ){ return $this->dic_codigo ? $this->dic_codigo : NULL; }
00116         
00124         public function getNombre(  ){ return $this->act_descriptor; }
00125 
00133         public function getFechaInicio(  ){
00134                 $date = preg_split( '[-]', substr($this->prg_fec_ini,0,10) ); return $date[2].'/'.$date[1].'/'.$date[0]; 
00135         }
00136 
00144         public function getFechaFin(  ){
00145                 $date = preg_split( '[-]', substr($this->prg_fec_fin,0,10) ); return $date[2].'/'.$date[1].'/'.$date[0];
00146         }
00147 
00155         public function getPrograma(  ){ return $this->prg_codigo; }
00156 
00164         public function getProfesor(  ){
00165 
00166                 $rt = new stdClass(  );
00167                 $rt->Id = $this->dic_doc_codigo;
00168                 $rt->Nombre = $this->docente;
00169                 $rt->Cuenta = $this->usuario_docente;
00170                 $rt->Correo = $this->correo_docente1;
00171 
00172                 return $rt;
00173         }
00174 
00182         public function getTipo(  ){
00183                 $rt = new stdClass(  );
00184                 $rt->Id = $this->act_tact_codigo;
00185                 $rt->Nombre = $this->tact_descriptor;
00186                 return $rt;
00187         }
00188 
00196         public function getLocalidad(  ){
00197                 $rt = new stdClass(  );
00198                 $rt->Id = $this->prg_loc_codigo;
00199                 $rt->Nombre = $this->loc_descriptor;
00200                 return $rt;
00201         }
00202 
00210         public function getMateria(  ){
00211                 $rt = new stdClass(  );
00212                 $rt->Id = $this->mat_post_codigo;
00213                 $rt->Nombre = $this->mat_descriptor;
00214                 return $rt;
00215         }
00216 
00225         public function getParticipantes(  ){
00226 
00227                 $participantes = array(  );
00228 
00229                 $db = Database::getInstance(  );
00230 
00231                 if( $this->act_tact_codigo == 8 )
00232                         $query = 
00233                         'SELECT a.ID_UNICO,a.NOMBRECOMPLETO as NOMBRE,a.CEDULA,a.CORREO_IESA as CORREO,b.par_clave as CLAVE,b.par_id as PAR_ID'
00234                         ." FROM VW_PARTICIPANTES_POST a LEFT JOIN participantes b ON (b.par_vista_id=a.ID_UNICO AND b.par_tipo='POSTGRADO' )"
00235                         .' WHERE a.MATCOD = :codigo GROUP BY a.ID_UNICO,a.NOMBRECOMPLETO,a.CEDULA,a.CORREO_IESA,b.par_clave,b.par_id'
00236                         .' ORDER BY b.par_id ASC';
00237                 else
00238                         $query = 'SELECT a.ID_UNICO, a.NOMBRE, a.CEDULA, a.CORREO_DESEADO as CORREO, b.par_clave as CLAVE, b.par_id as PAR_ID'
00239                         ." FROM VW_PARTICIPANTES_DDG a LEFT JOIN participantes b ON ( b.par_vista_id = a.ID_UNICO AND b.par_tipo = 'DDG' ) "
00240                         .' WHERE a.PRG_CODIGO = :codigo GROUP BY a.ID_UNICO, a.NOMBRE, a.CEDULA, a.CORREO_DESEADO, b.par_clave, b.par_id'
00241                         .' ORDER BY correo DESC';
00242 
00243                 $consulta = $db->prepare( $query );
00244 
00245                 $consulta->execute( array( ':codigo' => ( $this->act_tact_codigo == 8 ? $this->mat_post_codigo : $this->prg_codigo ) ) );
00246 
00247                 while( $resultado = $consulta->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT ) ) {
00248 
00249                         $item = new stdClass(  );
00250 
00251                         $item->Id = $resultado['par_id'];
00252                         $item->VistaId = $resultado['id_unico'];
00253                         $item->Nombre = htmlentities( ucwords( strtolower( trim( $resultado['nombre'] ) ) ) );
00254                         $item->Cedula = $resultado['cedula'];
00255                         $item->Correo = $resultado['correo'];
00256                         $item->Clave = $resultado['clave'];
00257                         $item->Registrado = $resultado['par_id'] ? 1 : 0 ;
00258                         $item->Tipo = $this->act_tact_codigo == 8 ? 'POSTGRADO' : 'DDG';
00259 
00260                         array_push( $participantes, $item );
00261                 }
00262 
00263                 $consulta->closeCursor(  ); unset( $consulta );
00264 
00265                 return $participantes;
00266 
00267         }
00268 
00279         public function getParticipantesConCorreo(  ){
00280 
00281                 $participantes = array(  );
00282 
00283                 $db = Database::getInstance(  );
00284 
00285                 if( $this->act_tact_codigo == 8 )
00286                         $query = 
00287                                 'SELECT '
00288                                 .'a.ID_UNICO,a.NOMBRECOMPLETO as NOMBRE,a.CEDULA,a.CORREO_IESA as CORREO,b.par_clave as CLAVE,b.par_id as PAR_ID '
00289                                 ."FROM VW_PARTICIPANTES_POST a LEFT JOIN participantes b ON ( b.par_vista_id=a.ID_UNICO AND b.par_tipo='POSTGRADO' ) "
00290                                 ."WHERE a.MATCOD = :codigo AND a.CORREO_IESA IS NOT NULL AND a.CORREO_IESA <> '' "
00291                                 .'GROUP BY a.ID_UNICO,a.NOMBRECOMPLETO,a.CEDULA,a.CORREO_IESA, b.par_clave, b.par_id';
00292                 else
00293                         $query =
00294                                 'SELECT a.ID_UNICO, a.NOMBRE, a.CEDULA, a.CORREO_DESEADO as CORREO, b.par_clave as CLAVE, b.par_id as PAR_ID '
00295                                 ."FROM VW_PARTICIPANTES_DDG a LEFT JOIN participantes b ON ( b.par_vista_id = a.ID_UNICO AND b.par_tipo = 'DDG' ) "
00296                                 ."WHERE a.PRG_CODIGO = :codigo AND a.CORREO_DESEADO IS NOT NULL AND a.CORREO_DESEADO <> '' "
00297                                 .'GROUP BY a.ID_UNICO, a.NOMBRE, a.CEDULA, a.CORREO_DESEADO, b.par_clave, b.par_id';
00298 
00299                 $consulta = $db->prepare( $query );
00300 
00301                 $consulta->execute( array( ':codigo' => ( $this->act_tact_codigo == 8 ? $this->mat_post_codigo : $this->prg_codigo ) ) );
00302 
00303                 while( $resultado = $consulta->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT ) ) {
00304                         $item = new stdClass(  );
00305                         $item->Id = $resultado['par_id'];
00306                         $item->VistaId = $resultado['id_unico'];
00307                         $item->Nombre = $resultado['nombre'];
00308                         $item->Cedula = $resultado['cedula'];
00309                         $item->Correo = $resultado['correo'];
00310                         $item->Clave = $resultado['clave'];
00311                         $item->Registrado = $resultado['par_id'] ? 1 : 0 ;
00312                         $item->Tipo = $this->act_tact_codigo == 8 ? 'POSTGRADO' : 'DDG';
00313                         array_push( $participantes, $item );
00314                 }
00315                 $consulta->closeCursor(  ); unset( $consulta );
00316 
00317                 return $participantes;
00318 
00319         }
00320 
00331         public function getParticipantesSinCorreo(  ){
00332 
00333                 $participantes = array(  );
00334 
00335                 $db = Database::getInstance(  );
00336 
00337                 if( $this->act_tact_codigo == 8 )
00338                         $query =
00339                                 'SELECT ID_UNICO, NOMBRECOMPLETO as NOMBRE, CEDULA '
00340                                 ."FROM VW_PARTICIPANTES_POST WHERE MATCOD = :codigo AND ( CORREO_IESA IS NULL OR CORREO_IESA = '' ) "
00341                                 .'GROUP BY ID_UNICO, NOMBRECOMPLETO, CEDULA';
00342                 else
00343                         $query =
00344                                 'SELECT ID_UNICO, NOMBRE, CEDULA '
00345                                 ."FROM VW_PARTICIPANTES_DDG WHERE PRG_CODIGO = :codigo AND ( CORREO_DESEADO IS NULL OR CORREO_DESEADO = '' ) "
00346                                 .'GROUP BY ID_UNICO, NOMBRE, CEDULA';
00347 
00348                 $consulta = $db->prepare( $query );
00349 
00350                 $consulta->execute( array( ':codigo' => ( $this->act_tact_codigo == 8 ? $this->mat_post_codigo : $this->prg_codigo ) ) );
00351 
00352                 while( $resultado = $consulta->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT ) ) {
00353                         $item = new stdClass(  );
00354                         $item->Id = $resultado['id_unico'];
00355                         $item->Nombre = htmlentities($resultado['nombre']);
00356                         $item->Cedula = $resultado['cedula'];
00357                         $item->Tipo = $this->act_tact_codigo == 8 ? 'POSTGRADO' : 'DDG';
00358                         array_push( $participantes, $item );
00359                 }
00360                 $consulta->closeCursor(  ); unset( $consulta );
00361 
00362                 return $participantes;
00363 
00364         }
00365 
00366 }