<?php

namespace Autogedal\Retur\Block;

use Magento\Framework\View\Element\Template;
use Autogedal\Retur\ViewModel\CustomHelper;

class OrderItems extends Template
{
    protected $customHelper;

    /**
     * Core registry
     *
     * @var \Magento\Framework\Registry
     */
    protected $_coreRegistry = null;
    
    /**
     * @param Template\Context $context
     * @param array $data
     */
    public function __construct(
        Template\Context $context,
        \Magento\Framework\Registry $registry,
        CustomHelper $customHelper,
        array $data = []
    ) {
        parent::__construct($context, $data);

        $this->customHelper = $customHelper;
        $this->_coreRegistry = $registry;
        $this->_isScopePrivate = true;
    }

    public function getOrder()
    {
        return $this->_coreRegistry->registry('order');
    }

    public function getOrderItems()
    {
        $order = $this->getOrder();
        $orderItems = $order->getAllVisibleItems();
        $availableOrderItems = [];
        foreach ($orderItems as $orderItem) {
            $existingReturQty = $this->customHelper->getReturItemQty($orderItem->getId());
            if (
                $existingReturQty && $existingReturQty < $orderItem->getQtyOrdered()
            ) {
                $orderItem->setQtyOrdered($orderItem->getQtyOrdered() - $existingReturQty);
                $availableOrderItems[] = $orderItem;
            } elseif (!$existingReturQty) {
                $availableOrderItems[] = $orderItem;
            }
        }

        return $availableOrderItems;
    }
}
