Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/colissimo/module-shipping/Plugin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/colissimo/module-shipping/Plugin/OrderRepository.php
<?php
/**
 * Colissimo Shipping Module
 *
 * @author    Magentix
 * @copyright Copyright © 2023 Magentix. All rights reserved.
 * @license   https://www.magentix.fr/en/licence.html Magentix Software Licence
 * @link      https://colissimo.magentix.fr/
 */
namespace Colissimo\Shipping\Plugin;

use Colissimo\Shipping\Api\Data\ShippingDataInterface;
use Magento\Sales\Api\Data\OrderInterface;
use Magento\Sales\Api\Data\OrderExtensionInterface;
use Magento\Sales\Api\Data\OrderSearchResultInterface;
use Magento\Sales\Model\Order\Address;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Sales\Model\Order\ShippingAssignment;

class OrderRepository
{
    /**
     * After Get
     *
     * @param OrderRepositoryInterface $subject
     * @param OrderInterface $order
     *
     * @return OrderInterface
     */
    public function afterGet(OrderRepositoryInterface $subject, OrderInterface $order)
    {
        return $this->addShippingData($order);
    }

    /**
     * After GetList
     *
     * @param OrderRepositoryInterface $subject
     * @param OrderSearchResultInterface $searchCriteria
     *
     * @return OrderSearchResultInterface
     */
    public function afterGetList(OrderRepositoryInterface $subject, OrderSearchResultInterface $searchCriteria)
    {
        foreach ($searchCriteria->getItems() as $order) {
            $this->addShippingData($order);
        }

        return $searchCriteria;
    }

    /**
     * Add Shipping data to order
     *
     * @param OrderInterface $order
     *
     * @return OrderInterface
     */
    public function addShippingData(OrderInterface $order)
    {
        /** @var Address $shippingAddress */
        $shippingAddress = $order->getShippingAddress();

        if (!$shippingAddress) {
            return $order;
        }

        if (!$shippingAddress->getData(ShippingDataInterface::COLISSIMO_PICKUP_ID)) {
            return $order;
        }

        /** @var OrderExtensionInterface $extensionAttributes */
        $extensionAttributes = $order->getExtensionAttributes();

        if ($extensionAttributes === null) {
            return $order;
        }

        if (empty($extensionAttributes->getShippingAssignments())) {
            return $order;
        }

        /** @var ShippingAssignment $shipping */
        $shipping = $extensionAttributes->getShippingAssignments()[0];

        $address = $shipping->getShipping()->getAddress();

        if ($address->getExtensionAttributes() === null) {
            return $order;
        }

        $address->getExtensionAttributes()
            ->setColissimoPickupId($shippingAddress->getData(ShippingDataInterface::COLISSIMO_PICKUP_ID))
            ->setColissimoProductCode($shippingAddress->getData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE))
            ->setColissimoNetworkCode($shippingAddress->getData(ShippingDataInterface::COLISSIMO_NETWORK_CODE));

        return $order;
    }
}

Spamworldpro Mini