diff --git a/pkg/input/conf/conf.go b/pkg/input/conf/conf.go index fd8712e..1d7fb77 100644 --- a/pkg/input/conf/conf.go +++ b/pkg/input/conf/conf.go @@ -39,6 +39,11 @@ func (c *Conf) загрузить() error { return err } + err = c.год.ЗадатьОКТМО(c.config.OKTMO) + if err != nil { + return err + } + for _, d := range c.config.Действия { err := c.год.Сделать(d.Цель, d.Квартал) if err != nil { diff --git a/pkg/input/config/config.go b/pkg/input/config/config.go index c319b05..52bf009 100644 --- a/pkg/input/config/config.go +++ b/pkg/input/config/config.go @@ -2,6 +2,7 @@ package config type Config struct { НомерСчёта string `json:"НомерСчёта"` + OKTMO string `json:"OKTMO"` Действия []Действие `json:"Действия"` } diff --git a/pkg/schet/features/app.feature b/pkg/schet/features/app.feature index 3bef989..347bd7f 100644 --- a/pkg/schet/features/app.feature +++ b/pkg/schet/features/app.feature @@ -91,6 +91,11 @@ Когда Задан счёт "123" То Считывается счёт "123" + Сценарий: Задаётся ОКТМО + Дано Год: 2024 + Когда Задан ОКТМО "123" + То Считывается ОКТМО "123" + Сценарий: Достижение целей: неизвестная - ошибка Дано Год: 2024 Дано Должна быть ошибка diff --git a/pkg/schet/init_test.go b/pkg/schet/init_test.go index 27978d4..08f3696 100644 --- a/pkg/schet/init_test.go +++ b/pkg/schet/init_test.go @@ -27,6 +27,8 @@ func InitializeScenario(ctx *godog.ScenarioContext) { ctx.Step(`^Есть цель: (\d+)% сверх (\d+)тр за год: "([^"]*)"$`, естьЦельСверхТрЗаГод) ctx.Step(`^Задан счёт "([^"]*)"$`, заданСчёт) ctx.Step(`^Считывается счёт "([^"]*)"$`, считываетсяСчёт) + ctx.Step(`^Задан ОКТМО "([^"]*)"$`, заданОКТМО) + ctx.Step(`^Считывается ОКТМО "([^"]*)"$`, считываетсяОКТМО) ctx.Step(`^Должна быть ошибка$`, должнаБытьОшибка) ctx.Step(`^Действие: "([^"]*)" за (\d+) квартал$`, действиеЗаКвартал) ctx.Step(`^Цель "([^"]*)" за (\d+) квартал достигнута: "([^"]*)"$`, цельЗаКварталДостигнута) diff --git a/pkg/schet/schet.go b/pkg/schet/schet.go index 32a3a5a..e3bf99a 100644 --- a/pkg/schet/schet.go +++ b/pkg/schet/schet.go @@ -1,6 +1,8 @@ package schet -import "fmt" +import ( + "fmt" +) const ( КоличествоКварталов = 4 @@ -13,6 +15,7 @@ type Год struct { цели *Цели доход float64 счёт string + октмо string out OutIface } @@ -47,6 +50,14 @@ func (g *Год) Счёт() string { return g.счёт } +func (g *Год) ЗадатьОКТМО(s string) error { + g.октмо = s + return nil +} +func (g *Год) ОКТМО() string { + return g.октмо +} + func (g *Год) Сделать(цель string, квартал int) error { k, err := g.Квартал(квартал) if err != nil { diff --git a/pkg/schet/schet_test.go b/pkg/schet/schet_test.go index 0633c19..0d1b90a 100644 --- a/pkg/schet/schet_test.go +++ b/pkg/schet/schet_test.go @@ -104,6 +104,13 @@ func должнаБытьОшибка() { t.должнаБытьОшибка = true } +func заданОКТМО(v string) { + t.g.ЗадатьОКТМО(v) +} +func считываетсяОКТМО(v string) { + Ω(t.g.ОКТМО()).To(Be(v), "считываетсяОКТМО") +} + func действиеЗаКвартал(цель string, квартал int) { err := t.g.Сделать(цель, квартал) if t.должнаБытьОшибка {