first commit

This commit is contained in:
2025-08-02 16:30:27 +02:00
commit 23646bfcee
14851 changed files with 1750626 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace KupShop\UserBundle\Resources\script;
use KupShop\AdminBundle\Util\Script\Script;
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
use KupShop\KupShopBundle\Util\Mail\EmailCheck;
use Query\Operator;
class CheckUsersEmailsScript extends Script
{
protected static $name = 'Check Users Emails (isEmailDomainValid)';
protected static $defaultParameters = [
'limit' => 1000,
'offset' => 0,
'delete_users' => false,
];
protected function run(array $arguments)
{
/** @var EmailCheck $emailCheck */
$emailCheck = ServiceContainer::getService(EmailCheck::class);
$users = sqlQueryBuilder()->select('u.id, u.email, u.figure, u.get_news, COUNT(o.id) AS orders_count')
->from('users', 'u')->leftJoin('u', 'orders', 'o', 'o.id_user = u.id')
->groupBy('u.id')->orderBy('u.id')
->setFirstResult($arguments['offset'] ?? 0)->setMaxResults($arguments['limit'] ?? 1000)
->execute()->fetchAll();
$users = array_combine(array_column($users, 'email'), $users);
$u = [];
$delete_users = !empty($arguments['delete_users']);
$deleted = 0;
foreach ($users as $email => $user) {
if (!empty($email) && !$emailCheck->isEmailDomainValid($email)) {
if (empty($user['orders_count'])) {
if ($delete_users) {
$user['deleted'] = sqlQueryBuilder()->delete('users')->where(Operator::equals(['id' => $user['id']]))->execute();
$deleted += $user['deleted'];
}
} else {
$user["can't delete"] = $user['orders_count'].' orders';
}
$u[$email] = $user;
}
}
$this->log('Not valid: '.count($u).' users of '.count($users).' selected');
if ($delete_users) {
$this->log("delete_users: {$deleted}, can't delete: ".(count($u) - $deleted));
}
$this->log(var_dump($u));
$this->log('Hotovo.');
}
}
return CheckUsersEmailsScript::class;

View File

@@ -0,0 +1,71 @@
<?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;