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;
 }