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/app/code/Cnc/Shipping/Preference/Colissimo/Model/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Cnc/Shipping/Preference/Colissimo/Model/Address.php
<?php
/**
 * Copyright (c) 2021 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved.
 * https://opensource.org/licenses/OSL-3.0  Open Software License (OSL 3.0)
 * Krzysztof Majkowski <[email protected]>
 */

namespace Cnc\Shipping\Preference\Colissimo\Model;

use Colissimo\Shipping\Api\Data\ShippingDataInterface;
use Colissimo\Shipping\Model\Carrier\Colissimo;

class Address extends \Colissimo\Shipping\Model\Address
{
    /**
     * @overridden
     *
     * Overridden due to fix crash according to msi usage.
     */
    public function updateShippingAddress($order, $quote)
    {
        if (!$order) {
            return $this;
        }

        if (!$quote) {
            return $this;
        }

        $address = $order->getShippingAddress();

        if (!$address) {
            return $this;
        }

        if ($address->getAddressType() !== 'shipping') {
            return $this;
        }

        /* Reset Data */
        $address->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, null);
        $address->setData(ShippingDataInterface::COLISSIMO_PICKUP_ID, null);
        $address->setData(ShippingDataInterface::COLISSIMO_NETWORK_CODE, null);

        $shippingMethods = $quote->getShippingAddress()->getShippingMethod();
        if (is_array($shippingMethods)) {
            foreach ($shippingMethods as $source => $shippingMethod) {
                if (!$shippingMethod) {
                    continue;
                }

                list($code, $method) = explode('_', $shippingMethod);

                if ($code !== Colissimo::SHIPPING_CARRIER_CODE) {
                    continue;
                }

                /* Set code */
                $productCode = $this->shippingHelper->getConfig($method . '/product_code');
                if ($productCode) {
                    $address->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, $productCode);
                }

                /* Set pickup data */
                $pickup = $this->pickup->getPickupAddress($quote->getId());

                if (is_array($pickup)) {
                    $address->setCompany($pickup['company'])
                        ->setStreet([$pickup['street']])
                        ->setPostcode($pickup['postcode'])
                        ->setCity($pickup['city'])
                        ->setCountryId($pickup['country_id'])
                        ->setFax('')
                        ->setCustomerAddressId(null)
                        ->setData(ShippingDataInterface::COLISSIMO_PICKUP_ID, $pickup['pickup_id'])
                        ->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, $pickup['pickup_type'])
                        ->setData(ShippingDataInterface::COLISSIMO_NETWORK_CODE, $pickup['network_code'])
                        ->setSameAsBilling(0)
                        ->setSaveInAddressBook(0);

                    $region = $this->shippingHelper->getRegion($pickup['country_id'], $pickup['postcode']);
                    if ($region->hasData()) {
                        $address->setRegion($region->getDefaultName())
                            ->setRegionId($region->getRegionId())
                            ->setRegionCode($region->getCode());
                    }

                    if ($pickup['telephone']) {
                        $address->setTelephone($pickup['telephone']);
                    }

                    // Do not delete data if there is an error in the order
                    // $this->pickup->reset($quote->getId());
                }
            }
        }

        return $this;
    }
}

Spamworldpro Mini