Author: adrianc
Date: Sat Sep 3 00:38:25 2011
New Revision: 1164773
URL: http://svn.apache.org/viewvc?rev=1164773&view=rev
Log:
Added two new services - copyWorkEffort and copyWorkEffortAssocs. The
copyWorkEffort service can be used as a replacement for the duplicateWorkEffort
service.
Modified:
ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml
ofbiz/trunk/applications/workeffort/servicedef/services.xml
Modified:
ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml?rev=1164773&r1=1164772&r2=1164773&view=diff
==============================================================================
---
ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml
(original)
+++
ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml
Sat Sep 3 00:38:25 2011
@@ -209,6 +209,71 @@ under the License.
<remove-value value-field="lookedUpValue"/>
</simple-method>
+ <simple-method method-name="copyWorkEffort" short-description="Copy a
WorkEffort">
+ <entity-one entity-name="WorkEffort" value-field="sourceWorkEffort">
+ <field-map field-name="workEffortId"
from-field="parameters.sourceWorkEffortId" />
+ </entity-one>
+ <if-empty field="sourceWorkEffort">
+ <set field="errorString" value="sourceWorkEffortId =
${parameters.sourceWorkEffortId}" />
+ <add-error>
+ <fail-property resource="WorkEffortUiLabels"
property="WorkEffortNotFound" />
+ </add-error>
+ <check-errors />
+ </if-empty>
+ <set field="targetWorkEffortId"
from-field="parameters.targetWorkEffortId" />
+ <if-empty field="targetWorkEffortId">
+ <sequenced-id sequence-name="WorkEffort"
field="targetWorkEffortId" />
+ </if-empty>
+ <set-service-fields service-name="createWorkEffort"
to-map="createWorkEffortCtx" map="sourceWorkEffort" />
+ <set field="createWorkEffortCtx.workEffortId"
from-field="targetWorkEffortId" />
+ <set field="createWorkEffortCtx.userLogin"
from-field="parameters.userLogin" />
+ <call-service service-name="createWorkEffort"
in-map-name="createWorkEffortCtx" />
+ <check-errors />
+ <entity-one entity-name="WorkEffort" value-field="targetWorkEffort">
+ <field-map field-name="workEffortId"
from-field="targetWorkEffortId" />
+ </entity-one>
+ <set field="copyWorkEffortAssocs"
from-field="parameters.copyWorkEffortAssocs" default-value="N" />
+ <if-compare field="copyWorkEffortAssocs" operator="equals" value="Y">
+ <set-service-fields service-name="copyWorkEffortAssocs"
to-map="copyWorkEffortAssocsCtx" map="parameters" />
+ <set field="copyWorkEffortAssocsCtx.targetWorkEffortId"
from-field="targetWorkEffortId" />
+ <call-service service-name="copyWorkEffortAssocs"
in-map-name="copyWorkEffortAssocsCtx" />
+ <check-errors />
+ </if-compare>
+ <set field="copyRelatedValues"
from-field="parameters.copyRelatedValues" default-value="N" />
+ <if-compare field="copyRelatedValues" operator="equals" value="Y">
+ <set field="excludeExpiredRelations"
from-field="parameters.excludeExpiredRelations" default-value="N" />
+ <set field="modelRelationList"
from-field="groovy:delegator.getModelEntity('WorkEffort').getRelationsManyList();"
/>
+ <iterate entry="modelRelation" list="modelRelationList">
+ <set field="relatedEntityName"
from-field="groovy:modelRelation.getRelEntityName();" />
+ <if-compare field="relatedEntityName" operator="not-equals"
value="WorkEffortAssoc">
+ <set field="relationName"
from-field="groovy:modelRelation.getCombinedName();" />
+ <set field="keyMap"
from-field="groovy:modelRelation.findKeyMap('workEffortId');"
set-if-null="true" />
+ <if-not-empty field="keyMap">
+ <set field="relatedIdFieldName"
from-field="groovy:keyMap.getRelFieldName();" />
+ <get-related relation-name="${relationName}"
list="relationValues" value-field="sourceWorkEffort" />
+ <if-compare field="excludeExpiredRelations"
operator="equals" value="Y">
+ <set field="fromDateModelField"
from-field="groovy:delegator.getModelEntity(relatedEntityName).getField('fromDate');"
set-if-null="true" />
+ <if-not-empty field="fromDateModelField">
+ <filter-list-by-date list="relationValues" />
+ </if-not-empty>
+ </if-compare>
+ <iterate entry="relatedValue" list="relationValues">
+ <clone-value value-field="relatedValue"
new-value-field="newRelatedValue" />
+ <set field="newRelatedValue[relatedIdFieldName]"
from-field="targetWorkEffortId" />
+ <make-value value-field="newRelatedPks"
entity-name="${relatedEntityName}" />
+ <set-pk-fields value-field="newRelatedPks"
map="newRelatedValue" />
+ <find-by-primary-key
entity-name="${relatedEntityName}" map="newRelatedPks"
value-field="duplicateCheck" />
+ <if-empty field="duplicateCheck">
+ <create-value value-field="newRelatedValue" />
+ </if-empty>
+ </iterate>
+ </if-not-empty>
+ </if-compare>
+ </iterate>
+ </if-compare>
+ <field-to-result field="targetWorkEffortId" result-name="workEffortId"
/>
+ </simple-method>
+
<!-- communication event workeffort -->
<simple-method method-name="makeCommunicationEventWorkEffort"
short-description="Make a Communication Event WorkEffort">
<make-value entity-name="CommunicationEventWorkEff"
value-field="lookupMap"/>
@@ -676,6 +741,35 @@ under the License.
<remove-value value-field="lookedUpValue"/>
</simple-method>
+ <simple-method method-name="copyWorkEffortAssocs" short-description="Copy
WorkEffort associations">
+ <set field="deepCopy" from-field="parameters.deepCopy"
default-value="N" />
+ <set field="excludeExpiredAssocs"
from-field="parameters.excludeExpiredAssocs" default-value="N" />
+ <entity-and entity-name="WorkEffortAssoc" list="workEffortAssocs">
+ <field-map field-name="workEffortIdFrom"
from-field="parameters.sourceWorkEffortId" />
+ </entity-and>
+ <if-compare field="excludeExpiredAssocs" operator="equals" value="Y">
+ <filter-list-by-date list="workEffortAssocs" />
+ </if-compare>
+ <iterate entry="workEffortAssoc" list="workEffortAssocs">
+ <set field="workEffortIdTo"
from-field="workEffortAssoc.workEffortIdTo" />
+ <if-compare field="deepCopy" operator="equals" value="Y">
+ <clear-field field="copyWorkEffortCtx" />
+ <set-service-fields service-name="copyWorkEffort"
to-map="copyWorkEffortCtx" map="parameters" />
+ <clear-field field="copyWorkEffortCtx.targetWorkEffortId"/>
+ <set field="copyWorkEffortCtx.sourceWorkEffortId"
from-field="workEffortIdTo" />
+ <set field="copyWorkEffortCtx.copyWorkEffortAssocs" value="Y"
/>
+ <call-service service-name="copyWorkEffort"
in-map-name="copyWorkEffortCtx">
+ <result-to-field result-name="workEffortId"
field="workEffortIdTo" />
+ </call-service>
+ <check-errors />
+ </if-compare>
+ <clone-value value-field="workEffortAssoc"
new-value-field="newWorkEffortAssoc" />
+ <set field="newWorkEffortAssoc.workEffortIdFrom"
from-field="parameters.targetWorkEffortId" />
+ <set field="newWorkEffortAssoc.workEffortIdTo"
from-field="workEffortIdTo" />
+ <create-value value-field="newWorkEffortAssoc" />
+ </iterate>
+ </simple-method>
+
<simple-method method-name="createWorkEffortGoodStandard"
short-description="Create a link between a WorkEffort and a Product">
<entity-one entity-name="WorkEffortGoodStandard"
value-field="lookedUpValue"/>
<if-not-empty field="lookedUpValue">
Modified: ofbiz/trunk/applications/workeffort/servicedef/services.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/servicedef/services.xml?rev=1164773&r1=1164772&r2=1164773&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/workeffort/servicedef/services.xml Sat Sep 3
00:38:25 2011
@@ -86,6 +86,33 @@ under the License.
<auto-attributes mode="IN" include="pk" optional="false"/>
</service>
+ <service name="copyWorkEffort" engine="simple" auth="true"
transaction-timeout="300"
+
location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
invoke="copyWorkEffort">
+ <description>Copies an existing WorkEffort to a new
WorkEffort.</description>
+ <attribute name="sourceWorkEffortId" mode="IN" type="String"
optional="false">
+ <description>The ID of the WorkEffort to copy from.</description>
+ </attribute>
+ <attribute name="targetWorkEffortId" mode="IN" type="String"
optional="true">
+ <description>The ID of the WorkEffort copy. If empty a new
WorkEffort ID will be created.</description>
+ </attribute>
+ <attribute name="copyWorkEffortAssocs" mode="IN" type="String"
optional="true">
+ <description>Copy WorkEffort associations (Y/N). Only child
WorkEffort associations will be copied.</description>
+ </attribute>
+ <attribute name="deepCopy" mode="IN" type="String" optional="true">
+ <description>Copy associated WorkEfforts (Y/N). Used only when
copyWorkEffortAssocs = Y.</description>
+ </attribute>
+ <attribute name="excludeExpiredAssocs" mode="IN" type="String"
optional="true">
+ <description>Exclude expired associated WorkEfforts from copying
(Y/N). Used only when copyWorkEffortAssocs = Y.</description>
+ </attribute>
+ <attribute name="copyRelatedValues" mode="IN" type="String"
optional="true">
+ <description>Copy WorkEffort related values (Y/N).</description>
+ </attribute>
+ <attribute name="excludeExpiredRelations" mode="IN" type="String"
optional="true">
+ <description>Exclude expired WorkEffort related values from
copying (Y/N). Used only when copyRelatedValues = Y.</description>
+ </attribute>
+ <attribute name="workEffortId" mode="OUT" type="String"
optional="false" />
+ </service>
+
<service name="duplicateWorkEffort" engine="simple"
location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
invoke="duplicateWorkEffort" auth="true">
<description>Duplicate a Work Effort. If workEffortId is empty a new
workEffortId will be generated.</description>
@@ -301,6 +328,30 @@ under the License.
<permission-service service-name="workEffortGenericPermission"
main-action="UPDATE"/>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
+
+ <service name="copyWorkEffortAssocs" engine="simple" auth="true"
transaction-timeout="300"
+
location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
invoke="copyWorkEffortAssocs">
+ <description>Copies WorkEffortAssocs from one WorkEffort to another
WorkEffort. Only child WorkEffort associations will be copied.</description>
+ <attribute name="sourceWorkEffortId" mode="IN" type="String"
optional="false">
+ <description>The ID of the WorkEffort to copy the associations
from.</description>
+ </attribute>
+ <attribute name="targetWorkEffortId" mode="IN" type="String"
optional="true">
+ <description>The ID of the WorkEffort to copy the associations
to.</description>
+ </attribute>
+ <attribute name="deepCopy" mode="IN" type="String" optional="true">
+ <description>Copy associated WorkEfforts (Y/N).</description>
+ </attribute>
+ <attribute name="excludeExpiredAssocs" mode="IN" type="String"
optional="true">
+ <description>Exclude expired WorkEffort associations from copying
(Y/N).</description>
+ </attribute>
+ <attribute name="copyRelatedValues" mode="IN" type="String"
optional="true">
+ <description>Copy WorkEffort related values (Y/N). Used only when
deepCopy = Y.</description>
+ </attribute>
+ <attribute name="excludeExpiredRelations" mode="IN" type="String"
optional="true">
+ <description>Exclude expired WorkEffort related values from
copying (Y/N). Used only when deepCopy = Y.</description>
+ </attribute>
+ </service>
+
<service name="createWorkEffortAndAssoc" engine="simple"
location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
invoke="createWorkEffortAndAssoc" auth="true">
<description>Creates a WorkEffort entity and
WorkEffortAssoc</description>
<auto-attributes include="pk" mode="INOUT" optional="true"
entity-name="WorkEffort"/>