This is an automated email from the ASF dual-hosted git repository.
mridulpathak pushed a commit to branch release24.09
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release24.09 by this push:
new 50bd909bd4 Fixed: copyAgreement silent success when agreement does not
exist (OFBIZ-13559)
50bd909bd4 is described below
commit 50bd909bd45e5f9324e88d8f323aab53f2a57825
Author: Mridul Pathak <[email protected]>
AuthorDate: Thu Sep 10 23:17:34 2026 +0530
Fixed: copyAgreement silent success when agreement does not exist
(OFBIZ-13559)
Return an error response when agreementId does not resolve to an existing
Agreement instead of silently succeeding.
---
.../accounting/config/AccountingUiLabels.xml | 3 +
.../agreement/AgreementServicesScript.groovy | 102 +++++++++++----------
2 files changed, 55 insertions(+), 50 deletions(-)
diff --git a/applications/accounting/config/AccountingUiLabels.xml
b/applications/accounting/config/AccountingUiLabels.xml
index f4e0391f49..058c60e78a 100644
--- a/applications/accounting/config/AccountingUiLabels.xml
+++ b/applications/accounting/config/AccountingUiLabels.xml
@@ -673,6 +673,9 @@
<value xml:lang="zh">合同</value>
<value xml:lang="zh-TW">合約</value>
</property>
+ <property key="AccountingAgreementNotFound">
+ <value xml:lang="en">Agreement ${agreementId} not found</value>
+ </property>
<property key="AccountingAgreementAvailable">
<value xml:lang="ar">قائمة الإتفاقيات المتوفرة</value>
<value xml:lang="de">Liste verfügbarer Vereinbarungen</value>
diff --git
a/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/agreement/AgreementServicesScript.groovy
b/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/agreement/AgreementServicesScript.groovy
index 17f851cc63..cf6919141d 100644
---
a/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/agreement/AgreementServicesScript.groovy
+++
b/applications/accounting/src/main/groovy/org/apache/ofbiz/accounting/agreement/AgreementServicesScript.groovy
@@ -18,6 +18,7 @@
*/
package org.apache.ofbiz.accounting.agreement
+import org.apache.ofbiz.entity.GenericValue
import org.apache.ofbiz.service.ModelService
import org.apache.ofbiz.service.ServiceUtil
@@ -26,60 +27,61 @@ import org.apache.ofbiz.service.ServiceUtil
*/
Map copyAgreement() {
- agreement = from('Agreement').where('agreementId',
parameters.agreementId).queryOne()
- serviceResult = success()
- if (agreement) {
- Map createAgreementInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreement',
ModelService.IN_PARAM, agreement)
- result = run service: 'createAgreement', with: createAgreementInMap
- if (ServiceUtil.isError(result)) {
- return result
- }
- agreementIdTo = result.agreementId
- agreementItems = agreement.getRelated('AgreementItem', null, null,
false)
- agreementItems.each { agreementItem ->
- Map createAgreementItemInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementItem',
- ModelService.IN_PARAM, agreementItem)
- createAgreementItemInMap.agreementId = agreementIdTo
- result = run service: 'createAgreementItem', with:
createAgreementItemInMap
- }
- if (parameters.copyAgreementTerms == 'Y') {
- agreementTerms = agreement.getRelated('AgreementTerm', null, null,
false)
- agreementTerms.each { agreementTerm ->
- Map createAgreementTermInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementTerm',
- ModelService.IN_PARAM, agreementTerm)
- createAgreementTermInMap.agreementId = agreementIdTo
- createAgreementTermInMap.remove('agreementTermId')
- result = run service: 'createAgreementTerm', with:
createAgreementTermInMap
- }
+ GenericValue agreement = from('Agreement').where(parameters).queryOne()
+ if (!agreement) {
+ return error(label('AccountingUiLabels',
'AccountingAgreementNotFound', parameters))
+ }
+ Map serviceResult = success()
+ Map createAgreementInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreement',
ModelService.IN_PARAM, agreement)
+ Map result = run service: 'createAgreement', with: createAgreementInMap
+ if (ServiceUtil.isError(result)) {
+ return result
+ }
+ String agreementIdTo = result.agreementId
+ List agreementItems = agreement.getRelated('AgreementItem', null, null,
false)
+ agreementItems.each { agreementItem ->
+ Map createAgreementItemInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementItem',
+ ModelService.IN_PARAM, agreementItem)
+ createAgreementItemInMap.agreementId = agreementIdTo
+ result = run service: 'createAgreementItem', with:
createAgreementItemInMap
+ }
+ if (parameters.copyAgreementTerms == 'Y') {
+ List agreementTerms = agreement.getRelated('AgreementTerm', null,
null, false)
+ agreementTerms.each { agreementTerm ->
+ Map createAgreementTermInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementTerm',
+ ModelService.IN_PARAM, agreementTerm)
+ createAgreementTermInMap.agreementId = agreementIdTo
+ createAgreementTermInMap.remove('agreementTermId')
+ result = run service: 'createAgreementTerm', with:
createAgreementTermInMap
}
- if (parameters.copyAgreementProducts == 'Y') {
- agreementProductAppls =
agreement.getRelated('AgreementProductAppl', null, null, false)
- agreementProductAppls.each { agreementProductAppl ->
- Map createAgreementProductApplInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementProductAppl',
- ModelService.IN_PARAM, agreementProductAppl)
- createAgreementProductApplInMap.agreementId = agreementIdTo
- result = run service: 'createAgreementProductAppl', with:
createAgreementProductApplInMap
- }
+ }
+ if (parameters.copyAgreementProducts == 'Y') {
+ List agreementProductAppls =
agreement.getRelated('AgreementProductAppl', null, null, false)
+ agreementProductAppls.each { agreementProductAppl ->
+ Map createAgreementProductApplInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementProductAppl',
+ ModelService.IN_PARAM, agreementProductAppl)
+ createAgreementProductApplInMap.agreementId = agreementIdTo
+ result = run service: 'createAgreementProductAppl', with:
createAgreementProductApplInMap
}
- if (parameters.copyAgreementFacilities == 'Y') {
- agreementFacilityAppls =
agreement.getRelated('AgreementFacilityAppl', null, null, false)
- agreementFacilityAppls.each { agreementFacilityAppl ->
- Map createAgreementFacilityApplInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementFacilityAppl',
- ModelService.IN_PARAM, agreementFacilityAppl)
- createAgreementFacilityApplInMap.agreementId = agreementIdTo
- result = run service: 'createAgreementFacilityAppl', with:
createAgreementFacilityApplInMap
- }
+ }
+ if (parameters.copyAgreementFacilities == 'Y') {
+ List agreementFacilityAppls =
agreement.getRelated('AgreementFacilityAppl', null, null, false)
+ agreementFacilityAppls.each { agreementFacilityAppl ->
+ Map createAgreementFacilityApplInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementFacilityAppl',
+ ModelService.IN_PARAM, agreementFacilityAppl)
+ createAgreementFacilityApplInMap.agreementId = agreementIdTo
+ result = run service: 'createAgreementFacilityAppl', with:
createAgreementFacilityApplInMap
}
- if (parameters.copyAgreementParties == 'Y') {
- agreementPartyApplics =
agreement.getRelated('AgreementPartyApplic', null, null, false)
- agreementPartyApplics.each { agreementPartyApplic ->
- Map createAgreementPartyApplicInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementPartyApplic',
- ModelService.IN_PARAM, agreementPartyApplic)
- createAgreementPartyApplicInMap.agreementId = agreementIdTo
- result = run service: 'createAgreementPartyApplic', with:
createAgreementPartyApplicInMap
- }
+ }
+ if (parameters.copyAgreementParties == 'Y') {
+ List agreementPartyApplics =
agreement.getRelated('AgreementPartyApplic', null, null, false)
+ agreementPartyApplics.each { agreementPartyApplic ->
+ Map createAgreementPartyApplicInMap =
dispatcher.getDispatchContext().makeValidContext('createAgreementPartyApplic',
+ ModelService.IN_PARAM, agreementPartyApplic)
+ createAgreementPartyApplicInMap.agreementId = agreementIdTo
+ result = run service: 'createAgreementPartyApplic', with:
createAgreementPartyApplicInMap
}
- serviceResult.agreementId = agreementIdTo
}
+ serviceResult.agreementId = agreementIdTo
return serviceResult
}