diff --git a/applications/order/config/OrderErrorUiLabels.xml b/applications/order/config/OrderErrorUiLabels.xml
index 941e334e8f57cb88f4f1adebd590b0a6be38f8eb..f65542374ce3f5f44798dc92884744a06aa8f0d5 100644
--- a/applications/order/config/OrderErrorUiLabels.xml
+++ b/applications/order/config/OrderErrorUiLabels.xml
@@ -4020,22 +4020,6 @@
安全错误:要运行 createQuoteItem,你必须具有 ORDERMGR_CREATE 或 ORDERMGR_ADMIN 权限
安全錯誤:要運行 createQuoteItem,你必須具有 ORDERMGR_CREATE 或 ORDERMGR_ADMIN 權限
-
- خطأ أمني: لتشغيل createRequirementFromItemATP يجب أن يكون لديك صلاحية ORDERMGR_CREATE أو ORDERMGR_ADMIN
- Berechtigungsfehler: Um 'createRequirementFromItemATP' auszuführen müssen Sie die ORDERMGR_CREATE oder ORDERMGR_ADMIN Berechtigungen haben
- Security Error: to run createRequirementFromItemATP you must have the ORDERMGR_CREATE or ORDERMGR_ADMIN permission
- Error de seguridad: Para ejecutar createRequirementFromItemATP debe contar con los permisos ORDERMGR_CREATE o ORDERMGR_ADMIN
- Erreur de sécurité : pour exécuter createRequirementFromItemATP, vous devez avoir l'autorisation d'administrer ou de créer la commande
- Errore Sicurezza : per eseguire createRequirementFromItemATP tu devi avere il permesso ORDERMGR_CREATE o ORDERMGR_ADMIN
- セキュリティエラー: createRequirementFromItemATPの実行には ORDERMGR_CREATE または ORDERMGR_ADMIN 権限が必要です
- Erro de segurança: para rodar createRequirementFromItemATP você deve ter a permissão ORDERMGR_CREATE ou ORDERMGR_ADMIN
- Eroare Siguranta : pentru executarea createRequirementFromItemATP tu trebuie sa ai permisul ORDERMGR_CREATE sau ORDERMGR_ADMIN
- Ошибка безопасности: для выполнения createRequirementFromItemATP у вас должны быть права ORDERMGR_CREATE или ORDERMGR_ADMIN
- Security Error: ความปลอดภัยผิดพลาด ! ถึงการดำเนินการ createRequirementFromItemATP คุณต้องมี ORDERMGR_CREATE หรือ ORDERMGR_ADMIN อนุญาต
- Lỗi phân quyền: để thực thi dịch vụ createRequirementFromItemATP bạn cần có quyền ORDERMGR_CREATE hoặc ORDERMGR_ADMIN
- 安全错误:要运行 createRequirementFromItemATP,你必须具有 ORDERMGR_CREATE 或 ORDERMGR_ADMIN 权限
- 安全錯誤:要運行 createRequirementFromItemATP,你必須具有 ORDERMGR_CREATE 或 ORDERMGR_ADMIN 權限
-
خطأ أمني: لتشغيل createReturnHeader يجب أن يكون لديك صلاحية ORDERMGR_CREATE أو ORDERMGR_ADMIN
Berechtigungsfehler: Um 'createReturnHeader' auszuführen müssen Sie die ORDERMGR_CREATE oder ORDERMGR_ADMIN Berechtigungen haben
diff --git a/applications/order/groovyScripts/order/OrderRequirementServices.groovy b/applications/order/groovyScripts/order/OrderRequirementServices.groovy
new file mode 100644
index 0000000000000000000000000000000000000000..8dbafd66cb80149f125eb5f0bf2bdfc54213786e
--- /dev/null
+++ b/applications/order/groovyScripts/order/OrderRequirementServices.groovy
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+import org.apache.ofbiz.entity.GenericValue
+
+/*
+ * Create OrderRequirementCommitment and Requirement for items with automatic requirement upon ordering
+ */
+def checkCreateOrderRequirement() {
+ def reqMap = getProductRequirementMethod()
+ GenericValue order = reqMap.order
+ if (order.orderTypeId == 'SALES_ORDER' && reqMap.requirementMethodId == 'PRODRQM_AUTO') {
+ createRequirementAndCommitment()
+ }
+ success()
+}
+
+def getProductRequirementMethod() {
+ GenericValue order = from('OrderHeader').where(parameters).queryOne()
+ GenericValue product = from('Product').where(parameters).queryOne()
+ String requirementMethodId = product ? product.requirementMethodId : ''
+ if (!requirementMethodId && product) {
+ boolean isMarketingPkg = EntityTypeUtil.hasParentType(delegator, 'ProductType', 'productTypeId',
+ product.productTypeId, 'parentTypeId', 'MARKETING_PKG')
+ if (!isMarketingPkg && product.productTypeId != 'DIGITAL_GOOD' && order) {
+ productStore = from('ProductStore').where(productStoreId: order.productStoreId).queryOne()
+ requirementMethodId = productStore ? productStore.requirementMethodEnumId : ''
+ }
+ }
+ return [order: order, requirementMethodId: requirementMethodId]
+
+}
+
+/*
+ * create a requirement and commitment for it
+ */
+def createRequirementAndCommitment() {
+ Map createRequirement = [requirementTypeId: 'PRODUCT_REQUIREMENT']
+ Map returnMap = success()
+
+ GenericValue order = from('OrderHeader').where(orderId: orderId).queryOne()
+ if (order) {
+ GenericValue productStore = from('ProductStore').where(productStoreId: order.productStoreId).queryOne()
+ if (productStore.inventoryFacilityId) {
+ createRequirement.facilityId = productStore.inventoryFacilityId
+ }
+ Map result = run service: 'createRequirement', with: createRequirement
+ returnMap.requirementId = result.requirementId
+ // create the OrderRequirementCommitment to record the Requirement created for an order item
+
+ run service: 'createOrderRequirementCommitment', with: [*:parameters, requirementId: result.requirementId]
+ }
+ return returnMap
+}
+
diff --git a/applications/order/minilang/order/OrderServices.xml b/applications/order/minilang/order/OrderServices.xml
index 6906b735c65893756d082555271f40d88bcfd58d..f24b297dc9dbc99d1a230fe89e0282c7f3f0ff3b 100644
--- a/applications/order/minilang/order/OrderServices.xml
+++ b/applications/order/minilang/order/OrderServices.xml
@@ -22,27 +22,6 @@ under the License.
xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -86,22 +65,6 @@ under the License.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -202,85 +165,6 @@ under the License.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/applications/order/minilang/test/OrderTests.xml b/applications/order/minilang/test/OrderTests.xml
index 7800ab7adeaa3ca45a21ed778df73669411c8285..2d15880ab038da9bbcabab57a1f6017e92c26664 100644
--- a/applications/order/minilang/test/OrderTests.xml
+++ b/applications/order/minilang/test/OrderTests.xml
@@ -110,22 +110,6 @@ under the License.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -154,4 +138,4 @@ under the License.
-
\ No newline at end of file
+
diff --git a/applications/order/servicedef/services_requirement.xml b/applications/order/servicedef/services_requirement.xml
index a35edb6aa577d4a366e16b278539b74ee278da5f..4c1522b46d1ff25be5b9f033682981ecdb21b3e3 100644
--- a/applications/order/servicedef/services_requirement.xml
+++ b/applications/order/servicedef/services_requirement.xml
@@ -110,11 +110,14 @@ under the License.
-
+
Create OrderRequirementCommitment and Requirement for items with automatic requirement upon ordering
-
-
+
+
+
+
+
@@ -139,17 +142,6 @@ under the License.
-
- Create OrderRequirementCommitment and Requirement for items with requirement based on ATP stock levels
-
-
-
-
-
-
-
-