function submitReview() { $post = JRequest::get('post'); $table = $this->getTable('ReviewCustomers', 'Table'); $table->bind($post); $table->review_date = date("Y-m-d"); if (!$table->store()) { $this->setError($this->_db->getErrorMsg()); return false; } $reviewId = $table->review_id; $reviewAnswersTbl = $this->getTable('ReviewAnswers', 'Table'); $reviewQuestions = $this->getReviewQuestions(); foreach ($reviewQuestions as $reviewQuestion) { if (isset($post["question_" . $reviewQuestion->review_question_id])) { $reviewAnswersTbl->review_question_id = $reviewQuestion->review_question_id; $reviewAnswersTbl->review_id = $reviewId; $reviewAnswersTbl->rating_scale_id = $post["question_" . $reviewQuestion->review_question_id]; if (!$reviewAnswersTbl->store()) { $this->setError($this->_db->getErrorMsg()); throw new Exception('Error saving answers' . $this->_db->getErrorMsg()); return false; } } } $properties = $table->getProperties(1); $review = JArrayHelper::toObject($properties, 'JObject'); $hotelID = $this->getHotelId($table->confirmation_id); $this->calculateHotelReview($hotelID); $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($table->confirmation_id); $emailService = new EmailService(); $emailService->sendReviewSubmitedEmail($reservationDetails, $review); }