예제 #1
0
 public function executeGetSoal()
 {
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     header('Content-type: application/json');
     $this->jsonwrapper = new jsonwrapper();
     /* Check sudah login atau belum */
     if (!$this->getUser()->isAuthenticated2('bo')) {
         $this->jsonwrapper->show_json_error('not login', 'Sorry, You must logged in to access this page.');
     }
     $user_id = $this->getContext()->getUser()->getAttribute('user_id', null, 'bo');
     /* Check apakah user terdaftar */
     $applicant = TestApplicantPeer::retrieveByPk($user_id);
     if (!$applicant) {
         $this->jsonwrapper->show_json_error('not register', 'Sorry, Please register first.');
     }
     /* Cari Angket Session */
     $c = new Criteria();
     $c->add(AngketpmbSessionPeer::TEST_APPLICANT_ID, $applicant->getId(), Criteria::EQUAL);
     $angketSession = AngketpmbSessionPeer::doSelectOne($c);
     if ($angketSession) {
         $angketSession->getId();
     }
     /* Cari soal-soal */
     $c = new Criteria();
     $c->addAscendingOrderByColumn(AngketpmbSoalPeer::ORDERING);
     $soal = AngketpmbSoalPeer::doSelect($c);
     if (!$soal) {
         $this->jsonwrapper->show_json_error('allQuestionError', 'Error while get the Questions.');
     }
     $soalArray = array();
     foreach ($soal as $s) {
         $temp = $s->toArray();
         $temp['option'] = array();
         $temp['answer'] = null;
         if ($angketSession) {
             /* Cari Jawaban yang pernah dipilih sebelumnya */
             $c = new Criteria();
             $c->add(AngketpmbSessionAnswerPeer::SESSION_ID, $angketSession->getId(), Criteria::EQUAL);
             $c->add(AngketpmbSessionAnswerPeer::SOAL_ID, $s->getId(), Criteria::EQUAL);
             $angketAnswer = AngketpmbSessionAnswerPeer::doSelectOne($c);
             if ($angketAnswer) {
                 $temp['answer'] = $angketAnswer->getOptionId();
             }
         }
         /* Cari Opsi Jawaban */
         $c = new Criteria();
         $c->add(AngketpmbOptionPeer::SOAL_ID, $s->getId(), Criteria::EQUAL);
         $c->addAscendingOrderByColumn(AngketpmbOptionPeer::ORDERING);
         $option = AngketpmbOptionPeer::doSelect($c);
         if ($option) {
             foreach ($option as $o) {
                 $temp['option'][] = $o->toArray();
             }
         }
         $soalArray[] = $temp;
     }
     $this->jsonwrapper->print_json($soalArray);
     die;
 }
예제 #2
0
 public static function retrieveByPKs($pks, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria();
         $criteria->add(AngketpmbOptionPeer::ID, $pks, Criteria::IN);
         $objs = AngketpmbOptionPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
예제 #3
0
 public function getAngketpmbOptions($criteria = null, $con = null)
 {
     include_once 'lib/model/om/BaseAngketpmbOptionPeer.php';
     if ($criteria === null) {
         $criteria = new Criteria();
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     if ($this->collAngketpmbOptions === null) {
         if ($this->isNew()) {
             $this->collAngketpmbOptions = array();
         } else {
             $criteria->add(AngketpmbOptionPeer::SOAL_ID, $this->getId());
             AngketpmbOptionPeer::addSelectColumns($criteria);
             $this->collAngketpmbOptions = AngketpmbOptionPeer::doSelect($criteria, $con);
         }
     } else {
         if (!$this->isNew()) {
             $criteria->add(AngketpmbOptionPeer::SOAL_ID, $this->getId());
             AngketpmbOptionPeer::addSelectColumns($criteria);
             if (!isset($this->lastAngketpmbOptionCriteria) || !$this->lastAngketpmbOptionCriteria->equals($criteria)) {
                 $this->collAngketpmbOptions = AngketpmbOptionPeer::doSelect($criteria, $con);
             }
         }
     }
     $this->lastAngketpmbOptionCriteria = $criteria;
     return $this->collAngketpmbOptions;
 }