public function actionGraficos() { $id = Yii::app()->request->getParam('id'); $protecto = $this->loadModel($id); $barra = array(); foreach ($protecto->localidads as $index => $localidad) { $barra['localidad']['nombre'][$index] = $localidad->comuna->nombre; $checklist = Checklist::model()->findAllByAttributes(array('localidad_id' => $localidad->id)); $pendiente = 0; $iniciado = 0; $terminado = 0; foreach ($checklist as $check) { switch ($check->estado_id) { case 1: $pendiente++; break; case 2: $iniciado++; break; case 3: $terminado++; break; } } $barra['localidad']['pendiente'][$index] = $pendiente; $barra['localidad']['iniciado'][$index] = $iniciado; $barra['localidad']['terminado'][$index] = $terminado; } $this->render('graficos', array('model' => $protecto, 'barra' => $barra)); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Checklist the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Checklist::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actionCreateGrafic() { $ids = Yii::app()->request->getParam('proyectos'); $barra = array(); $torta = array(); foreach ($ids as $index1 => $id) { $proyecto = Proyecto::model()->findByPk($id); $proyectos[$index1] = $proyecto->nombre; foreach ($proyecto->localidads as $index => $localidad) { $barra[$index1]['localidad']['nombre'][$index] = $localidad->comuna->nombre; $checklist = Checklist::model()->findAllByAttributes(array('localidad_id' => $localidad->id)); $pendiente = 0; $iniciado = 0; $terminado = 0; foreach ($checklist as $check) { switch ($check->estado_id) { case 1: $pendiente++; break; case 2: $iniciado++; break; case 3: $terminado++; break; } } $barra[$index1]['localidad']['pendiente'][$index] = $pendiente; $barra[$index1]['localidad']['iniciado'][$index] = $iniciado; $barra[$index1]['localidad']['terminado'][$index] = $terminado; } foreach ($proyecto->localidads as $index => $localidad) { $torta[$index1][$index]['localidad'] = $localidad->comuna->nombre; $count = count($localidad->checklists); $precio = 0; $costo = 0; foreach ($proyecto->tareas as $tarea) { $precio = $precio + $tarea->precio; $costo = $costo + $tarea->costo; } $precio = $precio * $count; $costo = $costo * $count; //$barra2[$index1]['localidad'][$index] = $localidad->comuna->nombre; $barra2[$index1]['precio'][$index] = $precio; $barra2[$index1]['costo'][$index] = $costo; $barra2[$index1]['ganancia'][$index] = $precio - $costo; foreach ($localidad->checklists as $checklist) { if (isset($checklist->usuario_id)) { $cant = 1; if (isset($torta[$index1][$index]['checklist'][$checklist->usuario_id]['cant'])) { $cant = $torta[$index1][$index]['checklist'][$checklist->usuario_id]['cant']; $cant++; } $torta[$index1][$index]['checklist'][$checklist->usuario_id]['id'] = $checklist->usuario_id; $torta[$index1][$index]['checklist'][$checklist->usuario_id]['nombre'] = $checklist->usuario->nombre; $torta[$index1][$index]['checklist'][$checklist->usuario_id]['cant'] = $cant; } else { $cant = 1; if (isset($torta[$index1][$index]['checklist']['otros']['cant'])) { $cant = $torta[$index1][$index]['checklist']['otros']['cant']; $cant++; } $torta[$index1][$index]['checklist']['otros']['id'] = 'otros'; $torta[$index1][$index]['checklist']['otros']['nombre'] = 'sin asignar'; $torta[$index1][$index]['checklist']['otros']['cant'] = $cant; } } } } Yii::app()->clientScript->scriptMap['jquery.js'] = false; Yii::app()->clientScript->scriptMap['jquery.min.js'] = false; Yii::app()->clientScript->scriptMap['highcharts.js'] = false; Yii::app()->clientScript->scriptMap['exporting.js'] = false; header("Content-type: application/json"); echo CJSON::encode(array('div' => $this->renderPartial('graficos', array('barras' => $barra, 'tortas' => $torta, 'proyectos' => $proyectos, 'barras2' => $barra2), true, true))); exit; }
public function gridLocalidadesChecklist($data, $row) { $cantidad = Checklist::model()->findAllByAttributes(array('localidad_id' => $data->id)); return count($cantidad); }