Пример #1
0
 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));
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 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;
 }
Пример #4
0
 public function gridLocalidadesChecklist($data, $row)
 {
     $cantidad = Checklist::model()->findAllByAttributes(array('localidad_id' => $data->id));
     return count($cantidad);
 }