function refreshRecords($materia, $plan, $anio, $cuat) { /* Now to your question. I would create a function in the UsersRoles model named something like refreshRoles($user, $roles). Where $user is the user id you are selecting roles for, and $roles is an array of roles that should be set. The function would retrieve the list of Roles by id_users, and compare it to $roles, deleting roles that are missing from $roles, and adding roles that are missing from the UsersRoles table. */ /*$userRoles = $this->findAllByAttribute(array('id_users' => $user)); foreach ($userRoles as $userRole) { if (!in_array($userRole->id_roles, $roles)) { $userRole->delete(); } else { $key = array_search($userRole->id_roles, $roles)); unset($roles[$key]); }*/ $model = new MateriaPlan(); $model->Materia_id = $materia; $model->Plan_id = $plan; $model->anio = $anio; $model->cuatrimestre = $cuat; $model->save(false); }
public function actionUpdate($id) { $this->pageTitle = 'Plan - Modificar'; $model = $this->loadModel($id); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Plan'])) { MateriaPlan::model()->deleteAll('Plan_id =' . $id); $id = $_POST['Plan']['anioPlan'] . $_POST['Plan']['Carrera_id']; $model->attributes = $_POST['Plan']; $model->id = $id; $resultado = $_POST['result']; $materias = $this->parseString($resultado); $this->agregarMaterias($materias, $id); $this->redirect(array('view', 'id' => $model->id)); } $this->render('update', array('model' => $model)); }
<tr class="tg-even"> <td class="anio" colspan="2">5º Año</td> </tr> <tr> <td id="c9" class="drop" ondrop="dropMateria(this, event)" ondragenter="return false" ondragover="return false"></td> <td id="c10" class="drop" ondrop="dropMateria(this, event)" ondragenter="return false" ondragover="return false"></td> </tr> </table> </div> </div> <?php //Arreglo que luego será convertido a un array js $arregloMaterias = array(); //Obtengo todas las materias con año y cuatrimestre de un plan dado y armo un array asociativo con clave= codigo materia valor=id del cuatrimestre $array_php = MateriaPlan::model()->findAll(array("condition" => "Plan_id = {$model->id}")); foreach ($array_php as $key) { $materiaCodigo = $key->Materia_id; $spanId = $this->getTableId($key->anio, $key->cuatrimestre); $arregloMaterias[$materiaCodigo] = $spanId; } ?> <script type="text/javascript"> function fillMateriasOnTable() { var arreglo = new Array();
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)); }
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['MateriaPlan_records'])) { $model = $session['MateriaPlan_records']; } else { $model = MateriaPlan::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('MateriaPlan Report'); $pdf->SetSubject('MateriaPlan Report'); //$pdf->SetKeywords('example, text, report'); $pdf->SetHeaderData('', 0, "Report", ''); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, "Example Report by " . 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("MateriaPlan_002.pdf", "I"); }