expense filter by outlet and date range

This commit is contained in:
Efril
2026-05-28 11:52:16 +07:00
parent a55a3f4ee2
commit 66a8126da0
6 changed files with 61 additions and 9 deletions
+18
View File
@@ -3,6 +3,7 @@ package service
import (
"apskel-pos-be/internal/appcontext"
"context"
"time"
"apskel-pos-be/internal/constants"
"apskel-pos-be/internal/contract"
@@ -86,6 +87,23 @@ func (s *ExpenseServiceImpl) ListExpenses(ctx context.Context, apctx *appcontext
if modelReq.Search != "" {
filters["search"] = modelReq.Search
}
if modelReq.OutletID != "" {
outletID, err := uuid.Parse(modelReq.OutletID)
if err == nil {
filters["outlet_id"] = outletID
}
}
if modelReq.StartDate != "" {
if startDate, err := time.Parse("2006-01-02", modelReq.StartDate); err == nil {
filters["start_date"] = startDate
}
}
if modelReq.EndDate != "" {
if endDate, err := time.Parse("2006-01-02", modelReq.EndDate); err == nil {
// include the full end date day
filters["end_date"] = endDate.Add(24*time.Hour - time.Nanosecond)
}
}
expenses, totalPages, err := s.expenseProcessor.ListExpenses(ctx, apctx.OrganizationID, filters, modelReq.Page, modelReq.Limit)
if err != nil {