示例#1
0
 public function getbookdetailsAction()
 {
     self::createModel();
     $request = $this->getRequest();
     $acc_no = $request->getParam('acc_no');
     $objIsbn = new Lib_Model_DbTable_Isbn();
     $objIssueReturn = new Lib_Model_DbTable_IssueReturn();
     $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']);
             $bookIssued = $objIssueReturn->getIssuedBookInfo($acc_no);
             //$this->_helper->logger($bookIssued);
             if ($bookIssued) {
                 $issueDate = new Zend_Date($bookIssued['issue_date'], Zend_Date::ISO_8601);
                 $book['member_id'] = $bookIssued['member_id'];
                 $member_limit = Lib_Model_DbTable_MembershipLimit::getMemberLimit($book['member_id'], $bookInfo['document_type_id']);
                 if (isset($_SESSION['dateFormat'])) {
                     $dateFormat = $_SESSION['dateFormat'];
                 } else {
                     $dateFormat = 'dd/MMM/yyyy';
                 }
                 $book['issue_date'] = $issueDate->toString($dateFormat);
                 $exp_return_date = $issueDate->addDay($member_limit['day_limit']);
                 $day_late = 0;
                 $objtoday = new Zend_Date(Zend_Date::now(), $dateFormat);
                 if ($exp_return_date->isToday() || $objtoday->isEarlier($exp_return_date)) {
                     $day_late = 0;
                 } else {
                     $objtoday->sub($exp_return_date);
                     $day_late = $objtoday->get(Zend_Date::DAY) - 2;
                 }
                 $book['exp_return_date'] = $exp_return_date->toString($dateFormat);
                 $book['day_late'] = $day_late;
                 $bookStatus = 1;
             }
             $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.';
     }
 }
 /**
  * The default action - show the home page
  */
 public function getmembershiplimitAction()
 {
     $request = $this->getRequest();
     $membership_type = $request->getParam('membership_type');
     $document_type = $request->getParam('document_type');
     if ($membership_type) {
         $membershipLimit = Lib_Model_DbTable_MembershipLimit::getMembershipLimits($membership_type, $document_type);
         if ($membershipLimit) {
             $this->_helper->json($membershipLimit);
         } else {
             $this->getResponse()->setHttpResponseCode(400);
             echo '"' . $membership_type . '" is not a valid membership type.';
         }
     }
 }
示例#3
0
 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';
     }
 }