72 lines
2.5 KiB
PHP
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;
|