| <?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" |
| xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd"> |
| <simple-method method-name="createCustomerDigitalDownloadProduct" short-description="createCustomerDigitalDownloadProduct"> |
| <now-timestamp field="nowTimestamp"/> |
| |
| <make-value value-field="createProductMap" entity-name="Product"/> |
| <sequenced-id sequence-name="Product" field="createProductMap.productId"/> |
| <set field="productId" from-field="createProductMap.productId"/> |
| |
| <set field="createProductMap.productName" from-field="parameters.productName"/> |
| <set field="createProductMap.internalName" from-field="parameters.productName"/> |
| <set field="createProductMap.description" from-field="parameters.description"/> |
| <set field="createProductMap.productTypeId" value="DIGITAL_GOOD"/> |
| <create-value value-field="createProductMap"/> |
| |
| <make-value value-field="createProductPriceMap" entity-name="ProductPrice"/> |
| <set field="createProductPriceMap.productId" from-field="productId"/> |
| <set field="createProductPriceMap.productPriceTypeId" value="DEFAULT_PRICE"/> |
| <set field="createProductPriceMap.productPricePurposeId" value="PURCHASE"/> |
| <set field="createProductPriceMap.currencyUomId" from-field="parameters.currencyUomId" default-value="USD"/> |
| <set field="createProductPriceMap.productStoreGroupId" value="_NA_"/> |
| <set field="createProductPriceMap.fromDate" from-field="nowTimestamp"/> |
| <set field="createProductPriceMap.price" from-field="parameters.price"/> |
| <create-value value-field="createProductPriceMap"/> |
| |
| <make-value value-field="createProductSupplierMap" entity-name="SupplierProduct"/> |
| <set field="createProductSupplierMap.productId" from-field="productId"/> |
| <set field="createProductSupplierMap.partyId" from-field="userLogin.partyId"/> |
| <set field="createProductSupplierMap.currencyUomId" from-field="parameters.currencyUomId" default-value="USD"/> |
| <set field="createProductSupplierMap.minimumOrderQuantity" value="1" type="BigDecimal"/> |
| <set field="createProductSupplierMap.availableFromDate" from-field="nowTimestamp"/> |
| <create-value value-field="createProductSupplierMap"/> |
| |
| <field-to-result field="productId"/> |
| <field-to-result field="createProductSupplierMap.currencyUomId" result-name="currencyUomId"/> |
| <field-to-result field="createProductSupplierMap.minimumOrderQuantity" result-name="minimumOrderQuantity"/> |
| <field-to-result field="createProductSupplierMap.availableFromDate" result-name="availableFromDate"/> |
| |
| <!-- create association with ProductStore.digProdUploadCategoryId --> |
| <entity-one entity-name="ProductStore" value-field="productStore"/> |
| <if-not-empty field="productStore.digProdUploadCategoryId"> |
| <make-value value-field="addProductToCategoryMap" entity-name="ProductCategoryMember"/> |
| <set field="addProductToCategoryMap.productId" from-field="productId"/> |
| <set field="addProductToCategoryMap.productCategoryId" from-field="productStore.digProdUploadCategoryId"/> |
| <create-value value-field="addProductToCategoryMap"/> |
| </if-not-empty> |
| </simple-method> |
| <simple-method method-name="updateCustomerDigitalDownloadProduct" short-description="updateCustomerDigitalDownloadProduct"> |
| <now-timestamp field="nowTimestamp"/> |
| |
| <!-- make sure SupplierProduct exists for userLogin.partyId --> |
| <set field="parameters.partyId" from-field="userLogin.partyId"/> |
| <entity-one entity-name="SupplierProduct" value-field="supplierProduct"/> |
| |
| <if-empty field="supplierProduct"> |
| <add-error> |
| <fail-property resource="ProductUiLabels" property="ProductMustBeAssociatedWithSupplier"/> |
| </add-error> |
| </if-empty> |
| <check-errors/> |
| |
| <!-- update productName/description --> |
| <if> |
| <condition> |
| <or> |
| <not><if-empty field="parameters.productName"></if-empty></not> |
| <not><if-empty field="parameters.description"></if-empty></not> |
| </or> |
| </condition> |
| <then> |
| <entity-one entity-name="Product" value-field="product"/> |
| <set field="product.productName" from-field="parameters.productName" set-if-empty="false"/> |
| <set field="product.description" from-field="parameters.description" set-if-empty="false"/> |
| <store-value value-field="product"/> |
| </then> |
| </if> |
| |
| <!-- update price --> |
| <if-not-empty field="parameters.price"> |
| <entity-and entity-name="ProductPrice" list="productPriceList"> |
| <field-map field-name="productId" from-field="parameters.productId"/> |
| <field-map field-name="productPriceTypeId" value="DEFAULT_PRICE"/> |
| <field-map field-name="productPricePurposeId" value="PURCHASE"/> |
| <field-map field-name="productStoreGroupId" value="_NA_"/> |
| </entity-and> |
| <!-- should just be one --> |
| <first-from-list entry="productPrice" list="productPriceList"/> |
| <set field="productPrice.price" from-field="parameters.price"/> |
| <store-value value-field="productPrice"/> |
| </if-not-empty> |
| </simple-method> |
| <simple-method method-name="deleteCustomerDigitalDownloadProduct" short-description="deleteCustomerDigitalDownloadProduct"> |
| <now-timestamp field="nowTimestamp"/> |
| |
| <!-- make sure SupplierProduct exists for userLogin.partyId --> |
| <entity-and entity-name="SupplierProduct" list="supplierProductList"> |
| <field-map field-name="productId" from-field="parameters.productId"/> |
| <field-map field-name="partyId" from-field="userLogin.partyId"/> |
| </entity-and> |
| |
| <if-empty field="supplierProductList"> |
| <add-error> |
| <fail-property resource="ProductUiLabels" property="ProductMustBeAssociatedWithSupplier"/> |
| </add-error> |
| </if-empty> |
| <check-errors/> |
| |
| <!-- keep the product around, just expire SupplierProduct and ProductCategoryMember records --> |
| <iterate entry="supplierProduct" list="supplierProductList"> |
| <set field="supplierProduct.availableThruDate" from-field="nowTimestamp"/> |
| <store-value value-field="supplierProduct"/> |
| </iterate> |
| |
| <entity-and entity-name="ProductCategoryMember" list="productCategoryMemberList"> |
| <field-map field-name="productId"/> |
| </entity-and> |
| <iterate entry="productCategoryMember" list="productCategoryMemberList"> |
| <set field="productCategoryMember.thruDate" from-field="nowTimestamp"/> |
| <store-value value-field="productCategoryMember"/> |
| </iterate> |
| </simple-method> |
| |
| <simple-method method-name="addCustomerDigitalDownloadProductFile" short-description="addCustomerDigitalDownloadProductFile"> |
| <now-timestamp field="nowTimestamp"/> |
| |
| <!-- make sure SupplierProduct exists for userLogin.partyId --> |
| <entity-and entity-name="SupplierProduct" list="supplierProductList"> |
| <field-map field-name="productId" from-field="parameters.productId"/> |
| <field-map field-name="partyId" from-field="userLogin.partyId"/> |
| </entity-and> |
| <if-empty field="supplierProductList"> |
| <add-error> |
| <fail-property resource="ProductUiLabels" property="ProductMustBeAssociatedWithSupplier"/> |
| </add-error> |
| </if-empty> |
| |
| <!-- make sure there is a ContentRole for userLogin.partyId and parameters.contentId and roleTypeId=OWNER --> |
| <entity-and entity-name="ContentRole" list="contentRoleList"> |
| <field-map field-name="partyId" from-field="userLogin.partyId"/> |
| <field-map field-name="contentId" from-field="parameters.contentId"/> |
| <field-map field-name="roleTypeId" value="OWNER"/> |
| </entity-and> |
| <if-empty field="contentRoleList"> |
| <add-error> |
| <fail-property resource="ProductUiLabels" property="ProductCannotAssociatedToContent"/> |
| </add-error> |
| </if-empty> |
| |
| <check-errors/> |
| |
| <make-value value-field="productContent" entity-name="ProductContent"/> |
| <set field="productContent.productId" from-field="parameters.productId"/> |
| <set field="productContent.contentId" from-field="parameters.contentId"/> |
| <set field="productContent.productContentTypeId" value="DIGITAL_DOWNLOAD"/> |
| <set field="productContent.fromDate" from-field="nowTimestamp"/> |
| <create-value value-field="productContent"/> |
| </simple-method> |
| <simple-method method-name="removeCustomerDigitalDownloadProductFile" short-description="removeCustomerDigitalDownloadProductFile"> |
| <now-timestamp field="nowTimestamp"/> |
| |
| <!-- make sure SupplierProduct exists for userLogin.partyId --> |
| <entity-and entity-name="SupplierProduct" list="supplierProductList"> |
| <field-map field-name="productId" from-field="parameters.productId"/> |
| <field-map field-name="partyId" from-field="userLogin.partyId"/> |
| </entity-and> |
| |
| <if-empty field="supplierProductList"> |
| <add-error> |
| <fail-property resource="ProductUiLabels" property="ProductMustBeAssociatedWithSupplier"/> |
| </add-error> |
| </if-empty> |
| <check-errors/> |
| |
| <entity-one entity-name="ProductContent" value-field="productContent"/> |
| <set field="productContent.thruDate" from-field="nowTimestamp"/> |
| <store-value value-field="productContent"/> |
| </simple-method> |
| </simple-methods> |