Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.