86 строки
2 КиБ
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 сумматор.Квартал(квартал)
|
|
// }
|