@Query(value="SELECT LD.LEAD_ID,BR.BRANCH_DESC,DATE_FORMAT(LEAD_GENERATION_DATE,'%d-%m-%Y'),PRD.PRODUCT_DESC,CUSTOMER_NAME,SCM.SCHEME_DESC,GM.DESCRIPTION, (SELECT USER_NAME FROM SEC_USER_M WHERE USER_ID= :loginUserId) USER_NAME,LD.SALES_LEAD_ID,S.STATE_DESC,LD.EXISTING_CUSTOMER FROM CR_LEAD_DTL LD INNER JOIN COM_BRANCH_M BR ON LD.NEAREST_BRANCH=BR.BRANCH_ID INNER JOIN CR_SCHEME_M SCM ON SCM.SCHEME_ID=LD.SCHEME INNER JOIN CR_PRODUCT_M PRD ON PRD.PRODUCT_ID=LD.PRODUCT LEFT JOIN COM_STATE_M S ON S.STATE_ID = BR.STATE_ID INNER JOIN GENERIC_MASTER GM ON GM.VALUE = LD.SOURCE AND GM.GENERIC_KEY='SOURCE_TYPE' AND GM.REC_STATUS='A' WHERE LD.REC_STATUS='P' AND LD.MAKER_ID= :loginUserId ORDER BY LD.LEAD_ID DESC,LD.REC_STATUS",nativeQuery=true)
@Query(value="SELECT LD.BRANCH_ID,LD.SOURCE_CODE,LD.SOURCE_EXECUTIVE_PHONE,LD.LEAD_GENERATION_CITY,LD.ALLOCATED_BRANCH,LD.NEAREST_BRANCH_DISTANCE,LD.SOURCE_TYPE,LD.SOURCE,LD.SOURCE_DESCRIPTION_ID,LD.SOURCE_DESCRIPTION,LD.PRODUCT,LD.SCHEME,LD.LOAN_TYPE,LD.AMOUNT_REQUIRED,LD.LOAN_TENURE FROM CR_LEAD_DTL LD WHERE LD.LEAD_ID= :leadId",nativeQuery=true)
@Query(" SELECT DISTINCT new com.a3spl.omnifin.model.UserDtl(USR.userId,USR.userName,SUB.branchId) FROM SecUserAccessM SUA JOIN SecRoleAccessM SRA ON INSTR(CONCAT(char(39),SUA.roleId,char(39)),CONCAT(char(39),SRA.roleId,char(39)))>0 AND SRA.functionId= :functionId JOIN SecUserM USR ON(USR.userId=SUA.userId AND USR.recStatus='A') JOIN SecUserBranchDtl SUB ON(SUB.userId=USR.userId AND USR.recStatus='A') WHERE SUA.recStatus='A' AND SRA.recStatus='A'")
@Query(" SELECT DISTINCT new com.a3spl.omnifin.model.UserDtl(USR.userId,USR.userName,SUB.branchId) FROM SecUserAccessM SUA JOIN SecRoleAccessM SRA ON INSTR(CONCAT(char(39),SUA.roleId,char(39)),CONCAT(char(39),SRA.roleId,char(39)))>0 AND SRA.functionId= :functionId JOIN SecUserM USR ON(USR.userId=SUA.userId AND USR.recStatus='A') JOIN SecUserBranchDtl SUB ON(SUB.userId=USR.userId AND USR.recStatus='A') WHERE SUA.recStatus='A' AND SRA.recStatus='A' AND SUB.branchId= :branchId ")
// @Query("SELECT new com.a3spl.omnifin.model.BranchDtl(a.branchId,b.branchDesc) FROM SecUserBranchDtl a JOIN ComBranchM b on(b.branchId=a.branchId and b.recStatus='A' and a.recStatus='A') WHERE a.userId= :userId ")
// @Query("SELECT new com.a3spl.omnifin.model.BranchDtlLead(a.branchId,b.branchDesc) FROM SecUserBranchDtl a JOIN ComBranchM b on(b.branchId=a.branchId and b.recStatus='A' and a.recStatus='A') WHERE a.userId= :userId ")
//Added by amol s on 03-dec 24 , to add validation of branchStatus --strt
// Added by Amol S to add-- for getBranchList
@Query("SELECT new com.a3spl.omnifin.model.BranchDtl(a.branchId, b.branchDesc) FROM SecUserBranchDtl a JOIN ComBranchM b ON (b.branchId = a.branchId AND b.recStatus = 'A' AND a.recStatus = 'A' AND b.branchStatus <> 'X') WHERE a.userId = :userId")
@Query("SELECT new com.a3spl.omnifin.model.BranchDtlLead(a.branchId, b.branchDesc) FROM SecUserBranchDtl a JOIN ComBranchM b ON (b.branchId = a.branchId AND b.recStatus = 'A' AND a.recStatus = 'A' AND b.branchStatus <> 'X') WHERE a.userId = :userId")
//Added by amol s on 03-dec 24 , to add validation of branchStatus --end
@Query(value="SELECT GM.VALUE,GM.DESCRIPTION FROM SEC_USER_M USR JOIN GENERIC_MASTER GM ON INSTR(CONCAT(CHAR(124),USR.MAPPED_LEVEL,CHAR(124)),CONCAT(CHAR(124),GM.VALUE,CHAR(124)))>0 AND GM.GENERIC_KEY='LEVELS' AND GM.REC_STATUS='A' WHERE USR.USER_ID=:userId",nativeQuery=true)
@Query(value="SELECT USR.USER_ID,USR.USER_NAME FROM SEC_USER_M USR JOIN SEC_USER_BRANCH_DTL USR_BR ON(USR.USER_ID=USR_BR.USER_ID AND USR_BR.REC_STATUS='A') WHERE USR.REC_STATUS='A' AND INSTR(CONCAT(CHAR(124),USR.MAPPED_LEVEL,CHAR(124)),:code)>0 AND USR_BR.BRANCH_ID=:branchId UNION SELECT USRM.USER_ID,USRM.USER_NAME FROM SEC_USER_M USR JOIN SEC_USER_M USRM ON USR.USER_REPORTING_TO=USRM.USER_ID WHERE USR.USER_ID=:userId",nativeQuery=true)
@Query(value="SELECT USRM.USER_ID,USRM.USER_NAME FROM SEC_USER_M USR JOIN SEC_USER_M USRM ON USR.USER_REPORTING_TO=USRM.USER_ID WHERE USR.USER_ID=:userId",nativeQuery=true)
@Query(" SELECT new com.a3spl.omnifin.model.SourceDtl(concat(bpId,''),bpName) FROM CrBpDtl WHERE bpType='BUL' AND recStatus='A' ")
List<SourceDtl>getBuilder();
@Query(" SELECT new com.a3spl.omnifin.model.SourceDtl(A.userId,A.userName) FROM SecUserM A JOIN SecUserLevelDtl B ON A.userId=B.userId WHERE B.levelId='BRANCH' AND A.recStatus='A' ")
List<SourceDtl>getTelecaller();
@Query(" SELECT new com.a3spl.omnifin.model.SourceDtl(concat(A.customerId,''),A.customerName) FROM GcdCustomerM A ")
List<SourceDtl>getExistingCustomer();
@Query("SELECT new com.a3spl.omnifin.model.SourceDtl(concat(cdm.dealerId,''),cdm.dealerDesc,concat(cdm.dealerDesc,'-','(', cdm.dealerId, ')' )) FROM CrDsaDealerM cdm JOIN CrDsaDealerBranchM cdbm on cdbm.dealerId=cdm.dealerId and cdbm.branchId=:branchId WHERE cdm.bpType='SU' AND cdm.recStatus='A' ")
@Query(" SELECT new com.a3spl.omnifin.model.SourceDtl(userId,userName) FROM SecUserM WHERE recStatus='A' ")
List<SourceDtl>getDirect();
@Query("SELECT new com.a3spl.omnifin.model.SourceDtl(concat(cdm.dealerId,''),cdm.dealerDesc,concat(cdm.dealerDesc,'-','(', cdm.dealerId, ')' )) FROM CrDsaDealerM cdm JOIN CrDsaDealerBranchM cdbm on cdbm.dealerId=cdm.dealerId and cdbm.branchId=:branchId WHERE cdm.bpType='DS' AND cdm.recStatus='A' ")
@Query("SELECT new com.a3spl.omnifin.model.SourceDtl(concat(cdm.dealerId,''),cdm.dealerDesc,concat(cdm.dealerDesc,'-','(', cdm.dealerId, ')' )) FROM CrDsaDealerM cdm JOIN CrDsaDealerBranchM cdbm on cdbm.dealerId=cdm.dealerId and cdbm.branchId=:branchId WHERE cdm.bpType='CO' AND cdm.recStatus='A' ")
@Query("select new com.a3spl.omnifin.model.LoanPurposeDtl(g.code,g.description,g.parentValue) from GenericMaster g where g.genericKey='LOAN_PURPOSE' AND g.recStatus= 'A'")
List<LoanPurposeDtl>getLoanPurpose();
@Query(value=" select L.LEAD_ID,L.EXISTING_CUSTOMER,L.RELATIONSHIP_SINCE,L.CUSTOMER_TYPE,L.CONSTITUTION,L.CUSTOMER_NAME,L.FIRST_NAME,L.MIDDLE_NAME, L.LAST_NAME, DATE_FORMAT(L.CUSTOMER_DOB,'%Y-%m-%d')CUSTOMER_DOB,L.FATHER_HUSBAND_NAME,L.PASSPORT_NUMBER,L.DRIVING_LICENSE,L.VOTER_ID,L.PAN,L.AADHAR_NO,L.EDU_DETAIL, L.GROUP_ID,L.GROUP_TYPE, L.BUSINESS_SEGMENT,L.INDUSTRY_ID,L.SUB_INDUSTRY_ID,L.REGISTRATION_NO,L.TURNOVER,L.GROUP_DESC FROM CR_LEAD_DTL L WHERE L.LEAD_ID= :leadId",nativeQuery=true)
@Query(value="SELECT INDUSTRY_ID,INDUSTRY_DESC FROM COM_INDUSTRY_M WHERE REC_STATUS='A' ",nativeQuery=true)
List<ComIndustryM>getIndustryName();
@Query(value="select a.lead_Id,a.address_Line1,a.address_Line2,a.address_Line3,a.pincode,a.tahsil, a.district,a.country,a.state, a.primary_Phone,a.landmark,a.no_Of_Years, a.no_Of_Months,a.plot_No,a.town_Desc,a.taluka_Desc, a.alternate_Phone,a.email_Id, a.alternate_Mail_Id,a.floor_No,a.ownership,a.area_Code, e.DESCRIPTION,d.district_Desc, s.state_Desc,c.country_Desc,a.address_Type, (select description from Generic_Master g where g.generic_Key='ADDRESS_TYPE' and g.value= a.address_Type ) as ADDRESS_TYPE_DESC from Cr_Lead_Dtl a JOIN Com_Tehsil_M e ON e.ID=a.tahsil and e.status='A' JOIN com_district_M d ON d.district_Id=a.district and d.rec_Status='A' JOIN Com_State_M s ON s.state_Id=a.state and s.rec_Status='A' JOIN Com_Country_M c ON c.country_Id=a.country and c.rec_Status='A' where a.lead_Id=:leadId ",nativeQuery=true)
//Commented and changed by Gulzar on 22OCT24 to make it inline with the LeadCapturingServiceImpl class
/*
@Query(value = "select b.address_Id,a.customer_Id,a.customer_Name,a.FATHER_HUSBAND_NAME,a.customer_Type,case a.customer_Type when 'I' then 'Individual' else 'Corporate' end as customerTypeDesc,d.deal_no from cr_deal_dtl d join Cr_Deal_Customer_Role c on (c.deal_id=d.deal_id) join Gcd_Customer_M a on c.deal_Customer_Id=a.customer_Id left join Com_Address_M b on b.bpId=a.customer_Id and b.COMMUNICATION_ADDRESS='Y'\t and a.customer_Name LIKE %:customerName% AND a.CUSTOMER_FNAME LIKE %:firstName% AND \t a.CUSTOMER_MNAME LIKE %:middleName% AND a.CUSTOMER_LNAME LIKE %:lastName% AND \t a.CUSTMER_PAN LIKE %:pan% AND a.PASSPORT_NUMBER LIKE %:passportNumber% AND a.CUSTOMER_DOB LIKE %:customerDobSearch% AND a.UID_NO LIKE %:aadharNoSearch% AND \ta.VOTER_ID LIKE %:voterSearch% AND a.DRIVING_LICENSE LIKE %:drivingLicenceSearch% AND \t b.PRIMARY_PHONE=:mobileNo ", nativeQuery = true)
@Query(value="select b.address_Id,a.customer_Id,a.customer_Name,a.FATHER_HUSBAND_NAME,a.customer_Type,case a.customer_Type when 'I' then 'Individual' else 'Corporate' end as customerTypeDesc,d.deal_no from cr_deal_dtl d join Cr_Deal_Customer_Role c on (c.deal_id=d.deal_id) join Gcd_Customer_M a on c.deal_Customer_Id=a.customer_Id left join Com_Address_M b on b.bpId=a.customer_Id and b.COMMUNICATION_ADDRESS='Y'\t and a.customer_Name LIKE %:customerName% AND a.CUSTOMER_FNAME LIKE %:firstName% AND \t a.CUSTOMER_MNAME LIKE %:middleName% AND a.CUSTOMER_LNAME LIKE %:lastName% AND \t a.CUSTMER_PAN LIKE %:pan% AND a.PASSPORT_NUMBER LIKE %:passportNumber% AND a.CUSTOMER_DOB LIKE %:customerDobSearch% AND a.UID_NO LIKE %:aadharNoSearch% AND \ta.VOTER_ID LIKE %:voterSearch% AND a.DRIVING_LICENSE LIKE %:drivingLicenceSearch% AND \t b.PRIMARY_PHONE=:mobileNo ",nativeQuery=true)
List<Object[]>getExistingCustomerList();
//Gulzar on 22OCT24 - END
@Query(value="select count(*) from cr_deal_dtl d join Cr_Deal_Customer_Role c on (c.deal_id=d.deal_id) join Gcd_Customer_M a on c.deal_Customer_Id=a.customer_Id join Com_Address_M b on b.bpId=a.customer_Id where b.COMMUNICATION_ADDRESS='Y' and a.customer_Name LIKE %:customerName% AND b.PRIMARY_PHONE=:mobileNo ",nativeQuery=true)
@Query(value="select count(*) from cr_deal_dtl d join Cr_Deal_Customer_Role c on (c.deal_id=d.deal_id) join Gcd_Customer_M a on c.deal_Customer_Id=a.customer_Id and a.customer_Name LIKE %:customerName% AND a.PRIMARY_CONTACT=:mobileNo ",nativeQuery=true)
@Query(value="select b.address_id,a.customer_Id,a.customer_Name,a.FATHER_HUSBAND_NAME,a.customer_Type,case a.customer_Type when 'I' then 'Individual' else 'Corporate' end as customerTypeDesc from Gcd_Customer_M a left join Com_Address_M b on b.bpId=a.customer_Id where b.COMMUNICATION_ADDRESS='Y' and a.customer_Name LIKE %:customerName% AND a.PRIMARY_CONTACT=:mobileNo ",nativeQuery=true)
@Query(value="select b.address_id,a.customer_Id,a.customer_Name,a.FATHER_HUSBAND_NAME,a.customer_Type,case a.customer_Type when 'I' then 'Individual' else 'Corporate' end as customerTypeDesc from Gcd_Customer_M a join Com_Address_M b on b.bpId=a.customer_Id where b.COMMUNICATION_ADDRESS='Y'\t and a.customer_Name LIKE %:customerName% AND a.CUSTOMER_FNAME LIKE %:firstName% AND \t a.CUSTOMER_MNAME LIKE %:middleName% AND a.CUSTOMER_LNAME LIKE %:lastName% AND \t a.CUSTMER_PAN LIKE %:pan% AND a.PASSPORT_NUMBER LIKE %:passportNumber% AND a.CUSTOMER_DOB LIKE %:customerDobSearch% AND a.UID_NO LIKE %:aadharNoSearch% AND \ta.VOTER_ID LIKE %:voterSearch% AND a.DRIVING_LICENSE LIKE %:drivingLicenceSearch% AND \t b.PRIMARY_PHONE=:mobileNo",nativeQuery=true)
@Query("select ''as relationshipSince,a.customerType,a.customerConstitution,a.salutation,a.customerFName,a.customerMname,a.customerLname,a.fatherHusbandName,a.motherName,a.customerDOB,a.maritalStatus,a.gender,a.passportNumber,a.drivingLicense,a.voterId,a.customerPAN,a.uidNo,a.casteCategory,a.eduDetail,a.primaryContact,a.customerEmail,a.alternateEmail1,a.customerName,a.customerGroupType,a.customerGroupId,a.customerRegistrationNo,a.cusotomerBusinessSegment,a.cusotmerIndustry,a.cusomterSubIndustry,b.addressType,b.addressLine1,b.plotNo,b.addressLine2,b.addressLine3,b.floorNo,b.landmark,b.pinCode,b.tehsil,teh.tehsilDecription,b.district,dist.districtDesc,b.state,st.stateDesc,b.country,cnt.countryDesc,b.noOfYears,b.noOfMonths,b.communicationAddress,b.addressDetail,a.customerStatus,a.customerId from GcdCustomerM a join ComAddressM b on b.bpId=a.customerId left join CrDealCustomerRole c on c.dealCustomerId=a.customerId join ComTehsilM teh on teh.tehsilCode=b.tehsil join ComDistrictM dist on dist.districtId=b.district join ComStateM st on st.stateId=b.state join ComCountryM cnt on cnt.countryId=b.country left join CrLeadDtl ld on ld.customerId=a.customerId and ifnull(ld.contactPerson,'')<>'' where a.customerId= :customerId and b.addressId= :addressId")
@Query("select ''as relationshipSince,a.customerType,a.customerConstitution,a.salutation,a.customerFName,a.customerMname,a.customerLname,a.fatherHusbandName,a.motherName,a.customerDOB,a.maritalStatus,a.gender,a.passportNumber,a.drivingLicense,a.voterId,a.customerPAN,a.uidNo,a.casteCategory,a.eduDetail,a.primaryContact,a.customerEmail,a.alternateEmail1,a.customerName,a.customerGroupType,a.customerGroupId,a.customerRegistrationNo,a.cusotomerBusinessSegment,a.cusotmerIndustry,a.cusomterSubIndustry,b.addressType,b.addressLine1,b.plotNo,b.addressLine2,b.addressLine3,b.floorNo,b.landmark,b.pinCode,b.tehsil,teh.tehsilDecription,b.district,dist.districtDesc,b.state,st.stateDesc,b.country,cnt.countryDesc,b.noOfYears,b.noOfMonths,b.communicationAddress,b.addressDetail,a.customerStatus,a.customerId from GcdCustomerM a left join ComAddressM b on b.bpId=a.customerId left join CrDealCustomerRole c on c.dealCustomerId=a.customerId left join ComTehsilM teh on teh.tehsilCode=b.tehsil left join ComDistrictM dist on dist.districtId=b.district left join ComStateM st on st.stateId=b.state left join ComCountryM cnt on cnt.countryId=b.country left join CrLeadDtl ld on ld.customerId=a.customerId and ifnull(ld.contactPerson,'')<>'' where a.customerId= :customerId")
@Query(value="SELECT D.LEVEL_ID,U.USER_ID,USER_NAME,USER_PHONE1,USER_DEF_BRANCH,B.BRANCH_DESC FROM SEC_USER_M U LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_LEVEL_DTL D ON U.USER_ID=D.USER_ID WHERE U.USER_ID=:userId AND D.LEVEL_ID = 'RM' ",nativeQuery=true)
@Query(value="SELECT D.LEVEL_ID,U.USER_REPORTING_TO,V.USER_NAME,V.USER_PHONE1,V.USER_DEF_BRANCH,B.BRANCH_DESC FROM SEC_USER_M U LEFT JOIN SEC_USER_M V ON V.USER_ID=U.USER_REPORTING_TO LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_LEVEL_DTL D ON U.USER_ID=D.USER_ID WHERE U.USER_ID=:userId AND D.LEVEL_ID = 'RO' ",nativeQuery=true)
@Query(value="SELECT U.USER_REPORTING_TO FROM SEC_USER_M U LEFT JOIN SEC_USER_M V ON V.USER_ID=U.USER_REPORTING_TO LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_LEVEL_DTL D ON U.USER_ID=D.USER_ID WHERE U.USER_ID=:userId AND D.LEVEL_ID = 'RO' ",nativeQuery=true)
@Query(value="SELECT 'VENDOR' AS LEVEL_ID,CDDM.DEALER_ID,CDDM.DEALER_DESC,SU.USER_NAME FROM CR_DSA_DEALER_M CDDM LEFT OUTER JOIN CR_DSA_DEALER_USER_M DDUM ON DDUM.DEALER_ID=CDDM.DEALER_ID LEFT JOIN SEC_USER_M SU ON DDUM.USER_ID=SU.USER_ID WHERE BP_TYPE='SU' AND CDDM.REC_STATUS<>'X' AND DDUM.USER_ID=:userId ",nativeQuery=true)
@Query(value="SELECT IF(D.LEVEL_ID,'BRANCH','TELLECALLER')AS LEVEL_ID,U.USER_DEF_BRANCH,B.BRANCH_DESC,U.USER_ID,USER_NAME,USER_PHONE1 FROM SEC_USER_M U LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_LEVEL_DTL D ON U.USER_ID=D.USER_ID WHERE U.USER_ID=:userId AND D.LEVEL_ID='BRANCH' ",nativeQuery=true)
@Query(value="SELECT 'OTHER' AS LEVEL_ID,U.USER_DEF_BRANCH,B.BRANCH_DESC,U.USER_ID,U.USER_PHONE1,TH.USER_NAME FROM SEC_USER_M U LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_M TH on TH.USER_ID=U.USER_REPORTING_TO WHERE U.USER_ID=:userId ",nativeQuery=true)
@Query(value="select period_diff(date_format(STR_TO_DATE((select DATE_FORMAT(parameter_value,'%d-%m-%Y') from parameter_mst where parameter_key='BUSINESS_DATE'),'%d-%m-%Y'), '%Y%m'), date_format(MAKER_DATE, '%Y%m')) AS relatipShipMonth from cr_deal_customer_m where customer_id=:customerId ",nativeQuery=true)
@Query(value=" SELECT TH.USER_ID FROM SEC_USER_M U LEFT OUTER JOIN COM_BRANCH_M B ON B.BRANCH_ID=U.USER_DEF_BRANCH LEFT OUTER JOIN SEC_USER_M TH on TH.USER_ID=U.USER_REPORTING_TO WHERE U.USER_ID=:userId",nativeQuery=true)