more simpler + torty sectino
This commit is contained in:
parent
a74c276cd3
commit
3b184c7c6f
10 changed files with 375 additions and 152 deletions
|
|
@ -3,7 +3,9 @@ package store
|
|||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"git.bronku.xyz/bronku/cake-order-tracker/config"
|
||||
"git.bronku.xyz/bronku/cake-order-tracker/models"
|
||||
)
|
||||
|
||||
|
|
@ -67,6 +69,44 @@ func (s *Store) saveSpecialCakeTags(tx *sql.Tx, specialCakeID int, tagIDs []int)
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s *Store) GetSpecialCakesInRange(from, to time.Time) ([]models.SpecialCakeWithOrder, error) {
|
||||
start, end := dateRangeParams(from, to)
|
||||
rows, err := s.db.Query(`
|
||||
SELECT sc.id, sc.customer_order, sc.name, sc.price, sc.size, sc.shape, sc.flavour, sc.notes,
|
||||
co.name, co.surname, co.delivery_date
|
||||
FROM special_cake sc
|
||||
JOIN customer_order co ON sc.customer_order = co.id
|
||||
WHERE co.status != 'picked_up' AND co.delivery_date >= ? AND co.delivery_date <= ?
|
||||
ORDER BY co.delivery_date
|
||||
`, start, end)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var out []models.SpecialCakeWithOrder
|
||||
for rows.Next() {
|
||||
var sw models.SpecialCakeWithOrder
|
||||
var price int
|
||||
var deliveryDate string
|
||||
if err := rows.Scan(&sw.ID, &sw.OrderID, &sw.Name, &price, &sw.Size, &sw.Shape, &sw.Flavour, &sw.Notes,
|
||||
&sw.ClientName, &sw.ClientSurname, &deliveryDate); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sw.Price = models.Price(price)
|
||||
sw.OrderDate, err = time.Parse(config.DateTimeFormat, deliveryDate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sw.Tags, err = s.GetSpecialCakeTags(sw.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
out = append(out, sw)
|
||||
}
|
||||
return out, rows.Err()
|
||||
}
|
||||
|
||||
func (s *Store) SaveSpecialCakes(tx *sql.Tx, orderID int, cakes []models.SpecialCake) error {
|
||||
if _, err := tx.Exec("delete from special_cake where customer_order = ?;", orderID); err != nil {
|
||||
return err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue