![]() 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/ |
<?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; } }