Конфиг: добавлены действия и номер счёта
Этот коммит содержится в:
родитель
9f5a468141
коммит
0b8d6e42d4
2 изменённых файлов: 40 добавлений и 25 удалений
|
@ -1,10 +1,8 @@
|
||||||
package conf
|
package conf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"my/schet/pkg/input/config"
|
"my/schet/pkg/input/config"
|
||||||
|
"my/schet/pkg/lib"
|
||||||
"my/schet/pkg/schet"
|
"my/schet/pkg/schet"
|
||||||
|
|
||||||
"github.com/yosuke-furukawa/json5/encoding/json5"
|
"github.com/yosuke-furukawa/json5/encoding/json5"
|
||||||
|
@ -24,27 +22,37 @@ func NewConf(path string) *Conf {
|
||||||
return c
|
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 {
|
func (c *Conf) Загрузить(год *schet.Год) error {
|
||||||
c.год = год
|
c.год = год
|
||||||
|
|
||||||
for _, d := range c.config.Доходы {
|
err := c.считать()
|
||||||
c.год.ДобавитьДоход(d.Сумма, d.Квартал)
|
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
|
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
|
package config
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Доходы []Доход `json:"Доходы"`
|
НомерСчёта string `json:"НомерСчёта"`
|
||||||
|
Действия []Действие `json:"Действия"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewConfig() *Config {
|
||||||
|
return &Config{}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Действие struct {
|
||||||
|
Цель string
|
||||||
|
Квартал int
|
||||||
|
Комментарий string
|
||||||
}
|
}
|
||||||
|
|
||||||
type Доход struct {
|
type Доход struct {
|
||||||
|
@ -9,7 +20,3 @@ type Доход struct {
|
||||||
Квартал int
|
Квартал int
|
||||||
Клиент string
|
Клиент string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConfig() *Config {
|
|
||||||
return &Config{}
|
|
||||||
}
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче