From 8d220ba19f23e17ee025306f671813c94fe29130 Mon Sep 17 00:00:00 2001 From: efrilm Date: Mon, 20 Oct 2025 13:18:04 +0700 Subject: [PATCH] outgoing filter status by approvals --- internal/repository/letter_outgoing_repository.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/repository/letter_outgoing_repository.go b/internal/repository/letter_outgoing_repository.go index 8ace4d1..f59db71 100644 --- a/internal/repository/letter_outgoing_repository.go +++ b/internal/repository/letter_outgoing_repository.go @@ -138,9 +138,6 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing } } - if filter.Status != nil { - query = query.Where("letters_outgoing.status = ?", *filter.Status) - } if filter.Query != nil { q := "%" + *filter.Query + "%" query = query.Where("subject ILIKE ? OR reference_number ILIKE ? OR letter_number ILIKE ?", q, q, q) @@ -155,6 +152,7 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing fmt.Printf("[DEBUG] filter.UserID: %v\n", filter.UserID) fmt.Printf("[DEBUG] filter.isRead: %v\n", filter.IsRead) + fmt.Printf("[DEBUG] filter.status: %v\n", *filter.Status) // Tambahkan filter IsRead if filter.IsRead != nil { @@ -165,6 +163,14 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing } } + } + + if filter.Status != nil { + query = query.Joins("LEFT JOIN letter_outgoing_approvals ON letter_outgoing_approvals.letter_id = letters_outgoing.id") + query = query.Where("letter_outgoing_approvals.approver_id = ?", *filter.UserID) + + query = query.Where("letter_outgoing_approvals.status = ?", *filter.Status) + query = query.Distinct() }