public function actionGetTempDescuentos() { if (Yii::app()->request->isAjaxRequest) { $datas = Yii::app()->getSession()->get('descuentos'); $pv = Yii::app()->getSession()->get('pv'); if (!empty($datas)) { echo "<ul class='result'>"; foreach ($datas as $keyevento => $data) { //print_r($data); $porcentaje = $data['DescuentosPat'] == "PORCENTAJE" ? "%" : ""; //$data['DescuentosPat']=="PORCENTAJE"?"%":""; $efectivo = $data['DescuentosPat'] == "EFECTIVO" ? "\$" : ""; echo "<li class='info'>"; $evento = Evento::model()->findAllByPk($keyevento); echo "<strong class='alert alert-success'>{$keyevento}: " . $evento[0]->EventoNom . "</strong><br/><br/>"; $eventoId = $keyevento; $funcionesId = $data['FuncionesId']; $zonasId = $data['ZonasId']; $subzonasId = $data['SubzonaId']; $filasId = $data['FilasId']; //especifica el punto de venta al que se aplicara el descuento $pv if ($pv == "todos") { echo "<strong>Aplica a todos los puntos de venta</strong> <br/>"; } else { $punto_venta = Puntosventa::model()->find("PuntosventaId={$pv}"); echo "<strong>Aplica al punto de venta:</strong> ({$pv}){$punto_venta->PuntosventaNom}<br/>"; } foreach ($data as $key => $dat) { switch ($key) { //case 'CuponesCod' : echo "<strong>Código del Cupón:</strong> ".$dat."<br/>"; // break; case 'DescuentosDes': echo "<strong>Descripción:</strong> " . $dat . "<br/>"; break; case 'DescuentosPat': echo "<strong>Forma Descuento:</strong> " . $dat . "<br/>"; break; case 'DescuentosCan': echo "<strong>Cantidad:</strong> " . $efectivo . $dat . $porcentaje . "<br/>"; break; case 'DescuentoCargo': echo "<strong>Cargo Serv:</strong> " . $dat . "<br/>"; break; case 'DescuentosFecIni': echo "<strong>Fecha Inicio:</strong> " . $dat . "<br/>"; break; case 'DescuentosFecFin': echo "<strong>Fecha Fin:</strong> " . $dat . "<br/>"; break; case 'DescuentosExis': echo ($dat == "0" ? "<strong>Aplica descuentos a todos</strong>" : "<strong>Aplica a los primeros:</strong> " . $dat) . "<br/>"; break; case 'DescuentosValRef': /*if($dat=="todos"){ echo "<strong>Punto de Venta:</strong> TODOS<br/>"; }else{ $punto_venta = Puntosventa::model()->find("PuntosventaId=$dat"); echo "<strong>Punto de Venta:</strong> ($dat)$punto_venta->PuntosventaNom<br/>"; }*/ break; case 'DescuentosId': echo "<strong>Id:</strong> " . ($dat == "-1" ? "Ninguno" : $dat) . "<br/>"; break; case 'FuncionesId': if (!empty($dat)) { echo "<ul id='funciones_info{$keyevento}'><strong>Funciones</strong>"; foreach ($dat as $keyf => $funcion) { if (count($funcion) > 0) { echo "<li>"; $funcionTexto = Funciones::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf}"); echo $funcionTexto[0]->funcionesTexto; echo "<ul><strong>Zona</strong>"; foreach ($funcion as $keyz => $zona) { if (count($zona) > 0) { echo "<li>"; $zonasAli = Zonas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz}"); echo $zonasAli[0]->ZonasAli; echo "<ul><strong>Subzona</strong>"; foreach ($zona as $keysz => $subzona) { if (count($subzona) > 0) { echo "<li>"; echo $keysz; echo "<ul><strong>Filas</strong>"; foreach ($subzona as $keyfl => $fila) { if (count($fila) > 0) { echo "<li>"; $filasAli = Filas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz} AND SubzonaId={$keysz} AND FilasId={$keyfl}"); echo $filasAli[0]->FilasAli; echo "<ul><strong>Lugares</strong>"; foreach ($fila as $keyl => $lugar) { echo "<li>"; echo $keyl; echo "</li>"; } echo "</ul>"; echo "</li>"; } else { echo "<li>"; $filasAli = Filas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz} AND SubzonaId={$keysz} AND FilasId={$keyfl}"); echo $filasAli[0]->FilasAli; echo "</li>"; } } echo "</ul>"; echo "</li>"; } else { echo "<li>"; echo $keysz; echo "</li>"; } } echo "</ul>"; echo "</li>"; } else { echo "<li>"; $zonasAli = Zonas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz}"); echo $zonasAli[0]->ZonasAli; echo "</li>"; } } echo "</ul>"; echo "</li>"; } else { echo "<li>"; $funcionTexto = Funciones::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf}"); echo $funcionTexto[0]->funcionesTexto; echo "</li>"; } } echo "</ul>"; } else { echo '<strong>Aplica a todas las Funciones</strong></br>'; } break; /*case 'ZonasId' : $zonas = Zonas::model()->findAll("EventoId=$eventoId AND FuncionesId=$funcionesId AND ZonasId=$zonasId"); echo "<strong>Zona:</strong> ".($dat=="0"?"Todas":$zonas[0]->ZonasAli)."<br/>"; break; case 'SubzonaId' : echo "<strong>SubZona:</strong> ".($dat=="0"?"Todas":$dat)."<br/>"; break; case 'FilasId' : $filas = Filas::model()->findAll("EventoId=$eventoId AND FuncionesId=$funcionesId AND ZonasId=$zonasId AND SubzonaId=$subzonasId AND FilasId=$filasId"); echo "<strong>Fila:</strong> ".($dat=="0"?"Todas":$filas[0]->FilasAli)."<br/>"; break; case 'LugaresId' : echo "<strong>Lugar:</strong> ".($dat=="0"?"Todas":$dat)."<br/>"; break;*/ } //echo $key.":".$dat."<br/>"; } echo "</li>"; } echo "</ul>"; echo "<p style='clear:both;'></p>"; //print_r($datas); } } }
public function actionDesasignarDistribucion($EventoId, $FuncionesId) { $model = Funciones::model()->findByPk(compact('EventoId', 'FuncionesId')); echo CJSON::encode($model->eliminarDistribucion() ? 'true' : 'false'); }
text-align: left; border:1px solid #EEE; position: relative; } #cargando{ color: #FF8000; font-size: 14pt; font-weight: bold; } </style> <div class="row"> <div class="coor-menu span7"> <?php $subzonas = Subzona::model()->findAll(array('condition' => "t.EventoId={$eventoId} AND t.FuncionesId = (SELECT FuncionesId FROM subzona WHERE subzona.EventoId={$eventoId} ORDER BY subzona.FuncionesId ASC LIMIT 1)")); $funcionesId = Funciones::model()->findAll("EventoId={$eventoId}"); ?> <table> <tr class="controles-submenu"> <td><?php echo CHtml::link('<i class="fa fa-eye"></i> Ver coordenadas', '#', array('id' => 'ver-coordenadas', 'class' => 'btn btn-success')); ?> </td> <td><?php echo CHtml::link('<i class="fa fa-repeat"></i> Descartar', '#', array('id' => 'descartar', 'class' => 'btn btn-info')); ?> </td> <td></td> <td></td> </tr> </table>
<?php echo CHtml::submitButton('Ver reporte', array('class' => 'btn btn-primary btn-medium', 'onclick' => '$("#grid_mode").val("view");')); ?> </div> <?php $this->endWidget(); ?> </div> <?php if (isset($eventoId, $funcionesId) and $eventoId > 0) { $evento = Evento::model()->with(array('boletosVendidos', 'accesos'))->findByPk($eventoId); $funcion = "Todas"; if ($funcionesId > 0) { $funcionModel = Funciones::model()->findByPk(array('EventoId' => $evento->EventoId, 'FuncionesId' => $funcionesId)); if (is_object($funcionModel)) { $funcion = $funcionModel->funcionesTexto; } } ?> <br /> <div class='centrado' ><b>Evento:</b> <?php echo $evento->EventoNom; ?> <br> <b>Función:</b> <?php echo $funcion; ?> </div> <br />
public function getReporteZonas($eventoId, $funcionesId = 'TODAS', $desde = '', $hasta = '') { $funcionCond = ''; if (isset($eventoId) and $eventoId > 0) { $evento = Evento::model()->findByPk($eventoId); } if (isset($funcionesId) and $funcionesId > 0) { $funcionCond = sprintf(" AND FuncionesId = '%s' ", $funcionesId); $funcion = Funciones::model()->with('zonas')->findByPk(array('EventoId' => $eventoId, 'FuncionesId' => $funcionesId)); if (is_object($funcion)) { //$funciones=$funcion; $zonas = $funcion->zonas; } } else { //$funciones=$evento->funciones; $zonas = Zonas::model()->with('funcion')->findAllByAttributes(array('EventoId' => $eventoId), array('group' => 't.EventoId,t.ZonasId')); } $matrixZonas = array(); $modelo = new ReportesFlex(); //foreach ($funciones as $funcion) { foreach ($zonas as $zona) { $aforo = Lugares::model()->count(sprintf("EventoId= '%s' %s AND ZonasId = '%s' AND LugaresStatus<>'OFF' ", $eventoId, $funcionCond, $zona->ZonasId)); //"EventoId = '$eventoId' AND FuncionesId = '".$zona->funcion->FuncionesId."' AND ZonasId =".$zona->ZonasId); $zone = array(); $zone['aforo'] = $aforo; $zone['zona'] = $zona->ZonasAli; $matrix = array('aforo' => array('titulo' => 'Aforo', 'boletos' => $aforo, 'precio' => $zona->ZonasCosBol, 'importe' => $zona->ZonasCosBol * $aforo, 'porcentaje' => 100), 'por vender' => array('titulo' => 'Por Vender', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'descuentos' => array('titulo' => 'Descuentos', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'cupones' => array('titulo' => 'Cupones', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'subtotal' => array('titulo' => 'Sub-Total', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0)); $reporte = $modelo->getDetallesZonasCargo($eventoId, $funcionesId, $zona->ZonasId, $desde, $hasta, $cargo = 'NO'); //$tipos=array(); $matrix['tipos'] = array(); foreach ($reporte->getData() as $fila) { //$index=$fila['VentasBolTip'].$fila['VentasCosBol']; $temp = array('titulo' => '', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0); $temp['precio'] = $fila['VentasCosBol']; $temp['titulo'] = ucfirst(strtolower($fila['VentasBolTip'])); if (strcasecmp($temp['titulo'], 'Normal') == 1) { $temp['titulo'] = 'Ventas'; } $matrix['subtotal']['boletos'] += $temp['boletos'] = $fila['cantidad']; $matrix['subtotal']['importe'] += $temp['importe'] = $fila['total']; $temp['porcentaje'] = number_format($temp['boletos'] * 100 / max($matrix['aforo']['boletos'], 1)); $matrix['tipos'][] = $temp; } // Ventas con descuento por zona $reporte = $modelo->getReporte($eventoId, $zona->funcion->FuncionesId, $desde, $hasta, $cargo, 'NORMAL', ' AND t2.VentasMonDes>0 AND t2.ZonasId=' . $zona->ZonasId, 'DescuentosDes', 'DescuentosDes'); foreach ($reporte->getData() as $fila) { $temp = array('titulo' => '', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0); $temp['titulo'] = $fila['descuento']; $temp['boletos'] = $fila['cantidad']; $temp['precio'] = $fila['VentasCosBol']; $temp['total'] = $fila['total']; $matrix['tipos'][] = $temp; } $matrix['por vender']['boletos'] = $matrix['aforo']['boletos'] - $matrix['subtotal']['boletos']; $matrix['por vender']['importe'] = $matrix['aforo']['precio'] * $matrix['por vender']['boletos']; //$matrix['por vender']['porcentaje'] =$matrix['por vender']['boletos'] / max($matrix['aforo']['boletos'],1) ; foreach ($matrix as $key => $fila) { if ($key != "tipos") { $matrix[$key]['porcentaje'] = number_format($fila['boletos'] * 100 / max($matrix['aforo']['boletos'], 1), 0); } } //echo "<pre>";print_r($matrix);echo "</pre>"; $this->formateoNumerico($matrix, array('boletos', 'importe', 'precio')); $this->formateoNumerico($matrix['tipos'], array('boletos', 'importe', 'precio')); $zone['datos'] = $matrix; $matrixZonas[] = $zone; } //} return array('zonas' => $matrixZonas); }
public function eliminarDistribucion() { $identificador = array('EventoId' => $this->EventoId); $nfunciones = Funciones::model()->countByAttributes($identificador); if ($nfunciones > 1) { // Si no se esta tratando de eliminar la unica funcion. $identHijos = array('EventoId' => $this->EventoId, 'FuncionesId' => $this->FuncionesId); $this->deleteConfpvfuncion(); Zonas::model()->deleteAllByAttributes($identHijos); Subzona::model()->deleteAllByAttributes($identHijos); Filas::model()->deleteAllByAttributes($identHijos); Lugares::model()->deleteAllByAttributes($identHijos); $mapagrande = ConfigurlFuncionesMapaGrande::model()->findByAttributes(array('EventoId' => $this->EventoId, 'FuncionId' => $this->FuncionesId)); if (is_object($mapagrande)) { // Si tiene un mapa grande se eliminan primero sus coordenadas para que no de restriccion de llaves foraneas ConfigurlMapaGrandeCoordenadas::model()->deleteAllByAttributes(array('configurl_funcion_mapa_grande_id' => $mapagrande->id)); $mapagrande->delete(); } $this->ForoMapIntId = 0; $this->save(); return true; } else { return false; } }
private function loadFuncion($eventoId, $funcionId) { $model = Funciones::model()->findByAttributes(array('EventoId' => $eventoId, 'FuncionesId' => $funcionId)); if ($model === null) { throw new CHttpException(404, 'La página solicitada no existe.'); } return $model; }
public function actionActualizar($EventoId, $FuncionesId) { // Establece el los datos de la distribucion $funcion = Funciones::model()->with('forolevel1')->findByPk(compact('EventoId', 'FuncionesId')); if (isset($funcion->forolevel1)) { $model = $funcion->forolevel1; if (isset($_POST['Forolevel1'])) { // Si se reciben datos del formulario de edicion de distribucion se guardan los datos $model->attributes = $_POST['Forolevel1']; if (isset($_POST['Forolevel1']['ForoId'])) { // Si se cambio el foro se cambia tambien en la funcion $funcion->ForoId = $model->ForoId; $funcion->save(); } if ($model->save()) { echo "true"; } else { echo "false"; } } } else { throw new Exception("Error al procesar su petición, la función no tiene una distribucion valida ", 3); } }
public function actionExportarReporte() { $esMovil = Yii::app()->mobileDetect->isMobile(); if (isset($_GET['movil'])) { $esMovil = $_GET['movil']; } $model = new ReportesVentas(); $matrix = array('evento' => array('nombre', 'funcion', 'desde', 'diaspara'), 'tablas' => array('resumen' => '', 'vhoy' => '', 'promedios' => '', 'zonas' => '', 'ventas' => '', 'ultimas' => '')); $eventoId = isset($_GET['evento_id']) ? $_GET['evento_id'] : 0; $funcionesId = isset($_GET['funcion_id']) ? $_GET['funcion_id'] : "TODAS"; $desde = isset($_GET['desde']) ? $_GET['desde'] : 0; $hasta = isset($_GET['hasta']) ? $_GET['hasta'] : 0; $cargo = isset($_GET['cargo']) ? $_GET['cargo'] : false; $matrix['tablas']['resumen'] = $model->getResumenEvento($eventoId, $funcionesId, $desde, $hasta); if (!$esMovil) { $matrix['tablas']['ventas'] = $model->getReporte($eventoId, $funcionesId, $desde, $hasta); $matrix['tablas']['vhoy'] = $model->getReporte($eventoId, $funcionesId, 'curdate()', 'curdate()'); $matrix['tablas']['promedios'] = $model->getPromedios($eventoId, $funcionesId); $matrix['tablas']['zonas'] = $model->getReporteZonas($eventoId, $funcionesId, $desde, $hasta); } else { $matrix['tablas']['ultimas'] = $model->getUltimasVentas($eventoId, $funcionesId); } //Primer renderizado en html ------> $matrix['tablas']['resumen'] = Yii::app()->mustache->render('tablaResumenEvento', $matrix['tablas']['resumen'], null, null, false); if (!$esMovil) { if ($cargo) { $matrix['tablas']['ventas'] = Yii::app()->mustache->render('tablaVentasConCargo', $matrix['tablas']['ventas'], null, null, false); } else { $matrix['tablas']['ventas'] = Yii::app()->mustache->render('tablaVentasSinCargo', $matrix['tablas']['ventas'], null, null, false); } $matrix['tablas']['vhoy'] = Yii::app()->mustache->render('tablaVentasHoySin', $matrix['tablas']['vhoy'], null, null, false); $matrix['tablas']['promedios'] = Yii::app()->mustache->render('tablaPromediosDiarios', $matrix['tablas']['promedios'], null, null, false); $matrix['tablas']['zonas'] = Yii::app()->mustache->render('tablasVentasZonas', $matrix['tablas']['zonas'], null, null, false); } else { $matrix['tablas']['ultimas'] = Yii::app()->mustache->render('tablaUltimasVentas', $matrix['tablas']['ultimas'], null, null, false); } //foreach ($matrix['tablas'] as $key=>&$tabla) { //$tabla=htmlspecialchars_decode($tabla); //} if (isset($eventoId) and $eventoId > 0) { $evento = Evento::model()->findByPk($eventoId); $funciones = "TODAS"; if (isset($funcionesId) and $funcionesId > 0) { $funcion = Funciones::model()->findByPk(array('EventoId' => $eventoId, 'FuncionesId' => $funcionesId)); if (is_object($funcion)) { $funciones = $funcion->funcionesTexto; } } else { $funcion = $evento->funciones[0]; } $ventasDesde = date_create($funcion->FuncionesFecIni)->format("d-F-Y"); $meses = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $months = array('January', 'February', 'March', 'April', 'May', 'June', 'July ', 'August', 'September', 'October', 'November', 'December'); $diaFuncion = new DateTime($funcion->FuncionesFecHor); $hoy = new DateTime("now"); $diaspara = round(($diaFuncion->format('U') - $hoy->format('U')) / (60 * 60 * 24)); $matrix['evento']['nombre'] = $evento->EventoNom; $matrix['evento']['funcion'] = $funciones; $matrix['evento']['desde'] = str_replace($months, $meses, $ventasDesde); $matrix['evento']['diaspara'] = $diaspara > -1 ? $diaspara : "El evento ya ha finalizado."; header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename=VentasSinCargo.xls'); Yii::app()->mustache->render('ReporteSinCargoExportacion', $matrix); } }
public function getFuncionesAsignadas($EventoId) { $usuarioId = $this->UsuariosId; $hoy = date("Y-m-d G:i:s"); $usrval = Usrval::model()->findAll(array('condition' => "UsuarioId={$usuarioId} AND UsrTipId=2 AND UsrSubTipId=4 AND ((FecHorIni < '{$hoy} ' AND FecHorFin > '{$hoy} ') OR FecHorIni = '0000-00-00 00:00:00' AND FecHorIni = '0000-00-00 00:00:00')")); $condiciones = ""; $eventos = array(); if (is_array($usrval)) { if ($usrval[0]->usrValIdRef2 == "TODAS") { } else { $condicion = ""; foreach ($usrval as $key => $funcion) { $condicion .= $funcion->usrValIdRef2 . ","; } if (strlen($condicion) > 0) { $condiciones = " AND FuncionesId IN(" . substr($condicion, 0, -1) . ")"; } } $funciones = Funciones::model()->findAll(array('condition' => " EventoId={$EventoId}" . $condiciones, 'order' => "t.FuncionesId ASC")); } return $funciones; }
public function asignarMapaGrande($EventoId, $FuncionesId) { // Copia el configurl_funciones_mapa_grande y sus coordenadas de la // funcion con la distribucion origen para la funcion que se le pasa como parametro $identificador = compact('EventoId', 'FuncionesId'); $origen = Funciones::model()->with('mapagrande')->findByAttributes(array('ForoId' => $this->ForoId, 'ForoMapIntId' => $this->ForoMapIntId)); $funcion = Funciones::model()->with('configurl')->findByPk($identificador); if (isset($origen) and is_object($origen) and isset($funcion->configurl)) { // Si la funcion origen existe y tiene mapa grande // y la funcion a aplicar tiene ya un configurl para su evento #Se eliminan todos los mapas grandes que puedan estar asignados a la funcion #Se eliminan todas sus coordenadas existentes ConfigurlFuncionesMapaGrande::model()->deleteAllByAttributes(array('EventoId' => $EventoId, 'FuncionId' => $FuncionesId)); $mapa = new ConfigurlFuncionesMapaGrande(); $mapa->configurl_Id = $funcion->configurl->ConfigurlId; $mapa->EventoId = $funcion->EventoId; $mapa->FuncionId = $funcion->FuncionesId; if ($origen->mapagrande) { $mapa->nombre_imagen = $origen->mapagrande->nombre_imagen; } if ($mapa->save()) { // Si se registro entonces se registran tambien sus coordenadas $conexion = Yii::app()->db; if (isset($origen->mapagrande)) { $conexion->createCommand(sprintf("\n\t\t\t\t\t\t\t\t\t\t\tINSERT IGNORE INTO configurl_mapa_grande_coordenadas \n\t\t\t\t\t\t\t\t\t\t\t( configurl_funcion_mapa_grande_id,ZonasId, SubzonaId, x1,y1, x2,y2, x3,y3,\n\t\t\t\t\t\t\t\t\t\t\tx4,y4, x5,y5, x6,y6, x7,y7, x8,y8, x9,y9, x10,y10,\n\t\t\t\t\t\t\t\t\t\t\tx11,y11, x12,y12, x13,y13, x14,y14 )\n\t\t\t\t\t\t\t\t\t\t\t(SELECT %d, ZonasId, SubzonaId, x1,y1, x2,y2, x3,y3,\n\t\t\t\t\t\t\t\t\t\t\tx4,y4, x5,y5, x6,y6, x7,y7, x8,y8, x9,y9, x10,y10,\n\t\t\t\t\t\t\t\t\t\t\tx11,y11, x12,y12, x13,y13, x14,y14 FROM configurl_mapa_grande_coordenadas\n\t\t\t\t\t\t\t\t\t\t\tWHERE configurl_funcion_mapa_grande_id = %d\n\t\t\t\t\t\t\t\t\t) ", $mapa->id, $origen->mapagrande->id))->execute(); } else { $conexion->createCommand(sprintf("\n\t\t\t\t\t\t\t\t\t\t\tINSERT IGNORE INTO configurl_mapa_grande_coordenadas(\n\t\t\t\t\t\t\t\t\t\t\t\t\tconfigurl_funcion_mapa_grande_id,ZonasId,SubzonaId) \n\t\t\t\t\t\t\t\t\t\t\t(SELECT %d, ZonasId, SubzonaId FROM subzona\n\t\t\t\t\t\t\t\t\t\t\tWHERE EventoId=%d and FuncionesId=%d\n\t\t\t\t\t\t\t\t\t) ", $mapa->id, $funcion->EventoId, $funcion->FuncionesId))->execute(); } //Se copian todas las coordenadas del mapa grande de la funcion origen a la funcion parametro } } }
public function actionCargarFunciones() { $this->perfil(); $data = Funciones::model()->findAll('EventoId=:parent_id', array(':parent_id' => (int) $_POST['evento_Id'])); $data = CHtml::listData($data, 'FuncionesId', 'funcionesTexto'); echo CHtml::tag('option', array('value' => ''), 'Seleccione ...', true); foreach ($data as $id => $value) { echo CHtml::tag('option', array('value' => $id), CHtml::encode($value), true); } }