Done ticket GEPAFINBE-179
This commit is contained in:
@@ -8,8 +8,6 @@ import org.springframework.data.repository.query.Param;
|
|||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@@ -112,24 +110,31 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
|
|||||||
@Param("userId") Long userId,
|
@Param("userId") Long userId,
|
||||||
@Param("userWithCompanyId") Long userWithCompanyId);
|
@Param("userWithCompanyId") Long userWithCompanyId);
|
||||||
|
|
||||||
@Query("""
|
@Query(value = """
|
||||||
SELECT TO_CHAR(a.submissionDate, 'Mon') AS month,
|
WITH months AS (
|
||||||
SUM(a.amountRequested) AS totalRequested,
|
SELECT TO_CHAR(generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month'), 'Mon') AS month_label,
|
||||||
SUM(a.amountAccepted) AS totalApproved
|
EXTRACT(YEAR FROM generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month')) AS year_value,
|
||||||
FROM ApplicationEntity a
|
EXTRACT(MONTH FROM generate_series(CURRENT_DATE - INTERVAL '5 months', CURRENT_DATE, INTERVAL '1 month')) AS month_value
|
||||||
WHERE a.isDeleted = false
|
)
|
||||||
|
SELECT m.month_label AS month,
|
||||||
|
COALESCE(SUM(a.amount_requested), 0) AS totalRequested,
|
||||||
|
COALESCE(SUM(a.amount_accepted), 0) AS totalApproved
|
||||||
|
FROM months m
|
||||||
|
LEFT JOIN {h-schema}application a ON EXTRACT(YEAR FROM a.date_accepted) = m.year_value
|
||||||
|
AND EXTRACT(MONTH FROM a.date_accepted) = m.month_value
|
||||||
|
AND a.is_deleted = false
|
||||||
AND a.status = 'APPROVED'
|
AND a.status = 'APPROVED'
|
||||||
AND a.call.hub.id = :hubId
|
AND a.hub_id = :hubId
|
||||||
AND a.userId = :userId
|
AND a.user_id = :userId
|
||||||
AND a.userWithCompany.id = :userWithCompanyId
|
AND a.user_with_company_id = :userWithCompanyId
|
||||||
GROUP BY TO_CHAR(a.submissionDate, 'Mon'), EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate)
|
GROUP BY m.month_label, m.year_value, m.month_value
|
||||||
ORDER BY EXTRACT(YEAR FROM a.submissionDate), EXTRACT(MONTH FROM a.submissionDate)
|
ORDER BY m.year_value, m.month_value
|
||||||
""")
|
""", nativeQuery = true)
|
||||||
List<Object[]> findRequestedVsApprovedAmountsPerMonth(
|
List<Object[]> findRequestedVsApprovedAmountsPerMonth(@Param("hubId") Long hubId,
|
||||||
@Param("hubId") Long hubId,
|
|
||||||
@Param("userId") Long userId,
|
@Param("userId") Long userId,
|
||||||
@Param("userWithCompanyId") Long userWithCompanyId
|
@Param("userWithCompanyId") Long userWithCompanyId);
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
@Query("SELECT COUNT(a) FROM ApplicationEntity a " +
|
@Query("SELECT COUNT(a) FROM ApplicationEntity a " +
|
||||||
"WHERE a.hubId = :hubId " +
|
"WHERE a.hubId = :hubId " +
|
||||||
@@ -164,4 +169,5 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
|
|||||||
);
|
);
|
||||||
|
|
||||||
ApplicationEntity findByIdAndCompanyIdAndIsDeletedFalse(Long id,Long companyId);
|
ApplicationEntity findByIdAndCompanyIdAndIsDeletedFalse(Long id,Long companyId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user