TP-63920 | Amc dynamic mandate uat bugs (#10530)

Co-authored-by: saksham <saksham>
This commit is contained in:
Saksham Mahajan
2024-04-17 22:07:05 +05:30
committed by GitHub
parent aa5a77b094
commit 4bccd5fe46
6 changed files with 44 additions and 13 deletions

View File

@@ -791,21 +791,29 @@ class FundBuyingFragmentV2 : AmcBaseFragment(), WidgetCallback {
var bottomSheetData: String? = null
val maxAutoPayLimit =
viewModel.fundBuyScreenData.value?.content?.maxAutoPayLimit
if (maxAutoPayLimit == null || (amount.toDouble() > maxAutoPayLimit.toSafeDouble())) {
bottomSheetData = viewModel.getBottomSheetData() ?: run {
viewModel.getSipBottomSheetData(
viewModel.fundBuyScreenData.value?.content?.isDynamicMandateEnabled?.let {
if (maxAutoPayLimit == null || (amount.toDouble() > maxAutoPayLimit.toSafeDouble())) {
sipWeeklyFortnightlyAction(
viewModel.getBottomSheetDataActionData() ?: null
)
return
} else {
bottomSheetData = viewModel.getSipBottomSheetData(
binding.sipAmount.widgetBinding.plainTextInput.text.toString(),
frequency,
binding.autopayCheckbox.checkbox.isChecked
)
}
} else {
} ?: run {
bottomSheetData = viewModel.getSipBottomSheetData(
binding.sipAmount.widgetBinding.plainTextInput.text.toString(),
frequency,
binding.autopayCheckbox.checkbox.isChecked
)
}
val bundle = Bundle().apply { putString(Constant.DATA, bottomSheetData) }
getBottomSheet(
SubPageStatusType.AMC_COMMON_BOTTOMSHEET,
@@ -869,22 +877,30 @@ class FundBuyingFragmentV2 : AmcBaseFragment(), WidgetCallback {
sipMonthlyAction(null)
} else {
var bottomSheetData: String? = null
val maxAutoPayLimit =
viewModel.fundBuyScreenData.value?.content?.maxAutoPayLimit
if (maxAutoPayLimit == null || (amount.toDouble() > maxAutoPayLimit.toSafeDouble())) {
bottomSheetData = viewModel.getBottomSheetData() ?: run {
viewModel.getSipBottomSheetData(
viewModel.fundBuyScreenData.value?.content?.isDynamicMandateEnabled?.let {
if (maxAutoPayLimit == null || (amount.toDouble() > maxAutoPayLimit.toSafeDouble())) {
sipMonthlyAction(
viewModel.getBottomSheetDataActionData() ?: null
)
return
} else {
bottomSheetData = viewModel.getSipBottomSheetData(
binding.sipAmount.widgetBinding.plainTextInput.text.toString(),
frequency,
binding.autopayCheckbox.checkbox.isChecked
)
}
} else
} ?: run {
bottomSheetData = viewModel.getSipBottomSheetData(
binding.sipAmount.widgetBinding.plainTextInput.text.toString(),
frequency,
binding.autopayCheckbox.checkbox.isChecked
)
}
val bundle = Bundle().apply { putString(Constant.DATA, bottomSheetData) }
getBottomSheet(

View File

@@ -40,9 +40,10 @@ data class FundBuyData(
@SerializedName("footerVariations") val footerVariations: Map<String, Footer>? = null,
@SerializedName("newFooterVariations") val newFooterVariations: Map<String, CardType>? = null,
@SerializedName("amountPageFooter") val amountPageFooter: CardType? = null,
@SerializedName("isManualVsAutopay") val isManualVsAutopay:Boolean? = null,
@SerializedName("sipAutoPayBottomSheetData") val sipAutoPayBottomSheetData:AmcCommonBottomSheetData? = null,
@SerializedName("maxAutoPayLimit") val maxAutoPayLimit:String? = null,
@SerializedName("isManualVsAutopay") val isManualVsAutopay: Boolean? = null,
@SerializedName("sipAutoPayBottomSheetData") val sipAutoPayBottomSheetData: AmcCommonBottomSheetData? = null,
@SerializedName("maxAutoPayLimit") val maxAutoPayLimit: String? = null,
@SerializedName("isDynamicMandateEnabled") val isDynamicMandateEnabled: Boolean? = null,
)
open class GenericFooter(

View File

@@ -186,6 +186,10 @@ class FundBuyV2ViewModel @Inject constructor(private val repository: FundBuyRepo
}
}
fun getBottomSheetDataActionData(): ActionData? {
return fundBuyScreenData.value?.content?.sipAutoPayBottomSheetData?.actionData
}
fun getLumpsumBottomSheetData(): String? {
return fundBuyScreenData.value?.content?.lumpsumCommonBottomSheet?.let {
gson.toJson(it, AmcCommonBottomSheetData::class.java)

View File

@@ -23,6 +23,8 @@ import com.navi.amc.databinding.ModifySipDetailsLayoutBinding
import com.navi.amc.fundbuy.fragments.SipCalendarFragment
import com.navi.amc.portfolio.models.ModifySipRequestDetails
import com.navi.amc.portfolio.viewmodels.ModifySipDetailsViewModel
import com.navi.amc.utils.AmcAnalytics
import com.navi.amc.utils.AmcAnalytics.ISIN
import com.navi.amc.utils.Constant
import com.navi.amc.utils.Constant.ACTION_PERFORMED
import com.navi.amc.utils.Constant.AMOUNT
@@ -132,6 +134,9 @@ class ModifySipDetailsFragment() : AmcBaseFragment(), WidgetCallback {
}
?: run { false }
it.terms?.let { binding.terms.setSpannableString(it) { navigation(it) } }
it.frequency?.let { viewModel.sipFrequency = it }
it.isin?.let { viewModel.isin = it }
}
it?.footer?.nextCta?.let { action ->
binding.footer.root.isVisible = true
@@ -160,13 +165,15 @@ class ModifySipDetailsFragment() : AmcBaseFragment(), WidgetCallback {
}
private fun navigate(action: ActionData) {
if (action.url?.contains(SubPageStatusType.AUTO_PAY_SETUP_V2).orFalse())
if (action.url?.contains(SubPageStatusType.AUTO_PAY_SETUP_V2).orFalse()){
arguments?.apply {
putString(AMOUNT, binding.sipAmount.getUserInputPostValidation())
putString(FREQUENCY, viewModel.sipFrequency)
putString(SIP_DATE, viewModel.selectedDate)
putString(AUTOPAY_LIMIT_MODIFIED, TRUE)
putString(AmcAnalytics.ISIN, viewModel.isin)
}
}
fragmentInterchangeListener?.navigateToNextScreen(action, arguments ?: Bundle())
}

View File

@@ -36,7 +36,9 @@ data class ModifySipDetails(
@SerializedName("maxAutoPayLimit")
val maxAutoPayLimit: String? = null,
@SerializedName("autoLimitModifyDetailsBottomSheet")
val bottomSheetData: AmcCommonBottomSheetData? = null
val bottomSheetData: AmcCommonBottomSheetData? = null,
@SerializedName("frequency") val frequency: String? = null,
@SerializedName("isin") val isin: String? = null
)
data class ModifySipRequestDetails(

View File

@@ -27,6 +27,7 @@ class ModifySipDetailsViewModel @Inject constructor(private val repository: Modi
var sipFrequency: String? = null
var selectedDate: String? = null
var isin: String? = null
fun fetchModifySipDetails(sipReferenceId: String) {
viewModelScope.launch {