public function issuebookAction()
 {
     $this->model = new Lib_Model_DbTable_IssueReturn();
     $request = $this->getRequest();
     $acc_no = $request->getParam('acc_no');
     $memberId = $request->getParam('member_id');
     if (isset($acc_no) and isset($memberId)) {
         $bookInfo = Lib_Model_DbTable_Book::getBookInfo($acc_no);
         $this->_helper->logger->notice('Book Info');
         $this->_helper->logger->debug($bookInfo);
         if ('AVAILABLE' == strtoupper($bookInfo['status'])) {
             $memberConstraints = Lib_Model_DbTable_MembershipLimit::getMemberLimit($memberId, $bookInfo['document_type_id']);
             $this->_helper->logger->notice('Member Constraints');
             $this->_helper->logger->debug($memberConstraints);
             // assuming that document type will be always 'reg'.
             $issuedCount = Lib_Model_DbTable_IssueReturn::getIssuedDocumentCount($memberId, $bookInfo['document_type_id']);
             $this->_helper->logger->notice('Issued Book Info');
             $this->_helper->logger->debug($memberConstraints);
             if ($issuedCount < $memberConstraints['document_limit']) {
                 $result['trans_id'] = $this->model->issuebook($acc_no, $memberId);
                 $result['totBooksIssued'] = $issuedCount + 1;
                 $this->_helper->logger->notice('Result');
                 $this->_helper->logger->debug($result);
                 echo $this->_helper->json($result, false);
                 return;
             } else {
                 $this->getResponse()->setHttpResponseCode(400);
                 echo $issuedCount . ' books are already issued to ' . $memberId . '.<br/> (Max limit = ' . $memberConstraints['document_limit'] . ')';
             }
         } else {
             $this->getResponse()->setHttpResponseCode(400);
             echo 'The acc number "' . $acc_no . '" is not "AVAILBLE".';
         }
     } else {
         $this->getResponse()->setHttpResponseCode(400);
         echo 'Insufficient parameters';
     }
 }
 public function getbookAction()
 {
     self::createModel();
     $request = $this->getRequest();
     $acc_no = $request->getParam('acc_no');
     $objIsbn = new Lib_Model_DbTable_Isbn();
     $book = array();
     if (isset($acc_no)) {
         $bookInfo = Lib_Model_DbTable_Book::getBookInfo($acc_no);
         if (isset($bookInfo['isbn_id'])) {
             $book = $objIsbn->getIsbnDetails($bookInfo['isbn_id']);
             //$this->_helper->logger($bookIssued);
             $book['bookInfo'] = $bookInfo;
             $this->_helper->json($book);
             //echo Zend_Json::encode($book);
         } else {
             $this->getResponse()->setHttpResponseCode(400);
             echo 'Either the Acc No "' . $acc_no . '" or its corrosponding ISBN is invalid.';
         }
     } else {
         $this->getResponse()->setHttpResponseCode(400);
         echo 'Parameters are insufficient to process.';
     }
 }
 public function getisbnbooksAction()
 {
     $request = $this->getRequest();
     $isbn_id = $request->getParam('isbn_id');
     $status = $request->getParam('status');
     $format = $request->getParam('format', 'str');
     if ($isbn_id) {
         $table = new Lib_Model_DbTable_Book();
         $result = $table->isbnBooks($isbn_id, $status);
         switch ($format) {
             case 'str':
                 //@TODO Consider status if required.
                 $this->_helper->logger('Format "Str" ignores status');
                 $accNo = array();
                 foreach ($result as $key => $book) {
                     $accNo[] = $book['acc_no'];
                 }
                 echo implode(', ', $accNo);
                 return;
             case 'json':
                 echo $this->_helper->json($result, false);
             default:
                 break;
         }
     }
 }