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 }