From 79eb9ed89436052448ee956e6accfe12208968c6 Mon Sep 17 00:00:00 2001 From: obaidgini Date: Mon, 29 Sep 2025 16:14:41 +0200 Subject: [PATCH 1/2] feat(bank-sdk): shifting the logic of transforming to separate method, because cognitive complexity was very high PP-1769 --- .../capture/digitalinvoice/DigitalInvoice.kt | 91 ++++++++++--------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt index d00b69719..e97df4e77 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt @@ -301,51 +301,7 @@ internal class DigitalInvoice( _compoundExtractions = compoundExtractions.mapValues { (name, extraction) -> when (name) { "lineItems" -> { - val cameraExtractions = - extraction.specificExtractionMaps.mapIndexed { index, lineItemExtractions -> - selectableLineItems.find { it.lineItem.id.toInt() == index } - ?.let { sli -> - val extractions = - lineItemExtractions.mapValues { (name, lineItemExtraction) -> - when (name) { - "description" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - sli.lineItem.description - ) - - "baseGross" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - sli.lineItem.rawGrossPrice - ) - - "quantity" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - if (sli.selected) { - sli.lineItem.quantity.toString() - } else { - "0" - } - ) - - else -> lineItemExtraction - } - }.toMutableMap() - sli.reason?.let { returnReason -> - extractions.put( - "returnReason", GiniCaptureSpecificExtraction( - "returnReason", - returnReason.id, - "", - null, - emptyList() - ) - ) - } - extractions - } - }.filterNotNull().toMutableList() - - + val cameraExtractions = transformLineItemExtractions(extraction) val userAddedExtractions = selectableLineItems.filter { it.addedByUser } .map { it.lineItem.asGiniExtractionMap() @@ -364,6 +320,51 @@ internal class DigitalInvoice( } } + private fun transformLineItemExtractions(extraction: GiniCaptureCompoundExtraction) : MutableList> { + return extraction.specificExtractionMaps.mapIndexed { index, lineItemExtractions -> + selectableLineItems.find { it.lineItem.id.toInt() == index } + ?.let { sli -> + val extractions = + lineItemExtractions.mapValues { (name, lineItemExtraction) -> + when (name) { + "description" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + sli.lineItem.description + ) + + "baseGross" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + sli.lineItem.rawGrossPrice + ) + + "quantity" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + if (sli.selected) { + sli.lineItem.quantity.toString() + } else { + "0" + } + ) + + else -> lineItemExtraction + } + }.toMutableMap() + sli.reason?.let { returnReason -> + extractions.put( + "returnReason", GiniCaptureSpecificExtraction( + "returnReason", + returnReason.id, + "", + null, + emptyList() + ) + ) + } + extractions + } + }.filterNotNull().toMutableList() + } + fun updateAmountToPayExtractionWithTotalPrice() { val totalPrice = getAmountToPay().toPriceString( selectableLineItems.firstOrNull()?.lineItem?.rawCurrency ?: "EUR" From 5027b0fea8bc11580d9f549bf955c9b5d858c3ea Mon Sep 17 00:00:00 2001 From: obaidgini Date: Mon, 29 Sep 2025 16:38:46 +0200 Subject: [PATCH 2/2] feat(bank-sdk): Removed extra space PP-1769 --- .../android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt index e97df4e77..a022555bf 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt @@ -320,7 +320,7 @@ internal class DigitalInvoice( } } - private fun transformLineItemExtractions(extraction: GiniCaptureCompoundExtraction) : MutableList> { + private fun transformLineItemExtractions(extraction: GiniCaptureCompoundExtraction): MutableList> { return extraction.specificExtractionMaps.mapIndexed { index, lineItemExtractions -> selectableLineItems.find { it.lineItem.id.toInt() == index } ?.let { sli ->