Back to PhocacartStock class

Method getStockStatus

public static
getStockStatus
(mixed $stockCount, mixed $minQuantity, mixed $minMultipleQuantity, mixed $stockStatusIdA, mixed $stockStatusIdN)

Method getStockStatus - Source code

public static function getStockStatus($stockCount, $minQuantity, $minMultipleQuantity, $stockStatusIdA, $stockStatusIdN)
{
    // A > 0 OR Not checking
    // N = 0
    $app = Factory::getApplication();
    $paramsC = PhocacartUtils::getComponentParameters();
    $stock_checking = $paramsC->get('stock_checking', 0);
    $display_stock_status = $paramsC->get('display_stock_status', 1);
    $stock_checkout = $paramsC->get('stock_checkout', 0);
    $stock_status_display_count = $paramsC->get('stock_status_display_count', 0);
    $stock = array();
    /*
    		if($stockStatusIdN > 0) {
    			$dataB = self::getStockStatusData($stockStatusId);
    		}*/
    $stock['stock_count'] = false;
    $stock['stock_status'] = false;
    $stock['status_image'] = false;
    $stock['status_link'] = false;
    $stock['status_link_target'] = false;
    $stock['status_display_count'] = (int) $stock_status_display_count;
    $stock['stock_status_feed'] = false;
    // Additional status text for feeds only - it is managed by $stock['stock_status']
    // we differentiate between views: Category, Items, Item view but this happens in view - not here
    // so in views we decide if we will ask this function
    // Example we select that stock status will be not displayed in category (items) view but only in item view $display_stock_status = 1
    // in category(items) view we have the condition so we never ask this function from this view, this is why we don't need to
    // handle different values for $display_stock_status
    // $display_stock_status = 1 ... item view
    // $display_stock_status = 2 ... category (items) view
    // $display_stock_status = 3 ... item and category (items) view
    // $display_stock_status = 3 ... item and category (items) view
    if ($display_stock_status > 0) {
        if ($stock_checking == 1) {
            if ((int) $stockCount > 0) {
                // 1 There is product in stock, display status - if set
                if ($stockStatusIdA > 0) {
                    $data = self::getStockStatusData($stockStatusIdA, 1);
                    if (!empty($data) && $data[0]->title != '') {
                        $stock['stock_status'] = Text::_($data[0]->title);
                        $stock['stock_status_feed'] = Text::_($data[0]->title_feed);
                    }
                    if (!empty($data) && $data[0]->image != '') {
                        $stock['status_image'] = $data[0]->image;
                    }
                    if (!empty($data) && $data[0]->link != '') {
                        $stock['status_link'] = $data[0]->link;
                    }
                    if (!empty($data) && $data[0]->link_target != '') {
                        $stock['status_link_target'] = $data[0]->link_target;
                    }
                }
                $stock['stock_count'] = $stockCount;
            } else {
                // 2 There is no product in stock, display status - if set
                if ($stockStatusIdN > 0) {
                    $data = self::getStockStatusData($stockStatusIdN, 0);
                    if (!empty($data) && $data[0]->title != '') {
                        $stock['stock_status'] = Text::_($data[0]->title);
                        $stock['stock_status_feed'] = Text::_($data[0]->title_feed);
                    }
                    if (!empty($data) && $data[0]->image != '') {
                        $stock['status_image'] = $data[0]->image;
                    }
                    if (!empty($data) && $data[0]->link != '') {
                        $stock['status_link'] = $data[0]->link;
                    }
                    if (!empty($data) && $data[0]->link_target != '') {
                        $stock['status_link_target'] = $data[0]->link_target;
                    }
                }
                $stock['stock_count'] = 0;
            }
        } else {
            // 3 No stock checking we don't care about count of products but we want to display status
            if ($stockStatusIdA > 0) {
                $data = self::getStockStatusData($stockStatusIdA, 1);
                if (!empty($data) && $data[0]->title != '') {
                    $stock['stock_status'] = Text::_($data[0]->title);
                    $stock['stock_status_feed'] = Text::_($data[0]->title_feed);
                }
                if (!empty($data) && $data[0]->image != '') {
                    $stock['status_image'] = $data[0]->image;
                }
                if (!empty($data) && $data[0]->link != '') {
                    $stock['status_link'] = $data[0]->link;
                }
                if (!empty($data) && $data[0]->link_target != '') {
                    $stock['status_link_target'] = $data[0]->link_target;
                }
            }
            // Stock count is set to false
        }
    }
    $stock['min_quantity'] = false;
    if ($minQuantity > 0) {
        $stock['min_quantity'] = $minQuantity;
    }
    $stock['min_multiple_quantity'] = false;
    if ($minMultipleQuantity > 0) {
        $stock['min_multiple_quantity'] = $minMultipleQuantity;
    }
    return $stock;
}