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 - - - - - - - -