File: D:/HostingSpaces/SBogers10/deensekroon.komma-mediadesign.nl/wwwroot/php/miinto/MiintoRepository.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/php/discount/DiscountService.php';
class MiintoRepository
{
protected $mysqli;
protected $discountService;
public function __construct()
{
global $mysqli;
$this->mysqli = $mysqli;
$this->discountService = new DiscountService();
}
/**
* @return array|string
*/
public function getProducts()
{
$query = 'SELECT
products.id,
products.titleNL,
products.descriptionNL,
products.price,
products.discountPrice,
products.thumb,
products.color,
products.miintoCategoryId,
brands.title AS brandTitle
FROM product_products AS products
INNER JOIN merken AS brands
ON products.brandId = brands.id
INNER JOIN content_status AS status
ON products.id = status.itemId
WHERE status.active = 1
AND status.linkname = "product_products"
AND products.published = 1
AND products.miintoCategoryId IS NOT NULL
';
if($result = $this->mysqli->query($query))
{
$products = [];
while($record = $result->fetch_assoc())
{
$product = [];
$product['id'] = $record['id'];
$product['title'] = fromDatabase($record['titleNL']);
$product['description'] = fromDatabase($record['descriptionNL']);
$product['thumb'] = fromDatabase($record['thumb']);
$product['color'] = $record['color'];
$product['price'] = $record['price'] * 100; // price in cents
if( ! empty($record['discountPrice']))
{
$product['old_price'] = $product['price'];
$product['price'] = $record['discountPrice'] * 100; // price in cents
}
else
{
$product['old_price'] = 0;
// Check discount price
$discountFactor = $this->discountService->getDiscountFactorOnProduct($record['id']);
if($discountFactor > 0 && $discountFactor < 1)
{
$product['old_price'] = $product['price'];
$product['price'] = round($product['price'] * $discountFactor);
}
}
$product['brand'] = fromDatabase($record['brandTitle']);
$product['category'] = $record['miintoCategoryId'];
$products[] = (object) $product;
}
return $products;
}
return $this->mysqli->error;
}
public function getProductImages()
{
$query = 'SELECT
images.shortcode,
images.path,
instances.productId
FROM media_files AS images
INNER JOIN product_instances AS instances
ON images.shortcode = instances.shortcode
';
if($result = $this->mysqli->query($query))
{
$images = [];
while($record = $result->fetch_object())
{
$images[$record->productId][$record->shortcode] = $_SERVER['HTTP_HOST'] . '/images/uploads/' . $record->path;
}
return $images;
}
return $this->mysqli->error;
}
public function getProductStock()
{
$query = 'SELECT
stock.productId,
stock.ean,
stock.size,
stock.inStock
FROM shop_stock AS stock ';
if($result = $this->mysqli->query($query))
{
$stock = [];
while($record = $result->fetch_object())
{
if( empty($record->size) ) $record->size = 'One size';
$size = [];
$size['ean'] = $record->ean;
$size['size'] = ucfirst($record->size);
$size['inStock'] = $record->inStock;
$stock[$record->productId][] = (object) $size;
}
return $stock;
}
return $this->mysqli->error;
}
}