public static
getStockStatus
(mixed $stockCount, mixed $minQuantity, mixed $minMultipleQuantity, mixed $stockStatusIdA, mixed $stockStatusIdN)
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;
}