mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-24 23:35:43 +00:00
ad sorting to laporan biaya operasional
This commit is contained in:
@@ -177,10 +177,48 @@ func (r *ExpenseRealizationRepositoryImpl) GetAllWithFilters(ctx context.Context
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
sortExpr := "expense_realizations.created_at"
|
||||
order := "DESC"
|
||||
if filters.SortOrder == "asc" {
|
||||
order = "ASC"
|
||||
}
|
||||
switch filters.SortBy {
|
||||
case "po_number":
|
||||
sortExpr = "expenses.po_number"
|
||||
case "reference_number":
|
||||
sortExpr = "expenses.reference_number"
|
||||
case "realization_date":
|
||||
sortExpr = "expenses.realization_date"
|
||||
case "transaction_date":
|
||||
sortExpr = "expenses.transaction_date"
|
||||
case "category":
|
||||
sortExpr = "expenses.category"
|
||||
case "product":
|
||||
sortExpr = "(SELECT name FROM nonstocks WHERE id = expense_nonstocks.nonstock_id)"
|
||||
case "supplier":
|
||||
sortExpr = "suppliers.name"
|
||||
case "location":
|
||||
sortExpr = "(SELECT l.name FROM kandangs k JOIN locations l ON l.id = k.location_id WHERE k.id = expense_nonstocks.kandang_id)"
|
||||
case "kandang":
|
||||
sortExpr = "(SELECT name FROM kandangs WHERE id = expense_nonstocks.kandang_id)"
|
||||
case "qty_pengajuan":
|
||||
sortExpr = "expense_nonstocks.qty"
|
||||
case "price_pengajuan":
|
||||
sortExpr = "expense_nonstocks.price"
|
||||
case "total_pengajuan":
|
||||
sortExpr = "expense_nonstocks.qty * expense_nonstocks.price"
|
||||
case "qty_realisasi":
|
||||
sortExpr = "expense_realizations.qty"
|
||||
case "price_realisasi":
|
||||
sortExpr = "expense_realizations.price"
|
||||
case "total_realisasi":
|
||||
sortExpr = "expense_realizations.qty * expense_realizations.price"
|
||||
}
|
||||
|
||||
if err := db.
|
||||
Offset(offset).
|
||||
Limit(limit).
|
||||
Order("expense_realizations.created_at DESC").
|
||||
Order(sortExpr + " " + order).
|
||||
Find(&realizations).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user