Example #1
0
 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)));
 }