mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
Merge branch 'fix/marketing' into 'development'
[FIX][BE]: add sorting at marketing See merge request mbugroup/lti-api!512
This commit is contained in:
@@ -56,6 +56,12 @@ func (u *DeliveryOrdersController) GetAll(c *fiber.Ctx) error {
|
|||||||
return fiber.NewError(fiber.StatusBadRequest, "Invalid product_ids")
|
return fiber.NewError(fiber.StatusBadRequest, "Invalid product_ids")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sortBy := strings.TrimSpace(c.Query("sort_by", ""))
|
||||||
|
sortOrder := strings.TrimSpace(c.Query("sort_order", ""))
|
||||||
|
if sortOrder == "" {
|
||||||
|
sortOrder = "asc"
|
||||||
|
}
|
||||||
|
|
||||||
query := &validation.DeliveryOrderQuery{
|
query := &validation.DeliveryOrderQuery{
|
||||||
Page: c.QueryInt("page", 1),
|
Page: c.QueryInt("page", 1),
|
||||||
Limit: c.QueryInt("limit", 10),
|
Limit: c.QueryInt("limit", 10),
|
||||||
@@ -66,6 +72,8 @@ func (u *DeliveryOrdersController) GetAll(c *fiber.Ctx) error {
|
|||||||
MarketingId: uint(c.QueryInt("marketing_id", 0)),
|
MarketingId: uint(c.QueryInt("marketing_id", 0)),
|
||||||
ProjectFlockID: uint(c.QueryInt("project_flock_id", 0)),
|
ProjectFlockID: uint(c.QueryInt("project_flock_id", 0)),
|
||||||
ProjectFlockKandangID: uint(c.QueryInt("project_flock_kandang_id", 0)),
|
ProjectFlockKandangID: uint(c.QueryInt("project_flock_kandang_id", 0)),
|
||||||
|
SortBy: sortBy,
|
||||||
|
SortOrder: sortOrder,
|
||||||
}
|
}
|
||||||
|
|
||||||
if isAllExcelExportRequest(c) {
|
if isAllExcelExportRequest(c) {
|
||||||
|
|||||||
@@ -292,7 +292,25 @@ func (s deliveryOrdersService) GetAll(c *fiber.Ctx, params *validation.DeliveryO
|
|||||||
if params.MarketingId != 0 {
|
if params.MarketingId != 0 {
|
||||||
return db.Where("id = ?", params.MarketingId)
|
return db.Where("id = ?", params.MarketingId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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")
|
return db.Order("created_at DESC").Order("updated_at DESC")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ type DeliveryOrderQuery struct {
|
|||||||
MarketingId uint `query:"marketing_id" validate:"omitempty,gt=0"`
|
MarketingId uint `query:"marketing_id" validate:"omitempty,gt=0"`
|
||||||
ProjectFlockID uint `query:"project_flock_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"`
|
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"`
|
||||||
|
SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeliveryOrderApprove struct {
|
type DeliveryOrderApprove struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user