You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2012/11/09 19:26:20 UTC

svn commit: r1407578 - in /ofbiz/trunk: applications/accounting/entitydef/entitymodel.xml applications/order/entitydef/entitymodel.xml framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java

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