Перейти к содержанию
sinco

Помогите доработать историю заказа

Рекомендуемые сообщения

Необходимо добавить в историю заказа колонку с именем пользователя, который добавил строчку, вот скрин желаемого:

post-673798-0-43329300-1407510491_thumb.jpg

Что бы в момент записи имя пользователя, который что либо добавляет в историю записывалось в таблицу oc_order_history в отдельную колонку.
Думаю вопрос актуален для многих, так как есть очень много магазинов где работает много пользователей!
 

 

post-673798-0-43329300-1407510491_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужна платная помощь или рассказ, как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужна платная помощь или рассказ, как это сделать?

он скорее разделом ошибся, т.к. 

 

 

Раздел для помощи разработчикам. Если вы столкнулись с проблемами во время создания своего дополнения или изменения кода движка - вам сюда.

Если Вы НЕ разработчик - пишите вопросы в другие разделы.

За готовыми решениями обращаться сюда бессмысленно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так делов-то рассказать

 

Добавить в таблицу order_history поле user_id

 

Изменить в модели метод  addOrderHistory

добавив поле

В контроллере передать  в метод user_id

 

В шаблоне добавить нужный блок( ячейку, строку )

 

В контроллере передать нужное в шаблон

В модели в методе getOrderHistories

 

связать user_id с именем пользователя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем user_id и затем всякие джойны для вытаскивания имени, если кроме имени больше ничего не надо?

Надо сразу в ордер-хистори хранить имя пользователя.

Уйдёт масса лишних дёрганий.

И добавится возможность безболезненно увольнять пользователей-менеджеров, удаляя их записи из базы без потери истории (а кто это сделал) и без блокировок или висяков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Реализовал это немного другим способом!

Вместе с новой строкой, добавляется еще одна, в которой прописано:

Polzovatel "admin" (#1) dobavil noviy status

Реализовал это все следующим способом:

файл admin/model/sale/order.php

1. После

public function getTotalEmailsByProductsOrdered($products) {
        $implode = array();
        
        foreach ($products as $product_id) {
            $implode[] = "op.product_id = '" . $product_id . "'";
        }
                
        $query = $this->db->query("SELECT COUNT(DISTINCT email) AS total FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op ON (o.order_id = op.order_id) WHERE (" . implode(" OR ", $implode) . ") AND o.order_status_id <> '0'");
        
        return $query->row['total'];
    }

добавил

public function addOrderHistory2($order_id, $data) {
        $userId = $this->user->getId();
        $userName = $this->user->getUserName();
        $comment = "User "".$userName."" (#".$userId.") made some changes to this order.";
        
        $this->db->query("INSERT INTO `".DB_PREFIX."order_history` SET `order_id` = '".(int)$order_id."', `order_status_id` = '".(int)$data['order_status_id']."', `notify` = '0', `comment` = '".$this->db->escape($comment)."', `date_added` = NOW()");
    }

2.

public function addOrderHistory($order_id, $data) {

заменил на

public function addOrderHistory($order_id, $data) {
        
        /* [w] */
        $this->addOrderHistory2($order_id, $data);
        /* [w] */

3.

public function editOrder($order_id, $data) {

заменил на

public function editOrder($order_id, $data) {
        
        /* [w] */
        $this->addOrderHistory2($order_id, $data);
        /* [w] */

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем user_id и затем всякие джойны для вытаскивания имени, если кроме имени больше ничего не надо?

Надо сразу в ордер-хистори хранить имя пользователя.

Уйдёт масса лишних дёрганий.

И добавится возможность безболезненно увольнять пользователей-менеджеров, удаляя их записи из базы без потери истории (а кто это сделал) и без блокировок или висяков.

Если имена пользователей не пересекаются.

 

 

 

Удалять пользователей  - плохая практика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.