VBA, MS Access MS Access в примерах

Проценты - Цена по наценке и скидке "по хитрому"

Public Function esPriceUpDown(cPrice As Currency, iMargin As Integer, iDiscount As Integer) As Currency
'es - 09.09.2012
'--------------------------------------------------------------------
'Возвращает новую цену по наценке и скидке "по хитрому"
'Если наценка (скидка) получилась меньше копейки то увеличиваем (уменьшаем) на копейку как минимум
'Аргументы:
'   cPrice    - Исх. Цена
'   iMargin   - Наценка
'   iDiscount - Скидка
'--------------------------------------------------------------------
Dim tPrice As Currency
Dim rPrice As Currency

On Error GoTo esPriceUpDown_Err
    
    tPrice = cPrice
    rPrice = cPrice

'Сначала Наценка
    If iMargin <> 0 Then
        rPrice = CCur(Format(tPrice * (iMargin / 100 + 1), "0.00"))
        If rPrice = tPrice Then 'Если Наценка меньше копейки
            rPrice = tPrice + 0.01
        End If
    End If

'Теперь Скидка
    If iDiscount <> 0 Then
        tPrice = rPrice
        rPrice = CCur(Format(tPrice * (1 - iDiscount / 100), "0.00"))
        If rPrice = tPrice Then 'Если скидка меньше копейки
            'Вычитаем (хоть) копейку
            If rPrice > 0.02 Then rPrice = tPrice - 0.01
        End If
    End If

esPriceUpDown_Bye:
    esPriceUpDown = rPrice
    Exit Function

esPriceUpDown_Err:
    rPrice = 0
    Err.Clear
    Resume esPriceUpDown_Bye
End Function
Назад ToTop
L.E. 12.11.2012
Рейтинг@Mail.ru