Your IP : 216.73.216.11


Current Path : /home/digilove/public_html/components/com_marketplace/controllers/
Upload File :
Current File : /home/digilove/public_html/components/com_marketplace/controllers/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');
if (!class_exists('VmConfig')) {
    include JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php';
}
$vmconfig=VmConfig::loadConfig();
/**
 * MarketplaceControllerOrderhistory 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 MarketplaceControllerOrderhistory extends JControllerLegacy
{
    /**
     * __construct function
     */
    function __construct()
    {
        parent::__construct();
    }
    /**
     * Display function
     *
     * @param boolean $cachable  var
     * @param array   $urlparams var
     * 
     * @return void
     */
    function display($cachable = false, $urlparams = array())
    {
        parent::display();
    }
    /**
     * Editorder function
     *
     * @return void
     */
    function editorder()
    {
        $app = JFactory::getApplication();
        $_input = $app->input;
        $orderhistorymenu=plgSystemMarketplace::getMenuId(
            'index.php?option=com_marketplace&view=orderhistory'
        );
        $cid = $_input->getInt('cid', 0);
        if (!is_array($cid) || !array_key_exists(0, $cid)) {
            $this->setRedirect(
                JRoute::_(
                    'index.php?option=com_marketplace&view=orderhistory&Itemid='
                    .$orderhistorymenu,
                    JText::_('INCORRECT_ID'),
                    'error'
                )
            );
        }
        
        $_input->set('view', 'orderlist');
        $_input->set('id', $cid[0]);
        $_input->set('layout', 'form');
        $_input->set('hidemainmenu', 1);
        $this->display();
    }
    /**
     * MultipleOrderUpdate function
     *
     * @return void
     */
    function multipleOrderUpdate()
    {
        VmConfig::loadJLang('com_virtuemart');
        $app = JFactory::getApplication();
        $_input = $app->input;
        $vmconfig=VmConfig::loadConfig();
        $orderMod=VmModel::getModel("orders");
        $order_id = $_input->getInt('ids', 0);
        $status_val= $_input->get('val', "");
        $seller_name=$_input->get('sel_name');
        $seller_email=$_input->get('sel_email');
        $virtuemart_order_id=$_input->get('vm_ordr_id');
        $orderHis = $this->getModel('Orderhistory');
        $db = JFactory::getDBO();
        if ($status_val != "") {
            $res = $orderHis->setOrderStatus(
                JFactory::getUser()->id,
                $virtuemart_order_id,
                $status_val
            );
            echo $res;
        }
        if ($order_id == null) {
            JFactory::getApplication()->close();
        }
        foreach ($order_id as $k => $v) {
            $query=$db->getQuery(true);
            $fields = array(
            $db->quoteName('order_status') . ' = ' . $db->quote($status_val));
            $conditions=array(
                $db->quoteName('virtuemart_order_item_id').
                ' = '.$db->quote($v)
            );
            $query->update(
                $db->quoteName('#__virtuemart_order_items')
            )
                ->set($fields)
                ->where($conditions);
            $db->setQuery($query);
            try{
                $success=$db->execute();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
        }
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('a.user_id').",".$db->quoteName('b.email')
            .",".$db->quoteName('b.name')
        )
            ->from($db->quoteName('#__user_usergroup_map')." as a")
            ->join("LEFT", $db->quoteName('#__users')." as b ON a.user_id=b.id")
            ->where($db->quoteName('a.group_id')."=8");
        $db->setQuery($query);
        try{
            $users=$db->loadObjectList();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $or_m=array();
        foreach ($order_id as $k => $v) {
            $query=$db->getQuery(true);
            $query->select(
                $db->quoteName('virtuemart_order_id').","
                .$db->quoteName('virtuemart_product_id').","
                .$db->quoteName('order_item_name').",".$db->quoteName('order_status')
            )
                ->from($db->quoteName('#__virtuemart_order_items'))
                ->where(
                    $db->quoteName('virtuemart_order_item_id')."=".$db->quote($v)
                );
            $db->setQuery($query);
            try{
                $or=$db->loadObject();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
            $or_m[]=$or;
        }
        $or_name=array();
        $common_line='<h4>'.JText::_('ORDER_STATUS_CHANGED').'</h4>';
        $mst='<div style="border-bottom:5x solid black;"><span st'.
        'yle="width:48%;display:inline-block"><strong>'.
        JText::_('PRODUCT_NAME').'</strong></span><span style="wi'.
        'dth:48%;display:inline-block"><strong>'.JText::_('STATUS_CHANGED_TO').
        '</strong></span></div>';
        $mailer = JFactory::getMailer();
        $config = JFactory::getConfig();
        $sender = $config->get('mailfrom');
        $mailer->setSender($sender);
        $status_val='';
        foreach ($or_m as $key => $value) {
            $query=$db->getQuery(true);
            $query->select(
                $db->quoteName('order_number').",".$db->quoteName('created_by')
            )
                ->from($db->quoteName('#__virtuemart_orders'))
                ->where(
                    $db->quoteName('virtuemart_order_id')."=".
                    $db->quote($value->virtuemart_order_id)
                );
            $db->setQuery($query);
            try{
                    $or_no=$db->loadObject();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
            $query=$db->getQuery(true);
            $query->select($db->quoteName('name').",".$db->quoteName('email'))
                ->from($db->quoteName('#__users'))
                ->where($db->quotename('id')."=".$db->quote($or_no->created_by));
            $db->setQuery($query);
            try{
                $buyer=$db->loadObject();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
            $status_val='';
            $status_val=ShopFunctions::getOrderStatusName($value->order_status);
            $mst=$mst.'<div style="padding-top:10px;"><span style="w'.
                'idth:48%;display:inline-block">'.$value->order_item_name.
                '</span><span style="width:48%;display:inline-block">'
                .vmText::_($status_val).'</span></div>';
            $or_name[]=$value->order_item_name;
        }
        /* Getting email template */
        $params = JComponentHelper::getParams('com_marketplace');
        $template = trim($params->get('mp_temp_mail_order_status'));
        $subject_temp = trim($params->get('mp_sub_mail_order_status'));

        $to=$buyer->email;
        $from=$seller_email;
        $sub=$subject_temp;
        $body = $template;

        /* Replacing Value in Templates*/
        $body = str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $body
        );
        $sub= str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $sub
        );
        $body = str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $body
        );
        $sub= str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $sub
        );
        $body = str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $body
        );
        $sub= str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $sub
        );
        $body = str_replace(
            '{[ORDER_PRODUCT_STATUS_CHANGES]}', $mst,
            $body
        );
        
        $mailer->addRecipient($to);
        $mailer->setSubject($sub);
        $mailer->isHTML(true);
        $mailer->Encoding = 'base64';
        $mailer->setBody($body);
        $send1 = $mailer->Send();
        $mailer1 = JFactory::getMailer();
        $sender1 =$config->get('mailfrom');
        $to='';
        $body=$template;
        $to=$users[0]->email;
        $from=$seller_email;
        $sub=$subject_temp;

        /* Replacing Value in Templates*/
        $body = str_replace(
            '{[RECEPIENT_NAME]}', ucwords($users[0]->name),
            $body
        );
        $sub= str_replace(
            '{[RECEPIENT_NAME]}', ucwords($users[0]->name),
            $sub
        );
        $body = str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $body
        );
        $sub= str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $sub
        );
        $body = str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $body
        );
        $sub= str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $sub
        );
        $body = str_replace(
            '{[ORDER_PRODUCT_STATUS_CHANGES]}', $mst,
            $body
        );

        $mailer1->addRecipient($to);
        $mailer1->setSubject($sub);
        $mailer1->isHTML(true);
        $mailer1->Encoding = 'base64';
        $mailer1->setBody($body);
        $send1 = $mailer1->Send();
        
        $query=$db->getQuery(true);
        $query->select($db->quoteName('virtuemart_order_id'))
            ->from($db->quoteName('#__virtuemart_order_items'))
            ->where(
                $db->quoteName('virtuemart_order_item_id').
                "=".$db->quote($order_id[0])
            );
        $db->setQuery($query);
        try{
            $virtuemart_order_id=$db->loadResult();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('virtuemart_order_item_id').","
            .$db->quoteName('order_status')
        )
            ->from($db->quoteName('#__virtuemart_order_items'))
            ->where(
                $db->quoteName('virtuemart_order_id').
                "=".$db->quote($virtuemart_order_id)
            );
        $db->setQuery($query);
        try{
            $common_order=$db->loadObjectList();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $limit=count($common_order);
        $f=0;
        $i=0;
        foreach ($common_order as $key => $v) {
            if ($i<$limit-1) {
                if ($common_order[$i]->order_status!=$common_order[$i+1]->order_status) {
                    $f=1;
                    break;
                }
            }
            $or_sts=$v->order_status;
            $f=0;
            $i++;
        }
        if ($f!=1) {
            $ord=$orderMod->getOrder($virtuemart_order_id);
            $fields=array(
                $db->quoteName('order_status').
                "=".$db->quote($or_sts)
            );
            $conditions=array(
                $db->quoteName('virtuemart_order_id').
                "=".$db->quote($virtuemart_order_id)
            );
            $query->update(
                $db->quoteName('#__virtuemart_orders')
            )
                ->set($fields)
                ->where($conditions);
            $db->setQuery($query);
            try{
                $success=$db->execute();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
            if (!class_exists('plgSystemMarketplace')) {
                include JPATH_SITE.'/plugins/system/marketplace/marketplace.php';
            }
            $query=$db->getQuery(true);
            $query->select($db->quoteName('update_status'))
                ->from($db->quoteName('#__marketplace_orderlist'))
                ->where(
                    $db->quoteName('virtuemart_order_id')."=".
                    $db->quote($virtuemart_order_id)
                );
            $db->setQuery($query);
            try{
                $res = $db->loadResult();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
            if ($res == null || $res == 0) {
                plgSystemMarketplace::updateCommision($ord);
            }
        }
        echo $success;die;
    }
    /**
     * Undocumented function
     *
     * @return void
     */
    function singleOrderUpdate()
    {
        VmConfig::loadJLang('com_virtuemart');
        $orderstatus=VmModel::getModel('orderstatus');
        $app = JFactory::getApplication();
        $_input = $app->input;
        $order_id= $_input->getInt('id', 0);
        $status_val= $_input->get('val', "");
        $seller_name=$_input->get('sel_name');
        $seller_email=$_input->get('sel_email');
        
        $path=JURI::root();
        $path=explode("components", $path);
        $db = JFactory::getDBO();
        $query=$db->getQuery(true);
        $fields = array(
        $db->quoteName('order_status') . ' = ' . $db->quote($status_val));
        $conditions=array(
            $db->quoteName('virtuemart_order_item_id').' = '.$db->quote($order_id)
        );
        $query->update($db->quoteName('#__virtuemart_order_items'))
            ->set($fields)
            ->where($conditions);
        $db->setQuery($query);
        try{
            $success=$db->execute();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('a.user_id').",".$db->quoteName('b.email')
            .",".$db->quoteName('b.name')
        )
            ->from($db->quoteName('#__user_usergroup_map')." as a")
            ->join("LEFT", $db->quoteName('#__users')." as b ON a.user_id=b.id")
            ->where($db->quoteName('a.group_id')."=8");
        $db->setQuery($query);
        try{
            $users=$db->loadObjectList();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('virtuemart_order_id').",".
            $db->quoteName('virtuemart_product_id').",".
            $db->quoteName('order_item_name').",".
            $db->quoteName('order_status')
        )
            ->from($db->quoteName('#__virtuemart_order_items'))
            ->where(
                $db->quoteName('virtuemart_order_item_id')."=".$db->quote($order_id)
            );
        $db->setQuery($query);
        try{
            $or=$db->loadObject();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('order_number').",".$db->quoteName('created_by')
        )
            ->from($db->quoteName('#__virtuemart_orders'))
            ->where(
                $db->quoteName('virtuemart_order_id').
                "=".$db->quote($or->virtuemart_order_id)
            );
        $db->setQuery($query);
        $or_no=$db->loadObject();
        $query=$db->getQuery(true);
        $query->select($db->quoteName('virtuemart_media_id'))
            ->from($db->quoteName('#__virtuemart_product_medias'))
            ->where(
                $db->quoteName('virtuemart_product_id').
                "=".$db->quote($or->virtuemart_product_id)
            );
        $db->setQuery($query);
        try{
            $m_id=$db->loadResult();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        if (isset($m_id)) {
            $query=$db->getQuery(true);
            $query->select($db->quoteName('file_url'))
                ->from($db->quoteName('#__virtuemart_medias'))
                ->where(
                    $db->quoteName('virtuemart_media_id').
                    "=".$db->quote($m_id)
                );
            $db->setQuery($query);
            try{
                $m_url=$db->loadResult();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
        } else {
            $m_url=$vmconfig->get("assets_general_path").
            "images/vmgeneral/".$vmconfig->get("no_image_set");
        }
        $query=$db->getQuery(true);
        $query->select($db->quoteName('name').",".$db->quoteName('email'))
            ->from($db->quoteName('#__users'))
            ->where(
                $db->quotename('id')."=".$db->quote($or_no->created_by)
            );
        $db->setQuery($query);
        try{
            $buyer=$db->loadObject();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        /* Getting email template */
        $params = JComponentHelper::getParams('com_marketplace');
        $template = trim($params->get('mp_temp_mail_order_status'));
        $subject_temp = trim($params->get('mp_sub_mail_order_status'));

        $status_val=ShopFunctions::getOrderStatusName($status_val);
        $mailer = JFactory::getMailer();
        $config = JFactory::getConfig();
        $sender = $config->get('mailfrom');
        $mailer->setSender($sender);
        $instance=JURI::getInstance();
        $host=$instance->getHost();
        $path=JUri::base(true);
        $sub=$subject_temp;
        $body = $template;

        /* Replacing Value in Templates*/
        $body = str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $body
        );
        $sub= str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $sub
        );
        $body = str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $body
        );
        $sub= str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $sub
        );
        $body = str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $body
        );
        $sub= str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $sub
        );
        $message2='<div style="padding-top:10px;"><span style="w'.
                'idth:48%;display:inline-block">'.$or->order_item_name.
                '</span><span style="width:48%;display:inline-block">'
                .vmText::_($status_val).'</span></div>';
        $body = str_replace(
            '{[ORDER_PRODUCT_STATUS_CHANGES]}', $message2,
            $body
        );
        $to=$buyer->email;
        $mailer->addRecipient($to);
        $mailer->setSubject($sub);
        $mailer->isHTML(true);
        $mailer->Encoding = 'base64';
        $mailer->setBody($body);
        $send2 = $mailer->Send();

        $mailer1 = JFactory::getMailer();
        $sender1 = $config->get('mailfrom');
        $to='';
        $message=''; 
        $to=$users[0]->email;
        $mailer1->addRecipient($to);
        $sub=$subject_temp;
        $body = $template;

        /* Replacing Value in Templates*/
        $body = str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $body
        );
        $sub= str_replace(
            '{[RECEPIENT_NAME]}', ucwords($buyer->name),
            $sub
        );
        $body = str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $body
        );
        $sub= str_replace(
            '{[SELLER_NAME]}', ucwords($seller_name),
            $sub
        );
        $body = str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $body
        );
        $sub= str_replace(
            '{[ORDER_NO]}', $or_no->order_number,
            $sub
        );
        $body = str_replace(
            '{[ORDER_PRODUCT_STATUS_CHANGES]}', $message2,
            $body
        );

        $mailer1->setSubject($sub);
        $mailer1->isHTML(true);
        $mailer1->Encoding = 'base64';
        $mailer1->setBody($body);
        $send1 = $mailer1->Send();
            
        $query=$db->getQuery(true);
        $query->select($db->quoteName('virtuemart_order_id'))
            ->from($db->quoteName('#__virtuemart_order_items'))
            ->where(
                $db->quoteName('virtuemart_order_item_id')."=".$db->quote($order_id)
            );
        
        $db->setQuery($query);
        try{
            $virtuemart_order_id=$db->loadResult();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        
        $query=$db->getQuery(true);
        $query->select(
            $db->quoteName('virtuemart_order_item_id').
            ",".$db->quoteName('order_status')
        )
            ->from($db->quoteName('#__virtuemart_order_items'))
            ->where(
                $db->quoteName('virtuemart_order_id').
                "=".$db->quote($virtuemart_order_id)
            );
        $db->setQuery($query);
        try{
            $common_order=$db->loadObjectList();
        }catch(Exception $e){
            JFactory::getApplication()->enqueueMessage(
                $e->getMessage(),
                'error'
            );
            return false;
        }
        $limit=count($common_order);
        $f=0;
        $i=0;
        foreach ($common_order as $key => $v) {
            if ($i<$limit-1) {
                if ($common_order[$i]->order_status!=$common_order[$i+1]->order_status) {
                    $f=1;
                    break;
                }
            }
            $or_sts=$v->order_status;
            $f=0;
            $i++;
        }
        if ($f!=1) {
            $query=$db->getQuery(true);
            $fields=array($db->quoteName('order_status')."=".$db->quote($or_sts));
            $conditions=array(
                $db->quoteName('virtuemart_order_id').
                "=".$db->quote($virtuemart_order_id)
            );
            $query->update(
                $db->quoteName('#__virtuemart_orders')
            )->set($fields)->where($conditions);
            $db->setQuery($query);
            try{
                $success=$db->execute();
            }catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
                return false;
            }
        }
        echo $success;die;
    }
    /**
     * Cancel function
     *
     * @return void
     */
    function cancel()
    {
        $orderhistorymenu=plgSystemMarketplace::getMenuId(
            'index.php?option=com_marketplace&view=orderhistory'
        );
        $this->setRedirect(
            JRoute::_(
                'index.php?option=com_marketplace&view=orderhistory&Itemid='
                .$orderhistorymenu
            )
        );
    }
}