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/magento/module-sales-sequence/Model/Sequence/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-sales-sequence/Model/Sequence/DeleteByStore.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\SalesSequence\Model\Sequence;

use Magento\Framework\App\ResourceConnection as AppResource;
use Magento\SalesSequence\Model\MetaFactory;
use Magento\SalesSequence\Model\ResourceModel\Meta as ResourceMetadata;

/**
 * Delete Sequence by Store.
 */
class DeleteByStore
{
    /**
     * @var ResourceMetadata
     */
    private $resourceMetadata;

    /**
     * @var MetaFactory
     */
    private $metaFactory;

    /**
     * @var AppResource
     */
    private $appResource;

    /**
     * @param ResourceMetadata $resourceMetadata
     * @param MetaFactory $metaFactory
     * @param AppResource $appResource
     */
    public function __construct(
        ResourceMetadata $resourceMetadata,
        MetaFactory $metaFactory,
        AppResource $appResource
    ) {
        $this->resourceMetadata = $resourceMetadata;
        $this->metaFactory = $metaFactory;
        $this->appResource = $appResource;
    }

    /**
     * Deletes all sequence linked entites
     *
     * @param int $storeId
     * @return void
     * @throws \Exception
     */
    public function execute($storeId): void
    {
        $metadataIds = $this->getMetadataIdsByStoreId($storeId);
        $profileIds = $this->getProfileIdsByMetadataIds($metadataIds);

        $this->appResource->getConnection('sales')->delete(
            $this->appResource->getTableName('sales_sequence_profile'),
            ['profile_id IN (?)' => $profileIds]
        );

        foreach ($metadataIds as $metadataId) {
            $metadata = $this->metaFactory->create();
            $this->resourceMetadata->load($metadata, $metadataId);
            if (!$metadata->getId()) {
                continue;
            }

            $this->appResource->getConnection('sales')->dropTable(
                $metadata->getSequenceTable()
            );
            $this->resourceMetadata->delete($metadata);
        }
    }

    /**
     * Retrieves Metadata Ids by store id
     *
     * @param int $storeId
     * @return int[]
     */
    private function getMetadataIdsByStoreId($storeId)
    {
        $connection = $this->appResource->getConnection('sales');
        $bind = ['store_id' => $storeId];
        $select = $connection->select()->from(
            $this->appResource->getTableName('sales_sequence_meta'),
            ['meta_id']
        )->where(
            'store_id = :store_id'
        );

        return $connection->fetchCol($select, $bind);
    }

    /**
     * Retrieves Profile Ids by metadata ids
     *
     * @param int[] $metadataIds
     * @return int[]
     */
    private function getProfileIdsByMetadataIds(array $metadataIds)
    {
        $connection = $this->appResource->getConnection('sales');
        $select = $connection->select()
            ->from(
                $this->appResource->getTableName('sales_sequence_profile'),
                ['profile_id']
            )->where('meta_id IN (?)', $metadataIds);

        return $connection->fetchCol($select);
    }
}

Spamworldpro Mini