Files
kupshop/bundles/KupShop/UserBundle/Resources/script/DiscountImport.php
2025-08-02 16:30:27 +02:00

72 lines
2.5 KiB
PHP

<?php
namespace KupShop\UserBundle\Resources\script;
use KupShop\AdminBundle\Util\Script\Script;
use KupShop\KupShopBundle\Util\System\PathFinder;
class DiscountImport extends Script
{
use \DatabaseCommunication;
protected static $name = 'Import slev';
protected static $defaultParameters = ['name' => 'customers.xlsx'];
protected function run(array $arguments)
{
require_once './engine/class/class.PHPExcel.php';
$pathData = (new PathFinder())->getDataDir().$arguments['name'];
if (file_exists($pathData)) {
$type = \PHPExcel_IOFactory::identify($pathData);
$objReader = \PHPExcel_IOFactory::createReader($type);
$objReader->setLoadAllSheets();
$objPHPExcel = $objReader->load($pathData);
$loadedSheetNames = $objPHPExcel->getSheetNames();
foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) {
$objPHPExcel->setActiveSheetIndex($sheetIndex);
$output[$loadedSheetName] = $objPHPExcel->getActiveSheet()->rangeToArray($objPHPExcel->getActiveSheet()->calculateWorksheetDataDimension(), true, true, true, true);
}
foreach ($output as $list) {
for ($i = 2; $i < sizeof($list); $i++) {
$user = sqlQueryBuilder()
->select('*')
->from('users')
->where(\Query\Operator::equals(['email' => $list[$i]['N']]))
->execute()
->fetch();
if ($user) {
sqlQueryBuilder()
->delete('users_dealer_price_level')
->where(\Query\Operator::equals(['id_user' => intval($user['id'])]))
->execute();
$priceLevelID = $this->getPriceLevelId($list[$i]['T']);
sqlQueryBuilder()
->insert('users_dealer_price_level')
->directValues(['id_user' => $user['id'], 'id_price_level' => $priceLevelID])
->execute();
}
}
}
$this->log('Hotovo.');
} else {
$this->log('Soubor <b>'.$arguments['name'].'</b> nebyl nalezen.');
}
}
private function getPriceLevelId($turnover)
{
if ($turnover > 20000) {
return 3;
}
return 2;
}
}
return DiscountImport::class;