first commit
This commit is contained in:
@@ -0,0 +1,282 @@
|
||||
<?php
|
||||
|
||||
require_once (dirname(__FILE__) . '/../../x13import.php');
|
||||
|
||||
use x13import\Component\Logger;
|
||||
use x13import\Component\MaintenanceMode;
|
||||
use x13import\Wholesaler\WholesalerConfiguration;
|
||||
use x13import\Wholesaler\WholesalerOptions;
|
||||
use x13import\Wholesaler\WholesalerUploader;
|
||||
|
||||
class AdminXImportWholesalersController extends XImportController
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->table = 'ximport_configuration';
|
||||
$this->identifier = 'id_ximport_configuration';
|
||||
$this->className = 'XImportConfiguration';
|
||||
|
||||
parent::__construct();
|
||||
|
||||
$this->tpl_folder = 'x_import_wholesalers/';
|
||||
|
||||
$this->fields_options = array(
|
||||
'general' => array(
|
||||
'title' => $this->l('Hurtownie'),
|
||||
'image' => '../img/t/AdminPreferences.gif',
|
||||
'fields' => array(
|
||||
'empty' => array(
|
||||
'type' => 'empty'
|
||||
)
|
||||
),
|
||||
'submit' => array(
|
||||
'title' => $this->l('Zapisz')
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$wholesalers = [];
|
||||
foreach (XImportWholesalers::getWholesalers() as $wholesaler) {
|
||||
$wholesalerOptions = new WholesalerOptions(new WholesalerConfiguration($wholesaler['name']));
|
||||
$wholesalers[] = array_merge($wholesaler, [
|
||||
'baseOptions' => $wholesalerOptions->getBaseOptions(),
|
||||
'availabilityOptions' => $wholesalerOptions->getAvailabilityOptions(),
|
||||
'descriptionOptions' => $wholesalerOptions->getDescriptionOptions(),
|
||||
'additionalOptions' => $wholesalerOptions->getAdditionalOptions(),
|
||||
'importRestrictionOptions' => $wholesalerOptions->getImportRestrictionOptions()
|
||||
]);
|
||||
}
|
||||
|
||||
$iso = $this->context->language->iso_code;
|
||||
$this->tpl_option_vars['iso'] = file_exists(_PS_CORE_DIR_ . '/js/tiny_mce/langs/' . $iso . '.js') ? $iso : 'en';
|
||||
$this->tpl_option_vars['path_css'] = _THEME_CSS_DIR_;
|
||||
$this->tpl_option_vars['ad'] = __PS_BASE_URI__ . basename(_PS_ADMIN_DIR_);
|
||||
$this->tpl_option_vars['tinymce'] = true;
|
||||
$this->tpl_option_vars['wholesalers'] = $wholesalers;
|
||||
$this->tpl_option_vars['wholesalers_link'] = $this->context->link->getAdminLink('AdminXImportWholesalers');
|
||||
$this->tpl_option_vars['tab_wholesaler'] = Tools::getValue('tabWholesaler', '');
|
||||
$this->tpl_option_vars['tab_wholesaler_option'] = Tools::getValue('tabWholesalerOption', '');
|
||||
|
||||
$this->tpl_option_vars['has_color_field'] = false;
|
||||
|
||||
$this->tpl_option_vars['maintenance_mode'] = (MaintenanceMode::isShopDev()
|
||||
|| MaintenanceMode::isModuleDev()
|
||||
|| MaintenanceMode::isModuleDevEmployee($this->context->employee));
|
||||
}
|
||||
|
||||
public function renderOptions()
|
||||
{
|
||||
if (Tools::getIsset('wholesalerUploadSuccess')) {
|
||||
if (count(explode(',', Tools::getValue('wholesalerUploadName'))) == 1) {
|
||||
$uploadWholesalersMessage = 'Dodano hurtownię %s, przejdź do jej konfiguracji';
|
||||
} else {
|
||||
$uploadWholesalersMessage = 'Dodano hurtownie %s, przejdź do ich konfiguracji';
|
||||
}
|
||||
|
||||
$this->confirmations[] = sprintf($this->l($uploadWholesalersMessage), '<strong>' . str_replace(',', ', ', Tools::getValue('wholesalerUploadName')) . '</strong>');
|
||||
}
|
||||
|
||||
unset($this->toolbar_btn);
|
||||
$this->display = 'options';
|
||||
$this->initToolbar();
|
||||
|
||||
$helper = new HelperXImportOptions();
|
||||
$this->setHelperDisplay($helper);
|
||||
$helper->id = $this->id;
|
||||
$helper->tpl_vars = $this->tpl_option_vars;
|
||||
|
||||
return $helper->generateOptions($this->fields_options);
|
||||
}
|
||||
|
||||
public function initPageHeaderToolbar()
|
||||
{
|
||||
$this->toolbar_btn['products_off'] =
|
||||
$this->page_header_toolbar_btn['products_off'] = array(
|
||||
'href' => self::$currentIndex.'&products_off&token='.$this->token,
|
||||
'desc' => $this->l('Wyłącz produkty ze wszystkich hurtowni'),
|
||||
'icon' => 'process-icon-off',
|
||||
'class' => 'x-products-off'
|
||||
);
|
||||
|
||||
$this->toolbar_btn['products_delete'] =
|
||||
$this->page_header_toolbar_btn['products_delete'] = array(
|
||||
'href' => self::$currentIndex.'&products_delete&token='.$this->token,
|
||||
'desc' => $this->l('Usuń produkty ze wszystkich hurtowni'),
|
||||
'icon' => 'process-icon-delete',
|
||||
'class' => 'x-products-delete'
|
||||
);
|
||||
|
||||
if (version_compare(_PS_VERSION_, '1.6.0.0', '>')) {
|
||||
unset(
|
||||
$this->toolbar_btn['products_delete'],
|
||||
$this->toolbar_btn['products_off']
|
||||
);
|
||||
}
|
||||
else {
|
||||
unset($this->toolbar_btn['back']);
|
||||
}
|
||||
|
||||
if (method_exists(get_parent_class($this), 'initPageHeaderToolbar')) {
|
||||
parent::initPageHeaderToolbar();
|
||||
}
|
||||
}
|
||||
|
||||
public function initToolbar()
|
||||
{
|
||||
parent::initToolbar();
|
||||
$this->initPageHeaderToolbar();
|
||||
}
|
||||
|
||||
public function setMedia($isNewTheme = false)
|
||||
{
|
||||
parent::setMedia($isNewTheme);
|
||||
|
||||
$this->addJS(_PS_JS_DIR_ . 'tiny_mce/tiny_mce.js');
|
||||
|
||||
if (version_compare(_PS_VERSION_, '1.6', '<')) {
|
||||
$this->addJqueryUI('ui.tabs');
|
||||
}
|
||||
|
||||
if (version_compare(_PS_VERSION_, '1.6.0.11', '<')) {
|
||||
$this->addJS(_PS_JS_DIR_ . 'tinymce.inc.js');
|
||||
} else {
|
||||
$this->addJS(_PS_JS_DIR_ . 'admin/tinymce.inc.js');
|
||||
}
|
||||
|
||||
$this->addJS($this->module->getPathUri() . 'views/js/x13importWholesalers.js');
|
||||
}
|
||||
|
||||
public function postProcess()
|
||||
{
|
||||
if (Tools::isSubmit('submitAddNewWholesaler')) {
|
||||
if (isset($_FILES['wholesaler_file']) && !empty($_FILES['wholesaler_file']['tmp_name'])) {
|
||||
$uploader = new WholesalerUploader($_FILES['wholesaler_file']);
|
||||
|
||||
if ((int)$_FILES['wholesaler_file']['error'] !== UPLOAD_ERR_OK) {
|
||||
$this->errors[] = $this->l('Wystąpił błąd podczas przesyłania pliku.');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$uploader->validateUploadedFile()) {
|
||||
$this->errors[] = $this->l('Przesłano nieprawidłowy typ pliku.');
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
$wholesalers = $uploader->moveUploadedFile();
|
||||
|
||||
if (!empty($wholesalers)) {
|
||||
Tools::redirectAdmin($this->context->link->getAdminLink('AdminXImportWholesalers')
|
||||
. '&wholesalerUploadSuccess&wholesalerUploadName=' . implode(',', $wholesalers)
|
||||
. (count($wholesalers) == 1 ? '&tabWholesaler=' . $wholesalers[0] : ''));
|
||||
}
|
||||
|
||||
$this->errors[] = $this->l('Przesłany plik lub archiwum hurtowni jest nieprawidłowe.');
|
||||
}
|
||||
catch (Exception $exception) {
|
||||
$this->errors[] = $exception->getMessage();
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->errors[] = $this->l('Nie wybrano pliku do przesłania.');
|
||||
}
|
||||
}
|
||||
|
||||
return parent::postProcess();
|
||||
}
|
||||
|
||||
protected function processUpdateOptions()
|
||||
{
|
||||
$this->beforeUpdateOptions();
|
||||
|
||||
foreach ($this->fields_options as $category_data) {
|
||||
if (!isset($category_data['fields'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($category_data['fields'] as $key => $options) {
|
||||
if ($options['type'] != 'hr' || $options['type'] != 'empty') {
|
||||
XImportConfiguration::updateValue($key, trim(Tools::getValue($key, '')));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$configurationValues = Tools::getValue('wholesaler', []);
|
||||
|
||||
foreach (XImportWholesalers::getWholesalers() as $wholesaler) {
|
||||
$wholesalerOptions = new WholesalerConfiguration($wholesaler['name']);
|
||||
|
||||
if (isset($configurationValues[$wholesaler['name']])) {
|
||||
foreach ($configurationValues[$wholesaler['name']] as $key => $value) {
|
||||
$wholesalerOptions->{$key} = (!is_array($value) ? trim($value) : array_filter($value));
|
||||
}
|
||||
|
||||
$wholesalerOptions->saveConfiguration();
|
||||
}
|
||||
}
|
||||
|
||||
Tools::redirectAdmin($this->context->link->getAdminLink('AdminXImportWholesalers') .
|
||||
'&conf=6&tabWholesaler=' . Tools::getValue('tabWholesaler', '') . '&tabWholesalerOption=' . Tools::getValue('tabWholesalerOption', ''));
|
||||
}
|
||||
|
||||
public function ajaxProcessCountProducts()
|
||||
{
|
||||
die(json_encode([
|
||||
'status' => true,
|
||||
'count' => XImportProduct::countProducts(Tools::getValue('wholesalerCode', null))
|
||||
]));
|
||||
}
|
||||
|
||||
public function ajaxProcessProductsDelete()
|
||||
{
|
||||
$products = XImportProduct::getProductsIds(Tools::getValue('wholesalerCode', null), (int)Tools::getValue('limit'));
|
||||
|
||||
if (empty($products)) {
|
||||
if (XImportConfiguration::get('CLEAR_CACHE')) {
|
||||
try {
|
||||
Hook::exec('actionProductUpdate');
|
||||
} catch (Exception $ex) {
|
||||
Logger::instance()->exception($ex);
|
||||
}
|
||||
}
|
||||
|
||||
die(json_encode([
|
||||
'status' => true,
|
||||
'finish' => true
|
||||
]));
|
||||
}
|
||||
|
||||
foreach ($products as $productId) {
|
||||
$product = new Product($productId);
|
||||
if (Validate::isLoadedObject($product)) {
|
||||
$product->delete();
|
||||
}
|
||||
}
|
||||
|
||||
die(json_encode([
|
||||
'status' => true,
|
||||
'finish' => false
|
||||
]));
|
||||
}
|
||||
|
||||
public function ajaxProcessProductsOff()
|
||||
{
|
||||
$wholesalerCode = Tools::getValue('wholesalerCode', null);
|
||||
$countActive = XImportProduct::countProducts($wholesalerCode, true);
|
||||
|
||||
XImportProduct::unActiveAllProducts($wholesalerCode);
|
||||
|
||||
if (XImportConfiguration::get('CLEAR_CACHE')) {
|
||||
try {
|
||||
Hook::exec('actionProductUpdate');
|
||||
} catch (Exception $ex) {
|
||||
Logger::instance()->exception($ex);
|
||||
}
|
||||
}
|
||||
|
||||
die(json_encode([
|
||||
'status' => true,
|
||||
'count' => $countActive
|
||||
]));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user