From 094e8f904b31a22ca9cdde44cc8f508244a9d567 Mon Sep 17 00:00:00 2001 From: giovanni Date: Thu, 7 May 2026 14:11:39 +0700 Subject: [PATCH] add query sort by grand total --- internal/modules/marketing/services/deliveryorder.service.go | 2 ++ .../modules/marketing/validations/deliveryorder.validation.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/modules/marketing/services/deliveryorder.service.go b/internal/modules/marketing/services/deliveryorder.service.go index 5bd3c258..aa599894 100644 --- a/internal/modules/marketing/services/deliveryorder.service.go +++ b/internal/modules/marketing/services/deliveryorder.service.go @@ -308,6 +308,8 @@ func (s deliveryOrdersService) GetAll(c *fiber.Ctx, params *validation.DeliveryO return db.Order(statusSQL) case "customer": return db.Joins("LEFT JOIN customers ON customers.id = marketings.customer_id").Order("COALESCE(customers.name, '') " + orderDir) + case "grand_total": + return db.Order("(SELECT COALESCE(SUM(mp.total_price), 0) FROM marketing_products mp WHERE mp.marketing_id = marketings.id) " + orderDir) default: return db.Order("created_at DESC").Order("updated_at DESC") } diff --git a/internal/modules/marketing/validations/deliveryorder.validation.go b/internal/modules/marketing/validations/deliveryorder.validation.go index 8b964221..dba96eeb 100644 --- a/internal/modules/marketing/validations/deliveryorder.validation.go +++ b/internal/modules/marketing/validations/deliveryorder.validation.go @@ -31,7 +31,7 @@ type DeliveryOrderQuery struct { MarketingId uint `query:"marketing_id" validate:"omitempty,gt=0"` ProjectFlockID uint `query:"project_flock_id" validate:"omitempty,gt=0"` ProjectFlockKandangID uint `query:"project_flock_kandang_id" validate:"omitempty,gt=0"` - SortBy string `query:"sort_by" validate:"omitempty,oneof=so_number so_date status customer"` + SortBy string `query:"sort_by" validate:"omitempty,oneof=so_number so_date status customer grand_total"` SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"` }