function preview() { $arOrder = JModel::getInstance("order", "EnmasseModel")->search(); if (empty($arOrder)) { echo "<h1>There haven't order for preview, please make a order before you can see bill preview<h1>"; die; } else { $nId = $arOrder[0]->id; } BillHelper::createPDF($nId, 'I'); die; }
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']); } } } } }