Your IP : 216.73.216.231


Current Path : /home/digilove/public_html/components/com_marketplace/models/
Upload File :
Current File : /home/digilove/public_html/components/com_marketplace/models/profile.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.model');
VmConfig::loadConfig();

if (!class_exists('MarketplaceModelProfile')) {
    /**
     * MarketplaceModelProfile 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 MarketplaceModelProfile extends JModelLegacy
    {
        var $_data = null;
        /**
         * __construct function
         */
        function __construct()
        {
            parent::__construct();
        }
        /**
         * GetCountryId function
         *
         * @param [type] $id var
         * 
         * @return void
         */
        function getCountryId($id)
        {
            $db = $this->_db;
            $query=$db->getQuery(true);
            $query->select($db->quoteName("virtuemart_country_id"))
                ->from($db->quoteName("#__virtuemart_userinfos"))
                ->where($db->quoteName("virtuemart_user_id")."=".$db->quote($id));
            $db->setQuery($query);
            try{
                $db->setQuery($query);
                return $db->loadResult();
            }
            catch (Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    JText::_('Wrong SQL Query'),
                    'error'
                );
                return false;
            }
        }
        /**
         * GetSellerCountry function
         *
         * @param [type] $id var
         * 
         * @return void
         */
        function getSellerCountry($id)
        {
            $db = $this->_db;
            $query=$db->getQuery(true);
            $query->select($db->quoteName("country_2_code"))
                ->from($db->quoteName("#__virtuemart_countries"))
                ->where(
                    $db->quoteName("virtuemart_country_id")."=".$db->quote($id)
                );
            $db->setQuery($query);
            try{
                $db->setQuery($query);
                return $db->loadResult();
            }
            catch (Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    JText::_('Wrong SQL Query'),
                    'error'
                );
                return false;
            }
        }
        /**
         * _buildQuery function
         *
         * @return void
         */
        function _buildQuery()
        {
            $db = $this->_db;
            $user = JFactory::getUser();
            $userid = $user->get('id');
            $query=$db->getQuery(true);
            $query->select('a.*,b.email')
                ->from($db->quoteName('#__marketplace_sellerprofile', 'a'))
                ->join(
                    'LEFT',
                    $db->quoteName('#__users', 'b') . ' ON (' . 
                    $db->quoteName('a.seller_id') . ' = ' .
                    $db->quoteName('b.id') . ')'
                )
                ->where($db->quoteName('seller_id')."=".$userid)
                ->group($db->quoteName('b.id'));
            return $query;
        }
        /**
         * GetData function
         *
         * @return void
         */
        function getData()
        {
            // Lets load the data if it doesn't already exist
            if (empty($this->_data)) {
                $query = $this->_buildQuery();
                try{
                    $this->_data = $this->_getList($query);
                }
                catch (Exception $e){
                    JFactory::getApplication()->enqueueMessage(
                        JText::_('Wrong SQL Query'),
                        'error'
                    );
                    return false;
                }
            }
            return $this->_data;
        }
        /**
         * GetPaymentInfo function
         *
         * @return void
         */
        function getPaymentInfo()
        {
            $db=$this->_db;
            $query=$db->getQuery(true);
            $query->select(
                $db->quoteName(
                    'p.virtuemart_paymentmethod_id',
                    'virtuemart_paymentmethod_id'
                )
            )
                ->select($db->quoteName('p.payment_element', 'payment_element'))
                ->select($db->quoteName('g.payment_name', 'payment_name'))
                ->from($db->quoteName('#__virtuemart_paymentmethods', 'p'))
                ->join(
                    'INNER',
                    $db->quoteName(
                        '#__virtuemart_paymentmethods_'.VmConfig::$vmlang,
                        'g'
                    )
                    ." ON ".$db->quoteName('g.virtuemart_paymentmethod_id')
                    ."=".$db->quoteName('p.virtuemart_paymentmethod_id')
                )
                ->where($db->quoteName('p.published')."=1");
            try {
                $db->setQuery($query);
                return $db->loadObjectList();
            } catch (RuntimeException $e) {
                JFactory::getApplication()->enqueueMessage(
                    JText::_('Wrong SQL Query'),
                    'error'
                );
                return false;
            }
        }
        /**
         * GetPaymentMethodId function
         *
         * @return void
         */
        function getPaymentMethodId()
        {
            $db = JFactory::getDBO();
            $q=$db->getQuery(true);
            $q->select('*')
                ->from($db->quotename('#__virtuemart_paymentmethods'))
                ->where(
                    $db->quotename('payment_element').
                    "=".$db->quote('stripeconnect')
                );
            $db->setQuery($q);
            try{
                $res=$db->loadObject();
            }
            catch(Exception $e){
                JFactory::getApplication()->enqueueMessage(
                    'SOL_ERROR',
                    'error'
                );
            }

            if ($res) {
                $id_f=$res->virtuemart_paymentmethod_id;
                $params_f=$res->payment_params;
                $object=array();
                if ($params_f) {
                    $params_f=explode("|", $params_f);
                    foreach ($params_f as $key => $value) {
                        if (strlen($value)>0) {
                            $val=explode("=", $value);
                            $val[1]=str_replace('"', '', $val[1]);
                            $object[$val[0]]=$val[1];
                        }
                    }
                    return $object;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        }
        /**
         * Store_stripe_data function
         *
         * @param [type] $data      var
         * @param [type] $secret    var
         * @param [type] $public    var
         * @param [type] $client_id var
         * @param [type] $state     var
         * 
         * @return void
         */
        function storeStripeData(
            $data,
            $secret,
            $public,
            $client_id,
            $state
        ) {
            $stripe_seller_id=JFactory::getUser()->id;
            $db=JFactory::getDBO();
            $q=$db->getQuery(true);
            $q->select($db->quoteName('stripe_user_id'))
                ->from($db->quoteName('#__marketplace_stripe_connected_seller'))
                ->where($db->quoteName('seller_id')."=".$stripe_seller_id);
            $db->setQuery($q);
            try{
                $res=$db->loadResult();
            }
            catch(Exception $e){
                JFactory::getApplication()->redirect(
                    'index.php?option=com_marketplace&view=profile',
                    $e->getMessage(),
                    'error'
                );
            }
            if ($res) {
                $q=$db->getQuery(true);
                if ($state=='insert') {
                    $fields = array(
                        $db->quoteName('stripe_user_id').
                        '='.$db->quote($data['stripe_user_id']),
                        $db->quoteName('stripe_secret').
                        '='.$db->quote($data['access_token']),
                        $db->quoteName('stripe_public').
                        '='.$db->quote($data['stripe_publishable_key']),
                        $db->quoteName('stripe_refresh').
                        '='.$db->quote($data['refresh_token']),
                        $db->quoteName('livemode').
                        '='.$db->quote($data['livemode']),
                        $db->quoteName('state').'= 1'
                    );
                    $conditions = array(
                        $db->quoteName('seller_id') . ' = '.$stripe_seller_id
                    );
                    $q->update(
                        $db->quoteName('#__marketplace_stripe_connected_seller')
                    )
                        ->set($fields)
                        ->where($conditions);
                } else {
                    $fields = array($db->quoteName('state') . ' = 0');
                    $conditions = array(
                        $db->quoteName('seller_id') . ' = '.$stripe_seller_id
                    );
                    $q->update(
                        $db->quoteName('#__marketplace_stripe_connected_seller')
                    )
                        ->set($fields)
                        ->where($conditions);
                }
            } else {
                $q=$db->getQuery(true);
                if ($state=='insert') {
                    $columns=array(
                        'seller_id',
                        'stripe_user_id',
                        'stripe_secret',
                        'stripe_public',
                        'stripe_refresh',
                        'livemode',
                        'state'
                    );
                    $values=array(
                        $db->quote($stripe_seller_id),
                        $db->quote($data['stripe_user_id']),
                        $db->quote($data['access_token']),
                        $db->quote($data['stripe_publishable_key']),
                        $db->quote($data['refresh_token']),
                        $db->quote($data['livemode']),
                        1
                    );
                    $q->insert(
                        $db->quoteName('#__marketplace_stripe_connected_seller')
                    )
                        ->columns($db->quoteName($columns))
                        ->values(implode(',', $values));
                } else {
                    $fields = array($db->quoteName('state') . ' = 0');
                        $conditions = array(
                           $db->quoteName('seller_id') . ' = '.$stripe_seller_id
                        );
                    $q->update(
                        $db->quoteName('#__marketplace_stripe_connected_seller')
                    )
                        ->set($fields)
                        ->where($conditions);
                }
            }
            $db->setQuery($q);
            try{
                $db->execute();
            }
            catch(Exception $e){
                JFactory::getApplication()->redirect(
                    'index.php?option=com_marketplace&view=profile',
                    $e->getMessage(),
                    'error'
                );
            }
        }
        /**
         * GetStripeData function
         *
         * @param [type] $seller_id var
         * 
         * @return void
         */
        function getStripeData($seller_id=null)
        {
            if ($seller_id==null) {
                $seller_id=JFactory::getUser()->id;
            }
            $db=JFactory::getDBO();
            $q=$db->getQuery(true);
            $q->select($db->quoteName('stripe_user_id'))
                ->from($db->quoteName('#__marketplace_stripe_connected_seller'))
                ->where($db->quoteName('seller_id')."=".$db->quote($seller_id))
                ->where($db->quoteName('state')."= 1");
            $db->setQuery($q);
            try{
                $rs=$db->loadResult();
            }
            catch(Exception $e){
                Factory::getApplication()->redirect(
                    'index.php?option=com_marketplace&view=profile',
                    $e->getMessage(),
                    'error'
                );
            }
            if ($rs) {
                return $rs;
            }
        }
        /**
         * GetRemitaSeller function
         *
         * @param [type] $seller_id var
         * 
         * @return void
         */
        function getRemitaSeller($seller_id=null)
        {
            if ($seller_id==null) {
                $seller_id=JFactory::getUser()->id;
            }
            $db=JFactory::getDbo();
            $query=$db->getQuery(true);
            $query->select("*")
                ->from(
                    $db->quoteName('#__marketplace_remitapayment_connectedseller')
                )
                ->where($db->quoteName('sellerid')." = ".$db->quote($seller_id));
            $db->setQuery($query);
            try{
                return $db->loadObject();
            }catch(Exception $e){
                return false;
            }
        }
        /**
         * SaveRemitaDetails function
         *
         * @param [type] $name     var
         * @param [type] $account  var
         * @param [type] $code     var
         * @param [type] $sellerid var
         * 
         * @return void
         */
        function saveRemitaDetails($name,$account,$code,$sellerid=null)
        {
            if ($sellerid==null) {
                $sellerid=JFactory::getUser()->id;
            }
            $db=JFactory::getDbo();
            $app=JFactory::getApplication();
            $query=$db->getQuery(true);
            $query->select($db->quoteName('id'))
                ->from(
                    $db->quoteName('#__marketplace_remitapayment_connectedseller')
                )
                ->where($db->quoteName('sellerid')."=".$db->quote($sellerid));
            $db->setQuery($query);
            try{
                $result=$db->loadResult();
            }
            catch(Exception $e){
                $app->enqueueMessage(
                    $e->getMessage(),
                    'error'
                );
            }
            /*code to update existing entry*/
            if ($result) {
                $query=$db->getQuery(true);
                $query->UPDATE(
                    $db->quoteName('#__marketplace_remitapayment_connectedseller')
                )
                    ->SET($db->quoteName('name')."=".$db->quote($name))
                    ->SET($db->quoteName('account')."=".$db->quote($account))
                    ->SET($db->quoteName('bankcode')."=".$db->quote($code))
                    ->where($db->quoteName('sellerid')."=".$db->quote($sellerid));
                $db->setQuery($query);
                try{
                    $db->execute();
                }
                catch(Exception $e){
                    JFactory::getApplication()->enqueueMessage(
                        $e->getMessage(),
                        'error'
                    );
                    return false;
                }
            } else {
                /*code to insert new entry*/
                $query = $db->getQuery(true);
                $columns = array(
                    'sellerid',
                    'name',
                    'account',
                    'bankcode',
                    'published'
                );
                $values = array(
                    $db->quote($sellerid),
                    $db->quote($name),
                    $db->quote($account),
                    $db->quote($code),
                    $db->quote(1)
                );

                $query->insert(
                    $db->quoteName('#__marketplace_remitapayment_connectedseller')
                )
                    ->columns($db->quoteName($columns))
                    ->values(implode(',', $values));
                $db->setQuery($query);
                try{
                    $db->execute();
                }
                catch(Exception $e){
                    $app->enqueueMessage(
                        $e->getMessage(),
                        'error'
                    );
                    return false;
                }
            }
        }
    }
}