diff --git a/kraken-app/kraken-app-hub/src/test/resources/expected/expected-9-quote.uni.add.sync.json b/kraken-app/kraken-app-hub/src/test/resources/expected/expected-9-quote.uni.add.sync.json
index cdde7155..24d8d2be 100644
--- a/kraken-app/kraken-app-hub/src/test/resources/expected/expected-9-quote.uni.add.sync.json
+++ b/kraken-app/kraken-app-hub/src/test/resources/expected/expected-9-quote.uni.add.sync.json
@@ -8,7 +8,7 @@
"product": "${mefRequestBody.quoteItem[0].product}",
"action": "add",
"id": "${mefRequestBody.quoteItem[0].id}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value==''?'unableToProvide':'approved.orderable'))",
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value=='')or(T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value)<0)?'unableToProvide':'approved.orderable'))",
"quoteItemTerm": "${T(java.util.Arrays).asList(mefRequestBody.quoteItem[0].requestedQuoteItemTerm)}",
"quoteItemPrice": [
{
@@ -37,5 +37,5 @@
"instantSyncQuote": "${mefRequestBody[instantSyncQuote]?:''}",
"requestedQuoteCompletionDate": "${mefRequestBody[requestedQuoteCompletionDate]?:''}",
"quoteLevel": "${mefRequestBody.buyerRequestedQuoteLevel}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value==''?'unableToProvide':'approved.orderable'))"
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value=='')or(T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value)<0)?'unableToProvide':'approved.orderable'))"
}
\ No newline at end of file
diff --git a/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.eline.add.sync.yaml b/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.eline.add.sync.yaml
index 9c4e6f50..84de68e0 100644
--- a/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.eline.add.sync.yaml
+++ b/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.eline.add.sync.yaml
@@ -31,7 +31,7 @@ spec:
"product": "${mefRequestBody.quoteItem[0].product}",
"action": "add",
"id": "${mefRequestBody.quoteItem[0].id}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))",
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))",
"quoteItemTerm": "${T(java.util.Arrays).asList(mefRequestBody.quoteItem[0].requestedQuoteItemTerm)}",
"quoteItemPrice": [{
"unitOfMeasure":"",
@@ -57,5 +57,5 @@ spec:
"instantSyncQuote":"${mefRequestBody[instantSyncQuote]?:''}",
"requestedQuoteCompletionDate": "${mefRequestBody[requestedQuoteCompletionDate]?:''}",
"quoteLevel": "${mefRequestBody.buyerRequestedQuoteLevel}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))"
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))"
}
\ No newline at end of file
diff --git a/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.uni.add.sync.yaml b/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.uni.add.sync.yaml
index d7d7ffca..097279f1 100644
--- a/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.uni.add.sync.yaml
+++ b/kraken-app/kraken-app-hub/src/test/resources/mock/api-targets/api-target.quote.uni.add.sync.yaml
@@ -33,7 +33,7 @@ spec:
"product": "${mefRequestBody.quoteItem[0].product}",
"action": "add",
"id": "${mefRequestBody.quoteItem[0].id}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))",
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))",
"quoteItemTerm": "${T(java.util.Arrays).asList(mefRequestBody.quoteItem[0].requestedQuoteItemTerm)}",
"quoteItemPrice": [{
"unitOfMeasure":"",
@@ -60,5 +60,5 @@ spec:
"instantSyncQuote":"${mefRequestBody[instantSyncQuote]?:''}",
"requestedQuoteCompletionDate": "${mefRequestBody[requestedQuoteCompletionDate]?:''}",
"quoteLevel": "${mefRequestBody.buyerRequestedQuoteLevel}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))"
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))"
}
\ No newline at end of file
diff --git a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.eline.add.sync.yaml b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.eline.add.sync.yaml
index 9c4e6f50..84de68e0 100644
--- a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.eline.add.sync.yaml
+++ b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.eline.add.sync.yaml
@@ -31,7 +31,7 @@ spec:
"product": "${mefRequestBody.quoteItem[0].product}",
"action": "add",
"id": "${mefRequestBody.quoteItem[0].id}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))",
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))",
"quoteItemTerm": "${T(java.util.Arrays).asList(mefRequestBody.quoteItem[0].requestedQuoteItemTerm)}",
"quoteItemPrice": [{
"unitOfMeasure":"",
@@ -57,5 +57,5 @@ spec:
"instantSyncQuote":"${mefRequestBody[instantSyncQuote]?:''}",
"requestedQuoteCompletionDate": "${mefRequestBody[requestedQuoteCompletionDate]?:''}",
"quoteLevel": "${mefRequestBody.buyerRequestedQuoteLevel}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))"
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))"
}
\ No newline at end of file
diff --git a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.uni.add.sync.yaml b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.uni.add.sync.yaml
index 6cd539f1..b80865da 100644
--- a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.uni.add.sync.yaml
+++ b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/api-targets/api-target.quote.uni.add.sync.yaml
@@ -33,7 +33,7 @@ spec:
"product": "${mefRequestBody.quoteItem[0].product}",
"action": "add",
"id": "${mefRequestBody.quoteItem[0].id}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))",
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))",
"quoteItemTerm": "${T(java.util.Arrays).asList(mefRequestBody.quoteItem[0].requestedQuoteItemTerm)}",
"quoteItemPrice": [{
"unitOfMeasure":"",
@@ -60,5 +60,5 @@ spec:
"instantSyncQuote":"${mefRequestBody[instantSyncQuote]?:''}",
"requestedQuoteCompletionDate": "${mefRequestBody[requestedQuoteCompletionDate]?:''}",
"quoteLevel": "${mefRequestBody.buyerRequestedQuoteLevel}",
- "state": "((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '' ? 'unableToProvide': 'approved.orderable'))"
+ "state": "(((mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value == '') or (T(java.lang.Double).parseDouble(mefResponseBody.quoteItem[0].quoteItemPrice[0].price.dutyFreeAmount.value) < 0)? 'unableToProvide': 'approved.orderable'))"
}
\ No newline at end of file
diff --git a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/product.yaml b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/product.yaml
index 8dbd6333..5cb5f92c 100644
--- a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/product.yaml
+++ b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/product.yaml
@@ -98,7 +98,7 @@ spec:
- classpath:/mef-sonata/mapping-matrix/mapping.matrix.inventory.eline.read.yaml
- classpath:/mef-sonata/mapping-matrix/mapping.matrix.inventory.uni.list.yaml
- classpath:/mef-sonata/mapping-matrix/mapping.matrix.inventory.eline.list.yaml
- - classpath:/mef-sonata/template-upgrade/release.1.5.16.yaml
+ - classpath:/mef-sonata/template-upgrade/release.1.5.17.yaml
templateUpgradePaths:
diff --git a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.16.yaml b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.16.yaml
deleted file mode 100644
index 6fbaa1b8..00000000
--- a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.16.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-kind: kraken.product.template-upgrade
-apiVersion: v1
-metadata:
- key: kraken.product.template-upgrade.1.5.16
- name: V1.5.16
- labels:
- productSpec: grace
- productVersion: V1.5.16
- publishDate: 2024-11-18
- description: |
- Removed the constant validation of the place.@type for creating UNI order
- version: 2
\ No newline at end of file
diff --git a/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.17.yaml b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.17.yaml
new file mode 100644
index 00000000..513c87d4
--- /dev/null
+++ b/kraken-java-sdk/kraken-java-sdk-mef/src/main/resources/mef-sonata/template-upgrade/release.1.5.17.yaml
@@ -0,0 +1,13 @@
+---
+kind: kraken.product.template-upgrade
+apiVersion: v1
+metadata:
+ key: kraken.product.template-upgrade.1.5.17
+ name: V1.5.17
+ labels:
+ productSpec: grace
+ productVersion: V1.5.17
+ publishDate: 2024-11-20
+ description: |
+ Added negative validation for price value in quote list
+ version: 2
\ No newline at end of file
diff --git a/kraken-java-sdk/pom.xml b/kraken-java-sdk/pom.xml
index 499b4508..7e17aaf6 100644
--- a/kraken-java-sdk/pom.xml
+++ b/kraken-java-sdk/pom.xml
@@ -6,7 +6,6 @@
kraken-java-sdk
kraken-java-sdk
1.0.0-rc.0
-
pom
com.consoleconnect.kraken