diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 9fe2b23..006ec10 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -153,4 +153,11 @@ interface ApiInterface { @GET("WebApi/api/GetBankDetailsFromIFSC?") suspend fun getIFSCDetailsApi(@Query("ifsc") ifsc : String,@Header("token") token: String): Response + + @POST("WebApi_Bajaj/GetCodes") + suspend fun payModeApi( + @Body getCodeRequest: GetCodeRequest, + @Header("token") token: String + ): Response + } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt index 276b718..fac88a3 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt @@ -4,7 +4,7 @@ import com.nivesh.production.bajajfd.model.CreateFDRequest interface BajajFDInterface { fun stepOneApi(data: String?) - fun stepTwoApi(data: String?) + fun stepTwoApi(data: CreateFDRequest) fun stepThreeApi(data: String?) fun stepFourApi(data: String?) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt new file mode 100644 index 0000000..3465640 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/CreateFDApplicationResponse.kt @@ -0,0 +1,5 @@ +package com.nivesh.production.bajajfd.model + +data class CreateFDApplicationResponse( + val Response: ResponseXXXXXXXXXXX +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt new file mode 100644 index 0000000..2d4524c --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/FDCreationDetailsResponse.kt @@ -0,0 +1,7 @@ +package com.nivesh.production.bajajfd.model + +data class FDCreationDetailsResponse( + val DocumentUploadFlag: Int, + val UniqueId: String, + val kycFlag: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt new file mode 100644 index 0000000..0653d1d --- /dev/null +++ b/app/src/main/java/com/nivesh/production/bajajfd/model/ResponseXXXXXXXXXXX.kt @@ -0,0 +1,9 @@ +package com.nivesh.production.bajajfd.model + +data class ResponseXXXXXXXXXXX( + val Errors: Any, + val FDCreationDetailsResponse: FDCreationDetailsResponse, + val Message: String, + val Status: String, + val StatusCode: Int +) \ 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 cdcad03..4dcb559 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 @@ -82,4 +82,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun ifscCodeDetailsCheck(str: String, token: String) = apiInterface.getIFSCDetailsApi(str, token) + + suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = + apiInterface.payModeApi(getCodeRequest, token) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index 6f85e42..2b41fd8 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -44,6 +44,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { var nomineeGuardianDetails: NomineeGuardianDetails var getClientDetailsResponse: getClientDetailsResponse + var stepCount : Int = 0 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() @@ -127,6 +129,7 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { stepsCountResponse.Response.StatusCode.let { code -> when (code) { 200 -> { + stepCount = stepsCountResponse.Response.StepsCount getClientDetailsApi(stepsCountResponse.Response.StepsCount) // setViewPager(stepsCountResponse.Response.StepsCount) } @@ -308,14 +311,23 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { } // step 2 response - override fun stepTwoApi(data: String?) { + override fun stepTwoApi(data: CreateFDRequest) { Log.e("stepTwoApi", " response ---> $data") - binding.viewPager.currentItem = 2 + + if (stepCount == 4) { + binding.viewPager.currentItem = 2 + }else{ + // call create fd api + } + } // step 3 response override fun stepThreeApi(data: String?) { Log.e("stepThreeApi", " response ---> $data") + // call create fd api + + // StepFourBajajFDFragment.getInstance().getCreateFDResponse() binding.viewPager.currentItem = 3 } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt index 903ca10..1a0f314 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFourBajajFDFragment.kt @@ -1,15 +1,23 @@ package com.nivesh.production.bajajfd.ui.fragment import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.google.gson.Gson import com.nivesh.production.bajajfd.R import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFourBinding import com.nivesh.production.bajajfd.interfaces.BajajFDInterface +import com.nivesh.production.bajajfd.model.GetCodeRequest +import com.nivesh.production.bajajfd.model.GetCodeResponse +import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity +import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.showDialogValidation +import com.nivesh.production.bajajfd.util.Constants +import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepFourBajajFDViewModel class StepFourBajajFDFragment : Fragment() { @@ -83,7 +91,88 @@ class StepFourBajajFDFragment : Fragment() { return root } - override fun onDestroyView() { + fun getCreateFDResponse() + { + + } + + private fun paymentModeApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetCodeRequest() + getCodeRequest.ProductName = getString(R.string.bajajFD) + getCodeRequest.Category = getString(R.string.genderCategory) + getCodeRequest.Language = getString(R.string.language) + getCodeRequest.InputValue = "" + stepFourBajajFDViewModel.paymentModeApi(getCodeRequest, Constants.token) + stepFourBajajFDViewModel.getPaymentModeMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + + } + + } + + private fun getFDDetailsApi() { + if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { + val getCodeRequest = GetRatesRequest() + stepFourBajajFDViewModel.getFDDetails(getCodeRequest, Constants.token) + stepFourBajajFDViewModel.getFDDetailsMutableData.observe(viewLifecycleOwner) { response -> + when (response) { + is Resource.Success -> { + Log.e("response", "-->$response") + val getCodeResponse: GetCodeResponse = + Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) + getCodeResponse.Response.StatusCode.let { code -> + when (code) { + 200 -> { + + } + // 650 -> refreshToken() + else -> {} + } + } + } + + is Resource.Error -> { + response.message?.let { message -> + Log.e(" ", "An error occurred:$message") + } + } + is Resource.Loading -> { + + } + } + } + + } + } + + + override fun onDestroyView() { super.onDestroyView() _binding = null } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index 592d33d..c30abc0 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -73,6 +73,7 @@ class StepOneBajajFDFragment : Fragment() { listOfMinAmount = ArrayList() listOfMaxAmount = ArrayList() listOfFrequency = ArrayList() + rgMaturity = RadioButton(activity as BajajFdMainActivity) // Amount binding.edtAmount.addTextChangedListener(object : TextWatcher { @@ -122,6 +123,7 @@ class StepOneBajajFDFragment : Fragment() { } // Maturity Options + rgMaturity.text = getString(R.string.additionalDetailOne) binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> rgMaturity = group.findViewById(checkedId) Log.e("Maturity", "-->" + rgMaturity.text) @@ -161,6 +163,7 @@ class StepOneBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdInvestmentDetails.CKYCNumber = "" (activity as BajajFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = (activity as BajajFdMainActivity).fdInvestmentDetails + Log.e("Maturity", "-->" + rgMaturity.text) bajajFDInterface.stepOneApi("stepOneResponse") } } 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 c58fdbb..1bf27b0 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 @@ -1,6 +1,5 @@ package com.nivesh.production.bajajfd.ui.fragment -import android.annotation.SuppressLint import android.app.DatePickerDialog import android.app.Dialog import android.os.Bundle @@ -52,7 +51,7 @@ class StepTwoBajajFDFragment : Fragment() { private lateinit var bajajFDInterface: BajajFDInterface private lateinit var rbBank: RadioButton - private var rbPaymentMode: RadioButton? = null + private lateinit var rbPaymentMode: RadioButton private var cal = Calendar.getInstance() private lateinit var listOfTitle: List @@ -99,6 +98,8 @@ class StepTwoBajajFDFragment : Fragment() { listOfStates = ArrayList() listOfIFSC = ArrayList() + rbPaymentMode = RadioButton(activity as BajajFdMainActivity) + // Personal Details binding.edtMobileNumber.filters = arrayOf(LengthFilter(10)) binding.edtPANNumber.filters = arrayOf(LengthFilter(10)) @@ -120,7 +121,9 @@ class StepTwoBajajFDFragment : Fragment() { binding.edtMobileNumber.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) // create an OnDateSetListener - binding.edtDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()){ + binding.edtDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.toString())) + } binding.edtDOB.setOnClickListener { removeError(binding.tlDOB) datePicker(binding.edtDOB) @@ -368,7 +371,9 @@ class StepTwoBajajFDFragment : Fragment() { } } - binding.edtNomineeDOB.setText((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB) + if (!(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeDOB.isNullOrEmpty()){ + binding.edtNomineeDOB.setText(getDate((activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get(0)?.NomineeDOB.toString())) + } binding.edtNomineeDOB.setOnClickListener { removeError(binding.tlNomineeDOB) datePicker(binding.edtNomineeDOB) @@ -505,9 +510,10 @@ class StepTwoBajajFDFragment : Fragment() { } } + rbPaymentMode.text = getString(R.string.Upi) binding.rgPaymentMode.setOnCheckedChangeListener { group, checkedId -> rbPaymentMode = group.findViewById(checkedId) - Log.e("paymentMode", "-->" + rbPaymentMode?.text) + Log.e("paymentMode", "-->" + rbPaymentMode.text) } binding.tvEligibleBankOption.setOnClickListener { @@ -674,7 +680,7 @@ class StepTwoBajajFDFragment : Fragment() { (activity as BajajFdMainActivity).fdBankDetails.BankName = bankListAdapter.getSelected()?.BankName (activity as BajajFdMainActivity).fdBankDetails.PaymentMode = - rbPaymentMode?.text.toString() + rbPaymentMode.text.toString() (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantDetails = (activity as BajajFdMainActivity).applicantDetails (activity as BajajFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = (activity as BajajFdMainActivity).applicantRelationDetails @@ -688,7 +694,7 @@ class StepTwoBajajFDFragment : Fragment() { "CreateFDRequest", "-->" + Gson().toJson((activity as BajajFdMainActivity).createFDRequest) ) - bajajFDInterface.stepTwoApi("stepTwoResponse") + bajajFDInterface.stepTwoApi((activity as BajajFdMainActivity).createFDRequest) } } @@ -852,7 +858,8 @@ class StepTwoBajajFDFragment : Fragment() { if (monthOfYear.toString().length == 1) { "0".plus(monthOfYear) } - edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) + // edtDOB.setText(getDate(dayOfMonth.toString() + "-" + (monthOfYear + 1) + "-" + years)) + edtDOB.setText(years.toString().plus("-").plus(monthOfYear + 1).plus("-").plus(dayOfMonth.toString())) edtDOB.setSelection(edtDOB.text.toString().length) }, year, month, day ) @@ -922,7 +929,6 @@ class StepTwoBajajFDFragment : Fragment() { } - @SuppressLint("ClickableViewAccessibility") private fun titleApi() { if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { val getCodeRequest = GetCodeRequest() 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 ef479b7..5cc34c9 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 @@ -175,9 +175,10 @@ class Common { } fun getDate(string :String): String { - val input = SimpleDateFormat("dd-MM-yyyy", Locale.US) + val input = SimpleDateFormat("dd/MM/yyyy", Locale.US) val mDate : Date? = input.parse(string) - val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + // val simpleDateFormat = SimpleDateFormat("dd MMM, yyyy", Locale.US) + val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) return simpleDateFormat.format(mDate as Date) } } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt index c1d13a1..7f55996 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepFourBajajFDViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.JsonObject +import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource @@ -11,8 +12,24 @@ import kotlinx.coroutines.launch class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - private val getRatesMutableData: MutableLiveData> = MutableLiveData() + val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() + fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch { + getPaymentModeMutableData.postValue(Resource.Loading()) + val response = mainRepository.payModeCheck(getCodeRequest, token) + getPaymentModeMutableData.postValue(handleRatesResponse(response)) + } + + val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() + fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { + getFDDetailsMutableData.postValue(Resource.Loading()) + val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) + getFDDetailsMutableData.postValue(handleRatesResponse(response)) + } + + + + private val getRatesMutableData: MutableLiveData> = MutableLiveData() fun saveFDOtherData(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) @@ -29,11 +46,7 @@ class StepFourBajajFDViewModel(private val mainRepository: MainRepository) : Vie } - fun getFDDetails(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleRatesResponse(response)) - } + fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token : String) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) diff --git a/app/src/main/res/layout/item_bank_list_preview.xml b/app/src/main/res/layout/item_bank_list_preview.xml index 885baf7..986c870 100644 --- a/app/src/main/res/layout/item_bank_list_preview.xml +++ b/app/src/main/res/layout/item_bank_list_preview.xml @@ -17,8 +17,8 @@