Отображение пакетов трафика на странице Тарифные опции личного кабинета

Материал из BiTel WiKi

Версия от 13:23, 5 февраля 2014; Amir (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Отчет по диапазонам модуля

С версии 6.0 в личном кабинете доступен отчет по Диапазонам трафиков. Чтобы диапазон отображался в отчете, нужно в конфигурации модуля добавить "метку"

tariffication.tariff.label.3.title=Пакет трафика

далее в тарифе нужно редактировать ветку "диапазон", по которому должен отображаться отчет и указать эту числовую метку (в этом примере 3).

После этого в личном кабинете должен появиться отчет по данному диапазону. Отчет не появится, пока в диапазон не попадет хотя бы один байт.

Тарифные опции

Также можно добавить отображение кол-ва на странице Тарифных опций, если в диапазоне указана тарифная опция, от которой он зависит. Не гарантируется что это будет работать всегда, для этого нужно изменить шаблон webroot/xsl/main.xsl (который при обновлении перезаписывается, см)

После

<!-- тарифные опции -->
<xsl:template name="TariffOption">
 
<xsl:call-template name="nav"/>

добавить

<script>
mid = 179;
optionRanges = null;
 
showRangeValue = function( report, tariffOptionId, contractTariffOptionId )
{
if( !report || !report.detailValueList ) return;
 
for( var j in report.detailValueList ) {
var detailValue = report.detailValueList[j];
if( detailValue.contractTariffOption && detailValue.contractTariffOption.id==contractTariffOptionId ) {
var r = $("option" + contractTariffOptionId + "Range");
r.innerHTML = (Math.round((detailValue.amount*1000)/1024/1024)/1000) + " из " + (Math.round((detailValue.maxAmount*1000)/1024/1024)/1000) + "MB" ;
r.href = "webexecuter?module=inet&mid=" + mid + "&action=TrafficRangeReport&tariffOptionId=" + tariffOptionId;
r.setAttribute('style', 'display: inline');
break;
} 
}
}
 
getRangeValue = function( tariffOptionId, contractTariffOptionId ) {
var report = optionRanges;
if( report!=null ) {
showRangeValue( report, tariffOptionId, contractTariffOptionId );
return;
}
 
jQuery.get( "webexecuter", { action: 'TrafficRangeReport', module: "inet", mid: mid, ct: 'json' }, function( data )
{
for( var i in data.result ) {
var report = data.result[i];
showRangeValue( report, tariffOptionId, contractTariffOptionId );
optionRanges = report;
}
} );
}
</script>

далее после

<td>Стоимость активации*</td>
добавить
<xsl:if test="/data/@operation = 'execute'"><td>Пакет</td></xsl:if>

и ниже, перед

</tr> 
</xsl:for-each> 
</tbody> 
</table>
 
<em class="comment">*Стоимость активации - сумма, снимаемая в момент активации опции и
не отражает периодической платы за пользование,<br/> если таковая предусмотрена в тарифном плане.</em>

добавить

<td><xsl:value-of select="@summa"/></td>
<xsl:if test="/data/@operation = 'execute'">
<td style="width: 100px;">
<a id="option{@id}Range" href="#" style="display: НОНЕ"></a>
<script>
getRangeValue( <xsl:value-of select="@optionId"/>, <xsl:value-of select="@id"/> );
</script>
</td>
</xsl:if>
Личные инструменты