![]() 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/cartforge.co/app/code/Xtento/StockImport/Controller/Adminhtml/Manual/ |
<?php /** * Product: Xtento_StockImport * ID: u66QkJ5rBwmimhUzUElhIKqqWRvsbhC3WLqSMk5AjmQ= * Last Modified: 2019-02-05T17:10:52+00:00 * File: app/code/Xtento/StockImport/Controller/Adminhtml/Manual/ManualPost.php * Copyright: Copyright (c) XTENTO GmbH & Co. KG <[email protected]> / All rights reserved. */ namespace Xtento\StockImport\Controller\Adminhtml\Manual; use Magento\Framework\App\Filesystem\DirectoryList; class ManualPost extends \Xtento\StockImport\Controller\Adminhtml\Manual { /** * @var \Magento\Framework\Registry */ protected $registry; /** * @var \Xtento\StockImport\Model\ImportFactory */ protected $importFactory; /** * @var \Magento\Framework\Filesystem\Directory\WriteInterface */ protected $logDir; /** * ManualPost constructor. * * @param \Magento\Backend\App\Action\Context $context * @param \Xtento\StockImport\Helper\Module $moduleHelper * @param \Xtento\XtCore\Helper\Cron $cronHelper * @param \Xtento\StockImport\Model\ResourceModel\Profile\CollectionFactory $profileCollectionFactory * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Xtento\StockImport\Model\ProfileFactory $profileFactory * @param \Magento\Framework\Registry $registry * @param \Xtento\StockImport\Model\ImportFactory $importFactory * @param \Magento\Framework\Filesystem $filesystem */ public function __construct( \Magento\Backend\App\Action\Context $context, \Xtento\StockImport\Helper\Module $moduleHelper, \Xtento\XtCore\Helper\Cron $cronHelper, \Xtento\StockImport\Model\ResourceModel\Profile\CollectionFactory $profileCollectionFactory, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Xtento\StockImport\Model\ProfileFactory $profileFactory, \Magento\Framework\Registry $registry, \Xtento\StockImport\Model\ImportFactory $importFactory, \Magento\Framework\Filesystem $filesystem ) { parent::__construct( $context, $moduleHelper, $cronHelper, $profileCollectionFactory, $scopeConfig, $profileFactory ); $this->registry = $registry; $this->importFactory = $importFactory; $this->logDir = $filesystem->getDirectoryWrite(DirectoryList::LOG); } /** * Import action * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw * @throws \Exception */ public function execute() { $profileId = $this->getRequest()->getPost('profile_id'); $profile = $this->profileFactory->create()->load($profileId); if (!$profile->getId()) { $this->messageManager->addErrorMessage(__('No profile selected or this profile does not exist anymore.')); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT); $resultRedirect->setPath('xtento_stockimport/manual/index'); return $resultRedirect; } $redirectParameters = ['profile_id' => $profile->getId()]; // Import try { $beginTime = time(); $importModel = $this->importFactory->create()->setProfile($profile); if ($this->getRequest()->getPost('test_mode') !== null) { $importModel->setTestMode(true); $redirectParameters['test'] = 1; } if ($this->getRequest()->getPost('debug_mode') !== null) { $importModel->setDebugMode(true); $redirectParameters['debug'] = 1; } // Was a file uploaded manually? $uploadedFile = $this->_request->getFiles('manual_file_upload'); if (is_array($uploadedFile) && isset($uploadedFile['tmp_name']) && file_exists($uploadedFile['tmp_name'])) { $tmpFile = $uploadedFile['tmp_name']; $filename = basename($uploadedFile['name']); $uploadedFile = ['source_id' => '0', 'filename' => $filename, 'data' => file_get_contents($tmpFile)]; } else { $uploadedFile = false; } // Start import $importResult = $importModel->manualImport($uploadedFile); if (!$importResult) { $this->messageManager->addWarning(__('There was an error processing this import.')); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create( \Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT ); $resultRedirect->setPath('xtento_stockimport/manual/index', $redirectParameters); return $resultRedirect; } $endTime = time(); if ($importModel->getTestMode()) { $successMessage = __( "%1 of %2 records WOULD have been imported if this wasn't the test mode.", $importResult['updated_record_count'], $importResult['total_record_count'] ); } else { $successMessage = __( '%1 of %2 records have been imported in %3 seconds. If some records haven\'t been imported, they probably simply didn\'t change and didn\'t need to be updated.', $importResult['updated_record_count'], $importResult['total_record_count'], ($endTime - $beginTime) ); } if ($importModel->getDebugMode()) { $this->registry->registry('stockimport_log')->addDebugMessage($successMessage); $this->setDebugMessages(); } $this->messageManager->addSuccess($successMessage); if ($this->registry->registry('stockimport_log')->getResult( ) !== \Xtento\StockImport\Model\Log::RESULT_SUCCESSFUL ) { $this->messageManager->addError( __(nl2br($this->registry->registry('stockimport_log')->getResultMessage())) ); } /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create( \Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT ); $resultRedirect->setPath('xtento_stockimport/manual/index', $redirectParameters); return $resultRedirect; } catch (\Exception $e) { if (isset($importModel) && $importModel->getDebugMode()) { $this->registry->registry('stockimport_log')->addDebugMessage( __('Error: %1', nl2br($e->getMessage())) ); $this->setDebugMessages(); } $this->messageManager->addError(__('%1', nl2br($e->getMessage()))); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT); $resultRedirect->setPath('xtento_stockimport/manual/index', $redirectParameters); return $resultRedirect; } } protected function setDebugMessages() { $maxLen = 900000; $debugMessages = $this->registry->registry('stockimport_log')->getDebugMessages(); if (strlen($debugMessages) > $maxLen) { $logFilename = 'xtento_stockimport_' . uniqid() . '.log'; $this->logDir->writeFile($logFilename, str_replace("\n", "\r\n", $debugMessages)); $debugMessages = substr( $debugMessages, 0, $maxLen ) . __("...\n\nThe debug messages are too long to be shown here. The full debug message log was saved in the ./var/log/%1 file.", $logFilename); } $this->_session->setData('xtento_stockimport_debug_log', $debugMessages); return $this; } }