public function executeGetAllSents() { $param = $this->getAllRequestParameter(); $limit = !empty($param['limit']) ? $param['limit'] : 20; $offset = !empty($param['offset']) ? $param['offset'] : 0; /* SET ORDER */ $order = 'created'; $this->userInit(); $user_id = $this->user->getAttribute('user_id', null, 'bo'); $senderIdAvailable = $this->senderIdAvailable(); $senderId = array(); foreach ($senderIdAvailable as $s) { $senderId[] = $s->getId(); } /* Get Sent Item */ $smsCriteria = new Criteria(); $smsCriteria->add(SmsLogPeer::SENDER_ID, $senderId, Criteria::IN); $sentCount = SmsLogPeer::doCount($smsCriteria); $smsCriteria->addDescendingOrderByColumn(SmsLogPeer::CREATED); $smsCriteria->setLimit($limit); $smsCriteria->setOffset($offset); $sents = SmsLogPeer::doSelect($smsCriteria); /* Mapping lectorId and CommondId */ $lectorId = array(); $commonId = array(); foreach ($sents as $sent) { if ($sent->getCreatorType() == 'lector') { $lectorId[] = $sent->getCreatorUserId(); } else { if ($sent->getCreatorType() == 'common') { $commonId[] = $sent->getCreatorUserId(); } } } /* Get lector (employee) */ $eCrit = new Criteria(); $eCrit->add(EmployeePeer::ID, $lectorId, Criteria::IN); $employee = EmployeePeer::doSelect($eCrit); $lector = array(); foreach ($employee as $e) { $lector[$e->getId()] = $e->getName(); } /* Get common (user) */ $cCrit = new Criteria(); $cCrit->add(UserPeer::ID, $commonId, Criteria::IN); $user = UserPeer::doSelect($cCrit); $common = array(); foreach ($user as $u) { $common[$u->getId()] = $u->getLogin(); } /* Mapping Sent Item */ $output = array(); foreach ($sents as $sent) { $temp = $sent->toArray(); $temp['created'] = date('d F Y, H:i', strtotime($temp['Created'])); $temp['send_at'] = date('d F Y, H:i', strtotime($temp['SendAt'])); $temp['creator_name'] = ''; if ($sent->getCreatorType() == 'lector') { $temp['creator_name'] = $lector[$sent->getCreatorUserId()]; } else { if ($sent->getCreatorType() == 'common') { $temp['creator_name'] = $common[$sent->getCreatorUserId()]; } else { if ($sent->getCreatorType() == 'system') { $temp['creator_name'] = 'system'; } } } $temp['sender_id'] = $sent->getSmsSenderId()->getInitial(); $output[] = $temp; } $this->jsonwrapper->print_json(array('success' => 1, 'data' => $output, 'all_data_count' => $sentCount)); }