<?php

namespace Leadlion\AutogedalWarehouses\Block\Adminhtml\Order\Create;

class CourierWarehouse extends \Magento\Framework\View\Element\Template
{
    /**
     * @var \Magento\Framework\View\Helper\Js
     */
    protected $_jsHelper = null;

    /**
     * Json encoder
     *
     * @var \Magento\Framework\Json\EncoderInterface
     */
    protected $_jsonEncoder;
    protected $warehouseBlock;
    protected $quoteSession;
    
    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
        \Magento\Framework\View\Helper\Js $jsHelper,
        \Leadlion\AutogedalWarehouses\Block\Warehouse $warehouseBlock,
        \Magento\Backend\Model\Session\Quote $quoteSession,
        array $data = []
    ) {
        $this->quoteSession = $quoteSession;
        $this->warehouseBlock = $warehouseBlock;
        $this->_jsonEncoder = $jsonEncoder;
        $this->_jsHelper = $jsHelper;
        parent::__construct($context, $data);
    }

    /**
     * Render block HTML
     *
     * @return string
     */
    protected function _toHtml()
    {
        /**
         * Adding courier and warehouse for specific product
         */
        if ($this->getRequest()->has('item') &&
            !$this->getRequest()->getPost('update_items')
        ) {
            $quoteId = $this->quoteSession->getQuote()->getId();
            $warehouseData = $this->warehouseBlock->getProductWarehouse($quoteId);
            if ($warehouseData['carrier'] == '') {
                $resultJson = $this->_jsonEncoder->encode(['error' => 'Curierul nu a putut fi selectat automat. Va rugam sa selectati curierul si warehouse-ul manual.']);
            } else {
                $resultJson = $this->_jsonEncoder->encode($warehouseData);
            }
            return $resultJson;
        }
    }
}
