schet/pkg/input/txt/stroka.go

48 строки
1,2 КиБ
Go

package txt
import (
"my/schet/pkg/delo_lib"
"my/schet/pkg/input/config"
"my/schet/pkg/schet"
"strconv"
)
type СтрокаДокумента struct {
год *schet.Год
parts []string
дляДохода *config.Доход
}
func NewСтрокаДокумента(год *schet.Год, parts []string, дляДохода *config.Доход) *СтрокаДокумента {
c := &СтрокаДокумента{
год: год,
parts: parts,
дляДохода: дляДохода,
}
return c
}
func (c *СтрокаДокумента) Заполнить() error {
switch c.parts[0] {
case "Сумма":
сумма, err := strconv.ParseFloat(c.parts[1], 64)
if err != nil {
return err
}
c.дляДохода.Сумма = сумма
case "Дата":
квартал, err := delo_lib.ДатувКвартал(c.parts[1])
if err != nil {
return err
}
c.дляДохода.Квартал = квартал
case "ПолучательСчет":
if c.parts[1] != c.год.Счёт() {
return ErrНеподходящийДокумент
}
case "Плательщик1":
c.дляДохода.Клиент = c.parts[1]
}
return nil
}