| <?xml version="1.0" encoding="UTF-8" ?> |
| <!-- |
| 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. |
| --> |
| |
| <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> |
| <simple-method method-name="createRequirement" short-description="Create a new requirement"> |
| <make-value value-field="newEntity" entity-name="Requirement"/> |
| <sequenced-id sequence-name="Requirement" field="requirementId"/> |
| <set field="newEntity.requirementId" from-field="requirementId"/> |
| <set-nonpk-fields map="parameters" value-field="newEntity"/> |
| <if-empty field="parameters.statusId"> |
| <set value="REQ_CREATED" field="newEntity.statusId"/> |
| </if-empty> |
| <now-timestamp field="nowTimestamp"/> |
| <set field="newEntity.createdDate" from-field="nowTimestamp"/> |
| <set field="newEntity.lastModifiedDate" from-field="nowTimestamp"/> |
| <set field="newEntity.createdByUserLogin" from-field="userLogin.userLoginId"/> |
| <set field="newEntity.lastModifiedByUserLogin" from-field="userLogin.userLoginId"/> |
| <create-value value-field="newEntity"/> |
| <field-to-result field="requirementId" result-name="requirementId"/> |
| </simple-method> |
| |
| <simple-method method-name="updateRequirement" short-description="Update a requirement"> |
| <make-value value-field="lookupPKMap" entity-name="Requirement"/> |
| <set-pk-fields map="parameters" value-field="lookupPKMap"/> |
| <find-by-primary-key entity-name="Requirement" map="lookupPKMap" value-field="lookedUpValue"/> |
| <field-to-result field="lookedUpValue.statusId" result-name="oldStatusId"/> |
| <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> |
| <now-timestamp field="nowTimestamp"/> |
| <set field="newEntity.lastModifiedDate" from-field="nowTimestamp"/> |
| <set field="newEntity.lastModifiedByUserLogin" from-field="userLogin.userLoginId"/> |
| <store-value value-field="lookedUpValue"/> |
| </simple-method> |
| |
| <simple-method method-name="deleteRequirement" short-description="Delete a requirement"> |
| <entity-one entity-name="Requirement" value-field="requirement" auto-field-map="true"/> |
| <check-errors/> |
| <remove-related value-field="requirement" relation-name="RequirementRole"/> |
| <remove-related value-field="requirement" relation-name="RequirementCustRequest"/> |
| <remove-value value-field="requirement"/> |
| </simple-method> |
| |
| <simple-method method-name="associateRequirementWithRequestItem" short-description="Associate a requirement and CustRequestItem"> |
| <make-value value-field="newEntity" entity-name="RequirementCustRequest"/> |
| <set-pk-fields map="parameters" value-field="newEntity"/> |
| <set-nonpk-fields map="parameters" value-field="newEntity"/> |
| <create-value value-field="newEntity"/> |
| </simple-method> |
| |
| <simple-method method-name="addTaskToRequirement" short-description="Add a task to a requirement"> |
| <make-value value-field="newEntity" entity-name="WorkRequirementFulfillment"/> |
| <set-pk-fields map="parameters" value-field="newEntity"/> |
| <create-value value-field="newEntity"/> |
| </simple-method> |
| |
| <simple-method method-name="autoAssignRequirementToSupplier" short-description="If the requirement is a product requirement (purchasing) try to assign it to the primary supplier"> |
| <entity-one entity-name="Requirement" value-field="requirement" auto-field-map="true"/> |
| <check-errors/> |
| <if-compare field="requirement.requirementTypeId" operator="equals" value="PRODUCT_REQUIREMENT"> |
| <if-not-empty field="requirement.productId"> |
| <if-not-empty field="requirement.quantity"> |
| <entity-condition entity-name="SupplierProduct" list="supplierProducts"> |
| <condition-list> |
| <condition-expr field-name="productId" from-field="requirement.productId"/> |
| <condition-expr field-name="minimumOrderQuantity" operator="less-equals" from-field="requirement.quantity"/> |
| </condition-list> |
| <order-by field-name="lastPrice"/> |
| <order-by field-name="supplierPrefOrderId"/> |
| </entity-condition> |
| <filter-list-by-date list="supplierProducts" valid-date="requirement.requiredByDate" from-field-name="availableFromDate" thru-field-name="availableThruDate"/> |
| <first-from-list list="supplierProducts" entry="supplierProduct"/> |
| <if-not-empty field="supplierProduct.partyId"> |
| <make-value value-field="requirementSupplier" entity-name="RequirementRole"/> |
| <set field="requirementSupplier.requirementId" from-field="requirement.requirementId"/> |
| <set field="requirementSupplier.partyId" from-field="supplierProduct.partyId"/> |
| <set field="requirementSupplier.roleTypeId" value="SUPPLIER"/> |
| <now-timestamp field="requirementSupplier.fromDate"/> |
| <create-value value-field="requirementSupplier"/> |
| </if-not-empty> |
| </if-not-empty> |
| </if-not-empty> |
| </if-compare> |
| </simple-method> |
| |
| <!-- create a new RequirementRole --> |
| <simple-method method-name="createRequirementRole" short-description="Create a RequirementRole"> |
| <check-permission permission="ORDERMGR" action="_CREATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/> |
| </check-permission> |
| <check-errors/> |
| <set from-field="parameters.partyId" field="lookupPKMap.partyId"/> |
| <set from-field="parameters.roleTypeId" field="lookupPKMap.roleTypeId"/> |
| <find-by-primary-key entity-name="PartyRole" map="lookupPKMap" value-field="partyRole"/> |
| <if-empty field="partyRole.partyId"> |
| <check-permission permission="PARTYMGR" action="_CREATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/> |
| </check-permission> |
| <check-permission permission="PARTYMGR" action="_UPDATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/> |
| </check-permission> |
| <check-errors/> |
| <make-value value-field="partyRole" entity-name="PartyRole"/> |
| <set-pk-fields map="lookupPKMap" value-field="partyRole"/> |
| <create-value value-field="partyRole"/> |
| </if-empty> |
| <!-- create new entity and create all the fields --> |
| <make-value value-field="newEntity" entity-name="RequirementRole"/> |
| <set-pk-fields map="parameters" value-field="newEntity"/> |
| <set-nonpk-fields map="parameters" value-field="newEntity"/> |
| <if-empty field="newEntity.fromDate"> |
| <now-timestamp field="newEntity.fromDate"/> |
| </if-empty> |
| <create-value value-field="newEntity"/> |
| <check-errors/> |
| </simple-method> |
| |
| <!-- update an existing RequirementRole --> |
| <simple-method method-name="updateRequirementRole" short-description="Update an existing RequirementRole"> |
| <check-permission permission="ORDERMGR" action="_CREATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/></check-permission> |
| <check-errors/> |
| <entity-one entity-name="RequirementRole" value-field="requirementRole" auto-field-map="true"/> |
| <check-errors/> |
| <set-nonpk-fields map="parameters" value-field="requirementRole"/> |
| <store-value value-field="requirementRole"/> |
| <check-errors/> |
| </simple-method> |
| |
| <!-- remove an existing RequirementRole --> |
| <simple-method method-name="removeRequirementRole" short-description="Remove an existing RequirementRole"> |
| <check-permission permission="ORDERMGR" action="_CREATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/> |
| </check-permission> |
| <check-errors/> |
| <entity-one entity-name="RequirementRole" value-field="requirementRole" auto-field-map="true"/> |
| <check-errors/> |
| <remove-value value-field="requirementRole"/> |
| <check-errors/> |
| </simple-method> |
| |
| <simple-method method-name="createTransferFromRequirement" short-description="Create the inventory transfers required to fulfill the requirement."> |
| <check-permission permission="ORDERMGR" action="_CREATE"> |
| <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/> |
| </check-permission> |
| <check-errors/> |
| <entity-one entity-name="Requirement" value-field="requirement" auto-field-map="true"/> |
| <check-errors/> |
| <set field="inputMap.productId" from-field="requirement.productId"/> |
| <set field="inputMap.facilityId" from-field="parameters.fromFacilityId"/> |
| <set field="inputMap.facilityIdTo" from-field="requirement.facilityId"/> |
| <set field="inputMap.quantity" from-field="requirement.quantity"/> |
| <set field="inputMap.sendDate" from-field="requirement.requiredByDate"/> |
| <call-service service-name="createInventoryTransfersForProduct" in-map-name="inputMap"> |
| <result-to-field result-name="quantityNotTransferred" field="quantityNotTransferred"/> |
| </call-service> |
| <check-errors/> |
| <if-compare field="quantityNotTransferred" value="0.0" operator="greater" type="BigDecimal"> |
| <!-- we create a new requirement for the quantity not trasferred (because not available) --> |
| <clear-field field="inputMap"/> |
| <set-service-fields service-name="createRequirement" map="requirement" to-map="inputMap"/> |
| <set field="inputMap.quantity" from-field="quantityNotTransferred"/> |
| <call-service service-name="createRequirement" in-map-name="inputMap"/> |
| <check-errors/> |
| </if-compare> |
| <check-errors/> |
| <clear-field field="inputMap"/> |
| <set field="inputMap.requirementId" from-field="requirement.requirementId"/> |
| <set field="inputMap.statusId" value="REQ_ORDERED"/> |
| <call-service service-name="updateRequirement" in-map-name="inputMap"/> |
| </simple-method> |
| |
| </simple-methods> |