mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-25 07:45:44 +00:00
add sorting at marketing
This commit is contained in:
@@ -292,7 +292,25 @@ func (s deliveryOrdersService) GetAll(c *fiber.Ctx, params *validation.DeliveryO
|
||||
if params.MarketingId != 0 {
|
||||
return db.Where("id = ?", params.MarketingId)
|
||||
}
|
||||
return db.Order("created_at DESC").Order("updated_at DESC")
|
||||
|
||||
orderDir := "DESC"
|
||||
if params.SortOrder != "" {
|
||||
orderDir = strings.ToUpper(params.SortOrder)
|
||||
}
|
||||
|
||||
switch strings.TrimSpace(params.SortBy) {
|
||||
case "so_number":
|
||||
return db.Order("marketings.so_number " + orderDir)
|
||||
case "so_date":
|
||||
return db.Order("marketings.so_date " + orderDir)
|
||||
case "status":
|
||||
statusSQL := "(SELECT step_name FROM approvals WHERE approvable_type = '" + utils.ApprovalWorkflowMarketing.String() + "' AND approvable_id = marketings.id ORDER BY action_at DESC, id DESC LIMIT 1) " + orderDir
|
||||
return db.Order(statusSQL)
|
||||
case "customer":
|
||||
return db.Joins("LEFT JOIN customers ON customers.id = marketings.customer_id").Order("COALESCE(customers.name, '') " + orderDir)
|
||||
default:
|
||||
return db.Order("created_at DESC").Order("updated_at DESC")
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
|
||||
Reference in New Issue
Block a user