| Current Path : /home/digilove/public_html/plugins/system/marketplace/ |
| Current File : /home/digilove/public_html/plugins/system/marketplace/marketplace.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';
}
if (!class_exists('CurrencyDisplay')) {
include JPATH_ADMINISTRATOR .
'/components/com_virtuemart/helpers/currencydisplay.php';
}
if (!class_exists('MarketplaceHelper')) {
include JPATH_ADMINISTRATOR.DIRECTORY_SEPARATOR.'components'.
DIRECTORY_SEPARATOR.'com_marketplace'.DIRECTORY_SEPARATOR.'helpers'.
DIRECTORY_SEPARATOR.'marketplace.php';
}
if (!class_exists('vmPSPlugin')) {
include JPATH_VM_PLUGINS . DIRECTORY_SEPARATOR . 'vmpsplugin.php';
}
VmConfig::loadConfig();
/**
* SystemMarketplace 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 plgSystemMarketplace extends vmPSPlugin
{
/**
* __construct function
*
* @param [type] $subject var
* @param [type] $config var
*/
public function __construct( $subject, $config )
{
$style="@media only screen and (min-width: 769px){
.hidden-desktop{
display:none!important;
}
}
@media only screen and (max-width: 769px){
.visible-desktop{
display:none!important;
}
}";
parent::__construct($subject, $config);
$document=JFactory::getDocument();
$document->addStyleDeclaration($style);
}
/**
* VmOnDeleteProduct function
*
* @param [type] $id var
* @param [type] $ok var
*
* @return void
*/
function plgVmOnDeleteProduct($id, $ok)
{
$db=JFactory::getDBO();
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_product'))
->where($db->quoteName('virtuemart_product_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$ok=$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
/**
* VmOnProductDisplayPayment function
*
* @param obnject $product var
* @param [type] $productDisplayPayments var
*
* @return void
*/
public function plgVmOnProductDisplayPayment($product, &$productDisplayPayments)
{
if (MarketplaceHelper::checkSeller($product->created_by)) {
$fields=array(
'u.name',
's.screenname'
);
$sellInfo = MarketplaceHelper::getSeller($product->created_by, $fields);
$plugin = JPluginHelper::getPlugin('system', 'marketplace');
$params = new JRegistry($plugin->params);
$wk_sellert_attach_class=trim($params->get('wk_Seller_attach_class'));
if (isset($wk_sellert_attach_class)) {
$class_to_add=$wk_sellert_attach_class;
} else {
$class_to_add='addtocart-area';
}
$name = $sellInfo->screenname == ""
?$sellInfo->name:$sellInfo->screenname;
$script="
jQuery(document).ready(function(){
jQuery('#seller_info').remove();
jQuery('.".$class_to_add."').before('<div id=\"seller_info\">Seller : <a style=\"text-decoration:none;\" href=\"".JRoute::_('index.php?option=com_marketplace&view=sellerprofile&seller_id='.$product->created_by, false)."\">".$name."</a></div>');
});";
vmJsApi::addJScript('getSeller', $script);
/* Code Product View Count */
$user = JFactory::getUser();
// condition to check it product is viewed from user other then Owner
if ($user->id != $product->created_by) {
$db =JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('viewed'))
->from($db->quoteName('#__marketplace_product'))
->where($db->quoteName('virtuemart_product_id')."=".$product->virtuemart_product_id);
$db->setQuery($query);
$pro_data = $db->loadObject();
$object = new stdClass();
$object->virtuemart_product_id = $product->virtuemart_product_id;
$object->viewed = 1 + (int)$pro_data->viewed;
$result = $db->updateObject(
'#__marketplace_product', $object, 'virtuemart_product_id'
);
}
}
}
/**
* UserAfterDelete function
*
* @param array $user var
* @param boolean $success var
* @param string $msg var
*
* @return void
*/
function onUserAfterDelete($user, $success, $msg)
{
$checkseller=MarketplaceHelper::checkSeller($user['id']);
if (isset($checkseller) && strlen(trim($checkseller))) {
self::OnSellerDeleteFromJoomla($user['id']);
}
}
/**
* OnSellerDeleteFromJoomla function
*
* @param integer $id var
*
* @return void
*/
public static function OnSellerDeleteFromJoomla($id)
{
$user=JFactory::getUser($id);
$db=JFactory::getDBO();
$db = JFactory::getDBO();
$params = JComponentHelper::getParams('com_marketplace');
$product_action_seller_delete = trim(
$params->get(
'product_action_seller_delete'
)
);
$query=$db->getQuery(true);
$query->select($db->quoteName('virtuemart_product_id'))
->from($db->quoteName('#__virtuemart_products'))
->where($db->quoteName('created_by')."=".$db->quote($id));
$db->setQuery($query);
$results=$db->loadObjectList();
if ($product_action_seller_delete == 'pd') {
$productModel=VmModel::getModel('product');
$productsArr=array();
foreach ($results as $key => $value) {
$productsArr[]=$value->virtuemart_product_id;
}
$productModel->remove($productsArr);
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_product'))
->where($db->quoteName('created_by')."=".$db->quote($id));
$db->setQuery($query);
try {
$db->execute();
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
} else {
$query=$db->getQuery(true);
$query->select($db->quoteName("user_id"))
->from($db->quoteName("#__user_usergroup_map"))
->where($db->quoteName("group_id").'='.$db->quote("8"));
$db->setQuery($query);
$res=$db->loadObject();
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_product'))
->where($db->quoteName('created_by')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(), 'error'
);
return false;
}
$query=$db->getQuery(true);
$query->update($db->quoteName('#__virtuemart_products'))
->set($db->quoteName('published')."=0")
->set($db->quoteName('created_by')."=".$db->quote($res->user_id))
->where($db->quoteName('created_by')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(), 'error'
);
return false;
}
}
//Code required for Marketplace Downloadable product
$query = $db->getQuery(true);
$query->select($db->quoteName('extension_id'))
->from($db->quoteName('#__extensions'))
->where(
$db->quoteName('element')."=".
$db->quote('virtuemart_mp_downloadable_product')
);
$db->setQuery($query);
try{
$results=$db->loadObject();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
if (isset($results->extension_id) && $results->extension_id != '') {
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_downloadable_product'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__virtuemart_product_customfields'))
->where(
$db->quoteName('customfield_value').
"=".$db->quote('Downloadable')
)
->where(
$db->quoteName('created_by').
"=".$db->quote($id). 'OR'.$db->quoteName('modified_by').
"=".$db->quote($id)
);
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_category_request'))
->where($db->quoteName('requested_by')."=".$db->quote($user->email));
$db->setQuery($query);
try {
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_commision'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_favourite_products'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_feedback'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_orderlist'))
->where($db->quoteName('virtuemart_seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_payments'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_sellerprofile'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$query=$db->getQuery(true);
$query->delete($db->quoteName('#__marketplace_seller_follower'))
->where($db->quoteName('seller_id')."=".$db->quote($id));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
/* Getting email template */
$params = JComponentHelper::getParams('com_marketplace');
$body = trim($params->get('mp_temp_seller_removed'));
$subject = trim($params->get('mp_sub_seller_removed'));
$mailer=JFactory::getMailer();
$config=JFactory::getConfig();
$user=JFactory::getUser($id);
$email=$user->email;
$body = str_replace(
'{[SELLER_NAME]}', ucwords($user->name),
$body
);
$subject= str_replace(
'{[SELLER_NAME]}', ucwords($user->name),
$subject
);
$body = str_replace(
'{[SITE_FROM_NAME]}', ucwords($config->get('fromname')),
$body
);
$subject= str_replace(
'{[SITE_FROM_NAME]}', ucwords($config->get('fromname')),
$subject
);
$mailer->setSender($config->get('mailfrom'));
$mailer->addRecipient($email);
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($body);
/* Send mail */
$send = $mailer->Send();
}
/**
* VmOnPaymentResponseReceived function
*
* @param [type] $html var
*
* @return void
*/
function plgVmOnPaymentResponseReceived(&$html)
{
$app = JFactory::getApplication();
$response=$app->input->post->getArray();
if (isset($response[ "payment_status" ])
&& $response[ "payment_status" ] == "Completed"
) {
if (!class_exists('VirtueMartCart')) {
include JPATH_VM_SITE . DIRECTORY_SEPARATOR .
'helpers' . DIRECTORY_SEPARATOR . 'cart.php';
}
if (!class_exists('shopFunctionsF')) {
include JPATH_VM_SITE . DIRECTORY_SEPARATOR . 'helpers'
. DIRECTORY_SEPARATOR . 'shopfunctionsf.php';
}
if (!class_exists('VirtueMartModelOrders')) {
include JPATH_VM_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'models'
. DIRECTORY_SEPARATOR . 'orders.php';
}
$itemName=$response[ "item_name" ];
$item = explode(":", $itemName);
$orderNo = trim($item[1]);
$vmOrder=new VirtueMartModelOrders();
$orderid=$vmOrder->getOrderIdByOrderNumber($orderNo);
$order=$vmOrder->getOrder($orderid);
$db=JFactory::getDBO();
$query=$db->getQuery(true);
$query->select($db->quoteName('update_status'))
->from($db->quoteName('#__marketplace_orderlist'))
->where(
$db->quoteName('virtuemart_order_id').
"=".$db->quote($orderid)
);
$db->setQuery($query);
$res = $db->loadResult();
if ($res == null || $res == 0) {
$this->updateCommision($order);
}
}
}
/**
* VmOnUpdateOrderPayment function
*
* @param [type] $data var
* @param [type] $old_order_status var
*
* @return void
*/
function plgVmOnUpdateOrderPayment($data,$old_order_status)
{
$params = JComponentHelper::getParams('com_marketplace');
$status=$params->get('commisionUpdateOn');
if (in_array($data->order_status, $status)) {
$db=JFactory::getDBO();
$query=$db->getQuery(true);
$query->select($db->quoteName('update_status'))
->from($db->quoteName('#__marketplace_orderlist'))
->where(
$db->quoteName('virtuemart_order_id').
"=".$db->quote($data->virtuemart_order_id)
);
$db->setQuery($query);
$res = $db->loadResult();
if ($res == null || $res == 0) {
$vmOrder=new VirtueMartModelOrders();
$order=$vmOrder->getOrder($data->virtuemart_order_id);
$this->updateCommision($order);
}
}
}
/**
* VmConfirmedOrder function
*
* @param [type] $cart Cart Object
* @param [type] $order var
*
* @return void
*/
function plgVmConfirmedOrder($cart, $order)
{
MarketplaceHelper::ordermailSend($order);
}
/**
* GetMenuId function
*
* @param string $link string
*
* @return void
*/
public static function getMenuId(
$link="index.php?option=com_marketplace&view=mpregistration"
) {
$db=JFactory::getDBO();
$query=$db->getQuery(true);
$query->select($db->quoteName('id'))
->from($db->quoteName('#__menu'))
->where($db->quoteName('link')."=".$db->quote($link));
$db->setQuery($query);
$res=null;
try{
$res=$db->loadResult();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
return $res;
}
/**
* BeforeCompileHead function
*
* @return void
*/
function onBeforeCompileHead()
{
$document = JFactory::getDocument();
$app = JFactory::getApplication();
$option=$app->input->get('option');
$view = $app->input->get('view');
$wk_js_chk="if(typeof( google)=='undefined'){var s = document.createElement(\"script\");s.type = \"text/javascript\";s.src = \"https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=false&libraries=places&key=AIzaSyDqHOK6L8erT9orE311Bq6iLdOzau1274c\";jQuery(\"head\").append(s);}else{if(typeof( google.maps)=='undefined'){var s = document.createElement(\"script\");s.type = \"text/javascript\";s.src = \"https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=false&libraries=places&key=AIzaSyDqHOK6L8erT9orE311Bq6iLdOzau1274c\";jQuery(\"head\").append(s);}}";
if ($option=='com_marketplace' && $view!='dashboard' && !$app->isAdmin() ) {
$document->addScriptDeclaration($wk_js_chk);
}
}
/**
* Undocumented function
* Function to manage Membership Account product
*
* @param integer $user_id Id
*
* @return void
*/
public function MshipPlanExpMailSend($user_id)
{
$db = JFactory::getDBO();
$que = $db->getQuery(true);
$que->select($db->quoteName(array('username','email')))
->from($db->quoteName('#__users'))
->where($db->quoteName('id'. "=" .$db->quote($user_id)));
// TODO Check and remove the commented query
// $que = 'SELECT `username`,`email` FROM `#__users` WHERE `id` = "' .$user_id.'"';
$db->setQuery($que);
$userdetails = $db->loadObjectList();
$partnername = $userdetails[0]->username;
$partneremail = $userdetails[0]->email;
$qu = $db->getQuery(true);
$qu->select('*')
->from($db->quoteName('#__virtuemart_userinfos'))
->where($db->quoteName('virtuemart_user_id'. "=" .$db->quote($user_id)));
// TODO Check and remove the commented query
// $qu = 'SELECT * FROM `#__virtuemart_userinfos` WHERE `virtuemart_user_id` = "' .$user_id.'"';
$db->setQuery($qu);
try{
$sellerinfo = $db->loadObject();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$mailfrom = $sellerinfo->first_name;
$sellername = $sellerinfo->first_name." ".$sellerinfo->last_name;
$mailer = JFactory::getMailer();
$config = JFactory::getConfig();
$mainframe = JFactory::getApplication();
$adminemail = $mainframe->getCfg('mailfrom');
$recipient = array( $partneremail,$adminemail );
$mailer->addRecipient($recipient);
$sender = array(
$config->getvalue('config.mailfrom'),
$config->getvalue('config.fromname')
);
$mailer->setSender($adminemail);
$subject = "The Plan Subscribed by Seller : ".' '.$sellername. ','.' '."has been expired. ";
$mail_content ="<div style='background:#f2f2f2;word-wrap: break-word;padding:20px;'>
Hello <strong>".$partnername."</strong>,<br/>
Your Previous plan has been expired and Your products are Disable because you have no any plan right Now. <br/>
So that, You need to Subscribed any plan to enable or add more Products.</br>
To go on the Plan Subscription page Please Click on this button Here.<a href='".juri::root()."index.php?option=com_mpmembership&view=membership'><span id='email-view-detail' style='background-color: #c0392b; color: #fff; display: inline-block; height: 20px; padding: 7px; width: 100px; cursor: pointer;border-radius: 9px;'><input type ='Button' value ='View Details' name ='view_details' id='view_details' /></span></a></div></br>
<div style='text-align:center;'><strong> Thank You </strong></div>";
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($mail_content);
$send = $mailer->Send();
}
/**
* CreateSeller function
*
* @param [type] $ret var
* @param [type] $data var
*
* @return void
*/
public function createSeller($ret,$data)
{
$params = JComponentHelper::getParams('com_marketplace');
$create_seller = trim($params->get('create_seller'));
$db = JFactory::getDBO();
$seller_id=$ret['user']->id;
$selleraccess=$data['selleraccess'];
if ($selleraccess== 1 && $create_seller == 1) {
$profile = new stdClass();
$profile->seller_id = $seller_id;
$profile->is_seller=1;
try{
$result = $db->insertObject(
'#__marketplace_sellerprofile',
$profile
);
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
} elseif ($selleraccess == 1 && $create_seller== 0 ) {
$profile = new stdClass();
$profile->seller_id = $seller_id;
$profile->is_seller=0;
$db->setQuery($query);
try{
$result = $db->insertObject(
'#__marketplace_sellerprofile',
$profile
);
} catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
}
/**
* UpdateCommision function
*
* @param [type] $order var
*
* @return void
*/
public static function updateCommision($order)
{
$db = JFactory::getDBO();
$virtuemart_order_id = $order['details']['BT']->virtuemart_order_id;
$order_model = MarketplaceHelper::getMarketModelS('Orderhistory');
$virtuemart_paymentmethod_id = $order['details']['BT']->virtuemart_paymentmethod_id;
$virtuemart_order_userinfo_id = $order['details']['BT']->virtuemart_order_userinfo_id;
$query=$db->getQuery(true);
$query->select($db->quoteName('payment_element'));
$query->from($db->quoteName('#__virtuemart_paymentmethods'));
$query->where(
$db->quoteName('virtuemart_paymentmethod_id').
"=".$db->quote($db->escape($virtuemart_paymentmethod_id))
);
$db->setQuery($query);
$payment_element = $db->loadResult();
if (($payment_element!='adaptivepaypal' && $payment_element!='stripeconnect')
&& ($payment_element!='mangopaymarketplace'
&& $payment_element!='braintreemarketplace')
&& $payment_element!='remitasplit'
) {
foreach ($order['items'] as $item) {
$virtuemart_product_id = $item->virtuemart_product_id;
$product_quantity = $item->product_quantity;
$order_status = $item->order_status;
$product_item_price = $item->product_item_price;
$order_item_name = $item->order_item_name;
$product_final_price = $item->product_final_price;
$product_total_amount = $product_final_price*$product_quantity;
$product_subtotal = $item->product_subtotal_with_tax;
$query=$db->getQuery(true);
$query->select($db->quoteName('created_by'))
->from($db->quoteName('#__virtuemart_products'))
->where(
$db->quoteName('virtuemart_product_id').
"=".$db->quote($db->escape($virtuemart_product_id))
);
$db->setQuery($query);
try{
$seller_id = $db->loadResult();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
if (isset($seller_id)) {
$curr_stat = $order_model->getOrderStatus(
$seller_id, $virtuemart_order_id
);
if ($curr_stat == null || $curr_stat == false) {
$res_status = $order_model->setOrderStatus(
$seller_id,
$virtuemart_order_id,
$order_status
);
}
$query=$db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__marketplace_commision'));
$query->where($db->quoteName('seller_id')."=".$db->quote($db->escape($seller_id)));
$db->setQuery($query);
try{
$commision_fetch = $db->loadObject();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
if (is_object($commision_fetch)) {
$virtuemart_real_order_id=$commision_fetch->commision_type;
if ($commision_fetch->commision_type=='r') {
$total_sales = $product_total_amount
+$commision_fetch->total_sales;
$commision = $commision_fetch->commision;
$commision_id = $commision_fetch->commision_id;
$comm_total = ($product_total_amount*$commision/100);
$commision_total = $product_subtotal - (
($product_subtotal*$commision)/100
);
$amount_remain= $commision_fetch->amount_remain
+$product_total_amount-$comm_total;
} else {
$total_sales = $product_total_amount
+$commision_fetch->total_sales;
$commision = $commision_fetch->commision;
$commision_id = $commision_fetch->commision_id;
$comm_total = $commision*$product_quantity;
$commision_total = $product_subtotal-$commision;
$amount_remain = $commision_fetch->amount_remain
+$product_total_amount-$comm_total;
}
$query=$db->getQuery(true);
$query->update($db->quoteName('#__marketplace_commision'))
->set(
$db->quoteName('amount_remain').
"=".$db->quote($amount_remain)
)
->set(
$db->quoteName('total_sales').
"=".$db->quote($total_sales)
)
->where(
$db->quoteName('seller_id').
"=".$db->quote($db->escape($seller_id))
);
$db->setQuery($query);
$db->execute();
$query=$db->getQuery(true);
$columns=array(
$db->quoteName('orderlist_id'),
$db->quoteName('virtuemart_product_id'),
$db->quoteName('virtuemart_order_id'),
$db->quoteName('virtuemart_commision_id'),
$db->quoteName('virtuemart_real_order_id'),
$db->quoteName('virtuemart_product_quantity'),
$db->quoteName('virtuemart_seller_id'),
$db->quoteName('virtuemart_product_order_status'),
$db->quoteName('virtuemart_buyerid'),
$db->quoteName('virtuemart_product_price'),
$db->quoteName('virtuemart_product_name'),
$db->quoteName('virtuemart_product_total_amount'),
$db->quoteName('virtuemart_seller_commision_rate'),
$db->quoteName('virtuemart_seller_total_commision'),
$db->quoteName('actual_parter_product_cost'),
$db->quoteName('cleared_at'),
$db->quoteName('modified_on'),
$db->quoteName('update_status')
);
$values=array(
$db->quote(''),
$db->quote($virtuemart_product_id),
$db->quote($virtuemart_order_id),
$db->quote($commision_id),
$db->quote($virtuemart_real_order_id),
$db->quote($product_quantity),
$db->quote($seller_id),
$db->quote($order_status),
$db->quote($virtuemart_order_userinfo_id),
$db->quote($product_item_price),
$db->quote($order_item_name),
$db->quote($product_total_amount),
$db->quote($commision),
$db->quote($comm_total),
$db->quote(''),
$db->quote('0000-00-00 00:00:00'),
$db->quote('0000-00-00 00:00:00'),
$db->quote('1')
);
$query->insert($db->quoteName('#__marketplace_orderlist'));
$query->columns($columns);
$query->values(implode(',', $values));
$db->setQuery($query);
try{
$db->execute();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
}
}
}
}
/**
* ProductOrderDetails function
*
* @param [type] $id var
*
* @return void
*/
public function productOrderDetails($id)
{
$db = JFactory::getDBO();
$query=$db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__virtuemart_order_items'));
$query->where(
$db->quoteName('virtuemart_order_id')."=".$db->quote($db->escape($id))
);
$db->setQuery($query);
try {
return $db->loadObjectList();
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
/**
* GetPaypalType function
*
* @param [type] $id var
*
* @return void
*/
public function getPaypalType($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('payment_mode');
$query->from($db->quoteName('#__marketplace_sellerprofile'));
$query->where($db->quoteName('seller_id')." = ".$id);
$db->setQuery($query);
try{
return $result = $db->loadResult();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
/**
* AdaptiveCommision function
*
* @param [type] $orderid var
*
* @return void
*/
public function adaptiveCommision($orderid)
{
$db = JFactory::getDbo();
$items = plgSystemMarketplace::productOrderDetails($orderid);
foreach ($items as $key => $item) {
$virtuemart_product_id = $item->virtuemart_product_id;
$product_subtotal = $item->product_subtotal_with_tax;
$query=$db->getQuery(true);
$query->select($db->quoteName('created_by'));
$query->from($db->quoteName('#__marketplace_product'));
$query->where(
$db->quoteName('virtuemart_product_id').
"=".$db->quote($db->escape($virtuemart_product_id))
);
$db->setQuery($query);
try{
$seller_id = $db->loadResult();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
if (isset($seller_id)&& JString::strlen($seller_id)) {
$query=$db->getQuery(true);
$query->select('*');
$query->from('#__marketplace_commision');
$query->where(
$db->quoteName('seller_id')."=".$db->quote($seller_id)
);
$db->setQuery($query);
try{
$commision_fetch = $db->loadObjectList();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage($e->getMessage(), 'error');
return false;
}
if (isset($commision_fetch[0])) {
$seller_payment_type =plgSystemMarketplace::getPaypalType($temp[0]);
$seller_pay_type= explode('-', $seller_payment_type);
if ($seller_pay_type['1']='adaptivepaypal') {
$total_sales = $product_subtotal+$commision_fetch[0]->total_sales;
$commision = $commision_fetch[0]->commision;
$product_seller_subtotal = $product_subtotal - (($product_subtotal*$commision)/100);
$amount_recieved = $commision_fetch[0]->amount_recieved + $product_seller_subtotal;
$amount_paid = $product_seller_subtotal;
$query=$db->getQuery(true);
$query->update($db->quoteName('#__marketplace_commision'));
$query->set(
$db->quoteName('amount_recieved').
"=".$db->quote($amount_recieved)
);
$query->set(
$db->quoteName('amount_paid').
"=".$db->quote($amount_paid)
);
$query->set(
$db->quoteName('total_sales').
"=".$db->quote($total_sales)
);
$query->where(
$db->quoteName('seller_id').
"=".$db->quote($total_sales)
);
$db->setQuery($commision_update);
try{
$db->query();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
} else {
$total_sales
= $product_subtotal+$commision_fetch[0]->total_sales;
$commision = $commision_fetch[0]->commision;
$commision_total = $product_subtotal
- (($product_subtotal*$commision)/100);
$amount_remain = $commision_total
+$commision_fetch[0]->amount_remain;
$query=$db->getQuery(true);
$query->update($db->quoteName('#__marketplace_commision'))
->set(
$db->quoteName('amount_remain').
"=".$db->quote($amount_remain)
)
->set(
$db->quoteName('total_sales').
"=".$db->quote($total_sales)
)
->where(
$db->quoteName('seller_id').
"=".$db->quote($total_sales)
);
$db->setQuery($commision_update);
try{
$db->query();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
}
}
}
}
}
/**
* MshipPlanUpdateMailSend function
*
* @param [type] $created_by seller Id
*
* @deprecated 5.2 use memberShipPlanUpdateMailSend($created_by)
*
* @return void
*/
public function MshipPlanUpdateMailSend($created_by)
{
JFactory::getApplication()->enqueueMessage(
'Method Deprecated use memberShipPlanUpdateMailSend Instead',
'notice'
);
$this->memberShipPlanUpdateMailSend($created_by);
}
/**
* MemberShipPlanUpdateMailSend function
*
* @param integer $created_by seller Id
*
* @return void
*/
public function memberShipPlanUpdateMailSend($created_by)
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*')
->from($db->quoteName('#__mpmembership_members'))
->where($db->quoteName('seller_id').'='. $created_by);
$db->setQuery($query);
try{
$update_result = $db->loadObject();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$seller_name = $update_result->seller_name;
$account_name = $update_result->account_name;
$no_of_products = $update_result->no_of_products;
$membership_fee = $update_result->membership_fee;
$months = $update_result->months;
$que = $db->getQuery(true);
$que->select($db->quoteName(array('username', 'email')))
->from($db->quoteName('#__users'))
->where($db->quoteName('id').'='. $created_by);
$db->setQuery($que);
try{
$userdetails = $db->loadObjectList();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$partnername = $userdetails[0]->username;
$partneremail = $userdetails[0]->email;
$qu = $db->getQuery(true);
$qu->select('*')
->from($db->quoteName('#__virtuemart_userinfos'))
->where($db->quoteName('virtuemart_user_id').'='. $created_by);
$db->setQuery($qu);
try{
$sellerinfo = $db->loadObject();
}catch(Exception $e){
JFactory::getApplication()->enqueueMessage(
$e->getMessage(),
'error'
);
return false;
}
$mailfrom = $sellerinfo->first_name;
$sellername = $sellerinfo->first_name." ".$sellerinfo->last_name;
$mailer = JFactory::getMailer();
$config = JFactory::getConfig();
$mainframe = JFactory::getApplication();
$adminemail = $mainframe->getCfg('mailfrom');
$recipient = array( $partneremail,$adminemail );
$mailer->addRecipient($recipient);
$sender = array(
$config->getvalue('config.mailfrom'),
$config->getvalue('config.fromname')
);
$mailer->setSender($adminemail);
$subject = "Update Membership Plan By Seller : ".' '.$sellername." ";
$mail_content ="<div style='background:#f2f2f2;word-wrap: break-word;padding:20px;'>
Hello <strong>".$partnername."</strong>,<br/>
<strong>".$sellername."</strong> Update His Plan which Account Name: ".$account_name."<br/>
<h2>Plan Acciunt Details</h2>
<table width='100%' cellspacing='0' cellpadding='0' border='0'>
<tbody>
<tr align='left'>
<th align='left'>Seller Name</th>
<th align='left'>Account Name</th>
<th align='left'>Num Of Product</th>
<th align='right'>Membership Fee</th>
<th align='right'>Valid For Months</th>
</tr>
<tr valign='top'>
<td align='left'></td>
<td align='left'></td>
<td align='left'></td>
<td align='right'></td>
<td align='right'></td>
</tr>
<tr valign='top'>
<td align='left'>".$seller_name."</td>
<td align='left'>".$account_name."</td>
<td align='left'>".$no_of_products."</td>
<td align='right'>".$membership_fee."</td>
<td align='right'>".$months."</td>
</tr>
</tbody>
</table>
<br/><br/>
<div style='text-align:center;'><strong>Thank You</strong></div>
</div>";
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($mail_content);
//exit();
$send = $mailer->Send();
}
/**
* Sample functions for Mp triggers
*/
/*
* Uncomment the functions and test;
* Override the functions to perform task as per your need.
* Do not write the functions in this marketplace plugin,
* create the plugin for your own extension and override the required functions
* NOTE**: These methods will be triggered in System PLugin only
*/
/*
// For Add Product View return value of title and content
function onSellerAddProductView($virtuemart_product_id, $data){
$a="Custom Field";
$b="<div style='color:red;'>here</div>";
return array("title"=>$a,"content"=> $b);
}*/
/*
// For Add Product before save validate product data and return true or false,
// false will not allow the product to be saved
function onSellerBeforeAddProduct(&$data){
return false;
}*/
/*
// For Add Product after save, Save your extension data here
function onSellerAfterAddProduct($data,$product_data){
die("here");
}*/
/*
// For Seller Profile View return value of title and content
function onSellerProfileRender($sellerId){
$a="Check ";
$b="<div style='color:red;'>here</div>";
return array("title"=>$a,"content"=> $b);
}
*/
/*
// For Marketplace Menu add a menu link, return complete link as in example
function onMarketplaceMenuRender(){
$a="Check ";
return "<a href=".JRoute::_("index.php?option=com_marketplace&view=sellerlist", false)."><span><i class=\"fa fa-eye\"></i></span><span>".$a."</span></a>";
}
*/
/* // For Profile Edit View return value of title and content
function onSellerEditProfileView($data){
$a="Custom Tab";
$b="<div style='color:red;'>here</div>";
return array("title"=>$a,"content"=> $b);
} */
/* // For Profile Edit before save validate data and return true or false,
// false will not allow the profile to be saved
function onSellerBeforeProfileSave(&$data){
return false;
} */
/* // For Profile Edit after save, Save your extension data here
function onSellerAfterProfileSave($data){
die("here");
} */
}