HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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;
    }
}