Вывод статуса заказ в таблице.

Тема в разделе "Общие вопросы", создана пользователем garfild304, 5 апр 2021.

  1. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Здравствуйте opencart 2.3 , мне нужно вывести статус заказа в таблицу.

    В шаблоне прописал: <td class="text-right"><?php echo $order['status']; ?></td>

    В контроллере новом добавил :

    $data['column_status'] = $this->language->get('column_status');

    Потом



    PHP:
        $data['orders'] = array();

                
    $order_total $this->model_account_report->getTotalOrders($filter_data);

                
    $results $this->model_account_report->getOrders($filter_data);

                foreach (
    $results as $result) {
          
    //    $product_total = $this->model_shop_order->getTotalOrderProductsByOrderId($result['order_id']);
                    
    $order_i $this->model_account_report->getOrder($result['order_id']);
                    if(
    $order_i['order_status_id'] != 0) {
                      
    $data['orders'][] = array(
                            
    'id'   => $result['order_product_id'],
                            
    'product'   => $result['name'],
                            
    'name'       => $order_i['firstname'] . ' ' $order_i['lastname'] . '<br>' $order_i['email'] . ' <br>' $order_i['telephone'],
                            
    'status'     => $result['status'],
                            
    'op'       => json_decode($result['op'],true),
                            
    'date_added' => date($this->language->get('date_format_short'), strtotime($order_i['date_added'])),
                            
    'products'   => $result['quantity'],
                              
    'total'      => $this->currency->format($result['total'], $order_i['currency_code'], $order_i['currency_value']),
                            
    'view'       => $this->url->link('shop/print''id=' $result['order_product_id'], true),
                            
                        );
                    }               
                }

    Дальше вставляем:

    PHP:
        // History
                
    $data['histories'] = array();

                
    $results $this->model_account_order->getOrderHistories($this->request->get['order_id']);

                foreach (
    $results as $result) {
                    
    $data['histories'][] = array(
                        
    'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
                        
    'status'     => $result['status'],
                        
    'comment'    => $result['notify'] ? nl2br($result['comment']) : ''
                    
    );
                }
    Идём в model у меня такие изменения, может из за этого не выводится?

    PHP:
    public function getTotalOrders($data = array()) {
            
             
    //    $query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` o WHERE shop_id = '" . (int)$this->shop->Manufacturer() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "'");
            
          //    return $query->row['total'];
          
    $cat = array();
          
    $query $this->db->query("SELECT DISTINCT op.order_id FROM `" DB_PREFIX "order_product` op LEFT JOIN " DB_PREFIX "order o ON (op.order_id = o.order_id) WHERE op.product_id = '" . (int)$data['product_id'] . "' AND o.order_status_id <> 0");
          
          foreach (
    $query->rows as $row) {
                    
    $cat[] = $row['order_id'];
                 }
         return  
    count(array_unique($cat));
        }

    PHP:
        public function getOrders($data = array()) {
            if (
    $data['start'] < 0) {
                
    $data['start'] = 20;
            }

            if (
    $data['limit'] < 0) {
                
    $data['limit'] = 20;
            }
        
          
    //$query = $this->db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.shop_id = '" . (int)$this->shop->Manufacturer() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
               
    $query $this->db->query("SELECT * FROM `" DB_PREFIX "order_product` op LEFT JOIN " DB_PREFIX "order o ON (op.order_id = o.order_id) WHERE op.product_id = '" . (int)$data['product_id'] . "' AND o.order_status_id <> 0 ORDER BY op.order_product_id DESC LIMIT " . (int)$data['start'] . "," . (int)$data['limit']);
            return 
    $query->rows;
        }
        
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.864
    Симпатии:
    1.059
    Что то все напутали. Зачем то модели изменили штатные, вместо создания новых. Нужно проверять все.
    Если самостоятельно, то начните с проверки, что выводится в var_dump

    А так ждите, будет время проверю, что вы наделали.
     
  3. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Там пришлось переделать все под задачу.
     
  4. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Освободишься отпиши мне
     
  5. Ravilr

    Ravilr Специалист

    Сообщения:
    3.864
    Симпатии:
    1.059
    А скопировать логику из списка заказов никак? Там же все выводится как надо.