Округление рублей до копеек
Этот коммит содержится в:
родитель
14715dde21
коммит
b6535b6c58
6 изменённых файлов: 28 добавлений и 14 удалений
|
@ -28,7 +28,3 @@ func СекундыВМинуты(seconds int) int {
|
||||||
}
|
}
|
||||||
return res + 1
|
return res + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func ОкруглитьРубли(сумма float64) int {
|
|
||||||
return int(math.Round(сумма))
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,10 +2,24 @@ package delo_lib
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"math"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
символовПослеЗапятойДоКопеек = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
func ОкруглитьРубли(сумма float64) float64 {
|
||||||
|
return RoundFloat(сумма, символовПослеЗапятойДоКопеек)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RoundFloat(number float64, roundingTempDigitsCount int) float64 {
|
||||||
|
temp := math.Pow(10, float64(roundingTempDigitsCount))
|
||||||
|
return math.Round(number*temp) / temp
|
||||||
|
}
|
||||||
|
|
||||||
func ДатувКвартал(in string) (int, error) {
|
func ДатувКвартал(in string) (int, error) {
|
||||||
parts := strings.Split(in, ".")
|
parts := strings.Split(in, ".")
|
||||||
if len(parts) < 3 {
|
if len(parts) < 3 {
|
||||||
|
|
|
@ -25,10 +25,10 @@
|
||||||
| доход | оплатить_за_квартал | оплатить_за_год |
|
| доход | оплатить_за_квартал | оплатить_за_год |
|
||||||
| 0 | 0 | 0 |
|
| 0 | 0 | 0 |
|
||||||
| 300000 | 0 | 0 |
|
| 300000 | 0 | 0 |
|
||||||
| 300001 | 0 | 0 |
|
| 300001 | 0.01 | 0.01 |
|
||||||
| 300049 | 0 | 0 |
|
| 300049 | 0.49 | 0.49 |
|
||||||
| 300050 | 1 | 1 |
|
| 300050 | 0.50 | 0.50 |
|
||||||
| 300051 | 1 | 1 |
|
| 300051 | 0.51 | 0.51 |
|
||||||
| 300100 | 1 | 1 |
|
| 300100 | 1 | 1 |
|
||||||
| 300200 | 2 | 2 |
|
| 300200 | 2 | 2 |
|
||||||
| 400000 | 1000 | 1000 |
|
| 400000 | 1000 | 1000 |
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
package schet
|
package schet
|
||||||
|
|
||||||
import (
|
import "my/schet/pkg/delo_lib"
|
||||||
"my/schet/pkg/accuracy"
|
|
||||||
)
|
|
||||||
|
|
||||||
func процентСуммы(сумма float64) float64 {
|
func процентСуммы(сумма float64) float64 {
|
||||||
часть := сумма / 100.
|
часть := сумма / 100.
|
||||||
часть = float64(accuracy.ОкруглитьРубли(часть))
|
часть = float64(delo_lib.ОкруглитьРубли(часть))
|
||||||
return часть
|
return часть
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ func InitializeScenario(ctx *godog.ScenarioContext) {
|
||||||
ctx.Step(`^Должна быть ошибка$`, должнаБытьОшибка)
|
ctx.Step(`^Должна быть ошибка$`, должнаБытьОшибка)
|
||||||
ctx.Step(`^Действие: "([^"]*)" за (\d+) квартал$`, действиеЗаКвартал)
|
ctx.Step(`^Действие: "([^"]*)" за (\d+) квартал$`, действиеЗаКвартал)
|
||||||
ctx.Step(`^Цель "([^"]*)" за (\d+) квартал достигнута: "([^"]*)"$`, цельЗаКварталДостигнута)
|
ctx.Step(`^Цель "([^"]*)" за (\d+) квартал достигнута: "([^"]*)"$`, цельЗаКварталДостигнута)
|
||||||
|
|
||||||
// -----------------------
|
// -----------------------
|
||||||
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
|
||||||
beforeScenario()
|
beforeScenario()
|
||||||
|
|
|
@ -2,6 +2,7 @@ package schet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"my/schet/pkg/delo_lib"
|
||||||
. "my/schet/pkg/testlib"
|
. "my/schet/pkg/testlib"
|
||||||
|
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
|
@ -77,7 +78,9 @@ func естьЦельУСНЗаЭтотКвартал(v float64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func естьЦельСверхТрЗаКвартал(_, _, оплатить string) {
|
func естьЦельСверхТрЗаКвартал(_, _, оплатить string) {
|
||||||
Ω(t.квартал.ПроцентСверх300тр()).To(Be(Atof(оплатить)), "1пр сверх 300тр за квартал")
|
v := Atof(оплатить)
|
||||||
|
v = delo_lib.ОкруглитьРубли(v)
|
||||||
|
Ω(t.квартал.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за квартал")
|
||||||
}
|
}
|
||||||
func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оплатить string) {
|
func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оплатить string) {
|
||||||
k, err := t.цели.Квартал(in)
|
k, err := t.цели.Квартал(in)
|
||||||
|
@ -86,7 +89,9 @@ func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оп
|
||||||
Ω(k.ПроцентСверх300тр()).To(Be(Atof(оплатить)), fmt.Sprintf("1пр сверх 300тр за квартал %v", in))
|
Ω(k.ПроцентСверх300тр()).To(Be(Atof(оплатить)), fmt.Sprintf("1пр сверх 300тр за квартал %v", in))
|
||||||
}
|
}
|
||||||
func естьЦельСверхТрЗаГод(_, _, оплатить string) {
|
func естьЦельСверхТрЗаГод(_, _, оплатить string) {
|
||||||
Ω(t.g.ПроцентСверх300тр()).To(Be(Atof(оплатить)), "1пр сверх 300тр за год")
|
v := Atof(оплатить)
|
||||||
|
v = delo_lib.ОкруглитьРубли(v)
|
||||||
|
Ω(t.g.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за год")
|
||||||
}
|
}
|
||||||
|
|
||||||
func заданСчёт(v string) {
|
func заданСчёт(v string) {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче