Restore generation of order reference - refs #7768

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent 9003ff3544
commit 289477d904
  1. 1
      plugin/buycourses/database.php
  2. 30
      plugin/buycourses/src/BuyCoursesUtils.php
  3. 20
      plugin/buycourses/src/buy_course_plugin.class.php
  4. 1
      plugin/buycourses/src/process_confirm.php
  5. 1
      plugin/buycourses/src/sales_report.php
  6. 2
      plugin/buycourses/view/message_transfer.tpl
  7. 2
      plugin/buycourses/view/sales_report.tpl

@ -103,6 +103,7 @@ $saleTable->addColumn(
\Doctrine\DBAL\Types\Type::INTEGER,
['autoincrement' => true, 'unsigned' => true]
);
$saleTable->addColumn('reference', \Doctrine\DBAL\Types\Type::STRING);
$saleTable->addColumn('date', \Doctrine\DBAL\Types\Type::DATE);
$saleTable->addColumn(
'user_id',

@ -186,4 +186,34 @@ class BuyCoursesUtils
return $form;
}
/**
* Generates a random text (used for order references)
* @param int $length Optional. Length of characters
* @param boolean $lowercase Optional. Include lowercase characters
* @param boolean $uppercase Optional. Include uppercase characters
* @param boolean $numbers Optional. Include numbers
* @return string
*/
public static function randomText($length = 6, $lowercase = true, $uppercase = true, $numbers = true)
{
$salt = $lowercase ? 'abchefghknpqrstuvwxyz' : '';
$salt .= $uppercase ? 'ACDEFHKNPRSTUVWXYZ' : '';
$salt .= $numbers ? (strlen($salt) ? '2345679' : '0123456789') : '';
if (strlen($salt) == 0) {
return '';
}
$str = '';
srand((double)microtime() * 1000000);
for ($i = 0; $i < $length; $i++) {
$numbers = rand(0, strlen($salt) - 1);
$str .= substr($salt, $numbers, 1);
}
return $str;
}
}

@ -777,6 +777,11 @@ class BuyCoursesPlugin extends Plugin
}
$values = [
'reference' => $this->generateReference(
api_get_user_id(),
$item['product_type'],
$item['product_id']
),
'currency_id' => $item['currency_id'],
'date' => api_get_utc_datetime(),
'user_id' => api_get_user_id(),
@ -1067,4 +1072,19 @@ class BuyCoursesPlugin extends Plugin
return $courses;
}
/**
* Generates an order reference
* @param int $userId The user ID
* @param int $productType The course/session type
* @param int $productId The course/session ID
* @return string
*/
public function generateReference($userId, $productType, $productId)
{
return vsprintf(
"%d-%d-%d-%s",
[$userId, $productType, $productId, BuyCoursesUtils::randomText()]
);
}
}

@ -104,6 +104,7 @@ switch ($sale['payment_type']) {
'product' => $sale['product_name'],
'currency' => $currency['iso_code'],
'price' => $sale['price'],
'reference' => $sale['reference']
]
);
$messageTemplate->assign('sale_product', $sale['product_name']);

@ -85,6 +85,7 @@ $saleList = [];
foreach ($sales as $sale) {
$saleList[] = [
'id' => $sale['id'],
'reference' => $sale['reference'],
'status' => $sale['status'],
'date' => api_format_date($sale['date'], DATE_FORMAT_LONG_NO_DAY),
'currency' => $sale['iso_code'],

@ -4,6 +4,8 @@
<dl>
<dt>Fecha</dt>
<dd>{{ sale.date }}</dd>
<dt>{{ 'OrderReference'|get_plugin_lang('BuyCoursesPlugin') }}</dt>
<dd>sale.reference</dd>
<dt>Usuario</dt>
<dd>{{ user.complete_name }}</dd>
<dt>Curso</dt>

@ -4,6 +4,7 @@
<table class="table table-striped table-hover">
<thead>
<tr>
<th class="text-center">{{ 'OrderReference'|get_plugin_lang('BuyCoursesPlugin') }}</th>
<th class="text-center">{{ 'OrderStatus'|get_plugin_lang('BuyCoursesPlugin') }}</th>
<th class="text-center">{{ 'OrderDate'|get_plugin_lang('BuyCoursesPlugin') }}</th>
<th class="text-center">{{ 'Price'|get_plugin_lang('BuyCoursesPlugin') }}</th>
@ -18,6 +19,7 @@
<tbody>
{% for sale in sale_list %}
<tr {{ sale.id == selected_sale ? 'class="warning"' : '' }}>
<td class="text-center">{{ sale.reference }}</td>
<td class="text-center">
{% if sale.status == sale_status_canceled %}
{{ 'SaleCanceled'|get_plugin_lang('BuyCoursesPlugin') }}

Loading…
Cancel
Save