88 lines
2.2 KiB
PHP
88 lines
2.2 KiB
PHP
|
|
<?PHP
|
|||
|
|
|
|||
|
|
require_once('api/Simpla.php');
|
|||
|
|
|
|||
|
|
########################################
|
|||
|
|
class PreordersAdmin extends Simpla
|
|||
|
|
{
|
|||
|
|
public function fetch()
|
|||
|
|
{
|
|||
|
|
$filter = array();
|
|||
|
|
$filter['page'] = max(1, $this->request->get('page', 'integer'));
|
|||
|
|
|
|||
|
|
$filter['limit'] = 40;
|
|||
|
|
|
|||
|
|
// Поиск
|
|||
|
|
$keyword = $this->request->get('keyword', 'string');
|
|||
|
|
if(!empty($keyword))
|
|||
|
|
{
|
|||
|
|
$filter['keyword'] = $keyword;
|
|||
|
|
$this->design->assign('keyword', $keyword);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Фильтр по метке
|
|||
|
|
$label = $this->orders->get_label($this->request->get('label'));
|
|||
|
|
if(!empty($label))
|
|||
|
|
{
|
|||
|
|
$filter['label'] = $label->id;
|
|||
|
|
$this->design->assign('label', $label);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Обработка действий
|
|||
|
|
if($this->request->method('post'))
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
// Действия с выбранными
|
|||
|
|
$ids = $this->request->post('check');
|
|||
|
|
if(is_array($ids))
|
|||
|
|
switch($this->request->post('action'))
|
|||
|
|
{
|
|||
|
|
case 'delete':
|
|||
|
|
{ //print_r($_POST); die;
|
|||
|
|
foreach($ids as $id)
|
|||
|
|
{
|
|||
|
|
$this->db->query("DELETE FROM __preorders WHERE id='$id'");
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(empty($keyword))
|
|||
|
|
{
|
|||
|
|
$status = $this->request->get('status', 'integer');
|
|||
|
|
$filter['status'] = $status;
|
|||
|
|
$this->design->assign('status', $status);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$orders_count = $this->orders->count_orders($filter);
|
|||
|
|
// Показать все страницы сразу
|
|||
|
|
if($this->request->get('page') == 'all')
|
|||
|
|
$filter['limit'] = $orders_count;
|
|||
|
|
|
|||
|
|
// Отображение
|
|||
|
|
$orders = array();
|
|||
|
|
foreach($this->orders->get_orders($filter) as $o)
|
|||
|
|
$orders[$o->id] = $o;
|
|||
|
|
|
|||
|
|
// Метки заказов
|
|||
|
|
$orders_labels = array();
|
|||
|
|
foreach($this->orders->get_order_labels(array_keys($orders)) as $ol)
|
|||
|
|
$orders[$ol->order_id]->labels[] = $ol;
|
|||
|
|
|
|||
|
|
$this->design->assign('pages_count', ceil($orders_count/$filter['limit']));
|
|||
|
|
$this->design->assign('current_page', $filter['page']);
|
|||
|
|
|
|||
|
|
$this->design->assign('orders_count', $orders_count);
|
|||
|
|
|
|||
|
|
$this->design->assign('orders', $orders);
|
|||
|
|
|
|||
|
|
// Метки заказов
|
|||
|
|
$labels = $this->orders->get_labels();
|
|||
|
|
$this->design->assign('labels', $labels);
|
|||
|
|
|
|||
|
|
return $this->design->fetch('orders.tpl');
|
|||
|
|
}
|
|||
|
|
}
|