* @copyright 2010-2023 Webkul IN * @license https://store.webkul.com/license.html */ class AdminQloAppsChannelManagerConnectorController extends ModuleAdminController { public function __construct() { $this->table = 'qcmc_channel_manager_booking'; $this->className = 'QcmcChannelManagerBooking'; $this->bootstrap = true; $this->toolbar_title = $this->l('Channel Manager Bookings'); $this->context = Context::getContext(); $this->identifier = 'id_channel_manager_booking'; parent::__construct(); $this->_join .= ' INNER JOIN `'._DB_PREFIX_.'orders` ord ON (a.id_order = ord.`id_order`)'; $this->_select .= ' ord.`source`, ord.`total_paid`, ord.`total_paid_real`, IF(a.id_order, 1, 0) badge_success'; $this->_orderWay = 'DESC'; $this->fields_list = array( 'id_order' => array( 'title' => $this->l('Id order'), 'align' => 'center', 'havingFilter' => true, 'callback' => 'getOrderLink', ), 'source' => array( 'title' => $this->l('Channel'), 'align' => 'center', ), 'total_paid' => array( 'title' => $this->l('Order total'), 'align' => 'center', 'callback' => 'setPriceCurrency', 'badge_success' => true, ), 'total_paid_real' => array( 'title' => $this->l('Recieved amount'), 'align' => 'center', 'callback' => 'setPriceCurrencyWithBadge', ), 'date_add' => array( 'title' => $this->l('Created on'), 'align' => 'center', ), ); $this->list_no_link = true; } public function getOrderLink($id_order, $row) { $displayData = ''; if ($id_order) { $displayData .= '#'.$id_order; // $displayData .= '#'.$id_order.''; } return $displayData; } public function setPriceCurrency($value, $row) { if (Validate::isLoadedObject($objOrder = new Order($row['id_order']))) { return Tools::displayPrice($value, (int)$objOrder->id_currency); } } public function setPriceCurrencyWithBadge($value, $row) { $displayData = ''; if (Validate::isLoadedObject($objOrder = new Order($row['id_order']))) { $displayData .= ''; $displayData .= Tools::displayPrice($value, (int)$objOrder->id_currency); $displayData .= ''; } return $displayData; } public function displayViewLink($token, $idRow, $name = null) { if (Validate::isLoadedObject($objChannelManagerBooking = new QcmcChannelManagerBooking($idRow))) { return ' '.$this->l('View Order Detail').''; } } public function renderList() { if ($channelManagerBookings = QcmcChannelManagerBooking::getChannelManagerBookings(0, 'DESC')) { $this->context->smarty->assign( array ( 'icon' => 'icon-list', 'toolbar_title' => 'icon-list', // As we get the bookings in descending order according to the date_add. So in the 0 index last booking will be found 'last_booking_datetime' => Tools::displayDate($channelManagerBookings[0]['date_add'], null, true), ) ); // because in helper list tpl_vars is given priority and we need different List title than list title // In HelperList.php assigned: 'title' => array_key_exists('title', $this->tpl_vars) ? $this->tpl_vars['title'] : $this->title $this->tpl_list_vars['title'] = $this->l('Below is the list of all the bookings created by channel manager.'); unset($this->toolbar_btn['new']); $this->addRowAction('view'); return parent::renderList(); } else { $this->context->smarty->assign( array ( 'module_dir' => _MODULE_DIR_, 'current_datetime' => Tools::displayDate(date('Y-m-d H:i:s'), null, true), ) ); $this->content .= $this->context->smarty->fetch( _PS_MODULE_DIR_. 'qlochannelmanagerconnector/views/templates/admin/QloApps_channel_manager_connector/channel_manager_connect_info.tpl' ); } } public function setMedia() { parent::setMedia(); if (QcmcChannelManagerBooking::getChannelManagerBookings()) { $this->addCSS(_MODULE_DIR_.'qlochannelmanagerconnector/views/css/admin/wk_cm_booking_list.css'); $this->addJS(_MODULE_DIR_.'qlochannelmanagerconnector/views/js/admin/wk_cm_booking_list.js'); } else { $this->addCSS(_MODULE_DIR_.'qlochannelmanagerconnector/views/css/admin/wk_cm_info.css'); } } }