| Line 902... |
Line 902... |
| 902 |
|
902 |
|
| 903 |
Lead lead = leadRepository.selectById(createLeadActivityRequest.getId());
|
903 |
Lead lead = leadRepository.selectById(createLeadActivityRequest.getId());
|
| 904 |
AuthUser leadAuthUser = authRepository.selectById(lead.getAuthId());
|
904 |
AuthUser leadAuthUser = authRepository.selectById(lead.getAuthId());
|
| 905 |
LeadDetail leadDetail = leadDetailRepository.selectByLeadId(createLeadActivityRequest.getId());
|
905 |
LeadDetail leadDetail = leadDetailRepository.selectByLeadId(createLeadActivityRequest.getId());
|
| 906 |
|
906 |
|
| - |
|
907 |
// Unconditional gate: a lead can only be edited once its live geo-location
|
| - |
|
908 |
// is APPROVED. UI also pre-checks; this is the server-side safety net.
|
| - |
|
909 |
LeadLiveLocation approvedGeo = leadLiveLocationRepository.selectApprovedByLeadId(createLeadActivityRequest.getId());
|
| - |
|
910 |
if (approvedGeo == null) {
|
| - |
|
911 |
throw new ProfitMandiBusinessException("Lead", "", "Live geo-location for this lead has not been approved yet. Please approve the geo-location before editing.");
|
| - |
|
912 |
}
|
| - |
|
913 |
|
| 907 |
if (leadDetail == null && !createLeadActivityRequest.getStatus().equals(LeadStatus.notInterested) && leadAuthUser.isActive()) {
|
914 |
if (leadDetail == null && !createLeadActivityRequest.getStatus().equals(LeadStatus.notInterested) && leadAuthUser.isActive()) {
|
| 908 |
|
915 |
|
| 909 |
throw new ProfitMandiBusinessException("LeadDetail", "", "Please fill lead detail");
|
916 |
throw new ProfitMandiBusinessException("LeadDetail", "", "Please fill lead detail");
|
| 910 |
}
|
917 |
}
|
| 911 |
|
918 |
|
| 912 |
// Validate approved geolocation for physical visit
|
- |
|
| 913 |
if (createLeadActivityRequest.getStatus() == LeadStatus.followUp
|
- |
|
| 914 |
&& createLeadActivityRequest.getCommunicationType() != null
|
- |
|
| 915 |
&& createLeadActivityRequest.getCommunicationType().equals(CommunicationType.VISIT)) {
|
- |
|
| 916 |
LeadLiveLocation approvedGeo = leadLiveLocationRepository.selectApprovedByLeadId(createLeadActivityRequest.getId());
|
- |
|
| 917 |
if (approvedGeo == null) {
|
- |
|
| 918 |
throw new ProfitMandiBusinessException("Lead", "", "Missing Valid Live Geo Location for the lead");
|
- |
|
| 919 |
}
|
- |
|
| 920 |
}
|
- |
|
| 921 |
|
- |
|
| 922 |
LeadActivity leadActivity = new LeadActivity();
|
919 |
LeadActivity leadActivity = new LeadActivity();
|
| 923 |
leadActivity.setLeadId(createLeadActivityRequest.getId());
|
920 |
leadActivity.setLeadId(createLeadActivityRequest.getId());
|
| 924 |
leadActivity.setRemark(createLeadActivityRequest.getRemark());
|
921 |
leadActivity.setRemark(createLeadActivityRequest.getRemark());
|
| 925 |
|
922 |
|
| 926 |
LOGGER.info("createRefferalRequest" + createLeadActivityRequest);
|
923 |
LOGGER.info("createRefferalRequest" + createLeadActivityRequest);
|