Author: jleroux
Date: Fri Nov 9 18:26:19 2012
New Revision: 1407578
URL: http://svn.apache.org/viewvc?rev=1407578&view=rev
Log:
A patch from Nicolas Malin for "Entity-Auto Engine : manage
[create|lastModified]Date field"
https://issues.apache.org/jira/browse/OFBIZ-5010
When a entity have fields createDate, lastModifiedDate, createByUserLogin and
updateByUserLogin, the entity-auto engine set them.
Also makes all entities that have one of fields
[create|lastModified][Date|ByUserLogin] to be consistent and have four fields
Impacted entityies:
[Quote|Order|Return]Adjustment
OrderPaymentPreference
AcctgTrans
GlReconciliation
ValueLinkKey
Modified:
ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
ofbiz/trunk/applications/order/entitydef/entitymodel.xml
ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=1407578&r1=1407577&r2=1407578&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml Fri Nov 9
18:26:19 2012
@@ -1732,7 +1732,9 @@ under the License.
<field name="receiptId" type="id"></field>
<field name="workEffortId" type="id"></field>
<field name="theirAcctgTransId" type="id-long"></field>
+ <field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
<field name="lastModifiedByUserLogin" type="id-vlong"></field>
<prim-key field="acctgTransId"/>
<relation type="one" fk-name="ACCTTX_TYPE"
rel-entity-name="AcctgTransType">
@@ -2322,7 +2324,9 @@ under the License.
<field name="glReconciliationId" type="id-ne"></field>
<field name="glReconciliationName" type="name"></field>
<field name="description" type="description"></field>
+ <field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
<field name="lastModifiedByUserLogin" type="id-vlong"></field>
<field name="glAccountId" type="id-ne"></field>
<field name="statusId" type="id-ne"></field>
@@ -3679,6 +3683,9 @@ under the License.
<field name="workingKey" type="very-long"></field>
<field name="workingKeyIndex" type="numeric"></field>
<field name="lastWorkingKey" type="very-long"></field>
+ <field name="createdDate" type="date-time"></field>
+ <field name="createdByTerminal" type="short-varchar"></field>
+ <field name="createdByUserLogin" type="id-vlong"></field>
<field name="lastModifiedDate" type="date-time"></field>
<field name="lastModifiedByTerminal" type="short-varchar"></field>
<field name="lastModifiedByUserLogin" type="id-vlong"></field>
Modified: ofbiz/trunk/applications/order/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/entitydef/entitymodel.xml?rev=1407578&r1=1407577&r2=1407578&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/order/entitydef/entitymodel.xml Fri Nov 9
18:26:19 2012
@@ -93,6 +93,8 @@ under the License.
<field name="includeInShipping" type="indicator"></field>
<field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
+ <field name="lastModifiedByUserLogin" type="id-vlong"></field>
<field name="originalAdjustmentId" type="id">
<description>specifies relation to source OrderAdjustment - eg. for
tax on shipping charges</description>
</field>
@@ -1061,6 +1063,8 @@ under the License.
<field name="needsNsfRetry" type="indicator"></field>
<field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
+ <field name="lastModifiedByUserLogin" type="id-vlong"></field>
<prim-key field="orderPaymentPreferenceId"/>
<relation type="one" fk-name="ORDER_PMPRF_OHDR"
rel-entity-name="OrderHeader">
<key-map field-name="orderId"/>
@@ -1641,6 +1645,8 @@ under the License.
<field name="includeInShipping" type="indicator"></field>
<field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
+ <field name="lastModifiedByUserLogin" type="id-vlong"></field>
<prim-key field="quoteAdjustmentId"/>
<relation type="one" fk-name="QUOTE_ADJ_TYPE"
rel-entity-name="OrderAdjustmentType">
<key-map field-name="quoteAdjustmentTypeId"
rel-field-name="orderAdjustmentTypeId"/>
@@ -2338,6 +2344,8 @@ under the License.
<field name="includeInShipping" type="indicator"></field>
<field name="createdDate" type="date-time"></field>
<field name="createdByUserLogin" type="id-vlong"></field>
+ <field name="lastModifiedDate" type="date-time"></field>
+ <field name="lastModifiedByUserLogin" type="id-vlong"></field>
<prim-key field="returnAdjustmentId"/>
<relation type="one" fk-name="RETURN_ADJ_TYPE"
rel-entity-name="ReturnAdjustmentType">
<key-map field-name="returnAdjustmentTypeId"/>
Modified:
ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java?rev=1407578&r1=1407577&r2=1407578&view=diff
==============================================================================
---
ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
(original)
+++
ofbiz/trunk/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
Fri Nov 9 18:26:19 2012
@@ -232,6 +232,21 @@ public final class EntityAutoEngine exte
}
}
+ if (modelEntity.getField("createdDate") != null) {
+ newEntity.set("createdDate", UtilDateTime.nowTimestamp());
+ if (modelEntity.getField("createdByUserLogin") != null) {
+ GenericValue userLogin = (GenericValue)
parameters.get("userLogin");
+ if (userLogin != null) {
+ newEntity.set("createdByUserLogin",
userLogin.get("userLoginId"));
+ if
(modelEntity.getField("lastModifiedByUserLogin") != null) {
+ newEntity.set("lastModifiedByUserLogin",
userLogin.get("userLoginId"));
+ }
+ }
+ }
+ if (modelEntity.getField("lastModifiedDate") != null) {
+ newEntity.set("lastModifiedDate",
UtilDateTime.nowTimestamp());
+ }
+ }
newEntity.setNonPKFields(parameters, true);
newEntity.create();
} else if ("update".equals(modelService.invoke)) {
@@ -302,6 +317,16 @@ public final class EntityAutoEngine exte
// NOTE: nothing here to maintain the status history, that
should be done with a custom service called by SECA rule
+ if (modelEntity.getField("lastModifiedDate") != null) {
+ lookedUpValue.set("lastModifiedDate",
UtilDateTime.nowTimestamp());
+ if (modelEntity.getField("lastModifiedByUserLogin") !=
null) {
+ GenericValue userLogin = (GenericValue)
parameters.get("userLogin");
+ if (userLogin != null) {
+ lookedUpValue.set("lastModifiedByUserLogin",
userLogin.get("userLoginId"));
+ }
+ }
+ }
+
lookedUpValue.setNonPKFields(parameters, true);
lookedUpValue.store();
} else if ("delete".equals(modelService.invoke)) {