From 0b8d6e42d4dddfbd726136aae0f40afa676fa7df Mon Sep 17 00:00:00 2001 From: Softonik Date: Wed, 26 Jun 2024 16:47:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=84=D0=B8=D0=B3:=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B4=D0=B5?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D0=B8=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=20=D1=81=D1=87=D1=91=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/input/conf/conf.go | 48 ++++++++++++++++++++++---------------- pkg/input/config/config.go | 17 ++++++++++---- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/pkg/input/conf/conf.go b/pkg/input/conf/conf.go index fcf134b..fd8712e 100644 --- a/pkg/input/conf/conf.go +++ b/pkg/input/conf/conf.go @@ -1,10 +1,8 @@ package conf import ( - "io" - "os" - "my/schet/pkg/input/config" + "my/schet/pkg/lib" "my/schet/pkg/schet" "github.com/yosuke-furukawa/json5/encoding/json5" @@ -24,27 +22,37 @@ func NewConf(path string) *Conf { return c } -func (c *Conf) Считать() error { - f, err := os.Open(c.path) - if err != nil { - return err - } - defer f.Close() - - data, err := io.ReadAll(f) - if err != nil { - return err - } - - return json5.Unmarshal(data, c.config) -} - func (c *Conf) Загрузить(год *schet.Год) error { c.год = год - for _, d := range c.config.Доходы { - c.год.ДобавитьДоход(d.Сумма, d.Квартал) + err := c.считать() + if err != nil { + return err } + return c.загрузить() +} + +func (c *Conf) загрузить() error { + err := c.год.ЗадатьСчёт(c.config.НомерСчёта) + if err != nil { + return err + } + + for _, d := range c.config.Действия { + err := c.год.Сделать(d.Цель, d.Квартал) + if err != nil { + return err + } + } return nil } + +func (c *Conf) считать() error { + data, err := lib.ReadFile(c.path) + if err != nil { + return err + } + + return json5.Unmarshal([]byte(data), c.config) +} diff --git a/pkg/input/config/config.go b/pkg/input/config/config.go index 9d4e453..c319b05 100644 --- a/pkg/input/config/config.go +++ b/pkg/input/config/config.go @@ -1,7 +1,18 @@ package config type Config struct { - Доходы []Доход `json:"Доходы"` + НомерСчёта string `json:"НомерСчёта"` + Действия []Действие `json:"Действия"` +} + +func NewConfig() *Config { + return &Config{} +} + +type Действие struct { + Цель string + Квартал int + Комментарий string } type Доход struct { @@ -9,7 +20,3 @@ type Доход struct { Квартал int Клиент string } - -func NewConfig() *Config { - return &Config{} -}