/**
  * Genera un archivo PDF
  */
 public function actionGeneratePdf()
 {
     $session = new CHttpSession();
     $session->open();
     Yii::import('application.extensions.ajaxgii.bootstrap.*');
     require_once 'tcpdf/tcpdf.php';
     require_once 'tcpdf/config/lang/eng.php';
     if (isset($session['Examen_records'])) {
         $model = $session['Examen_records'];
     } else {
         $model = Examen::model()->findAll();
     }
     $html = $this->renderPartial('expenseGridtoReport', array('model' => $model), true);
     //die($html);
     $pdf = new TCPDF();
     $pdf->SetCreator(PDF_CREATOR);
     $pdf->SetAuthor(Yii::app()->name);
     $pdf->SetTitle('Examen Report');
     $pdf->SetSubject('Examen Report');
     //$pdf->SetKeywords('example, text, report');
     $pdf->SetHeaderData('', 0, "Report", '');
     $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, "Reporte generado por " . Yii::app()->name, "");
     $pdf->setHeaderFont(array('helvetica', '', 8));
     $pdf->setFooterFont(array('helvetica', '', 6));
     $pdf->SetMargins(15, 18, 15);
     $pdf->SetHeaderMargin(5);
     $pdf->SetFooterMargin(10);
     $pdf->SetAutoPageBreak(TRUE, 0);
     $pdf->SetFont('dejavusans', '', 7);
     $pdf->AddPage();
     $pdf->writeHTML($html, true, false, true, false, '');
     $pdf->LastPage();
     $pdf->Output("Examen_002.pdf", "I");
 }
 public function actionRefreshExamsEvolution()
 {
     $anios = array_values(json_decode(stripslashes($_POST['anios'])));
     $cuats = array_values(json_decode(stripslashes($_POST['cuatrimestres'])));
     $cuats_unique = array_unique($cuats);
     $this->createDaysArray();
     $utils = new Utils();
     $planes = Plan::model()->findAll(array('order' => 'anioPlan'));
     $resultados = array();
     foreach ($planes as $key) {
         //Por cada id de plan se obtienen todas las materias del mismo
         $criteriaPlanes = new CDbCriteria();
         $criteriaPlanes->select = 't.materia_id';
         $criteriaPlanes->condition = "plan_id == " . $key->id;
         $criteriaPlanes->addInCondition('t.anio', $anios);
         if (count($cuats_unique) == 1) {
             $criteriaPlanes->addCondition("t.cuatrimestre==" . $cuats_unique[0]);
         }
         $materiasPlan = MateriaPlan::model()->findAll($criteriaPlanes);
         $materias = array();
         $matPlan = array();
         foreach ($materiasPlan as $value) {
             array_push($matPlan, $value->Materia_id);
         }
         foreach ($matPlan as $value) {
             if (!in_array($value, $materias, true)) {
                 array_push($materias, $value);
             }
         }
         //Obtengo los examenes de las materias dadas
         $criteriaMaterias = new CDbCriteria();
         $criteriaMaterias->select = 't.*';
         $criteriaMaterias->join = "INNER JOIN Tipo_Examen as tipoexamen ON(tipoexamen.id=t.tipoexamen_id)";
         $criteriaMaterias->addInCondition('t.materia_id', $materias);
         $criteriaMaterias->order = 't.fechaExamen ASC';
         $examenes = Examen::model()->findAll($criteriaMaterias);
         //Arreglo donde se guardaran los datos
         $datos = array();
         $datosNormalDate = $this->fechas;
         //Informacion que se devuelve  a la vista:
         // fecha del examen, dias de preparacion y peso de cada dia
         foreach ($examenes as $arr) {
             $fecha = $arr->fechaExamen;
             $dias = $arr->diasPreparacion;
             $complejidad = $arr->tipoexamen->complejidad;
             $utils->CalculateWeight($datos, $datosNormalDate, $fecha, $dias, $complejidad);
         }
         $resultados[$key->id] = $datosNormalDate;
     }
     header("Content-type: application/json");
     //Envio la informacion en formato jSON
     echo CJSON::encode(array('result' => $resultados));
 }
예제 #3
0
<?php

$this->pageTitle = Yii::app()->name . ' - Examenes.';
Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n  \$('.search-form').toggle();\n  return false;\n});\n\$('.search-form form').submit(function(){\n  \$('#examen-grid').yiiGridView('update', {\n    data: \$(this).serialize()\n  });\n  return false;\n});\n");
?>
<div class="titulo">
    <h1>Examenes</h1>
