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; }