Файловый менеджер - Редактировать - /home/digilove/public_html/components/com_marketplace/models/orderhistory.php
Назад
<?php /** * Marketplace - Component Marketplace * ****************************************************************** * * PHP version 7.0 * * @category Component * @package Joomla * @author WebKul software private limited <support@webkul.com> * @copyright 2010 WebKul software private limited * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @version GIT:5.2 * @filesource http://store.webkul.com * @link Technical Support: webkul.uvdesk.com * ****************************************************************** */ // no direct access defined('_JEXEC') or die('Restricted access'); jimport('joomla.application.component.modellist'); if (!class_exists('MarketplaceModelOrderhistory')) { /** * Marketplace Model Orderhistory class * * @category Component * @package Joomla * @author WebKul software private limited <support@webkul.com> * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @link Technical Support: webkul.uvdesk.com */ class MarketplaceModelOrderhistory extends JModelList { var $_data = null; var $_pagination = null; protected $_total = null; /** * __construct function * * @param array $config var */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'order_number', 'o.order_number', 'first_name', 'uin.first_name', 'created_on','a.created_on', 'modified_on','a.modified_on' ); } parent::__construct($config); } /** * Check Order And ItemId function * * @param integer $itemId var * @param integer $virtuemartOrderId var * * @return void */ public function checkOrderAndItemId($itemId=0,$virtuemartOrderId=0) { $db=$this->_db; $query=$db->getQuery(true); $query->select($db->quoteName('virtuemart_order_id')); $query->from($db->quoteName('#__virtuemart_order_items')); $query->where( $db->quoteName('virtuemart_order_id'). "=".$db->quote($db->escape($virtuemartOrderId)) ); $query->where( $db->quoteName('virtuemart_order_item_id'). "=".$db->quote($db->escape($itemId)) ); $db->setQuery($query); try { return $db->loadResult(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Get Shipping Detail function * * @param integer $virtuemart_order_id var * * @return void */ function getShippingDetail($virtuemart_order_id) { $db=$this->_db; $query=$db->getQuery(true); $query->select($db->quoteName('address_type')) ->from($db->quoteName('#__virtuemart_order_userinfos')) ->where( $db->quoteName('virtuemart_order_id'). "=".$db->quote($virtuemart_order_id) ); $db->setQuery($query); try{ return $db->loadAssocList(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Get Country Name function * * @param string $id var * * @return void */ public function getCountryName($id) { $db=$this->_db; $query=$db->getQuery(true); $query->select($db->quoteName('country_name')) ->from($db->quoteName('#__virtuemart_countries')) ->where($db->quoteName('virtuemart_country_id')."=".$db->quote($id)); $db->setQuery($query); try{ return $db->loadResult(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Get Payment Detail function * * @param integer $id var * * @return void */ public function getPaymentDetail($id) { $db=$this->_db; $query=$db->getQuery(true); $query->select($db->quoteName('payment_name')) ->select($db->quoteName('payment_desc')) ->from( $db->quoteName('#__virtuemart_paymentmethods_'.VmConfig::$vmlang) ) ->where( $db->quoteName('virtuemart_paymentmethod_id'). "=".$db->quote($id) ); $db->setQuery($query); try{ return $db->loadAssoc(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Get Shipment Name function * * @param integer $id var * * @return void */ public function getShipmentName($id) { $db=$this->_db; $query=$db->getQuery(true); $query->select($db->quoteName('shipment_name')) ->from( $db->quoteName( '#__virtuemart_shipmentmethods_'.VmConfig::$vmlang ) ) ->where( $db->quoteName('virtuemart_shipmentmethod_id'). "=".$db->quote($id) ); $db->setQuery($query); try{ return $db->loadResult(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Get Number Order Item function * * @param integer $id Order Id * * @return void */ public function getNumberOrderItem($id) { $db=$this->_db; $query=$db->getQuery(true); $query->select(count($db->quoteName('virtuemart_order_item_id'))) ->from($db->quoteName('#__virtuemart_order_items')) ->where($db->quoteName('virtuemart_order_id')."=".$db->quote($id)); $db->setQuery($query); try{ return $db->loadResult(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Load a single order, Attention, this function is not protected! * Do the right manangement before, to be certain * we suggest to use getMyOrderDetails * * @param integer $virtuemart_order_id var * @param boolean $userlang var * * @return void */ public function getVmOrder($virtuemart_order_id, $userlang=false) { $virtuemart_order_id = (int)$virtuemart_order_id; $db = JFactory::getDBO(); $order = array(); // Get the order details // Create a new query object. $query = $db->getQuery(true); $query ->select(array('o.*', 'u.*', 's.order_status_name')) ->from($db->quoteName('#__virtuemart_orders', 'o')) ->join( 'LEFT', $db->quoteName('#__virtuemart_orderstates', 's') . ' ON (' . $db->quoteName('s.order_status_code') . ' = ' . $db->quoteName('o.order_status') . ')' ) ->join( 'LEFT', $db->quoteName('#__virtuemart_order_userinfos', 'u') . ' ON (' . $db->quoteName('u.virtuemart_order_id') . ' = ' . $db->quoteName('o.virtuemart_order_id') . ')' ) ->where( $db->quoteName('o.virtuemart_order_id') . '='. $virtuemart_order_id ); $db->setQuery($query); try{ $order['details'] = $db->loadObjectList('address_type'); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } if ($order['details'] and isset($order['details']['BT'])) { $concat = array(); if (!empty($order['details']['BT']->company)) { $concat[]= $order['details']['BT']->company; } if (!empty($order['details']['BT']->first_name)) { $concat[]= $order['details']['BT']->first_name; } if (!empty($order['details']['BT']->middle_name)) { $concat[]= $order['details']['BT']->middle_name; } if (!empty($order['details']['BT']->last_name)) { $concat[]= $order['details']['BT']->last_name; } $order['details']['BT']->order_name = ''; foreach ($concat as $c) { $order['details']['BT']->order_name .= trim($c).' '; } $order['details']['BT']->order_name = trim( htmlspecialchars( strip_tags( htmlspecialchars_decode( $order['details']['BT']->order_name ) ) ) ); } if ($userlang) { if (!empty($order['details']['BT']->order_language)) { $olang = $order['details']['BT']->order_language; VmConfig::loadJLang('com_virtuemart', true, $olang); VmConfig::loadJLang('com_virtuemart_shoppers', true, $olang); VmConfig::loadJLang('com_virtuemart_orders', true, $olang); } } // Get the order history $query = $db->getQuery(true); $query ->select('*') ->from($db->quoteName('#__virtuemart_order_histories')) ->where( $db->quoteName('virtuemart_order_id') . '='. $virtuemart_order_id ) ->order($db->quoteName('virtuemart_order_history_id') . ' ASC'); $db->setQuery($query); try{ $order['history'] = $db->loadObjectList(); } catch(Exception $e){ JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } // Get the order items $query = $db->getQuery(true); $query ->select( array( 'virtuemart_order_item_id', 'product_quantity', 'order_item_name', 'order_item_sku', 'i.virtuemart_product_id', 'product_item_price', 'product_final_price', 'product_basePriceWithTax', 'product_discountedPriceWithoutTax', 'product_priceWithoutTax', 'product_subtotal_with_tax', 'product_subtotal_discount', 'product_tax', 'product_attribute', 'order_status', 'p.product_available_date', 'p.product_availability', 'intnotes', 'virtuemart_category_id', 'p.product_mpn' ) ) ->from($db->quoteName('#__virtuemart_order_items', 'i')) ->join( 'LEFT', $db->quoteName('#__virtuemart_products', 'p') . ' ON (' . $db->quoteName('p.virtuemart_product_id') . ' = ' . $db->quoteName('i.virtuemart_product_id') . ')' ) ->join( 'LEFT', $db->quoteName('#__virtuemart_product_categories', 'c') . ' ON (' . $db->quoteName('p.virtuemart_product_id') . ' = ' . $db->quoteName('c.virtuemart_product_id') . ')' ) ->where( $db->quoteName('virtuemart_order_id') . '='. $virtuemart_order_id ) ->group($db->quoteName('virtuemart_order_item_id')); $db->setQuery($query); try{ $order['items'] = $db->loadObjectList(); } catch(Exception $e){ JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } $customfieldModel = VmModel::getModel('customfields'); $pModel = VmModel::getModel('product'); foreach ($order['items'] as &$item) { $ids = array(); $product = $pModel->getProduct($item->virtuemart_product_id); if (is_object($product)) { $pvar = get_object_vars($product); foreach ( $pvar as $k => $v) { if (!isset($item->$k) and isset($product->$k) and '_' != substr($k, 0, 1) ) { $item->$k = $v; } } } if (!empty($item->product_attribute)) { $myCustoms = @json_decode($item->product_attribute, true); $myCustoms = (array) $myCustoms; $item->customfields = array(); foreach ($myCustoms as $custom) { if (!is_array($custom)) { $custom = array( $custom =>false); } foreach ($custom as $id=>$field) { $item->customfields[] = $customfieldModel ->getCustomEmbeddedProductCustomField($id); $ids[] = $id; } } } if (!empty($product->customfields)) { if (!isset($item->customfields)) { $item->customfields = array(); } foreach ($product->customfields as $customfield) { if (!in_array($customfield->virtuemart_customfield_id, $ids) and $customfield->field_type=='E' and ($customfield->is_input or $customfield->is_cart_attribute) ) { $item->customfields[] = $customfield; } } } } // Get the order items $query = $db->getQuery(true); $query ->select('*') ->from($db->quoteName('#__virtuemart_order_calc_rules', 'z')) ->where( $db->quoteName('virtuemart_order_id') . '='. $virtuemart_order_id ); $db->setQuery($query); try{ $order['calc_rules'] = $db->loadObjectList(); } catch(Exception $e){ JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } return $order; } /** * Get List Query function * * @return void */ protected function getListQuery() { $userdetails = JFactory::getUser(); $db = $this->getDbo(); $query = $db->getQuery(true); $app=JFactory::getApplication(); $params = JComponentHelper::getParams('com_marketplace'); $lazy_limit=trim($params->get('wk_lazy_load_limit')); $query->select( $this->getState( 'list.select', 'a.*', 'b.created_by' ) ) ->from($db->quoteName('#__virtuemart_order_items')." AS a") ->join( 'INNER', $db->quoteName('#__virtuemart_products'). " AS b ON(".$db->quoteName("a.virtuemart_product_id"). "=".$db->quoteName("b.virtuemart_product_id").')' ) ->join( 'LEFT', $db->quoteName('#__virtuemart_orders'). " AS o ON(".$db->quoteName("a.virtuemart_order_id"). "=".$db->quoteName("o.virtuemart_order_id").')' ) ->join( 'LEFT', $db->quoteName('#__virtuemart_order_userinfos'). " AS uin ON(".$db->quoteName("uin.virtuemart_user_id"). "=".$db->quoteName("o.virtuemart_user_id").')' ); if ($this->getState('filter.search')!== '' && $this->getState('filter.search') !== null ) { $search = $db->quote( '%' . str_replace( ' ', '%', $db->escape(trim($this->getState('filter.search')), true) . '%' ) ); $searches = array(); $searches[] = 'o.order_number LIKE ' . $search; $searches[] = 'uin.first_name LIKE ' . $search; $searches[] = 'uin.last_name LIKE ' . $search; $query->where('(' . implode(' OR ', $searches) . ')'); } $order_sttaus = $this->getState('list.order_status'); if (strlen($order_sttaus)) { $query->where('o.order_status = "'.$order_sttaus.'"'); } $query->where('b.created_by='.$userdetails->id); $query->group($db->quoteName('o.virtuemart_order_id')); $query->order( $db->quoteName( $db->escape($this->getState('list.ordering', 'a.created_on')) ) . ' ' . $db->escape($this->getState('list.direction', 'DESC')) ); return $query; } /** * Populate State function * * @param [type] $ordering var * @param [type] $direction var * * @return void */ protected function populateState($ordering = null, $direction = null) { $app = JFactory::getApplication(); if ($layout = $app->input->get('layout')) { $this->context .= '.' . $layout; } $search = $this->getUserStateFromRequest( $this->context . '.filter.search', 'filter_search' ); $this->setState('filter.search', $search); $status = $this->getUserStateFromRequest( $this->context . '.list.order_status', 'filter_order_status' ); $this->setState('list.order_status', $status); parent::populateState('o.created_on', 'desc'); } /** * Delete Item function * * @param [type] $id var * * @return void */ function deleteItem($id) { return $this->productsTable->delete($id); } /** * Get Total Cost function * * @param [type] $warehouseuser var * @param [type] $vm_or_id var * * @return void */ function gettotalcost($warehouseuser,$vm_or_id) { $db=JFactory::getDBO(); $query=$db->getQuery(true); $query->select('a.*,b.created_by') ->from('#__virtuemart_order_items as a') ->join( 'INNER', '#__virtuemart_products as b ON' .' a.virtuemart_product_id=b.virtuemart_product_id' ) ->where( "b.created_by=".$warehouseuser." AND a.virtuemart_order_id=". $vm_or_id." ORDER BY a.created_on DESC" ); $db->setQuery($query); try { return $db->loadObjectList(); } catch(Exception $e) { JFactory::getApplication()->enqueueMessage( $e->getMessage(), 'error' ); return false; } } /** * Set order status of seller * * @param [int] $seller_id Seller Id * @param [int] $order_id Order Id * @param [char] $status var * * @return bool */ public function setOrderStatus($seller_id, $order_id, $status) { $curr_stat = $this->getOrderStatus($seller_id, $order_id); if ($curr_stat == null || $curr_stat == false) { $profile = new stdClass(); $profile->virtuemart_order_id = $order_id; $profile->seller_id = $seller_id; $profile->order_status = $status; // Insert the object into the Marketplace Order Status table. try { $result = $this->_db->insertObject( '#__marketplace_orderstatus', $profile ); return $result; } catch (Exception $e) { return false; } } else { $db = $this->_db; $query = $db->getQuery(true); $fields = array( $db->quoteName('order_status') . ' = ' .$db->quote($status) ); $conditions = array( $db->quoteName('seller_id') . ' = '. $seller_id, $db->quoteName('virtuemart_order_id') . ' = ' . $order_id ); $query->update( $db->quoteName('#__marketplace_orderstatus') )->set($fields)->where($conditions); $db->setQuery($query); try { $result = $db->execute(); return $result; } catch (Exception $e) { return false; } } } /** * Get order status of seller * * @param integer $seller_id var * @param integer $order_id var * * @return char */ public function getOrderStatus($seller_id, $order_id) { $query = $this->_db->getQuery(true); $query ->select($this->_db->quoteName('order_status')) ->from($this->_db->quoteName('#__marketplace_orderstatus')) ->where( $this->_db->quoteName('seller_id')."=". $this->_db->quote($seller_id) ) ->where( $this->_db->quoteName('virtuemart_order_id'). "=".$this->_db->quote($order_id) ); $this->_db->setQuery($query); try { $result = $this->_db->loadObject(); return $result; } catch (Exception $e) { return false; } } } } ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка