<?php

namespace Leadlion\SalesOrder\Model\Order;

use Exception;
use Magento\Sales\Model\Order;

class Edit extends \Mageplaza\EditOrder\Model\Order\Edit
{
    /**
     * @param Order $order
     * @param array $data
     *
     * @return array
     */
    public function setInfoData($order, $data)
    {
        if (isset($data['autogedal_operator_id'])) {
            $order->setAutogedalOperatorId($data['autogedal_operator_id']);
        }

        if (isset($data['increment']) && $this->checkIncrementId($data['increment'], $order->getIncrementId())) {
            return [
                'error' => true,
                'message' => __('The increment id already exists')
            ];
        }

        if (isset($data['increment'])) {
            $order->setIncrementId($data['increment']);
        }
        if (isset($data['date'])) {
            $order->setCreatedAt($this->timezone->convertConfigTimeToUtc($data['date']));
        }
        if (isset($data['status'])) {
            $order->setStatus($data['status']);
        }

        try {
            $this->orderResourceModel->save($order);
            $result = ['success' => true];
        } catch (Exception $e) {
            $result = [
                'error'   => true,
                'message' => $e->getMessage()
            ];
        }

        return $result;
    }
}
