diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba0157d..cff8336 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,9 +19,10 @@ android:required="false" /> - @POST("WebApi_Bajaj/api/CheckFDCKYC") + @POST("CheckFDCKYC") suspend fun checkFDKYC( @Body checkFDKYCRequest: CheckFDKYCRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/CreateFDApplication") + @POST("CreateFDApplication") suspend fun createFDApp( @Body createFDRequest: CreateFDRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/DocumentsUpload") + @POST("DocumentsUpload") suspend fun documentsUpload( @Body requestBody: DocumentUpload, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/SaveFDOtherData") + @POST("SaveFDOtherData") suspend fun saveFDOtherData( @Body requestBody: SaveFDOtherDataRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetFDDetails") + @POST("GetFDDetails") suspend fun getFDDetails( @Body requestBody: GetFDDetailsRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/UpdateFDPaymentStatus") + @POST("UpdateFDPaymentStatus") suspend fun updateFDPaymentStatus( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/FinaliseFD") + @POST("FinaliseFD") suspend fun finaliseFD( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/FinaliseKYC") + @POST("FinaliseKYC") suspend fun finaliseKYC( @Body requestBody: RequestBody, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/PaymentRequery") + @POST("PaymentRequery") suspend fun paymentReQuery( @Body requestBody: RequestBody, @Header("token") token: String ): Response // @FormUrlEncoded - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun getCodes( @Body requestBody: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/CalculateFDMaturityAmount") + @POST("CalculateFDMaturityAmount") suspend fun getCalculateFDMaturityAmount( @Body requestBody: GetMaturityAmountRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/PanCheck_S") + @POST("PanCheck_S") suspend fun panCheckApi( @Body panCheck: PanCheckRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/getFDStepsCount") + @POST("getFDStepsCount") suspend fun getFDStepsCount( @Body fdStepsCountRequest: FDStepsCountRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetClientDetailV2_S") + @POST("GetClientDetailV2_S") suspend fun getClientDetails( @Body getClientDetailsRequest: getClientDetailsRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun titleApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun genderApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun annualIncomeApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun relationShipApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun maritalStatusApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun occupationApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/GetStateMaster") + @POST("GetStateMaster") suspend fun stateApi(@Header("token") token: String): Response - @POST("WebApi_Bajaj/api/GetCity") + @POST("GetCity") suspend fun cityApi( @Body cityRequest: CityRequest, @Header("token") token: String ): Response - @GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj") + @GET("GetFDBankList?FDProvider=Bajaj") suspend fun bankListApi(@Header("token") token: String): Response - @GET("WebApi/api/GetIFSC_Autofill?") + @GET("GetIFSC_Autofill?") suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response - @GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?") - suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response + @GET("GetbankNames") + suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response - @POST("WebApi_Bajaj/api/GetCodes") + @POST("GetCodes") suspend fun payModeApi( @Body getCodeRequest: GetCodeRequest, @Header("token") token: String ): Response - @POST("WebApi_Bajaj/api/BankValidationAPI_S") + @POST("BankValidationAPI_S") suspend fun bankValidationApi( @Body bankValidationApiRequest: BankValidationApiRequest, @Header("token") token: String diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt index e648098..21338dd 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt @@ -1,10 +1,5 @@ package com.nivesh.production.bajajfd.model data class GetIFSCCodeResponse( - val ADDRESS: String, - val BANK: String, - val BRANCH: String, - val IFSC: String, - val MICR: String, - val Response: ResponseXXXXXXXXX + val IFSCCODEServiceResult: List ) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt new file mode 100644 index 0000000..717ce5f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt @@ -0,0 +1,10 @@ +package com.nivesh.production.bajajfd.model + +data class IFSCCODEServiceResult( + val BankBranch: String, + val BnkDescr: String, + val BnkShrtDescr: String, + val Code: String, + val IfscCode: String, + val intCustbnk_pk: String +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index c054d7b..5ba37a4 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun ifscCodeCheck(str: String) = apiInterface.getIFSCApi(str) - suspend fun ifscCodeDetailsCheck(str: String) = - apiInterface.getIFSCDetailsApi(str) + suspend fun ifscCodeBankDetailsCheck(str: String, token: String) = + apiInterface.getIFSCBankDetailsApi(str, token) suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = apiInterface.payModeApi(getCodeRequest, token) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt index 7d805e0..d97ec40 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt @@ -525,9 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.btnAddBank.setOnClickListener { if (validateBank()) { - val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString()) - verifyAccountNo( - binding.edtAccountNumber.text.toString(), binding.edtIFSC.text.toString(), fullName, binding.edtMobileNumber.text.toString(), 1) + verifyAccountNo( + binding.edtAccountNumber.text.toString(), + binding.edtIFSC.text.toString(), + binding.edtFirstName.text.toString().plus(" ") + .plus(binding.edtMiddleName.text.toString()).plus(" ") + .plus(binding.edtLastName.text.toString()), + binding.edtMobileNumber.text.toString(), + 1 + ) } } @@ -544,18 +550,29 @@ class StepTwoBajajFDFragment : BaseFragment() { binding.addBankDetail.setOnClickListener { if (binding.llBankDetails.visibility == View.GONE) { binding.llBankDetails.visibility = View.VISIBLE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0) + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( + 0, + 0, + R.drawable.ic_minus, + 0 + ) } else { binding.llBankDetails.visibility = View.GONE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0) + binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( + 0, + 0, + R.drawable.ic_add_icon, + 0 + ) } } titleApi() setUpRecyclerView( (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, - (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1) + (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 + ) binding.tvPersonalDetails.setOnClickListener { if (binding.llPersonalDetail.visibility == View.VISIBLE) { @@ -772,7 +789,7 @@ class StepTwoBajajFDFragment : BaseFragment() { } private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length ==11) { + if (ifsc.length >= 10) { stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity) stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { @@ -796,23 +813,16 @@ class StepTwoBajajFDFragment : BaseFragment() { listOfIFSC ) binding.edtIFSC.setAdapter(adapter) - binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> if (listOfIFSC.size > 0) { - binding.edtIFSC.setText(adapter.getItem(position).toString()) + binding.edtIFSC.setText( + adapter.getItem(position).toString() + ) binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(binding.edtIFSC.toString()) + getIFSCDetailsApi(binding.edtIFSC.text.toString()) } } - - - } - - - - - } // 650 -> refreshToken() else -> { @@ -850,31 +860,20 @@ class StepTwoBajajFDFragment : BaseFragment() { ifscCode, activity as BajajFdMainActivity ) - stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> + stepTwoBajajFDViewModel.getIfscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { - val getIFSCCodeResponse = - Gson().fromJson( - response.data?.toString(), + if (response.data.toString().isNotEmpty()) { + val getIFSCCodeResponse = Gson().fromJson( + response.data.toString(), GetIFSCCodeResponse::class.java ) - getIFSCCodeResponse.Response.status_code.let { code -> - when (code) { - 200 -> { - binding.edtBankName.setText(getIFSCCodeResponse.BANK) - binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH) - } - // 650 -> refreshToken() - else -> { - Common.showDialogValidation( - activity as BajajFdMainActivity, - getIFSCCodeResponse.Response.message - ) - } - } + binding.edtBankName.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BnkDescr) + binding.edtBankName.setSelection(binding.edtBankName.text.toString().length) + binding.edtBankBranch.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BankBranch) + binding.edtBankBranch.setSelection( binding.edtBankBranch.text.toString().length) } } - is Resource.Error -> { response.message?.let { message -> Common.showDialogValidation(activity as BajajFdMainActivity, message) @@ -886,21 +885,28 @@ class StepTwoBajajFDFragment : BaseFragment() { is Resource.DataError -> { } + } - } + } } - private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) { + private fun verifyAccountNo( + bankAccount: String, Ifsc: String, name: String, phoneNumber: String, bankNo: Int + ) { val bankValidationApiRequest = BankValidationApiRequest() - bankValidationApiRequest.BankAccountNo=bankAccount - bankValidationApiRequest.IFSC=Ifsc - bankValidationApiRequest.Name=name - bankValidationApiRequest.PhoneNo=phoneNumber - bankValidationApiRequest.RoleId=5 - bankValidationApiRequest.BankNo=bankNo - stepTwoBajajFDViewModel.bankValidationApi(bankValidationApiRequest, token, activity as BajajFdMainActivity) + bankValidationApiRequest.BankAccountNo = bankAccount + bankValidationApiRequest.IFSC = Ifsc + bankValidationApiRequest.Name = name + bankValidationApiRequest.PhoneNo = phoneNumber + bankValidationApiRequest.RoleId = 5 + bankValidationApiRequest.BankNo = bankNo + stepTwoBajajFDViewModel.bankValidationApi( + bankValidationApiRequest, + token, + activity as BajajFdMainActivity + ) stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response -> when (response) { is Resource.Success -> { @@ -916,28 +922,38 @@ class StepTwoBajajFDFragment : BaseFragment() { when (code) { 200 -> { - if(getBankValidationApiResponse.Message=="Account verified") { - val clientBankList =ClientBanklist() - clientBankList.AccountNumber=bankAccount - clientBankList.AccountType="sb" - clientBankList.BankName=binding.edtBankName.text.toString() - clientBankList.BranchName=binding.edtBankBranch.text.toString() - clientBankList.IFSCCode=Ifsc - clientBankList.IsValBank=1 + if (getBankValidationApiResponse.Message == "Account verified") { + val clientBankList = ClientBanklist() + clientBankList.AccountNumber = bankAccount + clientBankList.AccountType = "sb" + clientBankList.BankName = + binding.edtBankName.text.toString() + clientBankList.BranchName = + binding.edtBankBranch.text.toString() + clientBankList.IFSCCode = Ifsc + clientBankList.IsValBank = 1 (activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let { listOfBanks.addAll( it ) } listOfBanks.add(clientBankList) - setUpRecyclerView(listOfBanks , clientBankList.AccountNumber.toString()) - } - else { - Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + setUpRecyclerView( + listOfBanks, + clientBankList.AccountNumber.toString() + ) + } else { + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } } else -> { - Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message) + Common.showDialogValidation( + activity as BajajFdMainActivity, + getBankValidationApiResponse.Message + ) } } } @@ -956,7 +972,6 @@ class StepTwoBajajFDFragment : BaseFragment() { } } } - } private fun validateBank(): Boolean { @@ -995,7 +1010,10 @@ class StepTwoBajajFDFragment : BaseFragment() { } } - private fun setUpRecyclerView( bankList: List?, selectedAccount: String? = null) { + private fun setUpRecyclerView( + bankList: List?, + selectedAccount: String? = null + ) { val displayMetrics = DisplayMetrics() requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) val width = displayMetrics.widthPixels.toDouble() @@ -1004,7 +1022,7 @@ class StepTwoBajajFDFragment : BaseFragment() { LinearLayoutManager.HORIZONTAL, false ) - bankListAdapter = BankListAdapter(bankList, selectedAccount,width) + bankListAdapter = BankListAdapter(bankList, selectedAccount, width) binding.rvClientBankList.adapter = bankListAdapter } @@ -1228,7 +1246,7 @@ class StepTwoBajajFDFragment : BaseFragment() { private fun setUpRecyclerViewPaymentMode(listOfPayMode: List) { binding.rvPaymentMode.layoutManager = - GridLayoutManager(activity as BajajFdMainActivity,2) + GridLayoutManager(activity as BajajFdMainActivity, 2) paymentModeAdapter = PaymentModeAdapter( listOfPayMode, listOfPayMode[0].Value @@ -1896,7 +1914,11 @@ class StepTwoBajajFDFragment : BaseFragment() { getString(R.string.emptyState) ) } else if (binding.spCity.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod(binding.spCity, binding.tlCity, getString(R.string.emptyCity)) + commonSpinnerErrorMethod( + binding.spCity, + binding.tlCity, + getString(R.string.emptyCity) + ) } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText commonErrorMethod( binding.edtPinCode, diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index 779be5d..104dd0c 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt @@ -8,9 +8,9 @@ import android.graphics.drawable.GradientDrawable import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.os.Build -import android.os.Environment import android.provider.ContactsContract import android.text.format.DateFormat +import android.util.Log import android.util.Patterns import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText @@ -18,8 +18,9 @@ import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject import com.nivesh.production.bajajfd.R import kotlinx.coroutines.CoroutineExceptionHandler +import org.json.JSONObject import retrofit2.HttpException -import java.io.File +import retrofit2.Response import java.io.IOException import java.text.SimpleDateFormat import java.util.* @@ -207,6 +208,23 @@ class Common { return Resource.Error(response.message()) } + fun handleResponse1(response: Response): Resource { + if (response.isSuccessful && response.body() != null) { + if (response.body().toString().isNotEmpty()) { + Log.e("response", "-->$response") + val str: String = response.body().toString().replace("\r\n", "") + Log.e("str", "-->$str") + val jsonObject = JSONObject(str) + Log.e("jsonObject", "-->$jsonObject") + return Resource.Success(jsonObject.toString()) + }else { + return Resource.Error(response.message()) + } + } + return Resource.Error(response.message()) + + } + fun handleError(activity: Activity): CoroutineExceptionHandler { val handler = CoroutineExceptionHandler { _, exception -> if (exception is IOException || exception is HttpException) { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt index d7cc998..ed5ae6e 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt @@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util class Constants() { companion object { - const val BASE_URL = "https://providential.in/" + const val BASE_URL = "https://providential.in/WebApi_Bajaj/api/" const val token = "636F8F63-06C4-4D95-8562-392B34025FB0" } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt index 26f8e18..2f957dc 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt @@ -9,6 +9,8 @@ import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse +import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse1 +import com.nivesh.production.bajajfd.util.Constants.Companion.token import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch @@ -136,17 +138,18 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View } } - val getifscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() + val getIfscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch( Common.handleError(activity) ) { if (Common.isNetworkAvailable(activity)) { - getifscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeDetailsCheck(ifsc) - getifscCodeDetailsCheckMutableData.postValue(handleResponse(response)) + getIfscCodeDetailsCheckMutableData.postValue(Resource.Loading()) + val response = mainRepository.ifscCodeBankDetailsCheck(ifsc, token) + getIfscCodeDetailsCheckMutableData.postValue(handleResponse1(response)) } } + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( Common.handleError(activity)