schet/pkg/output/cli/cli.go

86 строки
2 КиБ
Go

package cli
import (
"fmt"
"my/schet/pkg/schet"
)
type CLI struct {
год *schet.Год
}
func NewCLI() *CLI {
c := &CLI{}
return c
}
func (c *CLI) Печать(год *schet.Год) error {
c.год = год
fmt.Printf("## Год: %v\n", c.год.Год())
err := c.кварталы()
if err != nil {
return err
}
return nil
}
func (c *CLI) кварталы() error {
цели := c.год.Цели()
for _, k := range цели.Кварталы {
c.квартал(k)
}
return nil
}
func (c *CLI) квартал(k *schet.Квартал) error {
fmt.Printf("### к%v\n\n", k.Номер())
fmt.Printf("- [ ] ОПС: %v р.\n", k.ОПС.Сумма())
пр, err := k.ПроцентСверх300тр()
if err != nil {
fmt.Printf("- [ ] 1пр свыше 300тр: ошибка: %v\n", err)
return err
}
fmt.Printf("- [ ] 1пр свыше 300тр: %v р.\n", пр)
fmt.Printf("- [ ] УСН: %v р.\n", k.УСН.Сумма())
fmt.Printf("==================================\n\n")
return nil
}
// func (g *CLI) Квартал(in int) (k *Квартал, e error) {
// return g.цели.Квартал(in)
// }
// func (g *CLI) ДобавитьДоход(доход float64, i int) error {
// k, err := g.Квартал(i)
// if err != nil {
// return err
// }
// g.доход += доход
// return k.ДобавитьДоход(доход)
// }
// func (g *CLI) Доход() float64 {
// return g.доход
// }
// func (g *CLI) ПроцентСверх300тр() (float64, error) {
// return ПроцентСверх300тр(g.доход), nil
// }
// func (g *CLI) Сверх300трвКвартале(квартал int) (float64, error) {
// сумматор := NewСумматор300тр()
// for i := НомерПервогоКвартала; i <= квартал; i++ {
// k, err := g.Квартал(i)
// if err != nil {
// return 0, err
// }
// сумматор.ДобавитьКвартал(k.доход)
// }
// return сумматор.Квартал(квартал)
// }