function confirmDeal() { $db = JFactory::getDBO(); $option = 'com_enmasse'; $cid = JRequest::getVar('cid', array(), '', 'array'); $name = ""; $appication = JFactory::getApplication(); if ($cid == null) { $appication->redirect('index.php?option=' . $option . '&controller=deal', JText::_('CHOOSE_DEAL_TO_CONFIRM'), 'error'); } for ($i = 0; $i < count($cid); $i++) { $status = JModel::getInstance('deal', 'enmasseModel')->getStatus($cid[$i]); if ($status == "Confirmed") { $appication->redirect('index.php?option=' . $option . '&controller=deal', JText::_('CANNOT_CONFIM_DEAL_CONFIRMED'), 'error'); } elseif ($status == "Voided") { $appication->redirect('index.php?option=' . $option . '&controller=deal', JText::_('CANNOT_CONFIM_DEAL_VOIDED'), 'error'); } elseif ($status == "Pending") { $appication->redirect('index.php?option=' . $option . '&controller=deal', JText::_('CANNOT_CONFIM_DEAL_PENDING'), 'error'); } } //------------------------ //generate integration class $isPointSystemEnabled = EnmasseHelper::isPointSystemEnabled(); if ($isPointSystemEnabled == true) { $integrationClass = EnmasseHelper::getPointSystemClassFromSetting(); $integrateFileName = $integrationClass . '.class.php'; require_once JPATH_SITE . DS . "components" . DS . "com_enmasse" . DS . "helpers" . DS . "pointsystem" . DS . $integrationClass . DS . $integrateFileName; } for ($i = 0; $i < count($cid); $i++) { $dealId = $cid[$i]; $orderItemList = JModel::getInstance('orderItem', 'enmasseModel')->listByPdtIdAndStatus($dealId, "Paid"); foreach ($orderItemList as $orderItem) { EnmasseHelper::orderItemDelivered($orderItem); //------------------------ //generate integration class if ($isPointSystemEnabled == true) { $buyerId = EnmasseHelper::getUserIdByOrderId($orderItem->order_id); $referralId = EnmasseHelper::getReferralIdByOrderId($orderItem->order_id); $integrationObject = new $integrationClass(); $integrationObject->integration($buyerId, 'confirmdeal'); if (!empty($referralId)) { $integrationObject->integration($referralId, 'referralbonus'); } } sleep(1); } JModel::getInstance('deal', 'enmasseModel')->updateStatus($dealId, 'Confirmed'); if ($isPointSystemEnabled == true) { $buyerList = EnmasseHelper::getBuyerRefundConfirmDeal($dealId); $integrationObject = new $integrationClass(); foreach ($buyerList as $buyer) { $integrationObject->integration($buyer['buyer_id'], 'refunddeal', $buyer['point_used_to_pay']); } } } $appication->redirect('index.php?option=' . $option . '&controller=deal', JText::_('CONFIRM_DEAL_SUCCESS_MSG')); }
public static function doNotify($orderId) { $order = JModel::getInstance('order', 'enmasseModel')->getById($orderId); JModel::getInstance('order', 'enmasseModel')->updateStatus($order->id, 'Paid'); $orderItemList = JModel::getInstance('orderItem', 'enmasseModel')->listByOrderId($orderId); $totalQty = 0; for ($count = 0; $count < count($orderItemList); $count++) { $orderItem = $orderItemList[$count]; // only add total sold when order has status of delivered //JModel::getInstance('deal', 'enmasseModel')->addQtySold($orderItem->pdt_id, $orderItem->qty); JModel::getInstance('orderItem', 'enmasseModel')->updateStatus($orderItem->id, 'Paid'); JModel::getInstance('invty', 'enmasseModel')->updateStatusByOrderItemId($orderItem->id, 'Sold'); if ($count == 0) { $dealName = $orderItem->description; } elseif ($count == count($orderItemList) - 1) { $dealName .= " & " . $orderItem->description; } else { $dealName .= " , " . $orderItem->description; } $totalQty += $orderItem->qty; } //--------------------------- //Create the receipt with pdf format //just create bill if the order is not free and buyer have full paid //remember full paid = order->status = "paid" and order->paid_amount == 0.0 if ($order->total_buyer_paid > 0 && $order->paid_amount == 0.0) { $sBillName = BillHelper::createPDF($orderId); } else { $sBillName = ""; } //-------------------------- // Sending email $payment = json_decode($order->pay_detail); $buyer = json_decode($order->buyer_detail); $delivery = json_decode($order->delivery_detail); $params = array(); $params['$buyerName'] = $buyer->name; $params['$buyerEmail'] = $buyer->email; $buyerEmail = $buyer->email; $params['$deliveryName'] = $delivery->name; $params['$deliveryEmail'] = $delivery->email; $params['$orderId'] = self::displayOrderDisplayId($order->id); $params['$dealName'] = $dealName; $params['$totalPrice'] = self::displayCurrency($order->paid_amount); $params['$totalQty'] = $totalQty; $params['$createdAt'] = DatetimeWrapper::getDisplayDatetime($order->created_at); if (self::getSetting()->sending_bill_auto == 1) { self::sendMailByTemplate($buyerEmail, 'receipt', $params, $sBillName); //send mail with bill attachment } else { self::sendMailByTemplate($buyerEmail, 'receipt', $params); //send mail with no attachment } foreach ($orderItemList as $orderItem) { $deal = JModel::getInstance('deal', 'enmasseModel')->getById($orderItem->pdt_id); if ($deal->status == "Confirmed" && $deal->prepay_percent == 100.0) { self::orderItemDelivered($orderItem); } //--- auto confirm deal if ($deal->auto_confirm && $deal->status != "Confirmed" && $deal->min_needed_qty <= $deal->cur_sold_qty) { //------------------------ //generate integration class $isPointSystemEnabled = EnmasseHelper::isPointSystemEnabled(); if ($isPointSystemEnabled == true) { $integrationClass = EnmasseHelper::getPointSystemClassFromSetting(); $integrateFileName = $integrationClass . '.class.php'; require_once JPATH_SITE . DS . "components" . DS . "com_enmasse" . DS . "helpers" . DS . "pointsystem" . DS . $integrationClass . DS . $integrateFileName; } //--- update deal status to "Confirmed" JModel::getInstance('deal', 'enmasseModel')->updateStatus($deal->id, 'Confirmed'); //--- delivery coupon by email if the deal is not partial payment if ($deal->prepay_percent == 100.0) { $arOrderItemDelivery = JModel::getInstance('orderItem', 'enmasseModel')->listByPdtIdAndStatus($deal->id, "Paid"); foreach ($arOrderItemDelivery as $oOrderItem) { EnmasseHelper::orderItemDelivered($oOrderItem); //------------------------ //generate integration class if ($isPointSystemEnabled == true) { $buyerId = EnmasseHelper::getUserIdByOrderId($oOrderItem->order_id); $referralId = EnmasseHelper::getReferralIdByOrderId($oOrderItem->order_id); $integrationObject = new $integrationClass(); $integrationObject->integration($buyerId, 'confirmdeal'); if (!empty($referralId)) { $integrationObject->integration($referralId, 'referralbonus'); } } sleep(1); } } //--- Refund point to who paid with point but without paying by cash if ($isPointSystemEnabled == true) { $buyerList = EnmasseHelper::getBuyerRefundConfirmDeal($deal->id); $integrationObject = new $integrationClass(); foreach ($buyerList as $buyer) { $integrationObject->integration($buyer['buyer_id'], 'refunddeal', $buyer['point_used_to_pay']); } } } } }