Merge branch 'ticket-12391-DiscountForNoneOrder' into develop
This commit is contained in:
commit
27f059e40f
@ -141,6 +141,14 @@ class AdminAntConfigurations extends AdminTab
|
|||||||
} else {
|
} else {
|
||||||
HelperFormBootstrap::echoError($this->l('Veuillez choisir une categorie'));
|
HelperFormBootstrap::echoError($this->l('Veuillez choisir une categorie'));
|
||||||
}
|
}
|
||||||
|
} elseif(Tools::isSubmit('submitExportDiscount')){
|
||||||
|
HelperFormBootstrap::echoError($this->l('L\'outils n\'est pas encore disponible'));
|
||||||
|
// $results = DB::getInstance()->ExecuteS('
|
||||||
|
// SELECT dh.`id_customer`, o.`id_order`, dh.`name`, o.`value`
|
||||||
|
// FROM `'._DB_PREFIX_.'ant_discount_history` dh
|
||||||
|
// LEFT JOIN `'._DB_PREFIX_.'order_discount` o ON (o.`id_discount` = dh.`id_discount`)
|
||||||
|
// WHERE 1
|
||||||
|
// ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,12 +246,32 @@ class AdminAntConfigurations extends AdminTab
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
$helperForm->_forms[] = array(
|
||||||
|
'action' => $base_link,
|
||||||
|
'title' => $this->l('Outils'),
|
||||||
|
'icon' => '<span class="glyphicon glyphicon-cog"></span> ',
|
||||||
|
'class' => 'form-horizontal',
|
||||||
|
'class_div' => 'col-md-3',
|
||||||
|
'information' => 'Petit outils d\'exports utiles pour les suivis',
|
||||||
|
'sections' => array(
|
||||||
|
array(
|
||||||
|
'inputs' => array(
|
||||||
|
array(
|
||||||
|
'type' => 'submit',
|
||||||
|
'class' => 'btn-default',
|
||||||
|
'name' => 'submitExportDiscount',
|
||||||
|
'value' => $this->l('Exporter Suivi Code promo'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
$helperForm->_forms[] = array(
|
$helperForm->_forms[] = array(
|
||||||
'action' => $base_link,
|
'action' => $base_link,
|
||||||
'title' => $this->l('Association categories/ventes'),
|
'title' => $this->l('Association categories/ventes'),
|
||||||
'icon' => '<span class="glyphicon glyphicon-cog"></span> ',
|
'icon' => '<span class="glyphicon glyphicon-cog"></span> ',
|
||||||
'class' => 'form-horizontal',
|
'class' => 'form-horizontal',
|
||||||
'class_div' => 'col-md-9',
|
'class_div' => 'col-md-6',
|
||||||
'sections' => array(
|
'sections' => array(
|
||||||
array(
|
array(
|
||||||
'inputs' => array(
|
'inputs' => array(
|
||||||
|
116
modules/ant_configurations/cron_discount.php
Normal file
116
modules/ant_configurations/cron_discount.php
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
if(isset($_SERVER['REMOTE_ADDR'])) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
CREATE TABLE `ps_ant_discount_history` (
|
||||||
|
`id_discount_history` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`id_customer` int(10) unsigned NOT NULL,
|
||||||
|
`id_discount` int(10) unsigned NOT NULL,
|
||||||
|
`code` varchar(50) NOT NULL,
|
||||||
|
`used` int(4) NOT NULL DEFAULT '0',
|
||||||
|
`date_add` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`id_discount_history`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
*/
|
||||||
|
|
||||||
|
$_SERVER['HTTP_HOST'] = 'wwww.bebeboutik.dev';
|
||||||
|
$_SERVER['SERVER_NAME'] = 'www.bebeboutik.dev';
|
||||||
|
$_SERVER['HTTP_PORT'] = 80;
|
||||||
|
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
|
||||||
|
|
||||||
|
include dirname(__FILE__).'/../../config/config.inc.php';
|
||||||
|
|
||||||
|
// Create Discount
|
||||||
|
$customers = Db::getInstance()->ExecuteS('
|
||||||
|
SELECT c.`id_customer`
|
||||||
|
FROM `'._DB_PREFIX_.'customer` c
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'orders` o ON (o.`id_customer` = c.`id_customer`)
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'ant_discount_history` dh ON (dh.`id_customer` = c.`id_customer`)
|
||||||
|
WHERE c.`date_add` < DATE_SUB(NOW(), INTERVAL 90 DAY)
|
||||||
|
AND o.`id_order` IS NULL
|
||||||
|
AND dh.`id_discount_history` IS NULL
|
||||||
|
ORDER BY c.id_customer DESC
|
||||||
|
');
|
||||||
|
|
||||||
|
foreach($customers as $customer){
|
||||||
|
if($discount = generateDiscount((int)$customer['id_customer'])) {
|
||||||
|
registerCustomer((int)$customer['id_customer'],$discount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clean used Discount
|
||||||
|
$discounts = Db::getInstance()->ExecuteS('
|
||||||
|
SELECT dh.`id_discount_history`
|
||||||
|
FROM `'._DB_PREFIX_.'ant_discount_history` dh
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'order_discount` o ON (o.`id_discount` = dh.`id_discount`)
|
||||||
|
WHERE o.`id_order` IS NOT NULL
|
||||||
|
AND dh.`used` = 0
|
||||||
|
');
|
||||||
|
foreach ($discounts as $key => $discount) {
|
||||||
|
Db::getInstance()->Execute('
|
||||||
|
UPDATE `'._DB_PREFIX_.'ant_discount_history`
|
||||||
|
SET `used` = 1
|
||||||
|
WHERE `id_discount_history` ='.(int)$discount['id_discount_history'].'
|
||||||
|
');
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateDiscount($id_customer)
|
||||||
|
{
|
||||||
|
$discount = new Discount();
|
||||||
|
$discount->id_customer = (int)$id_customer;
|
||||||
|
$discount->id_discount_type = 2;
|
||||||
|
$discount->behavior_not_exhausted = 1;
|
||||||
|
$discount->cumulable = 0;
|
||||||
|
$discount->cumulable_reduction = 1;
|
||||||
|
$discount->minimal = 10;
|
||||||
|
$discount->include_tax = 1;
|
||||||
|
$discount->cart_display = 0;
|
||||||
|
$discount->active = 1;
|
||||||
|
$discount->quantity = 1;
|
||||||
|
$discount->quantity_per_user = 1;
|
||||||
|
$discount->date_from = date('Y-m-d H:i:s');
|
||||||
|
$discount->date_to = (date('Y') + 1).date('-m-d H:i:s');
|
||||||
|
|
||||||
|
$name = 'KDO-'. Tools::passwdGen(8);
|
||||||
|
if(Discount::discountExists($name))
|
||||||
|
{
|
||||||
|
$name = 'KDO-'. Tools::passwdGen(8);
|
||||||
|
}
|
||||||
|
$discount->name = $name;
|
||||||
|
|
||||||
|
$languages = Language::getLanguages(TRUE);
|
||||||
|
$description = array(
|
||||||
|
1 => 'Welcome Gift',
|
||||||
|
2 => 'Cadeau de Bienvenue',
|
||||||
|
3 => 'Regalo de Bienvenida',
|
||||||
|
4 => 'Welcome Gift',
|
||||||
|
5 => 'Welcome Gift'
|
||||||
|
);
|
||||||
|
foreach ($languages as $language) {
|
||||||
|
$discount->description[$language['id_lang']] = $description[$language['id_lang']];
|
||||||
|
}
|
||||||
|
|
||||||
|
$discount->id_currency = 1;
|
||||||
|
$discount->value = 50;
|
||||||
|
|
||||||
|
if($discount->add(true, false, array(1)) ) {
|
||||||
|
return $discount;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function registerCustomer($id_customer,$discount) {
|
||||||
|
Db::getInstance()->Execute('
|
||||||
|
INSERT INTO `'._DB_PREFIX_.'ant_discount_history` (`id_discount_history`,`id_customer`,`id_discount`,`code`,`used`,`date_add`)
|
||||||
|
VALUES (
|
||||||
|
DEFAULT,
|
||||||
|
'.(int)$id_customer.',
|
||||||
|
'.(int)$discount->id.',
|
||||||
|
"'.pSQL($discount->name).'",
|
||||||
|
0,
|
||||||
|
NOW()
|
||||||
|
)
|
||||||
|
');
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user