public function executeGetSentDetail() { $param = $this->getAllRequestParameter(); if (empty($param['id'])) { $this->jsonwrapper->show_json_error('#empty-detail', 'Missing ID parameter'); } $id = $param['id']; $this->userInit(); $userId = $this->user->getAttribute('user_id', null, 'bo'); $smsContact = new smsContact(); $smsContactEmployee = new smsContactEmployee(); $cmsTools = new CmsTools(); //$departmentAvailable /* $user_id = $this->user->getAttribute('user_id', null, 'bo'); $this->userSchoolInit(); $this->userStudentInit(); $students = array(); foreach($this->students as $student){ $students[$student->getId()] = $student; } * */ $smsCriteria = new Criteria(); //$smsCriteria->add(SmsLogPeer::CREATOR_USER_ID, $userId, Criteria::EQUAL); //$smsCriteria->add(SmsLogPeer::CREATOR_TYPE, $this->userType, Criteria::EQUAL); $smsCriteria->add(SmsLogPeer::ID, $id, Criteria::EQUAL); $sentDetail = SmsLogPeer::doSelectOne($smsCriteria); if (!$sentDetail) { $this->jsonwrapper->show_json_error('#empty-detail', 'Detail Not Found'); } /* UPDATE STATUS */ //$this->sms->updateStatus($sentDetail->getId()); $recpientsCriteria = new Criteria(); $recpientsCriteria->add(SmsLogRecipientPeer::LOG_ID, $sentDetail->getId(), Criteria::EQUAL); $recpientsCriteria->addAscendingOrderByColumn(SmsLogRecipientPeer::RECIPIENT_ID); $rec = SmsLogRecipientPeer::doSelect($recpientsCriteria); $recId = array(); foreach ($rec as $r) { $recId[] = $r->getId(); } $recipients = array(); foreach ($rec as $r) { $temp = $r->toArray(); $temp['detail'] = null; switch ($r->getRecipientType()) { case 'student': case 'student_class': $recipient = $smsContact->getStudent($r->getRecipientId()); if ($recipient) { $temp['detail'] = array('name' => $recipient->getName(), 'phone_number' => $r->getRecipientNumber(), 'class_group' => $recipient->getClassGroup()->getName()); } break; case 'pbgroup': case 'pbcontact': $recipient = $smsContact->getPbContact($r->getRecipientId()); $temp['detail'] = array('name' => $recipient->getName(), 'phone_number' => $r->getRecipientNumber(), 'group' => $recipient->getSmsPbGroup()->getName()); break; case 'employee': $recipient = $smsContactEmployee->getEmployee($r->getRecipientId()); if ($recipient) { $temp['detail'] = array('name' => $recipient->getName(), 'phone_number' => $r->getRecipientNumber(), 'group' => $recipient->getDepartment()->getName()); } else { $temp['detail'] = array('name' => 'Unknown', 'phone_number' => 'Unknown', 'group' => 'Unknown'); } break; } $recipients[] = $temp; } /* $recOutput = array(); foreach($recipients as $rec){ if($rec->getRecipientType() != 'number'){ $recOutput[] = array('log' => $rec->toArray(), 'name' => $students[$rec->getRecipientId()]->getName()); }else{ $recOutput[] = array('log' => $rec->toArray(), 'name' => ''); } } */ $output = $sentDetail->toArray(); $output['send_at'] = date('d F Y, H:i', strtotime($output['SendAt'])); $output['created'] = date('d F Y, H:i', strtotime($output['Created'])); $this->jsonwrapper->print_json(array('success' => 1, 'data' => array('detail' => $output, 'recipient' => $recipients))); }