![]() 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/SerialNumber/Helper/ |
<?php /** * Copyright (c) 2020 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]> */ declare(strict_types=1); namespace Cnc\SerialNumber\Helper; use Cnc\SerialNumber\Model\Logger; use Magento\Framework\App\ResourceConnection; class Index { const TABLE_NAME = 'cnc_serial_number_index'; /** * @var ResourceConnection */ private $resourceConnection; /** * @var Logger */ private $logger; /** * Index constructor. * @param ResourceConnection $resourceConnection * @param Logger $logger */ public function __construct(ResourceConnection $resourceConnection, Logger $logger) { $this->resourceConnection = $resourceConnection; $this->logger = $logger; } /** * Get last serial number index. * * @return int */ public function getLastIndex(): int { $conn = $this->resourceConnection->getConnection(); $sql = sprintf( 'SELECT version FROM %s WHERE source_code = \'%s\'', self::TABLE_NAME, 'all' ); $version = $conn->fetchOne($sql); return $version ? (int) $version : 38000; } /** * Increase index by value. * * @param int $value * @return bool */ public function increaseIndex(int $value): bool { $current = $this->getLastIndex(); $new = $current + $value; $conn = $this->resourceConnection->getConnection(); $success = (bool) $conn->insertOnDuplicate( self::TABLE_NAME, [ 'source_code' => 'all', 'version' => $new ] ); $message = 'increasing index (source_code, new_index, success): [' . implode(', ', [ 'all', $new, $success ]) . ']'; $this->logger->log($message); return $success; } }