function onPaymentForOrder($paylog, $order) { if (!$order->status == 'C') { return; } $modelorder = JTheFactoryPricingHelper::getModel('orders'); $items = $modelorder->getOrderItems($order->id, self::getItemName()); if (!is_array($items) || !count($items)) { return; } //no Listing items in order foreach ($items as $item) { if ($item->itemname != self::getItemName()) { continue; } $modelbalance = JTheFactoryPricingHelper::getModel('balance'); $currency = JTheFactoryPricingHelper::getModel('currency'); $default_currency = $currency->getDefault(); $amount = BidsHelperPrices::convertCurrency($item->price, $item->currency, $default_currency); $modelbalance->increaseBalance($amount, $order->userid); } }
function onAfterSaveAuctionSuccess($auction) { if (!$auction->published) { return; } //not published yet $orderitems = BidsHelperAuction::getOrderItemsForAuction($auction->id, self::getItemName()); if (count($orderitems)) { foreach ($orderitems as $item) { if ($item->status == 'C') { return; } } //Auction was paid for! } $model = self::getModel(); $price = $model->getItemPrice($auction->cat); if (!floatval($price->price)) { return; } // Free publishing $modelbalance = JTheFactoryPricingHelper::getModel('balance'); $balance = $modelbalance->getUserBalance(); if (BidsHelperPrices::comparePrices($price, array("price" => $balance->balance, "currency" => $balance->currency)) > 0) { //insufficient funds $auction->published = 0; $a = JTable::getInstance('auction'); $a->bind($auction); $a->store(); $modelorder = JTheFactoryPricingHelper::getModel('orders'); $item = $model->getOderitem($auction); $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'P'); $session = JFactory::getSession(); $session->set('checkout-order', $order->id, self::getContext()); return; } //get funds from account, create confirmed order $balance_minus = BidsHelperPrices::convertCurrency($price->price, $price->currency, $balance->currency); $modelbalance->decreaseBalance($balance_minus); $modelorder = JTheFactoryPricingHelper::getModel('orders'); $item = $model->getOderitem($auction); $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'C'); }
private function generateOrder($bid, $catid, $needsPositiveBalance) { $app = JFactory::getApplication(); $model = self::getModel(); $price = $model->getItemPrice($catid); if (!floatval($price->price)) { return; } // Free publishing $modelbalance = JTheFactoryPricingHelper::getModel('balance'); $balance = $modelbalance->getUserBalance($bid->userid); if ($needsPositiveBalance) { if (BidsHelperPrices::comparePrices($price, array("price" => $balance->balance, "currency" => $balance->currency)) > 0) { $app->enqueueMessage(JText::_('COM_BIDS_NOT_ENOUGH_FUNDS_TO_BID'), 'notice'); $modelorder = JTheFactoryPricingHelper::getModel('orders'); $item = $model->getOderitem($bid); $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'P'); $app->redirect(BidsHelperRoute::getCheckoutRoute($order->id, false)); } } //get funds from account, create confirmed order $balance_minus = BidsHelperPrices::convertCurrency($price->price, $price->currency, $balance->currency); $modelbalance->decreaseBalance($balance_minus, $bid->userid); $modelorder = JTheFactoryPricingHelper::getModel('orders'); $item = $model->getOderitem($bid); $modelorder->createNewOrder($item, $price->price, $price->currency, $bid->userid, 'C'); }
function onBeforeExecuteTask(&$stopexecution) { $app = JFactory::getApplication(); if ($app->isAdmin()) { return; } $task = JRequest::getCmd('task', 'listauctions'); if ($task == 'setfeatured') { $id = JRequest::getInt("id"); $auction = JTable::getInstance('auction'); $app = JFactory::getApplication(); if (!$auction->load($id)) { JError::raiseWarning(550, JText::_("COM_BIDS_ERROR_LOADING_AUCTION_ID") . $id); $app->redirect(BidsHelperRoute::getAuctionDetailRoute($auction)); return; } if (!$auction->isMyAuction()) { JError::raiseWarning(501, JText::_("COM_BIDS_THIS_AUCTION_DOES_NOT_BELONG_TO_YOU")); $app->redirect(BidsHelperRoute::getAuctionDetailRoute($auction)); return; } $model = self::getModel(); $modelorder = JTheFactoryPricingHelper::getModel('orders'); $modelbalance = JTheFactoryPricingHelper::getModel('balance'); $price = $model->getItemPrice(); $balance = $modelbalance->getUserBalance(); $item = $model->getOderitem($auction); if (BidsHelperPrices::comparePrices($price, array("price" => $balance->balance, "currency" => $balance->currency)) > 0) { $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'P'); $app->redirect(BidsHelperRoute::getCheckoutRoute($order->id, false)); return; } //get funds from account, create confirmed order $balance_minus = BidsHelperPrices::convertCurrency($price->price, $price->currency, $balance->currency); $modelbalance->decreaseBalance($balance_minus); $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'C'); $auction->featured = 'featured'; $auction->store(); $app->redirect(BidsHelperRoute::getAuctionDetailRoute($auction)); return; } }
function onBeforeExecuteTask(&$stopexecution) { $app = JFactory::getApplication(); if ($app->isAdmin()) { return; } $task = JRequest::getCmd('task', 'listauctions'); if ($task == 'buy_contact') { $user = JFactory::getUser(); $app = JFactory::getApplication(); $id = JRequest::getInt("id"); $model = self::getModel(); if ($user->id == $id && $model->checkContact($id)) { JError::raiseWarning(501, JText::_("COM_BIDS_CONTACT_IS_ALREADY_PURCHASED")); $app->redirect(BidsHelperRoute::getUserdetailsRoute($id, false)); return; } $modelorder = JTheFactoryPricingHelper::getModel('orders'); $modelbalance = JTheFactoryPricingHelper::getModel('balance'); $price = $model->getItemPrice(); $balance = $modelbalance->getUserBalance(); $item = $model->getOderitem($id); if (BidsHelperPrices::comparePrices($price, array("price" => $balance->balance, "currency" => $balance->currency)) > 0) { $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'P'); $app->redirect(BidsHelperRoute::getCheckoutRoute($order->id, false)); return; } //get funds from account, create confirmed order $balance_minus = BidsHelperPrices::convertCurrency($price->price, $price->currency, $balance->currency); $modelbalance->decreaseBalance($balance_minus); $order = $modelorder->createNewOrder($item, $price->price, $price->currency, null, 'C'); $model->addContact($id, $order->userid); $app->redirect(BidsHelperRoute::getUserdetailsRoute($id)); return; } }