Subversion Repositories SmartDukaan

Rev

Rev 37557 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 37557 Rev 37558
Line 1090... Line 1090...
1090
        } else {
1090
        } else {
1091
            leadActivity.setSchelduleTimestamp(null);
1091
            leadActivity.setSchelduleTimestamp(null);
1092
        }
1092
        }
1093
        leadActivity.setCreatedTimestamp(LocalDateTime.now());
1093
        leadActivity.setCreatedTimestamp(LocalDateTime.now());
1094
        leadActivityRepository.persist(leadActivity);
1094
        leadActivityRepository.persist(leadActivity);
1095
        if (!lead.getStatus().equals(LeadStatus.notInterested)) {
1095
        if (!lead.getStatus().equals(LeadStatus.notInterested) && !lead.getStatus().equals(LeadStatus.onHold)) {
1096
            LeadDetailModel leadDetail = new LeadDetailModel();
1096
            LeadDetailModel leadDetail = new LeadDetailModel();
1097
            leadDetail.setLeadId(lead.getId());
1097
            leadDetail.setLeadId(lead.getId());
1098
            leadDetail.setOutletName(createRefferalRequest.getOutletName());
1098
            leadDetail.setOutletName(createRefferalRequest.getOutletName());
1099
            leadDetail.setCounterSize(createRefferalRequest.getCounterSize());
1099
            leadDetail.setCounterSize(createRefferalRequest.getCounterSize());
1100
 
1100
 
Line 1158... Line 1158...
1158
                && lead.getAssignTo() == 0
1158
                && lead.getAssignTo() == 0
1159
                && AI_LEAD_SOURCE.equals(lead.getSource())
1159
                && AI_LEAD_SOURCE.equals(lead.getSource())
1160
                && isBgcAtOrAbove(authUser.getId(), EscalationType.L2, EscalationType.L3, EscalationType.L4, EscalationType.L5)
1160
                && isBgcAtOrAbove(authUser.getId(), EscalationType.L2, EscalationType.L3, EscalationType.L4, EscalationType.L5)
1161
                && isBgcL1(assignToId);
1161
                && isBgcL1(assignToId);
1162
 
1162
 
-
 
1163
        // "On Hold" behaves like notInterested for gate-bypass purposes: parked leads
-
 
1164
        // don't need geo verification or lead-detail filled in yet.
-
 
1165
        boolean skipsBeatGates = createLeadActivityRequest.getStatus() == LeadStatus.notInterested
-
 
1166
                || createLeadActivityRequest.getStatus() == LeadStatus.onHold;
-
 
1167
 
1163
        if (createLeadActivityRequest.getStatus() != LeadStatus.notInterested && assigneeIsSales && !bgcDirectAssign) {
1168
        if (!skipsBeatGates && assigneeIsSales && !bgcDirectAssign) {
1164
            LeadLiveLocation approvedGeo = leadLiveLocationRepository.selectApprovedByLeadId(createLeadActivityRequest.getId());
1169
            LeadLiveLocation approvedGeo = leadLiveLocationRepository.selectApprovedByLeadId(createLeadActivityRequest.getId());
1165
            if (approvedGeo == null) {
1170
            if (approvedGeo == null) {
1166
                throw new ProfitMandiBusinessException("Lead", "", "Live geo-location for this lead has not been approved yet. Please approve the geo-location before editing.");
1171
                throw new ProfitMandiBusinessException("Lead", "", "Live geo-location for this lead has not been approved yet. Please approve the geo-location before editing.");
1167
            }
1172
            }
1168
        }
1173
        }
1169
 
1174
 
1170
        if (leadDetail == null && !createLeadActivityRequest.getStatus().equals(LeadStatus.notInterested) && leadAuthUser.isActive()) {
1175
        if (leadDetail == null && !skipsBeatGates && leadAuthUser.isActive()) {
1171
            if (bgcDirectAssign) {
1176
            if (bgcDirectAssign) {
1172
                // Direct BGC L2 → L1 routing on an unassigned AI lead. AI intake does not
1177
                // Direct BGC L2 → L1 routing on an unassigned AI lead. AI intake does not
1173
                // seed a lead_detail row (business fields are captured later during field
1178
                // seed a lead_detail row (business fields are captured later during field
1174
                // work), so drop in an empty placeholder to satisfy downstream code that
1179
                // work), so drop in an empty placeholder to satisfy downstream code that
1175
                // treats a null row as "form not yet filled".
1180
                // treats a null row as "form not yet filled".