diff --git a/pkg/output/cli/cli.go b/pkg/output/cli/cli.go index a7d4e66..96d086e 100644 --- a/pkg/output/cli/cli.go +++ b/pkg/output/cli/cli.go @@ -17,8 +17,17 @@ func NewCLI() *CLI { func (c *CLI) Печать(год *schet.Год) error { c.год = год fmt.Printf("## Год: %v\n", c.год.Год()) + fmt.Printf("* Доход за год: %v р.\n", c.год.Доход()) + пр, err := c.год.ПроцентСверх300тр() + if err != nil { + fmt.Printf("1пр свыше 300тр: ошибка: %v\n", err) + return err + } + fmt.Printf("* 1пр свыше 300тр: %v р.\n", пр) - err := c.кварталы() + fmt.Printf("\n") + + err = c.распечататьКварталы() if err != nil { return err } @@ -26,61 +35,40 @@ func (c *CLI) Печать(год *schet.Год) error { return nil } -func (c *CLI) кварталы() error { +func (c *CLI) распечататьКварталы() error { цели := c.год.Цели() for _, k := range цели.Кварталы { - c.квартал(k) + c.распечататьКвартал(k) } return nil } -func (c *CLI) квартал(k *schet.Квартал) error { - fmt.Printf("### к%v\n\n", k.Номер()) - fmt.Printf("- [ ] ОПС: %v р.\n", k.ОПС.Сумма()) +func (c *CLI) распечататьКвартал(k *schet.Квартал) error { + fmt.Printf("### к%v\n", k.Номер()) + fmt.Printf("* Доход: %v р.\n", k.Доход()) + + сделано := пометкаДляЦели(k.ЦельДостигнута(schet.ЦельОПС)) + fmt.Printf("- [%v] ОПС: %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") + сделано = пометкаДляЦели(k.ЦельДостигнута(schet.Цель1пр)) + fmt.Printf("- [%v] 1пр свыше 300тр: %v р.\n", сделано, пр) + + сделано = пометкаДляЦели(k.ЦельДостигнута(schet.ЦельУСН)) + fmt.Printf("- [%v] УСН: %v р.\n", сделано, k.УСН.Сумма()) + + fmt.Printf("\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 сумматор.Квартал(квартал) -// } +func пометкаДляЦели(b bool) string { + if b { + return "x" + } + return " " +}