diff --git a/controllers/admin/AdminSupplierOrdersController.php b/controllers/admin/AdminSupplierOrdersController.php index 5fb25a049..46a710dd3 100644 --- a/controllers/admin/AdminSupplierOrdersController.php +++ b/controllers/admin/AdminSupplierOrdersController.php @@ -414,6 +414,7 @@ class AdminSupplierOrdersControllerCore extends AdminController $this->lang = false; $this->addRowAction('edit'); + $this->addRowAction('details'); // test if a filter is applied for this list if (Tools::isSubmit('submitFilter'.$this->table) || $this->context->cookie->{'submitFilter'.$this->table} !== false) @@ -553,4 +554,81 @@ class AdminSupplierOrdersControllerCore extends AdminController parent::postProcess(); } + + public function ajaxProcess() + { + // tests if an id is submit + if (Tools::isSubmit('id')) + { + // overrides attributes + $this->identifier = 'id_supplier_order_history'; + $this->table = 'supplier_order_history'; + + $this->display = 'list'; + $this->lang = false; + // gets current lang id + $lang_id = (int)$this->context->language->id; + // gets supplier order id + $id_supplier_order = (int)Tools::getValue('id'); + + // creates new fieldsDisplay + unset($this->fieldsDisplay); + $this->fieldsDisplay = array( + 'history_date' => array( + 'title' => $this->l('History date'), + 'width' => 50, + 'align' => 'left', + 'type' => 'datetime', + 'havingFilter' => true + ), + 'history_employee' => array( + 'title' => $this->l('Employee'), + 'width' => 100, + 'align' => 'left', + 'havingFilter' => true + ), + 'history_state_name' => array( + 'title' => $this->l('State'), + 'width' => 100, + 'align' => 'left', + 'havingFilter' => true + ), + ); + // loads history of the given order + unset($this->_select, $this->_join, $this->_where, $this->_orderBy, $this->_orderWay, $this->_group, $this->_filterHaving, $this->_filter); + $this->_select = ' + a.`date_add` as history_date, + CONCAT(e.`lastname`, \' \', e.`firstname`) as history_employee, + sosl.`name` as history_state_name, + sos.`color` as color'; + + $this->_join = ' + LEFT JOIN `'._DB_PREFIX_.'supplier_order_state` sos ON (a.`id_state` = sos.`id_supplier_order_state`) + LEFT JOIN `'._DB_PREFIX_.'supplier_order_state_lang` sosl ON + ( + a.`id_state` = sosl.`id_supplier_order_state` + AND sosl.`id_lang` = '.(int)$lang_id.' + ) + LEFT JOIN `'._DB_PREFIX_.'employee` e ON (e.`id_employee` = a.`id_employee`)'; + + $this->_where = 'AND a.`id_supplier_order` = '.(int)$id_supplier_order; + $this->_orderBy = 'a.`date_add`'; + $this->_orderWay = 'DESC'; + + // gets list and forces no limit clause in the request + $this->getList($lang_id, 'date_add', 'DESC', 0, false, false); + + // renders list + $helper = new HelperList(); + $helper->no_link = true; + $helper->shopLinkType = ''; + $helper->identifier = $this->identifier; + $helper->colorOnBackground = true; + $helper->simple_header = true; + $content = $helper->generateList($this->_list, $this->fieldsDisplay); + + echo Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + } + die; + } } \ No newline at end of file diff --git a/install-dev/sql/db_settings_lite.sql b/install-dev/sql/db_settings_lite.sql index 98383a4a4..6ff91da14 100644 --- a/install-dev/sql/db_settings_lite.sql +++ b/install-dev/sql/db_settings_lite.sql @@ -1420,7 +1420,7 @@ Country:name phone' WHERE `PREFIX_address_format`.`id_country` = 4; INSERT INTO `ps_supplier_order_state` (`id_supplier_order_state`, `delivery_note`, `editable`, `receipt_state`, `pending_receipt`, `color`) VALUES -(1, 0, 1, 0, 0, '#ffe1af'), +(1, 0, 1, 0, 0, 'lightblue'), (2, 1, 0, 0, 0, '#e7fbff'), (3, 0, 0, 0, 1, '#ffdbfd'), (4, 0, 0, 1, 1, '#ffd3d3'),