public function visioncronAction() { ini_set('default_charset', 'UTF-8'); ini_set('display_errors', 0); ini_set('max_execution_time', 0); //echo mb_internal_encoding(); exit; $sm = $this->getServiceLocator(); $users = $this->getService()->getUserforPdf(); $i = 0; foreach ($users as $key => $user) { try { if (isset($user['company_id']) && $user['company_id'] != '') { $pdf = ''; $pdfView = ''; $eng = ''; $detail = array(); //if($user['id']==94){ $result = $this->getService()->getVisionsInArrayByCompany($user['company_id']); if (!empty($result)) { $m = 0; foreach ($result as $k => $vision) { $perspectives = $this->getPerspectiveService()->viewPerspectiveByVision($vision['id']); $data = array(); $res = array(); $percentage = array(); $milestonesCount = 0; $milestones = ''; if (!empty($perspectives)) { foreach ($perspectives as $perspective) { if (isset($perspective['id'])) { $data[$perspective['id']]['perspective'] = $perspective['name']; $goals = $this->getGoalService()->getGoalsAndKpiInArrayByPerspective($perspective['id']); $data[$perspective['id']]['goals'] = $goals['data']; $milestonesCount = $goals['count']; $milestones = $goals['milestones']; } } foreach ($data as $key1 => $value1) { foreach ($value1['goals'] as $key2 => $value2) { foreach ($value2['kpis'] as $key3 => $value3) { foreach ($value3['milestones'] as $milestone) { /*$diff = $milestone['actualValue'] - $milestone['targetValue']; $actual[] = $milestone['actualValue']; $target[] = $milestone['targetValue'];*/ if ($milestone['actualValue'] != '' && $milestone['targetValue'] != '') { $diff = $milestone['actualValue'] - $milestone['targetValue']; $diff = abs($diff) / $milestone['targetValue']; $percentage[] = number_format($diff * 100, 0, ',', '.'); } } } } } /*$actualv = array_sum($actual); $targetv = array_sum($target); $diff = $actualv - $targetv;*/ //print_r($percentage); exit; //echo count($percentage).'ppp'; exit; $average = array_sum($percentage) / count($percentage); $average = number_format($average, 0, ',', '.'); if ($average > 10) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_red.png'; $res['text'] = 'In Gefahr'; $res['color'] = 'red'; $res['circle'] = 'red_circle.png'; } elseif ($average <= 10 && $average >= 5) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_orange.png'; $res['text'] = 'Kritisch'; $res['color'] = 'orange'; $res['circle'] = 'orange_circle.png'; } elseif ($average == 0) { $res['percentage'] = $average; $res['icon'] = 'icon_signal_grey.png'; $res['text'] = 'Kritisch'; $res['color'] = 'grey'; $res['circle'] = 'grey_circle.png'; } else { $res['percentage'] = $average; $res['icon'] = 'icon_signal_green.png'; $res['text'] = 'Im Plan'; $res['color'] = 'green'; $res['circle'] = 'green_circle.png'; } $result[$k]['res'] = $res; // get goals by perspectives $detail[$m]['grid'] = $this->renderPerspectiveGridElement($data, $milestonesCount, $milestones); $detail[$m]['milestones'] = $milestones; $detail[$m]['v_name'] = $vision['name']; $detail[$m]['description'] = $vision['description']; $m++; } } //echo '<pre>'; print_r($result); exit; $pdf = new PdfModel(); $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" $pdf->setTerminal(true); //$pdf->setTemplate('application/index/visioncron.phtml'); $pdf->setVariables(array('result' => $result, 'detail' => $detail)); $pdfView = new ViewModel($pdf); $pdfView->setTerminal(true)->setTemplate('application/index/visioncron.phtml')->setVariables(array('result' => $result, 'detail' => $detail)); $html = $this->getServiceLocator()->get('viewpdfrenderer')->getHtmlRenderer()->render($pdfView); $eng = $this->getServiceLocator()->get('viewpdfrenderer')->getEngine(); $eng->load_html($html); try { $eng->render(); } catch (\Exception $e) { echo $key; die; } $pdfCode = $eng->output(); //$file_to_save = $_SERVER['DOCUMENT_ROOT'].'/attachments/vision_detail_'.$key.'.pdf'; //file_put_contents($file_to_save, $pdfCode); $eng = new DOMPDF(); $this->getServiceLocator()->get('viewpdfrenderer')->setEngine($eng); /*if($i==10){ echo $i .'<br /> count = '.count($data); break; }*/ $i++; // Email $from = $this->getSenderEmail(); $to = $user['login']; //$from = '*****@*****.**'; //$to = '*****@*****.**'; $subject = "Ihre Strategieübersicht"; $textBody = $this->getVisionEmailTemplate($user['first_name'] . ' ' . $user['last_name']); $body = $this->setBodyHtml($textBody, $pdfCode, 'vision_detail_' . time() . '.pdf'); $message = new Mail\Message(); $message->setFrom($from, 'Incoverage')->addTo($to)->setSubject($subject); $message->setEncoding("UTF-8"); $message->setBody($body); $transport = new SmtpTransport(); if ($this->getDefaultConfig()['user_module']['using_gmail']) { $transport->setOptions($this->getSMTPOptions()); } $transport->send($message); echo '--------Email sent to ' . $user['login'] . ' ------ <br /><br />'; } //} } } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } //break; } echo '<br /> Cron Done'; exit; }