| Current Path : /home/digilove/public_html/components/com_marketplace/models/ |
| 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;
}
}
}
}
}