3#include <eosio/asset.hpp>
4#include <eosio/eosio.hpp>
47inline eosio::asset
calc_tax(
const eosio::asset& gross) {
48 eosio::check(gross.is_valid(),
"Некорректная сумма для расчёта налога");
49 eosio::check(gross.amount >= 0,
"Сумма для расчёта налога не может быть отрицательной");
53 for (uint8_t i = 0; i < gross.symbol.precision(); ++i) rouble *= 10;
56 const int64_t denominator = 100 * rouble;
57 const int64_t roubles = (numerator + denominator / 2) / denominator;
59 return eosio::asset(roubles * rouble, gross.symbol);
68inline eosio::asset
calc_net(
const eosio::asset& gross) {
69 const eosio::asset tax =
calc_tax(gross);
70 eosio::check(tax.amount < gross.amount,
71 "Сумма материальной помощи слишком мала: после удержания налога выплачивать нечего");
Удержание НДФЛ с материальной помощи доверенному кооперативного участка (requirement b6 «Экономика КУ...
Definition: ndfl.hpp:28
constexpr int64_t RATE_PERCENT
Ставка налога на доходы физических лиц, процентов.
Definition: ndfl.hpp:31
eosio::asset calc_net(const eosio::asset &gross)
Сумма к перечислению получателю — заявление за вычетом налога.
Definition: ndfl.hpp:68
eosio::asset calc_tax(const eosio::asset &gross)
Сумма налога, удерживаемая из материальной помощи.
Definition: ndfl.hpp:47