cake-order-tracker/server/templates/helpers.go
2026-06-15 13:45:28 +02:00

74 lines
1.3 KiB
Go

package templates
import (
"fmt"
"strconv"
"strings"
"git.bronku.xyz/bronku/cake-order-tracker/models"
)
func cakeTitle(cake models.Cake) string {
if cake.ID != 0 {
return "Ciasto #" + strconv.Itoa(cake.ID)
}
return "Ciasto nowe"
}
func orderTitle(order models.Order) string {
if order.ID != 0 {
return "Edytuj zamówienie #" + strconv.Itoa(order.ID)
}
return "Nowe zamówienie"
}
func countPending(orders []models.Order) int {
n := 0
for _, o := range orders {
if o.Status != "done" {
n++
}
}
return n
}
func countDone(orders []models.Order) int {
n := 0
for _, o := range orders {
if o.Status == "done" {
n++
}
}
return n
}
func estimateRevenue(orders []models.Order) models.Price {
var total models.Price
for _, o := range orders {
total += o.Total()
}
return total
}
func cakeItemsDesc(cakes []models.Cake) string {
desc := ""
for i, c := range cakes {
if i > 0 {
desc += ", "
}
desc += c.Name + " (x" + strconv.Itoa(c.Amount) + ")"
}
return desc
}
func orderScript(order models.Order) string {
var b strings.Builder
b.WriteString("<script>")
if order.ID != 0 {
for _, c := range order.Cakes {
b.WriteString(fmt.Sprintf("updateCatalogueQty(%d,%d);", c.ID, c.Amount))
}
}
b.WriteString("updateTotals();</script>")
return b.String()
}