147 lines
4.1 KiB
PHP
147 lines
4.1 KiB
PHP
<?php
|
|
/*
|
|
*
|
|
* @author FuenRob <fuenrob@gmail.com>
|
|
* @copyright 2018 FuenRob
|
|
* International Registered Trademark & Property of FuenRob
|
|
*
|
|
*/
|
|
|
|
if (!defined('_PS_VERSION_'))
|
|
{
|
|
exit;
|
|
}
|
|
|
|
class AddColumnInList extends Module
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
$this->name = 'addcolumninlist';
|
|
$this->tab = 'administration';
|
|
$this->version = '2.0.1';
|
|
$this->author = 'Dominik Wójcicki';
|
|
$this->need_instance = 0;
|
|
$this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_);
|
|
$this->bootstrap = true;
|
|
parent::__construct();
|
|
$this->displayName = $this->l('Add column in list product');
|
|
$this->description = $this->l('Dodatkowe filtorwanie produktów w Back Office');
|
|
$this->confirmUninstall = $this->l('Czy na pewno odinstalować moduł?');
|
|
}
|
|
|
|
public function install()
|
|
{
|
|
if (
|
|
!parent::install()
|
|
|| !$this->registerHook('displayAdminCatalogTwigProductFilter')
|
|
|| !$this->registerHook('actionAdminProductsListingFieldsModifier')
|
|
|| !$this->registerHook('ProductsListingFieldsModifier')
|
|
|| !$this->registerHook('ManufacturerPagination')
|
|
)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public function uninstall()
|
|
{
|
|
return parent::uninstall();
|
|
}
|
|
|
|
public function hookManufacturerPagination()
|
|
{
|
|
return Tools::getValue('filter_column_manufacturer', '');
|
|
}
|
|
|
|
|
|
public function hookDisplayAdminCatalogTwigProductFilter($params)
|
|
{
|
|
|
|
|
|
$manufacturers = Manufacturer::getManufacturers();
|
|
$this->context->smarty->assign([
|
|
'filter_column_manufacturer' => Tools::getValue('filter_column_manufacturer', ''),
|
|
'filter_column_ean13' => Tools::getValue('filter_column_ean13', ''),
|
|
'manufacturers' => $manufacturers,
|
|
]);
|
|
|
|
return $this->display(__FILE__, 'views/templates/hook/displayAdminCatalogTwigProductFilter.tpl');
|
|
|
|
return $this->render('@PrestaShopBundle/Admin/Common/pagination.html.twig', [
|
|
'filter_column_manufacturer' => Tools::getValue('filter_column_manufacturer', ''),
|
|
'filter_column_ean13' => Tools::getValue('filter_column_ean13', ''),
|
|
'manufacturers' => $manufacturers,
|
|
]);
|
|
}
|
|
|
|
public function hookActionAdminProductsListingFieldsModifier($params)
|
|
{
|
|
|
|
// EAN13
|
|
$params['sql_select']['ean13'] = [
|
|
'table' => 'p',
|
|
'field' => 'ean13',
|
|
'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH
|
|
];
|
|
|
|
$ean13_filter = Tools::getValue('filter_column_ean13', false);
|
|
if ($ean13_filter && $ean13_filter != '')
|
|
{
|
|
$params['sql_where'][] .= "p.ean13 = " . $ean13_filter;
|
|
}
|
|
|
|
|
|
// Cena zakupu
|
|
$params['sql_select']['wholesale_price'] = [
|
|
'table' => 'p',
|
|
'field' => 'wholesale_price',
|
|
'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH
|
|
];
|
|
|
|
|
|
$wholesale_price_filter = Tools::getValue('filter_column_name_wholesale_price', false);
|
|
if ($wholesale_price_filter && $wholesale_price_filter != '')
|
|
{
|
|
$params['sql_where'][] .= " p.wholesale_price = " . $wholesale_price_filter;
|
|
}
|
|
|
|
// Marża
|
|
$params['sql_select']['trade_margin'] = [
|
|
'table' => 'p',
|
|
'field' => 'trade_margin',
|
|
'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH
|
|
];
|
|
|
|
$trade_margin_filter = Tools::getValue('filter_column_trade_margin', false);
|
|
if ($trade_margin_filter && $trade_margin_filter != '')
|
|
{
|
|
$params['sql_where'][] .= "p.trade_margin = " . $trade_margin_filter;
|
|
}
|
|
|
|
|
|
// Manufacturer
|
|
$params['sql_select']['manufacturer'] = [
|
|
"table" => "m",
|
|
"field" => "name",
|
|
"filtering" => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH
|
|
];
|
|
|
|
|
|
$params['sql_table']['m'] = [
|
|
"table" => "manufacturer",
|
|
"join" => "LEFT JOIN",
|
|
'on' => "p.`id_manufacturer` = m.`id_manufacturer`"
|
|
];
|
|
|
|
|
|
$manufacturer_filter = Tools::getValue('filter_column_manufacturer', false);
|
|
if ($manufacturer_filter && $manufacturer_filter != '')
|
|
{
|
|
$params['sql_where'][] .= " p.id_manufacturer = " . $manufacturer_filter;
|
|
}
|
|
}
|
|
}
|