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/extmag/shiplab/Model/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/extmag/shiplab/Model/LabelRepository.php
<?php
/**
 * Copyright © Extmag. All rights reserved.
 */

namespace Extmag\Shiplab\Model;

use Extmag\Shiplab\Api\Data\LabelInterface;
use Extmag\Shiplab\Api\LabelRepositoryInterface;
use Extmag\Shiplab\Helper\Url;
use Extmag\Shiplab\Model\ResourceModel\Label as ResourceLabel;
use Exception;
use Magento\Framework\Exception\CouldNotDeleteException;
use Magento\Framework\Filesystem\Driver\File;
use Magento\Sales\Api\ShipmentTrackRepositoryInterface;
use Magento\Sales\Model\ResourceModel\Order\Shipment\Track\Collection;
use Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory;

/**
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
 */
class LabelRepository extends DefaultRepository implements LabelRepositoryInterface
{
    protected $entityName = 'Shipping Label';

    /**
     * @var Url
     */
    protected $url;

    /**
     * @var File
     */
    protected $file;

    protected $collectionTracks;
    public $trackRepository;

    public function __construct(
        ResourceLabel $resource,
        LabelFactory $entityFactory,
        Url $url,
        File $file,
        CollectionFactory $collectionTracks,
        ShipmentTrackRepositoryInterface $trackRepository
    ) {
        parent::__construct($resource, $entityFactory);
        $this->url              = $url;
        $this->file             = $file;
        $this->collectionTracks = $collectionTracks;
        $this->trackRepository  = $trackRepository;
    }

    /**
     * @param LabelInterface $item
     *
     * @return bool
     * @throws CouldNotDeleteException
     */
    public function deleteWithData(LabelInterface $item)
    {
        try {
            $trackingNumbers = explode(',', $item->getTrackingNumber());
            $masterId        = $item->getMasterId();
            $carrierCode     = $item->getCarrierCode();
            $extension       = $item->getExtension();
            $mediaRootDir    = $this->url->getMediaPath() . '/';

            if (!empty($trackingNumbers) && !empty($carrierCode)) {
                foreach ($trackingNumbers as $trackingNumber) {
                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'label', $extension)
                        . $trackingNumber . '.' . $extension
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'label', $extension)
                            . $trackingNumber . '.' . $extension
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'label', 'png')
                        . $trackingNumber . '.png'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'label', 'png')
                            . $trackingNumber . '.png'
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'label', 'html')
                        . $trackingNumber . '.html'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'label', 'html')
                            . $trackingNumber . '.html'
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'hvr', null)
                        . $masterId . '.html'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'hvr', null)
                            . $masterId . '.html'
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'invoice', null)
                        . $masterId . '.pdf'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'invoice', null)
                            . $masterId . '.pdf'
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'turn_in_copy', null)
                        . $masterId . '.pdf'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'turn_in_copy', null)
                            . $masterId . '.pdf'
                        );
                    }

                    if ($this->file->isExists(
                        $mediaRootDir
                        . $this->url->getExtmagMediaPath($carrierCode, 'dg_paper', null)
                        . $masterId . '.pdf'
                    )) {
                        $this->file->deleteFile(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'dg_paper', null)
                            . $masterId . '.pdf'
                        );
                    }

                    for ($i = 1; $i < 300; $i ++) {
                        if ($this->file->isExists(
                            $mediaRootDir
                            . $this->url->getExtmagMediaPath($carrierCode, 'archive', $extension)
                            . $masterId . ($i == 1 ? '' : '-' . $i) . '.' . $extension
                        )) {
                            $this->file->deleteFile(
                                $mediaRootDir
                                . $this->url->getExtmagMediaPath($carrierCode, 'archive', $extension)
                                . $masterId . ($i == 1 ? '' : '-' . $i) . '.' . $extension
                            );
                        } else {
                            break;
                        }
                    }
                }
            }

            /**
             * @var $track Collection
             */
            $track = $this->collectionTracks->create();
            $track = $track->addFieldToFilter('track_number', $masterId)->getFirstItem();
            if (!empty($track)) {
                $this->trackRepository->delete($track);
            }

            $this->resource->delete($item);
        } catch (Exception $exception) {
            throw new CouldNotDeleteException(
                __(
                    'Could not delete the shipping label: %1',
                    $exception->getMessage()
                )
            );
        }

        return true;
    }
}

Spamworldpro Mini