public function returnBookAction()
 {
     $bookId = $this->_getParam("id");
     $model = new Application_Model_Book();
     $book = $model->find($bookId);
     if (false === $book) {
         $this->_flashMessenger->addMessage(array('error' => 'Invalid Request!'));
         $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/library/manage-books'));
     }
     $this->view->book = $book;
     $model = new Application_Model_BookUser();
     $table = $model->getMapper()->getDbTable();
     $select = $table->select()->setIntegrityCheck(false)->from(array("bu" => 'book_user'))->join(array('u' => 'user'), ' bu.user_id = u.id and bu.return_date is null', array("first_name" => "first_name", "last_name" => "last_name", "employee_code" => "employee_code", "email" => "email", "profile_picture" => "profile_picture"))->where("book_id='{$bookId}'");
     //echo $sql = $select->__toString();
     $this->view->bookUser = $bookUser = $table->fetchRow($select);
     $request = $this->getRequest();
     $form = new Application_Form_BookUser();
     $form->removeElement("userId");
     $form->removeElement("issueDate");
     $form->removeElement("estimatedReturnDate");
     if ($request->isPost()) {
         $options = $request->getPost();
         $arrRD = explode(" ", $bookUser->issue_date);
         if ($arrRD[0] > $options['returnDate'] && $options['returnDate'] != "") {
             $options['returnDate'] = "";
             // end date must be greater than start date
             $form->getElement('returnDate')->setRequired(true);
             $form->getElement('returnDate')->addValidators(array(array('NotEmpty', false, array('messages' => array('isEmpty' => 'Return date must be greater than issue date')))));
         }
         if ($form->isValid($options)) {
             $model = new Application_Model_BookUser();
             $bookUser = $model->find($bookUser->id);
             $bookUser->setReturnDate($options['returnDate']);
             $id = $bookUser->save();
             if ($id) {
                 $this->_flashMessenger->addMessage(array('success' => 'Book return successfully!'));
                 $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/library/manage-books'));
             } else {
                 $this->_flashMessenger->addMessage(array('error' => 'Failed to return book!'));
                 $this->_helper->_redirector->gotoUrl($this->view->seoUrl('/library/manage-books'));
             }
             $form->reset();
         } else {
             $form->reset();
             $form->populate($options);
         }
     }
     $this->view->form = $form;
 }