function display($tpl = null) { $orderId = JRequest::getVar('orderid', null); $buyerId = JRequest::getVar('buyerid', null); //Get Id of current user $user = JFactory::getUser(); $userId = $user->get('id'); $pointPaid = EnmasseHelper::getPointPaidByOrderId($orderId); $totalPrice = EnmasseHelper::getTotalPriceByOrderId($orderId); $orderStatus = EnmasseHelper::getOrderStatusByOrderId($orderId); //If current user is owner of the order and the order was paid with point if ($buyerId == $userId && $pointPaid > 0 && $orderStatus == 'Refunded') { $dealName = EnmasseHelper::getDealNameByOrderId($orderId); $this->assignRef('dealName', $dealName); $this->assignRef('orderId', $orderId); $this->assignRef('totalPrice', $totalPrice); $this->assignRef('pointPaid', $pointPaid); $this->assignRef('buyerId', $buyerId); $this->_setPath('template', JPATH_SITE . DS . "components" . DS . "com_enmasse" . DS . "theme" . DS . EnmasseHelper::getThemeFromSetting() . DS . "tmpl" . DS); $this->_layout = "point_refund"; parent::display($tpl); } else { $link = JRoute::_("index.php?option=com_enmasse&view=deallisting", false); JFactory::getApplication()->redirect($link); } }
function doRefund() { $post = JRequest::get('post'); $orderId = $post['orderid']; $pointRefund = $post['point']; $buyerId = $post['buyerid']; //Get Id of current user $user = JFactory::getUser(); $userId = $user->get('id'); $pointPaid = EnmasseHelper::getPointPaidByOrderId($orderId); $totalPrice = EnmasseHelper::getTotalPriceByOrderId($orderId); $orderStatus = EnmasseHelper::getOrderStatusByOrderId($orderId); $refundedAmount = EnmasseHelper::getRefundedAmountByOrderId($orderId); //Check the last time to be sure we do for right buyer and do on a right order $pass = true; if ($pointRefund == '') { $msg = JText::_('INVALID_POINT'); $pass = false; } if ($pointPaid < 0) { $msg = JText::_('NOT_PAID_WITH_POINT'); $pass = false; } if ($pointRefund > $totalPrice) { $msg = JText::_('POINT_NOT_GREATE_TOTAL_PRICE'); $pass = false; } if ($buyerId != $userId) { $msg = JText::_('NOT_OWNER'); $pass = false; } if ($refundedAmount != 0) { $msg = JText::_('ALREADY_REQUESTED'); $pass = false; } if ($pass) { if (JModel::getInstance('point', 'enmasseModel')->doRefund($userId, $orderId, $pointRefund)) { $msg = JText::_('REFUND_SUCCESSFULLY'); } else { $msg = JText::_('REFUND_FAILED'); } $link = JRoute::_("index.php?option=com_enmasse&controller=point&task=refundForm&orderid=" . $orderId . "&buyerid=" . $buyerid, false); JFactory::getApplication()->redirect($link, $msg); } else { $link = JRoute::_("index.php?option=com_enmasse&controller=point&task=refundForm&orderid=" . $orderId . "&buyerid=" . $buyerid, false); JFactory::getApplication()->redirect($link, $msg); } }