48 строки
1,2 КиБ
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
|
|
}
|