Конфиг: добавлены действия и номер счёта
Этот коммит содержится в:
родитель
9f5a468141
коммит
0b8d6e42d4
2 изменённых файлов: 40 добавлений и 25 удалений
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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{}
|
||||
}
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче