| Current Path : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/ |
| Current File : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/subscription.php |
<?php
/**
* @package JBusinessDirectory
*
* @author CMSJunkie http://www.cmsjunkie.com
* @copyright Copyright (C) 2007 - 2022 CMSJunkie. All rights reserved.
* @license https://www.gnu.org/licenses/agpl-3.0.en.html
*/
defined('_JEXEC') or die('Restricted access');
class JTableSubscription extends JTable {
/**
* Constructor
*
* @param object Database connector object
*/
public function __construct(&$db) {
parent::__construct('#__jbusinessdirectory_subscriptions', 'id', $db);
}
public function setKey($k) {
$this->_tbl_key = $k;
}
public function getSubscription($id) {
$id = (int) $id;
$db = JFactory::getDBO();
$query = "select s.*, o.start_date as order_start_date, o.end_date as order_end_date,o.id as orderId,
p.payment_method, p.transaction_id, p.currency, p.payment_status, p.type, p.message, p.response_code,
p.created as paymentCreated, p.order_id, p.payment_date,
GROUP_CONCAT(o.id) as orderIds
from #__jbusinessdirectory_subscriptions as s
left join #__jbusinessdirectory_orders as o on o.subscription_id = s.id and (
o.id in (
select max(o.id) as max
from #__jbusinessdirectory_orders o
group by o.subscription_id
)
)
left join #__jbusinessdirectory_payments as p on p.payment_id = s.payment_id
where 1 and s.id = $id
group by s.id";
$db->setQuery($query);
return $db->loadObject();
}
public function getSubscriptionBySubscriptionId($subscriptionId) {
$db = JFactory::getDBO();
$query = "select s.*,
p.payment_method, p.transaction_id, p.currency, p.payment_status, p.type, p.message, p.response_code,
p.created as paymentCreated, p.order_id, p.payment_date,
GROUP_CONCAT(o.id) as orderIds
from #__jbusinessdirectory_subscriptions as s
left join #__jbusinessdirectory_orders as o on o.subscription_id = s.id
left join #__jbusinessdirectory_payments as p on p.payment_id = s.payment_id
where 1 and s.subscription_id = '$subscriptionId'
group by s.id";
$db->setQuery($query);
return $db->loadObject();
}
public function getSubscriptionByOrder($orderId) {
$orderId = (int) $orderId;
$db = JFactory::getDBO();
$query = "select s.*
from #__jbusinessdirectory_subscriptions as s
left join #__jbusinessdirectory_orders as o on o.subscription_id = s.id
where 1 and o.id = $orderId";
$db->setQuery($query);
return $db->loadObject();
}
public function getSubscriptionByPayment($paymentId) {
$paymentId = (int) $paymentId;
$db = JFactory::getDBO();
$query = "select s.*
from #__jbusinessdirectory_subscriptions as s
where 1 and s.payment_id = $paymentId";
$db->setQuery($query);
return $db->loadObject();
}
public function getCompanyLastActiveSubscription($companyId) {
$companyId = (int) $companyId;
$db = JFactory::getDBO();
$query = "select *
from #__jbusinessdirectory_subscriptions
where status != ".SUBSCRIPTION_STATUS_CANCELED." and company_id = $companyId
order by id desc";
$db->setQuery($query);
return $db->loadObject();
}
public function getOrderBySubscription($subscriptionId) {
$db = JFactory::getDBO();
$query = "select o.*
from #__jbusinessdirectory_subscriptions as s
left join #__jbusinessdirectory_payments as p on p.payment_id = s.payment_id
left join #__jbusinessdirectory_orders as o on o.id = p.order_id
where s.subscription_id = '$subscriptionId'
ORDER BY o.id ASC
LIMIT 1";
$db->setQuery($query);
return $db->loadObject();
}
public function getActiveSubscriptions($companyId) {
$companyId = (int) $companyId;
$db = JFactory::getDBO();
$query = "select s.*
from #__jbusinessdirectory_subscriptions as s
where 1 and s.company_id = $companyId and status=".SUBSCRIPTION_STATUS_ACTIVE;
$db->setQuery($query);
return $db->loadObject();
}
}