/** * */ public function reporte($institucion_id, $assignedform_id = 1) { $this->loadModel('Assignedform'); if (!$this->Assignedform->exists($assignedform_id)) { throw new NotFoundException(__('Invalid form')); } $this->Paginator->paginate = 0; $fields = array('Assignedform.implementation', 'Assignedform.form_id'); $conditions = array('Assignedform.institucion_id' => $institucion_id, 'Assignedform.id' => $assignedform_id); $options = array('fields' => $fields, 'conditions' => $conditions); $assignedform = $this->Assignedform->find('first', $options); $form_id = $assignedform['Assignedform']['form_id']; $options = array('conditions' => array('Form.' . $this->Form->primaryKey => $form_id)); $form = $this->Form->find('first', $options); $this->set('form', $form); $form['Assignedform']['implementation'] = $assignedform['Assignedform']['implementation']; $this->loadModel('Institucion'); $this->Paginator->paginate = 0; $fields = array('Institucion.id', 'Institucion.name'); $conditions = array('Institucion.id' => $institucion_id); $options = array('fields' => $fields, 'conditions' => $conditions); $institucion = $this->Institucion->find('first', $options); $form['Institucion'] = $institucion['Institucion']; $this->loadModel('Answer'); $this->Auth->recursive = 0; $fields = array('Question.id', 'COUNT(Answer.answer) AS total'); $conditions = array('Answer.assignedform_id' => $assignedform_id); $joins = array(array('table' => 'questions', 'alias' => 'Questions', 'type' => 'INNER', 'conditions' => array('Questions.id = Answer.question_id'))); $group = array('Answer.question_id'); $options = array('fields' => $fields, 'conditions' => $conditions, 'group' => $group); $options['conditions']['Answer.answer'] = 1; $tmp_1 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 2; $tmp_2 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 3; $tmp_3 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 4; $tmp_4 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 5; $tmp_5 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 6; $tmp_6 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 7; $tmp_7 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 8; $tmp_8 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 9; $tmp_9 = $this->Answer->find('all', $options); $options['conditions']['Answer.answer'] = 10; $tmp_10 = $this->Answer->find('all', $options); foreach ($tmp_1 as $item) { $res_1[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_2 as $item) { $res_2[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_3 as $item) { $res_3[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_4 as $item) { $res_4[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_5 as $item) { $res_5[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_6 as $item) { $res_6[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_7 as $item) { $res_7[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_8 as $item) { $res_8[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_9 as $item) { $res_9[$item['Question']['id']] = $item[0]['total']; } foreach ($tmp_10 as $item) { $res_10[$item['Question']['id']] = $item[0]['total']; } $total = count($form['Question']); for ($i = 0; $i < $total; $i++) { $form['Question'][$i]['1'] = 0; if (isset($res_1[$form['Question'][$i]['id']])) { $form['Question'][$i]['1'] = $res_1[$form['Question'][$i]['id']]; } $form['Question'][$i]['2'] = 0; if (isset($res_2[$form['Question'][$i]['id']])) { $form['Question'][$i]['2'] = $res_2[$form['Question'][$i]['id']]; } $form['Question'][$i]['3'] = 0; if (isset($res_3[$form['Question'][$i]['id']])) { $form['Question'][$i]['3'] = $res_3[$form['Question'][$i]['id']]; } $form['Question'][$i]['4'] = 0; if (isset($res_4[$form['Question'][$i]['id']])) { $form['Question'][$i]['4'] = $res_4[$form['Question'][$i]['id']]; } $form['Question'][$i]['5'] = 0; if (isset($res_5[$form['Question'][$i]['id']])) { $form['Question'][$i]['5'] = $res_5[$form['Question'][$i]['id']]; } $form['Question'][$i]['6'] = 0; if (isset($res_6[$form['Question'][$i]['id']])) { $form['Question'][$i]['6'] = $res_6[$form['Question'][$i]['id']]; } $form['Question'][$i]['7'] = 0; if (isset($res_7[$form['Question'][$i]['id']])) { $form['Question'][$i]['7'] = $res_7[$form['Question'][$i]['id']]; } $form['Question'][$i]['8'] = 0; if (isset($res_8[$form['Question'][$i]['id']])) { $form['Question'][$i]['8'] = $res_8[$form['Question'][$i]['id']]; } $form['Question'][$i]['9'] = 0; if (isset($res_9[$form['Question'][$i]['id']])) { $form['Question'][$i]['9'] = $res_9[$form['Question'][$i]['id']]; } $form['Question'][$i]['10'] = 0; if (isset($res_10[$form['Question'][$i]['id']])) { $form['Question'][$i]['10'] = $res_10[$form['Question'][$i]['id']]; } $total_tmp = $form['Question'][$i]['1'] + $form['Question'][$i]['2'] + $form['Question'][$i]['3'] + $form['Question'][$i]['4'] + $form['Question'][$i]['5'] + $form['Question'][$i]['6'] + $form['Question'][$i]['7'] + $form['Question'][$i]['8'] + $form['Question'][$i]['9'] + $form['Question'][$i]['10']; if (0 == $total_tmp) { $total_tmp = 1; } $form['Question'][$i]['1'] = $form['Question'][$i]['1'] / $total_tmp * 100; $form['Question'][$i]['2'] = $form['Question'][$i]['2'] / $total_tmp * 100; $form['Question'][$i]['3'] = $form['Question'][$i]['3'] / $total_tmp * 100; $form['Question'][$i]['4'] = $form['Question'][$i]['4'] / $total_tmp * 100; $form['Question'][$i]['5'] = $form['Question'][$i]['5'] / $total_tmp * 100; $form['Question'][$i]['6'] = $form['Question'][$i]['6'] / $total_tmp * 100; $form['Question'][$i]['7'] = $form['Question'][$i]['7'] / $total_tmp * 100; $form['Question'][$i]['8'] = $form['Question'][$i]['8'] / $total_tmp * 100; $form['Question'][$i]['9'] = $form['Question'][$i]['9'] / $total_tmp * 100; $form['Question'][$i]['10'] = $form['Question'][$i]['10'] / $total_tmp * 100; } $this->set('form', $form); // Reporte LaTeX include 'Component/latex-report/lib/LaTeX.php'; include 'Component/latex-report/lib/Table.php'; $latex = new LaTeX(); $latex->setDocumentclass('letterpaper'); $latex->usepackage('utf8', 'inputenc'); $latex->usepackage('spanish,mexico', 'babel'); $latex->usepackage('pdftex', 'graphicx'); $latex->usepackage('left=2cm, right=2cm, top=3cm, bottom=5.5cm', 'geometry'); $latex->usepackage('', 'supertabular'); $latex->usepackage('', 'fancyhdr'); $latex->usepackage('light,math', 'kurier'); $dir = $this->getDirLaTeX('sistema'); $encabezado = '\\begin{Huge}\\textbf{' . $form['Institucion']['name'] . '}\\end{Huge}' . '\\\\ ~ \\\\ \\begin{Large}\\textbf{Reporte de EvaluaciĆ³n}\\end{Large}'; $latex->head('C', $encabezado); $latex->foot('C', ''); /** * Begin document */ $latex->write('\\pagenumbering{gobble}'); /** * Begin table */ $tabla = new Table(); #$tabla->setColumn('p{1cm}'); $tabla->setColumn('p{12.5cm}'); #$tabla->setColumn('p{1cm}'); #$tabla->setColumn('p{1cm}'); #$tabla->addTitle('Id'); $tabla->addTitle('Pregunta'); foreach ($form['Question'] as $item) { $tabla->newRow(); #$tabla->addCol($item['id']); $tabla->addCol($item['name']); $tabla->addRow(); if ($item['kind'] == 0) { $tabla->newRow(); $tabla->addCol('Si ' . round($item['1'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('No ' . round($item['2'], 2) . ' \\%'); $tabla->addRow(); } if ($item['kind'] == 1) { $tabla->newRow(); $tabla->addCol('Excelente ' . round($item['1'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('Muy bueno ' . round($item['2'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('Bueno ' . round($item['3'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('Malo ' . round($item['4'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('Muy malo ' . round($item['5'], 2) . ' \\%'); $tabla->addRow(); } if ($item['kind'] == 2) { $tabla->newRow(); $tabla->addCol('1- ' . round($item['1'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('2- ' . round($item['2'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('3- ' . round($item['3'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('4- ' . round($item['4'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('5- ' . round($item['5'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('6- ' . round($item['6'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('7- ' . round($item['7'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('8- ' . round($item['8'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('9- ' . round($item['9'], 2) . ' \\%'); $tabla->addRow(); $tabla->newRow(); $tabla->addCol('10- ' . round($item['10'], 2) . ' \\%'); $tabla->addRow(); } } $latex->write(''); $latex->write('Nombre del formulario: \\textbf{' . $form['Form']['name'] . '}'); $latex->write($tabla->getTable()); $latex->write(''); $latex->write(''); $latex->write('\\begin{flushright}El Salvador \\today \\begin{flushright}'); /** * End table */ /** * End document */ $archivo = $this->Auth->user('institucion_id'); $documento = $latex->getLaTeX($dir, $archivo); $this->set('dir', $dir); $this->set('archivo', $archivo); }