bebeboutik/modules/stats_logistic/AdminStatsLogistic.php
Srv Bebeboutik 6c0978166c add modules
2016-01-04 12:49:26 +01:00

162 lines
4.5 KiB
PHP
Executable File

<?php
class AdminStatsLogistic extends AdminTab {
public function __construct() {
$this->table = 'stats_logistic';
$this->lang = false;
$this->date_begin = date('Y-m-d');
$this->date_end = date('Y-m-d');
if (!empty($_GET['date_begin'])) {
$this->date_begin = $_GET['date_begin'];
}
if (!empty($_GET['date_end'])){
$this->date_end = $_GET['date_end'];
}
parent::__construct();
}
public function display() {
global $currentIndex, $cookie;
$date = Configuration::get('MAJ_STAT_LOGISTIC');
echo '
<style type="text/css">
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
font-size: 0px;
}
#ui-timepicker-div-day {
display: none;
}
#date_begin, #date_end {
width: 80px;
text-align: right;
padding: 2px;
}
label {
float: none;
display: inline-block;
margin-right: 5px;
}
.button {
margin-left: 10px;
cursor: pointer;
}
fieldset label {
width: 160px;
}
span.date {
margin-left: 30px;
}
</style>
<script type="text/javascript" src="'.__PS_BASE_URI__.'modules/privatesales_livestats/jquery-ui-1.8.20.custom.min.js"></script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'modules/privatesales/jquery-ui-timepicker-addon.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("input[name=date_end], input[name=date_begin]").datepicker({
showTime: false,
dateFormat: "yy-mm-dd",
formattedDate: "yy-mm-dd",
maxDate: new Date,
minDate: new Date(2014, 1, 1)
});
});
</script>
<script type="text/javascript" src="'.__PS_BASE_URI__.'modules/privatesales_livestats/jquery-ui-fr.js"></script>';
echo
'<fieldset>
<form method="GET" action="'.$currentIndex.'">'
.'<span class="form-group">'
.'<label style="float: none;" class="control-label" for="date_begin">Date de début :</label>'
.'<input type="date" name="date_begin" value="'.pSQl($this->date_begin).'" id="date_begin" class="form-control" />'
.'</span>'
.'<span class="form-group">'
.'<label style="float: none;" class="control-label" for="date_end">Date de fin :</label>'
.'<input type="date" name="date_end" value="'.pSQl($this->date_end).'" id="date_end" class="form-control" />'
.'</span>'
.'<input type="hidden" name="token" value="'.Tools::getAdminTokenLite(__CLASS__).'" />'
.'<input type="hidden" name="tab" value="'.__CLASS__.'" />'
.'<button type="submit" class="button">Filtrer</button>
<span class="date">Dernière mise à jour : <b>'.$date.'</b></span>'
.'</form>
</fieldset>'
;
$stats = $this->getStats();
$total_colis = $this->getTotalColis();
$total_quantity = 0;
echo '
<h2 style="margin-top:15px">Stats de la logistique</h2>
<table class="table" style="width:100%; margin-top:15px">
<thead>
<tr>
<th>Id Employee</th>
<th>Prénom</th>
<th>Nom</th>
<th>Email</th>
<th>Quantité</th>
<th>Nombre de colis</th>
<th>% total</th>
</tr>
</thead>
<tbody>';
foreach ($stats as $key => $stat) {
$total_quantity += $stat['quantity'];
echo '<tr>
<td>'.$stat['id_employee'].'</td>
<td>'.$stat['firstname'].'</td>
<td>'.$stat['lastname'].'</td>
<td>'.$stat['email'].'</td>
<td>'.$stat['quantity'].'</td>
<td>'.$stat['nb_package'].'</td>
<td>'. number_format(($stat['nb_package']* 100 / $total_colis), 2) .' %</td>
</tr>';
}
echo '<tbody>
<tfoot style="font-weight:bold">
<tr>
<td colspan="4">Total :</td>
<td style="background:#f1f1f1;">'.$total_quantity.'</td>
<td style="background:#f1f1f1;">'.$total_colis.'</td>
<td style="background:#f1f1f1;">100 %</td>
</tr>
</tfoot>
</table>';
}
public function getStats() {
return Db::getInstance()->executeS('
SELECT
e.`id_employee`,
e.`email`,
e.`lastname`,
e.`firstname`,
SUM(s.`nb_product`) AS `nb_product`,
SUM(s.`quantity`) AS `quantity`,
SUM(s.`nb_package`) AS `nb_package`
FROM `'._DB_PREFIX_.'stats_logistic` s
LEFT JOIN `'._DB_PREFIX_.'employee` e USING(`id_employee`)
WHERE s.`date` BETWEEN "'.pSQL($this->date_begin).'" AND "'.pSQL($this->date_end).'"
GROUP BY s.`id_employee`
');
}
public function getTotalColis() {
return Db::getInstance()->getValue('
SELECT
SUM(s.`nb_package`) AS `nb_package`
FROM `'._DB_PREFIX_.'stats_logistic` s
WHERE s.`date` BETWEEN "'.pSQL($this->date_begin).'" AND "'.pSQL($this->date_end).'"
');
}
}