Отчет по PAYG #WZ#
Период с по WZ
прошлый месяц текущий месяц
Часов в периоде: #hours# Строк в отчете: #report.qCharge.recordCount#
Актуальность данных: VCD Computing: class="err"> #dateFormat(report.qComputingAge.dt_load,'YYYY-MM-DD')# #timeFormat(report.qComputingAge.dt_load,'HH:MM:SS')# VCD Storage: class="err"> #dateFormat(report.qStorageAge.dt_load,'YYYY-MM-DD')# #timeFormat(report.qStorageAge.dt_load,'HH:MM:SS')# S3 хранение: class="err"> #dateFormat(report.qS3VolAge.dt_load,'YYYY-MM-DD')# #timeFormat(report.qS3VolAge.dt_load,'HH:MM:SS')# S3 операции и трафик: class="err"> #dateFormat(report.qS3OpsTrfAge.dt_load,'YYYY-MM-DD')# #timeFormat(report.qS3OpsTrfAge.dt_load,'HH:MM:SS')#
Цены по данным договора из CRM (через elma-cache). Учитываются метрики по S3, vCloud (кроме GPU). Внимание! количество за период *** округляется вверх, но делается это после всех агрегаций.
Артикул С По Кол-во (метрика) Free Tier Оплачиваемый объем Ед.изм. Цена ₽ с НДС Стоимость ₽ с НДС Услуга Компонент
#year#-#numberFormat(month,"00")#
#svc# #service_code# (#serviceCustomName#) (не найдено в договоре)
#code# (#m_code#) #svc# #component#
#currentRow# #dimension_1_name# #dimension_1# #dateFormat(dt_billed_from,"YYYY-MM-DD")# #dateFormat(dt_billed_to,"YYYY-MM-DD")# #round(metric,3)# #unit# #gaussianRound(discounted_price,2)#
Итого #code# (#m_code#): #round(accum_metric_dimension_1,3)# #free_tier# #max(ceiling(accum_metric_dimension_1) - free_tier, 0)# #unit# #gaussianRound(discounted_price,2)# #cost_dimension_1# #svc# #component#
Итого     #svc# #service_code# (#m_code#) за #year#-#numberFormat(month,"00")#: #accum_cost_svc#
 

Спецификация

Договор Доп. соглашение Тип оплаты Пользовательское наименование Кол-во по строке Скидка по строке НОУ КОУ Компонент Артикул Кол-во Ед.изм. Цена с НДС Скидка % Цена со скидкой с НДС
#contractOutsideId# #additionalAgreementName# #serviceType# #serviceCustomName# #serviceQuantity# #serviceDiscount# #dateFormat(serviceStart, "YYYY-MM-DD")# #dateFormat(serviceEnd, "YYYY-MM-DD")# #component# #componentCode# #quantity# #measureShort# #gaussianRound(priceWVat,2)# #discount# #gaussianRound((100-serviceDiscount)/100*(100-discount)/100*priceWVat,4)#
function gaussianRound(numeric number, numeric precision = 0) { var factor = 10 ^ precision; var scaledNumber = number * factor; var absScaled = abs(scaledNumber); var sign = sgn(scaledNumber); var floored = int(absScaled); // If it's not ending in exactly .5, use standard rounding or precision scaling if (absScaled - floored != 0.5) { return round(number * factor) / factor; } // If it is exactly .5, round towards the nearest even number if (floored % 2 != 0) { // Nearest even is UP return (floored + 1) * sign / factor; } else { // Nearest even is DOWN return floored * sign / factor; } }