</div>
<?php 
$this->widget('bootstrap.widgets.TbMenu', array('type' => 'pills', 'items' => array(array('label' => 'Nuevo', 'icon' => 'icon-plus', 'url' => Yii::app()->controller->createUrl('create')), array('label' => 'Listado', 'icon' => 'icon-th-list', 'url' => Yii::app()->controller->createUrl('index'), 'active' => true, 'linkOptions' => array()), array('label' => 'Exportar a PDF', 'icon' => 'icon-download', 'url' => Yii::app()->controller->createUrl('GeneratePdf'), 'linkOptions' => array('target' => '_blank'), 'visible' => true), array('label' => 'Exportar a Excel', 'icon' => 'icon-download', 'url' => Yii::app()->controller->createUrl('GenerateExcel'), 'linkOptions' => array('target' => '_blank'), 'visible' => true), array('itemOptions' => array('id' => 'deleteAll', 'onclick' => 'delete_all_records()'), 'label' => 'Eliminar todos los examenes', 'icon' => 'icon-remove-sign', 'url' => '#', 'linkOptions' => array('class' => ' btn-danger btn-small '), 'visible' => Yii::app()->user->isAdmin()), array('itemOptions' => array('id' => 'deleteAll', 'onclick' => 'delete_all_my_records(' . Yii::app()->user->name . ')'), 'label' => 'Eliminar todos mis examenes', 'icon' => 'icon-remove-sign', 'url' => '#', 'linkOptions' => array('class' => ' btn-danger btn-small '), 'visible' => !Yii::app()->user->isAdmin()))));
$grid = $this->widget('bootstrap.widgets.TbGridView', array('id' => 'examen-grid', 'dataProvider' => $model->search(), 'type' => $this->table_style, 'template' => $this->table_template, 'filter' => $model, 'columns' => array(array('header' => 'Fecha', 'name' => 'fechaExamen', 'headerHtmlOptions' => array('style' => 'width:145px'), 'value' => 'Yii::app()->dateFormatter->format("dd MMM y",strtotime($data->fechaExamen))', 'filter' => CHtml::listData(Examen::model()->findAll(), 'fechaExamen', 'formattedDate')), array('header' => 'Materia', 'name' => 'materia_id', 'value' => '$data->materia->id." - ".$data->materia->nombreMateria', 'headerHtmlOptions' => array('style' => 'width:550px'), 'filter' => CHtml::listData(Materia::model()->getTodasLasMaterias('nombreMateria'), 'id', 'concatened')), array('header' => 'Tipo de examen', 'name' => 'tipoexamen_id', 'value' => '$data->tipoexamen->nombreTipoExamen', 'headerHtmlOptions' => array('style' => 'width:200px'), 'filter' => CHtml::listData(Tipoexamen::model()->findAll(array('order' => 'nombreTipoExamen')), 'id', 'nombreTipoExamen')), array('type' => 'raw', 'value' => ' Yii::app()->user->getName()==$data->materia_id || Yii::app()->user->isAdmin() ?  
               "<a href=\'javascript:void(0);\' onclick=\'renderView(".$data->id.")\'   class=\'btn btn-small view\'  ><i class=\'icon-eye-open\'></i></a><a href=\'index.php?r=examen/update&id=$data->id\' onclick=\'renderUpdateForm(".$data->id.")\'   class=\'btn btn-small view\'  ><i class=\'icon-pencil\'></i></a>
          <a href=\'javascript:void(0);\' onclick=\'delete_record(".$data->id.")\'   class=\'btn btn-small view\'  ><i class=\'icon-trash\'></i></a>
         ": "<a href=\'javascript:void(0);\' onclick=\'renderView(".$data->id.")\'   class=\'btn btn-small view\'  ><i class=\'icon-eye-open\'></i></a>"', 'headerHtmlOptions' => array('style' => 'width:95px;text-align:left')))));
$this->renderPartial("_ajax_view");
?>
<script type="text/javascript">
    function delete_record(id) {
        var id;
        this.id = id;
        bootbox.confirm("<img src='images/warning.png'/>  ¿Está seguro de eliminar este examen?<br/><br/>", function (result) {
            if (!result) return;
            //  $('#ajaxtest-view-modal').modal('hide');
            var data = "id=" + id;
            jQuery.ajax({
                type: 'POST',
                url: '<?php 
echo Yii::app()->createAbsoluteUrl("examen/delete");
?>
',
                data: data,
예제 #4
0
 public function getExamsFromAndTo($fromDate, $untilDate)
 {
     $criteria = new CDbCriteria();
     $criteria->addBetweenCondition('fechaExamen', $fromDate, $untilDate);
     $count = Examen::model()->count($criteria);
     return $count;
 }