예제 #1
0
 /**
  * This action is used to save update json in logmanager(removes 30 days before content  and saves in logmanagercron) .
  */
 public function logcronAction()
 {
     $this->_helper->viewRenderer->setNoRender(true);
     $this->_helper->layout()->disableLayout();
     $logmanager_model = new Default_Model_Logmanager();
     $logmanagercron_model = new Default_Model_Logmanagercron();
     $logData = $logmanager_model->getLogManagerData();
     $i = 0;
     if (count($logData) > 0) {
         foreach ($logData as $record) {
             if (isset($record['log_details']) && !empty($record['log_details'])) {
                 $id = $record['id'];
                 $menuId = $record['menuId'];
                 $actionflag = $record['user_action'];
                 $userid = $record['last_modifiedby'];
                 $keyflag = $record['key_flag'];
                 $date = $record['last_modifieddate'];
                 $jsondetails = '{"testjson":[' . $record['log_details'] . ']}';
                 $jsonarr = @get_object_vars(json_decode($jsondetails));
                 $mainTableJson = '';
                 $cronTableJson = '';
                 if (!empty($jsonarr)) {
                     $mainJsonArrayCount = count($jsonarr['testjson']);
                     foreach ($jsonarr['testjson'] as $key => $json) {
                         $jsonVal = @get_object_vars($json);
                         if (!empty($jsonVal)) {
                             $jsondate = explode(' ', $jsonVal['date']);
                             $datetime1 = new DateTime($jsondate[0]);
                             $datetime2 = new DateTime();
                             $interval = $datetime1->diff($datetime2);
                             $interval = $interval->format('%a');
                             if ($interval > 30) {
                                 if ($cronTableJson == '') {
                                     $cronTableJson .= json_encode($jsonVal);
                                 } else {
                                     $cronTableJson .= ',' . json_encode($jsonVal);
                                 }
                                 if (isset($jsonVal['recordid']) && $jsonVal['recordid'] != '') {
                                     $keyflag = $jsonVal['recordid'];
                                 }
                             } else {
                                 if ($mainTableJson == '') {
                                     $mainTableJson .= json_encode($jsonVal);
                                 } else {
                                     $mainTableJson .= ',' . json_encode($jsonVal);
                                 }
                             }
                         }
                         if ($mainJsonArrayCount - 1 == $key) {
                             // if all are greater than 30 days
                             if ($mainTableJson == '') {
                                 $mainTableJson .= json_encode($jsonVal);
                             }
                         }
                     }
                     try {
                         if ($cronTableJson != '' && $mainTableJson != '') {
                             $result = $logmanager_model->UpdateLogManagerWhileCron($id, $mainTableJson);
                             if ($result) {
                                 $InsertId = $logmanagercron_model->InsertLogManagerCron($menuId, $actionflag, $cronTableJson, $userid, $keyflag, $date);
                             }
                             $i++;
                         }
                     } catch (Exception $e) {
                         echo $e->getMessage();
                         exit;
                     }
                 }
             }
         }
     }
 }