Skip to content

Commit

Permalink
Fix/fsf 50 qa (#1137)
Browse files Browse the repository at this point in the history
* FSF-33 (#1058)

* Fix/prequalification fix (#1070)

* FSF-33

* FBR-PREQUALIFICATIONS QUERY

* Fix/prequalification fix (#1076)

* FSF-33

* Fix/prequalification fix (#1070)

* FSF-33

* FBR-PREQUALIFICATIONS QUERY

* FBR-PREQUALIFICATIONS QUERY

* Fix/fbr 716 (#1080)

* FSF-33

* FBR-716

* Fix/fsf 36 (#1085)

* FSF-33

* FSF-36

* Fix to remove extra comma (#1097)

* Remove extra comma

* Spotless fixes

* FSF-38 Not able to create a new provisioning entry
https://fiterio.atlassian.net/browse/FSF-38

* FBR-710 Fix issue for assign to myself not working (#1111)

https://fiterio.atlassian.net/browse/FBR-710

* FBR-710 Fix issue for duplicate group (#1113)

prequalification appears in list.
https://fiterio.atlassian.net/browse/FBR-710

* Fix/fsf 50 (#1133)

* FSF-33

* FIX FSF 50

* Fix/fsf 50 (#1136)

* FSF-33

* FIX FSF 50

* FIX FSF 50

* FIX Agency Prequalifications query

---------

Co-authored-by: Leonardo Hildt <[email protected]>
Co-authored-by: Deepika1095 <[email protected]>
  • Loading branch information
3 people authored Sep 18, 2024
1 parent 157335e commit fa3b729
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 118 deletions.
Binary file modified fineract-provider/pentahoReports/Print Bank Cheque.prpt
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,10 @@ private String buildSqlStringFromBlacklistCriteria(final SearchParameters search
}

if (agencyId != null) {
if (StringUtils.equalsIgnoreCase(groupingType, "individual")) {
extraCriteria += " and individualOffice.agency_id = ? ";
} else {
if (StringUtils.equals(searchParameters.getGroupingType(), "group") || StringUtils.equals(searchParameters.getType(), "checked")) {
extraCriteria += " and ma.id = ? ";
} else {
extraCriteria += " and individualOffice.agency_id = ? ";
}
paramList.add(agencyId);
}
Expand Down Expand Up @@ -413,121 +413,106 @@ private static final class PrequalificationsGroupMapper implements RowMapper<Gro
PrequalificationsGroupMapper() {
this.schema = """
g.id AS id,
g.prequalification_number AS prequalificationNumber,
g.status,linkedGroup.id as linkedGroupId,
g.prequalification_duration as prequalilficationTimespan,
g.comments,
g.created_at,
g.prequalification_type_enum as prequalificationType,
sl.from_status as previousStatus,
sl.sub_status as substatus,
sl.comments as latestComments,
assigned.username as assignedUser,
concat(assigned.firstname, ' ', assigned.lastname) as assignedUserName,
sl.date_created as statusChangedOn,
prequalification_numbers.total_requested_amount as totalRequestedAmount,
prequalification_numbers.total_approved_amount totalApprovedAmount,
(case when g.previous_prequalification is not null THEN 'Recredito' ELSE 'Nuevo' END) as processType,
(case when (select count(*) from m_prequalification_status_log where prequalification_id = g.id and to_status = g.status )>0 THEN 'Reproceso' ELSE 'Nuevo' END) as processQuality,
concat(mu.firstname, ' ', mu.lastname) as statusChangedBy,
coalesce(ma.name,individualOffice.agency_name) AS agencyName,
ma.id AS agencyId,
cg.display_name AS groupName,
g.group_name AS newGroupName,
g.group_id AS groupId,
pc.display_name AS centerName,
pc.id AS centerId,
lp.id AS productId,
fa.id AS facilitatorId,
concat(fa.firstname, ' ', fa.lastname) AS facilitatorName,
lp.name AS productName,
au.firstname,
au.lastname,
greenValidation.validCount AS greenValidationCount,
yellowValidation.validCount AS yellowValidationCount,
orangeValidation.validCount AS orangeValidationCount,
redValidation.validCount AS redValidationCount
FROM
m_prequalification_group g
INNER JOIN m_appuser au ON
au.id = g.added_by
INNER JOIN m_product_loan lp ON
g.product_id = lp.id
LEFT JOIN (
SELECT
mpgm.group_id AS prequalification_id,
SUM(mpgm.requested_amount) total_requested_amount,
SUM(mpgm.approved_amount) total_approved_amount
FROM m_prequalification_group_members mpgm
GROUP BY mpgm.group_id
) prequalification_numbers ON prequalification_numbers.prequalification_id = g.id
\s
LEFT JOIN(
select DISTINCT mc.office_id, ms.agency_id,mag.name as agency_name, mpgm.group_id, ms.linked_office_id as supervision_office
from m_prequalification_group_members mpgm
INNER JOIN m_client mc on mc.dpi = mpgm.dpi
INNER JOIN m_group_client mgc on mgc.client_id = mc.id
INNER JOIN m_group mg on mg.id = mgc.group_id
INNER JOIN m_group center on center.id = mg.parent_id
INNER JOIN m_portfolio mp on mp.id = center.portfolio_id
INNER JOIN m_supervision ms on ms.id = mp.supervision_id
INNER JOIN m_agency mag on mag.id = ms.agency_id
) individualOffice ON individualOffice.group_id = g.id
LEFT JOIN m_agency ma ON
g.agency_id = ma.id
LEFT JOIN(
select agency_id, linked_office_id from m_supervision GROUP BY agency_id
) supv ON supv.agency_id = ma.id
LEFT JOIN m_office mo on mo.id = supv.linked_office_id
LEFT JOIN m_office moind on moind.id = individualOffice.supervision_office
LEFT JOIN
(
SELECT p.id AS groupid,
COUNT(mcvr.id) AS validCount
FROM m_checklist_validation_result mcvr
INNER JOIN m_prequalification_group p ON mcvr.prequalification_id = p.id and mcvr.validation_color_enum = 1
GROUP BY p.id
) greenValidation ON greenValidation.groupid = g.id
LEFT JOIN
(
SELECT p.id AS groupid,
COUNT(mcvr.id) AS validCount
FROM m_checklist_validation_result mcvr
INNER JOIN m_prequalification_group p ON mcvr.prequalification_id = p.id and mcvr.validation_color_enum = 2
GROUP BY p.id
) yellowValidation ON yellowValidation.groupid = g.id
LEFT JOIN
(
SELECT p.id AS groupid,
COUNT(mcvr.id) AS validCount
FROM m_checklist_validation_result mcvr
INNER JOIN m_prequalification_group p ON mcvr.prequalification_id = p.id and mcvr.validation_color_enum = 3
GROUP BY p.id
) orangeValidation ON orangeValidation.groupid = g.id
LEFT JOIN
(
SELECT p.id AS groupid,
COUNT(mcvr.id) AS validCount
FROM m_checklist_validation_result mcvr
INNER JOIN m_prequalification_group p ON mcvr.prequalification_id = p.id and mcvr.validation_color_enum = 4
GROUP BY p.id
) redValidation ON redValidation.groupid = g.id
LEFT JOIN m_group cg ON
cg.id = g.group_id
LEFT JOIN m_group linkedGroup ON
linkedGroup.prequalification_id = g.id
LEFT JOIN m_group pc ON
pc.id = g.center_id
LEFT JOIN m_prequalification_status_log sl ON
sl.prequalification_id = g.id AND sl.to_status=g.status
AND sl.id =
(SELECT MAX(id)
FROM m_prequalification_status_log WHERE prequalification_id = g.id AND sl.to_status=g.status )
LEFT JOIN m_appuser assigned ON assigned.id = sl.assigned_to
LEFT JOIN m_appuser mu ON
mu.id = sl.updatedby_id
LEFT JOIN m_appuser fa ON
fa.id = g.facilitator
g.prequalification_number AS prequalificationNumber,
g.STATUS,
linkedGroup.id AS linkedGroupId,
g.prequalification_duration AS prequalilficationTimespan,
g.comments,
g.created_at,
g.prequalification_type_enum AS prequalificationType,
sl.from_status AS previousStatus,
sl.sub_status AS substatus,
sl.comments AS latestComments,
assigned.username AS assignedUser,
concat( assigned.firstname, ' ', assigned.lastname ) AS assignedUserName,
sl.date_created AS statusChangedOn,
prequalification_numbers.total_requested_amount AS totalRequestedAmount,
prequalification_numbers.total_approved_amount totalApprovedAmount,
CASE
WHEN g.previous_prequalification IS NOT NULL THEN
'Recredito' ELSE 'Nuevo'
END AS processType,
CASE
WHEN mpsl.reprocess_count > 0 THEN
'Reproceso' ELSE 'Nuevo'
END AS processQuality,
concat( mu.firstname, ' ', mu.lastname ) AS statusChangedBy,
COALESCE ( ma.NAME, individualOffice.agency_name ) AS agencyName,
ma.id AS agencyId,
cg.display_name AS groupName,
g.group_name AS newGroupName,
g.group_id AS groupId,
pc.display_name AS centerName,
pc.id AS centerId,
lp.id AS productId,
fa.id AS facilitatorId,
concat( fa.firstname, ' ', fa.lastname ) AS facilitatorName,
lp.NAME AS productName,
au.firstname,
au.lastname,
greenValidCount AS greenValidationCount,
yellowValidCount AS yellowValidationCount,
orangeValidCount AS orangeValidationCount,
redValidCount AS redValidationCount\s
FROM
m_prequalification_group g
INNER JOIN m_appuser au ON au.id = g.added_by
INNER JOIN m_product_loan lp ON g.product_id = lp.id
LEFT JOIN (
SELECT
mpgm.group_id AS prequalification_id,
SUM( mpgm.requested_amount ) total_requested_amount,
SUM( mpgm.approved_amount ) total_approved_amount\s
FROM
m_prequalification_group_members mpgm\s
GROUP BY
mpgm.group_id\s
) prequalification_numbers ON prequalification_numbers.prequalification_id = g.id
LEFT JOIN (
SELECT DISTINCT
mc.office_id,
ms.agency_id,
mag.NAME AS agency_name,
mpgm.group_id,
ms.linked_office_id AS supervision_office\s
FROM
m_prequalification_group_members mpgm
INNER JOIN m_client mc ON mc.dpi = mpgm.dpi
INNER JOIN m_group_client mgc ON mgc.client_id = mc.id
INNER JOIN m_group mg ON mg.id = mgc.group_id
INNER JOIN m_group center ON center.id = mg.parent_id
INNER JOIN m_portfolio mp ON mp.id = center.portfolio_id
INNER JOIN m_supervision ms ON ms.id = mp.supervision_id
INNER JOIN m_agency mag ON mag.id = ms.agency_id\s
) individualOffice ON individualOffice.group_id = g.id
LEFT JOIN m_agency ma ON g.agency_id = ma.id
LEFT JOIN ( SELECT agency_id, linked_office_id FROM m_supervision GROUP BY agency_id ) supv ON supv.agency_id = ma.id
LEFT JOIN m_office mo ON mo.id = supv.linked_office_id
LEFT JOIN m_office moind ON moind.id = individualOffice.supervision_office
LEFT JOIN (
SELECT
mcvr.prequalification_id,
COUNT( CASE WHEN mcvr.validation_color_enum = 1 THEN 1 END ) AS greenValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 2 THEN 1 END ) AS yellowValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 3 THEN 1 END ) AS orangeValidCount,
COUNT( CASE WHEN mcvr.validation_color_enum = 4 THEN 1 END ) AS redValidCount\s
FROM
m_checklist_validation_result mcvr\s
GROUP BY
mcvr.prequalification_id\s
) validations ON validations.prequalification_id = g.id
LEFT JOIN m_group cg ON cg.id = g.group_id
LEFT JOIN m_group linkedGroup ON linkedGroup.prequalification_id = g.id
LEFT JOIN m_group pc ON pc.id = g.center_id
LEFT JOIN m_appuser fa ON fa.id = g.facilitator
LEFT JOIN ( SELECT count(*) AS reprocess_count, prequalification_id, to_status FROM m_prequalification_status_log GROUP BY prequalification_id, to_status ) mpsl ON mpsl.prequalification_id = g.id\s
AND mpsl.to_status = g.
STATUS LEFT JOIN ( SELECT prequalification_id, to_status, from_status, sub_status, comments, assigned_to, updatedby_id, MAX( date_created ) AS date_created FROM m_prequalification_status_log GROUP BY prequalification_id ) sl ON sl.prequalification_id = g.id\s
AND sl.to_status = g.status
LEFT JOIN m_appuser mu ON mu.id = sl.updatedby_id
LEFT JOIN m_appuser assigned ON assigned.id = sl.assigned_to
""";

this.grpSchema = """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,19 @@
]]>
</sql>
</changeSet>
<changeSet id="2" author="fineract">
<preConditions onFail="MARK_RAN">
<not>
<indexExists tableName="m_prequalification_group" indexName="agency_id_index"/>
</not>
</preConditions>
<sql>
<![CDATA[
ALTER TABLE `m_prequalification_group`
ADD INDEX `agency_id_index`(`agency_id`) INVISIBLE,
ADD INDEX `status_index`(`status`) INVISIBLE;
]]>
</sql>
</changeSet>

</databaseChangeLog>

0 comments on commit fa3b729

Please sign in to comment.