|
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)) { |
| Free forum by Nabble | Edit this page |
