parent
757c2dbf0d
commit
f6e320b616
@ -0,0 +1,61 @@ |
||||
<?php |
||||
/** |
||||
* User Panel |
||||
* @package chamilo.plugin.buycourses |
||||
*/ |
||||
/** |
||||
* Initialization |
||||
*/ |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once '../../../main/inc/global.inc.php'; |
||||
|
||||
$plugin = BuyCoursesPlugin::create(); |
||||
$includeSessions = $plugin->get('include_sessions') === 'true'; |
||||
|
||||
$userInfo = api_get_user_info(); |
||||
|
||||
$productTypes = $plugin->getProductTypes(); |
||||
$saleStatuses = $plugin->getSaleStatuses(); |
||||
$paymentTypes = $plugin->getPaymentTypes(); |
||||
|
||||
$sales = $plugin->getSaleListByUserId($userInfo['id']); |
||||
|
||||
$saleList = []; |
||||
|
||||
foreach ($sales as $sale) { |
||||
if ($sale['product_type'] == 1) { |
||||
$saleList[] = [ |
||||
'id' => $sale['id'], |
||||
'reference' => $sale['reference'], |
||||
'date' => api_format_date($sale['date'], DATE_TIME_FORMAT_LONG_24H), |
||||
'currency' => $sale['iso_code'], |
||||
'price' => $sale['price'], |
||||
'product_name' => $sale['product_name'], |
||||
'product_type' => $productTypes[$sale['product_type']], |
||||
'payment_type' => $paymentTypes[$sale['payment_type']] |
||||
]; |
||||
} |
||||
} |
||||
|
||||
$toolbar = Display::toolbarButton( |
||||
$plugin->get_lang('CourseListOnSale'), |
||||
'course_catalog.php', |
||||
'search-plus', |
||||
'primary', |
||||
['title' => $plugin->get_lang('CourseListOnSale')] |
||||
); |
||||
|
||||
$templateName = get_lang('TabsDashboard'); |
||||
$tpl = new Template($templateName); |
||||
$tpl->assign('showing_courses', true); |
||||
$tpl->assign('sessions_are_included', $includeSessions); |
||||
$tpl->assign('sale_list', $saleList); |
||||
|
||||
$content = $tpl->fetch('buycourses/view/course_panel.tpl'); |
||||
|
||||
$tpl->assign('actions', $toolbar); |
||||
$tpl->assign('header', $templateName); |
||||
$tpl->assign('content', $content); |
||||
$tpl->display_one_col_template(); |
||||
@ -0,0 +1,220 @@ |
||||
<?php |
||||
|
||||
/* For licensing terms, see /chamilo_license.txt */ |
||||
/** |
||||
* Responses to AJAX calls |
||||
* @package chamilo.plugin.buycourses |
||||
*/ |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once '../../../main/inc/global.inc.php'; |
||||
|
||||
api_protect_admin_script(true); |
||||
|
||||
$plugin = BuyCoursesPlugin::create(); |
||||
|
||||
$paypalEnable = $plugin->get('paypal_enable'); |
||||
$comissionsEnable = $plugin->get('comissions_enable'); |
||||
|
||||
$action = isset($_GET['a']) ? $_GET['a'] : null; |
||||
|
||||
switch ($action) { |
||||
case 'saleInfo': |
||||
|
||||
$saleId = isset($_POST['id']) ? $_POST['id'] : ''; |
||||
$sale = $plugin->getSale($saleId); |
||||
$productType = ($sale['product_type'] == 1) ? get_lang('Course') : get_lang('Session'); |
||||
$paymentType = ($sale['payment_type'] == 1) ? 'Paypal' : $plugin->get_lang('BankTransfer'); |
||||
$productInfo = ($sale['product_type'] == 1) ? api_get_course_info_by_id($sale['product_id']) : api_get_session_info($sale['product_id']); |
||||
$currency = $plugin->getSelectedCurrency(); |
||||
if ($sale['product_type'] == 1) { |
||||
$productImage = $productInfo['course_image_large']; |
||||
} else { |
||||
$productImage = ($productInfo['image']) ? $productInfo['image'] : Template::get_icon_path('session_default.png'); |
||||
} |
||||
|
||||
$userInfo = api_get_user_info($sale['user_id']); |
||||
|
||||
$html = '<h2>' . $sale['product_name'] .'</h2>'; |
||||
$html .= '<div class="row">'; |
||||
$html .= '<div class="col-sm-6 col-md-6">'; |
||||
$html .= '<ul>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('OrderPrice') . ':</b> '. $sale['price'] . '</li>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('CurrencyType') . ':</b> '. $currency['iso_code'] . '</li>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('ProductType') . ':</b> '. $productType . '</li>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('OrderDate') . ':</b> '. api_format_date($sale['date'], DATE_TIME_FORMAT_LONG_24H) . '</li>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('Buyer') . ':</b> '. $userInfo['complete_name'] . '</li>'; |
||||
$html .= '<li><b>'. $plugin->get_lang('PaymentMethods') . ':</b> '. $paymentType . '</li>'; |
||||
$html .= '</ul>'; |
||||
$html .= '</div>'; |
||||
$html .= '<div class="col-sm-6 col-md-6">'; |
||||
$html .= '<img class="thumbnail" src="'. $productImage .'" >'; |
||||
$html .= '</div>'; |
||||
$html .= '</div>'; |
||||
|
||||
echo $html; |
||||
|
||||
break; |
||||
|
||||
case 'stats': |
||||
|
||||
$stats = []; |
||||
$stats['completed_count'] = 0; |
||||
$stats['completed_total_amount'] = 0; |
||||
$stats['pending_count'] = 0; |
||||
$stats['pending_total_amount'] = 0; |
||||
$stats['canceled_count'] = 0; |
||||
$stats['canceled_total_amount'] = 0; |
||||
|
||||
$completedPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_COMPLETED); |
||||
$pendingPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING); |
||||
$canceledPayouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_CANCELED); |
||||
$currency = $plugin->getSelectedCurrency(); |
||||
|
||||
foreach ($completedPayouts as $completed) { |
||||
$stats['completed_count'] = count($completedPayouts); |
||||
$stats['completed_total_amount'] += $completed['comission']; |
||||
$stats['completed_total_amount'] = number_format($stats['completed_total_amount'], 2); |
||||
} |
||||
|
||||
foreach ($pendingPayouts as $pending) { |
||||
$stats['pending_count'] = count($pendingPayouts); |
||||
$stats['pending_total_amount'] += $pending['comission']; |
||||
$stats['pending_total_amount'] = number_format($stats['pending_total_amount'], 2); |
||||
} |
||||
|
||||
foreach ($canceledPayouts as $canceled) { |
||||
$stats['canceled_count'] = count($canceledPayouts); |
||||
$stats['canceled_total_amount'] += $canceled['comission']; |
||||
$stats['canceled_total_amount'] = number_format($stats['canceled_total_amount'], 2); |
||||
} |
||||
|
||||
|
||||
$html = '<div class="row">' |
||||
. '<p>' |
||||
. '<ul>' |
||||
. '<li>'. get_plugin_lang("PayoutsTotalCompleted", "BuyCoursesPlugin") .' <b>'. $stats['completed_count'] .'</b> - '. get_plugin_lang("TotalAmount", "BuyCoursesPlugin") .' <b>'. $stats['completed_total_amount'] .' '. $currency['iso_code'] . '</b></li>' |
||||
. '<li>'. get_plugin_lang("PayoutsTotalPending", "BuyCoursesPlugin") .' <b>'. $stats['pending_count'] .'</b> - '. get_plugin_lang("TotalAmount", "BuyCoursesPlugin") .' <b>'. $stats['pending_total_amount'] .' '. $currency['iso_code'] . '</b></li>' |
||||
. '<li>'. get_plugin_lang("PayoutsTotalCanceled", "BuyCoursesPlugin") .' <b>'. $stats['canceled_count'] .'</b> - '. get_plugin_lang("TotalAmount", "BuyCoursesPlugin") .' <b>'. $stats['canceled_total_amount'] .' '. $currency['iso_code'] . '</b></li>' |
||||
. '</ul>' |
||||
. '</p>'; |
||||
$html .= '</div>'; |
||||
echo $html; |
||||
|
||||
break; |
||||
|
||||
case 'processPayout': |
||||
if (api_is_anonymous()) { |
||||
break; |
||||
} |
||||
|
||||
$html = ''; |
||||
$allPays = []; |
||||
$totalAccounts = 0; |
||||
$totalPayout = 0; |
||||
|
||||
$payouts = isset($_POST['payouts']) ? $_POST['payouts'] : ''; |
||||
|
||||
if (!$payouts) { |
||||
|
||||
echo Display::return_message(get_plugin_lang("SelectOptionToProceed", "BuyCoursesPlugin"), 'error', false); |
||||
|
||||
break; |
||||
} |
||||
|
||||
foreach($payouts as $index => $id) { |
||||
$allPays[] = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING, $id); |
||||
} |
||||
|
||||
foreach($allPays as $payout) { |
||||
$totalPayout += number_format($payout['comission'], 2); |
||||
$totalAccounts++; |
||||
} |
||||
|
||||
$currentCurrency = $plugin->getSelectedCurrency(); |
||||
|
||||
$isoCode = $currentCurrency['iso_code']; |
||||
|
||||
$html .= '<p>'. get_plugin_lang("VerifyTotalAmountToProceedPayout", "BuyCoursesPlugin") .'</p>'; |
||||
$html .= '' |
||||
. '<p>' |
||||
. '<ul>' |
||||
. '<li>'. get_plugin_lang("TotalAcounts", "BuyCoursesPlugin") .' <b>'. $totalAccounts .'</b></li>' |
||||
. '<li>'. get_plugin_lang("TotalPayout", "BuyCoursesPlugin") .' <b>'. $isoCode .' '. $totalPayout .'</b></li>' |
||||
. '</ul>' |
||||
. '</p>'; |
||||
$html .= '<p>'. get_plugin_lang("CautionThisProcessCantBeCanceled", "BuyCoursesPlugin") .'</p>'; |
||||
$html .= '</br></br>'; |
||||
$html .= '<div id="spinner" class="text-center"></div>'; |
||||
|
||||
echo $html; |
||||
break; |
||||
|
||||
case 'proceedPayout': |
||||
if (api_is_anonymous()) { |
||||
break; |
||||
} |
||||
|
||||
$paypalParams = $plugin->getPaypalParams(); |
||||
|
||||
$pruebas = $paypalParams['sandbox'] == 1; |
||||
$paypalUsername = $paypalParams['username']; |
||||
$paypalPassword = $paypalParams['password']; |
||||
$paypalSignature = $paypalParams['signature']; |
||||
|
||||
require_once("paypalfunctions.php"); |
||||
|
||||
$allPayouts = []; |
||||
$totalAccounts = 0; |
||||
$totalPayout = 0; |
||||
|
||||
$payouts = isset($_POST['payouts']) ? $_POST['payouts'] : ''; |
||||
|
||||
if (!$payouts) { |
||||
|
||||
echo Display::return_message(get_plugin_lang("SelectOptionToProceed", "BuyCoursesPlugin"), 'error', false); |
||||
|
||||
break; |
||||
} |
||||
|
||||
foreach($payouts as $index => $id) { |
||||
$allPayouts[] = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_PENDING, $id); |
||||
} |
||||
|
||||
$currentCurrency = $plugin->getSelectedCurrency(); |
||||
|
||||
$isoCode = $currentCurrency['iso_code']; |
||||
|
||||
|
||||
$result = MassPayment($allPayouts, $isoCode); |
||||
|
||||
if($result['ACK'] === 'Success') { |
||||
foreach($allPayouts as $payout) { |
||||
$plugin->setStatusPayouts($payout['id'], BuyCoursesPlugin::PAYOUT_STATUS_COMPLETED); |
||||
} |
||||
|
||||
echo Display::return_message(get_plugin_lang("PayoutSuccess", "BuyCoursesPlugin"), 'success', false); |
||||
|
||||
} else { |
||||
|
||||
echo Display::return_message('<b>'.$result['L_SEVERITYCODE0'].' '.$result['L_ERRORCODE0'].'</b> - '.$result['L_SHORTMESSAGE0'].'</br><ul><li>'. $result['L_LONGMESSAGE0'].'</li></ul>', 'error', false); |
||||
|
||||
} |
||||
|
||||
break; |
||||
|
||||
case 'cancelPayout': |
||||
if (api_is_anonymous()) { |
||||
break; |
||||
} |
||||
|
||||
$payoutId = isset($_POST['id']) ? $_POST['id'] : ''; |
||||
|
||||
$plugin->setStatusPayouts($payoutId, BuyCoursesPlugin::PAYOUT_STATUS_CANCELED); |
||||
|
||||
echo ''; |
||||
|
||||
break; |
||||
} |
||||
exit; |
||||
@ -0,0 +1,57 @@ |
||||
<?php |
||||
/** |
||||
* User Panel |
||||
* @package chamilo.plugin.buycourses |
||||
*/ |
||||
/** |
||||
* Initialization |
||||
*/ |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once '../../../main/inc/global.inc.php'; |
||||
|
||||
$plugin = BuyCoursesPlugin::create(); |
||||
$includeSessions = $plugin->get('include_sessions') === 'true'; |
||||
|
||||
$userInfo = api_get_user_info(); |
||||
|
||||
$payouts = $plugin->getPayouts(BuyCoursesPlugin::PAYOUT_STATUS_COMPLETED, false, $userInfo['id']); |
||||
|
||||
$payoutList = []; |
||||
|
||||
foreach ($payouts as $payout) { |
||||
$payoutList[] = [ |
||||
'id' => $payout['id'], |
||||
'sale_id' => $payout['sale_id'], |
||||
'reference' => $payout['sale_reference'], |
||||
'date' => api_format_date($payout['date'], DATE_TIME_FORMAT_LONG_24H), |
||||
'payout_date' => ($payout['payout_date'] === '0000-00-00 00:00:00') ? '-' : api_format_date($payout['payout_date'], DATE_TIME_FORMAT_LONG_24H), |
||||
'currency' => $payout['iso_code'], |
||||
'price' => $payout['item_price'], |
||||
'comission' => $payout['comission'], |
||||
'paypal_account' => $payout['paypal_account'], |
||||
'status' => $payout['status'] |
||||
]; |
||||
} |
||||
|
||||
$toolbar = Display::toolbarButton( |
||||
$plugin->get_lang('CourseListOnSale'), |
||||
'course_catalog.php', |
||||
'search-plus', |
||||
'primary', |
||||
['title' => $plugin->get_lang('CourseListOnSale')] |
||||
); |
||||
|
||||
$templateName = get_lang('TabsDashboard'); |
||||
$tpl = new Template($templateName); |
||||
$tpl->assign('showing_courses', true); |
||||
$tpl->assign('sessions_are_included', $includeSessions); |
||||
$tpl->assign('payout_list', $payoutList); |
||||
|
||||
$content = $tpl->fetch('buycourses/view/payout_panel.tpl'); |
||||
|
||||
$tpl->assign('actions', $toolbar); |
||||
$tpl->assign('header', $templateName); |
||||
$tpl->assign('content', $content); |
||||
$tpl->display_one_col_template(); |
||||
@ -0,0 +1,61 @@ |
||||
<?php |
||||
/** |
||||
* User Panel |
||||
* @package chamilo.plugin.buycourses |
||||
*/ |
||||
/** |
||||
* Initialization |
||||
*/ |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once '../../../main/inc/global.inc.php'; |
||||
|
||||
$plugin = BuyCoursesPlugin::create(); |
||||
$includeSessions = $plugin->get('include_sessions') === 'true'; |
||||
|
||||
$userInfo = api_get_user_info(); |
||||
|
||||
$productTypes = $plugin->getProductTypes(); |
||||
$saleStatuses = $plugin->getSaleStatuses(); |
||||
$paymentTypes = $plugin->getPaymentTypes(); |
||||
|
||||
$sales = $plugin->getSaleListByUserId($userInfo['id']); |
||||
|
||||
$saleList = []; |
||||
|
||||
foreach ($sales as $sale) { |
||||
if ($sale['product_type'] == 2) { |
||||
$saleList[] = [ |
||||
'id' => $sale['id'], |
||||
'reference' => $sale['reference'], |
||||
'date' => api_format_date($sale['date'], DATE_TIME_FORMAT_LONG_24H), |
||||
'currency' => $sale['iso_code'], |
||||
'price' => $sale['price'], |
||||
'product_name' => $sale['product_name'], |
||||
'product_type' => $productTypes[$sale['product_type']], |
||||
'payment_type' => $paymentTypes[$sale['payment_type']] |
||||
]; |
||||
} |
||||
} |
||||
|
||||
$toolbar = Display::toolbarButton( |
||||
$plugin->get_lang('CourseListOnSale'), |
||||
'course_catalog.php', |
||||
'search-plus', |
||||
'primary', |
||||
['title' => $plugin->get_lang('CourseListOnSale')] |
||||
); |
||||
|
||||
$templateName = get_lang('TabsDashboard'); |
||||
$tpl = new Template($templateName); |
||||
$tpl->assign('showing_courses', true); |
||||
$tpl->assign('sessions_are_included', $includeSessions); |
||||
$tpl->assign('sale_list', $saleList); |
||||
|
||||
$content = $tpl->fetch('buycourses/view/session_panel.tpl'); |
||||
|
||||
$tpl->assign('actions', $toolbar); |
||||
$tpl->assign('header', $templateName); |
||||
$tpl->assign('content', $content); |
||||
$tpl->display_one_col_template(); |
||||
@ -0,0 +1,43 @@ |
||||
<link rel="stylesheet" type="text/css" href="../resources/css/style.css"/> |
||||
|
||||
<div id="buy-courses-tabs"> |
||||
|
||||
<ul class="nav nav-tabs buy-courses-tabs" role="tablist"> |
||||
<li id="buy-courses-tab" class="active" role="presentation"> |
||||
<a href="course_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyCourses'| get_lang }}</a> |
||||
</li> |
||||
{% if sessions_are_included %} |
||||
<li id="buy-sessions-tab" class="" role="presentation"> |
||||
<a href="session_panel.php" aria-controls="buy-sessions" role="tab">{{ 'MySessions'| get_lang }}</a> |
||||
</li> |
||||
{% endif %} |
||||
<li id="buy-courses-tab" class="" role="presentation"> |
||||
<a href="payout_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyPayouts'| get_plugin_lang('BuyCoursesPlugin') }}</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
<table class="table table-striped table-hover"> |
||||
<thead> |
||||
<tr> |
||||
<th>{{ 'Course'|get_lang }}</th> |
||||
<th class="text-center">{{ 'PaymentMethod'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'Price'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'OrderDate'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'OrderReference'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for sale in sale_list %} |
||||
<tr> |
||||
<td>{{ sale.product_name }}</td> |
||||
<td class="text-center">{{ sale.payment_type }}</td> |
||||
<td class="text-right">{{ sale.currency ~ ' ' ~ sale.price }}</td> |
||||
<td class="text-center">{{ sale.date }}</td> |
||||
<td class="text-center">{{ sale.reference }}</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
|
||||
|
||||
</div> |
||||
@ -0,0 +1,41 @@ |
||||
<link rel="stylesheet" type="text/css" href="../resources/css/style.css"/> |
||||
|
||||
<div id="buy-courses-tabs"> |
||||
|
||||
<ul class="nav nav-tabs buy-courses-tabs" role="tablist"> |
||||
<li id="buy-courses-tab" class="" role="presentation"> |
||||
<a href="course_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyCourses'| get_lang }}</a> |
||||
</li> |
||||
{% if sessions_are_included %} |
||||
<li id="buy-sessions-tab" class="" role="presentation"> |
||||
<a href="session_panel.php" aria-controls="buy-sessions" role="tab">{{ 'MySessions'| get_lang }}</a> |
||||
</li> |
||||
{% endif %} |
||||
<li id="buy-courses-tab" class="active" role="presentation"> |
||||
<a href="payout_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyPayouts'| get_plugin_lang('BuyCoursesPlugin') }}</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
<table class="table table-striped table-hover"> |
||||
<thead> |
||||
<tr> |
||||
<th class="text-center">{{ 'OrderReference'| get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'PayoutDate'| get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-right">{{ 'Comission'| get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-right">{{ 'PayPalAccount'| get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for payout in payout_list %} |
||||
<tr> |
||||
<td class="text-center" style="vertical-align:middle"><a id="{{ payout.sale_id }}" class="saleInfo" data-toggle="modal" data-target="#saleInfo" href="#">{{ payout.reference }}</a></td> |
||||
<td class="text-center" style="vertical-align:middle">{{ payout.payout_date }}</td> |
||||
<td class="text-right" style="vertical-align:middle">{{ payout.currency ~ ' ' ~ payout.comission }}</td> |
||||
<td class="text-right" style="vertical-align:middle">{{ payout.paypal_account }}</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
|
||||
|
||||
</div> |
||||
@ -0,0 +1,43 @@ |
||||
<link rel="stylesheet" type="text/css" href="../resources/css/style.css"/> |
||||
|
||||
<div id="buy-courses-tabs"> |
||||
|
||||
<ul class="nav nav-tabs buy-courses-tabs" role="tablist"> |
||||
<li id="buy-courses-tab" class="" role="presentation"> |
||||
<a href="course_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyCourses'| get_lang }}</a> |
||||
</li> |
||||
{% if sessions_are_included %} |
||||
<li id="buy-sessions-tab" class="active" role="presentation"> |
||||
<a href="session_panel.php" aria-controls="buy-sessions" role="tab">{{ 'MySessions'| get_lang }}</a> |
||||
</li> |
||||
{% endif %} |
||||
<li id="buy-courses-tab" class="" role="presentation"> |
||||
<a href="payout_panel.php" aria-controls="buy-courses" role="tab">{{ 'MyPayouts'| get_plugin_lang('BuyCoursesPlugin') }}</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
<table class="table table-striped table-hover"> |
||||
<thead> |
||||
<tr> |
||||
<th>{{ 'Session'|get_lang }}</th> |
||||
<th class="text-center">{{ 'PaymentMethod'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'Price'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'OrderDate'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
<th class="text-center">{{ 'OrderReference'|get_plugin_lang('BuyCoursesPlugin') }}</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for sale in sale_list %} |
||||
<tr> |
||||
<td>{{ sale.product_name }}</td> |
||||
<td class="text-center">{{ sale.payment_type }}</td> |
||||
<td class="text-right">{{ sale.currency ~ ' ' ~ sale.price }}</td> |
||||
<td class="text-center">{{ sale.date }}</td> |
||||
<td class="text-center">{{ sale.reference }}</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
|
||||
|
||||
</div> |
||||
Loading…
Reference in new issue