This is an automated email from the ASF dual-hosted git repository.

aleks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit 6e189fcc8992d48b9f6549435d8081a62e37b1b5
Author: Adam Saghy <[email protected]>
AuthorDate: Sun Aug 7 23:13:56 2022 +0200

    FINERACT-1670: Add auditable fields to Client identifier
---
 .../portfolio/client/domain/ClientIdentifier.java  |  4 +-
 .../db/changelog/tenant/changelog-tenant.xml       |  1 +
 ...0031_add_audit_entries_to_client_identifier.xml | 77 ++++++++++++++++++++++
 3 files changed, 80 insertions(+), 2 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
index 58615477d..9c954a398 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientIdentifier.java
@@ -29,13 +29,13 @@ import javax.persistence.UniqueConstraint;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.fineract.infrastructure.codes.domain.CodeValue;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
-import org.apache.fineract.infrastructure.core.domain.AbstractAuditableCustom;
+import 
org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom;
 
 @Entity
 @Table(name = "m_client_identifier", uniqueConstraints = {
         @UniqueConstraint(columnNames = { "document_type_id", "document_key" 
}, name = "unique_identifier_key"),
         @UniqueConstraint(columnNames = { "client_id", "document_key", 
"active" }, name = "unique_active_client_identifier") })
-public class ClientIdentifier extends AbstractAuditableCustom {
+public class ClientIdentifier extends AbstractAuditableWithUTCDateTimeCustom {
 
     @ManyToOne
     @JoinColumn(name = "client_id", nullable = false)
diff --git 
a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml 
b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
index 1d3bb1cfd..b1cbcb18f 100644
--- 
a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
+++ 
b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
@@ -50,4 +50,5 @@
     <include 
file="parts/0028_add_charge_refund_charge_type_to_loan_transaction.xml" 
relativeToChangelogFile="true"/>
     <include file="parts/0029_add_delinquency_buckets.xml" 
relativeToChangelogFile="true"/>
     <include file="parts/0030_add_audit_entries_to_business_date.xml" 
relativeToChangelogFile="true"/>
+    <include file="parts/0031_add_audit_entries_to_client_identifier.xml" 
relativeToChangelogFile="true"/>
 </databaseChangeLog>
diff --git 
a/fineract-provider/src/main/resources/db/changelog/tenant/parts/0031_add_audit_entries_to_client_identifier.xml
 
b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0031_add_audit_entries_to_client_identifier.xml
new file mode 100644
index 000000000..fe3aca120
--- /dev/null
+++ 
b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0031_add_audit_entries_to_client_identifier.xml
@@ -0,0 +1,77 @@
+<?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.
+
+-->
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog";
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+                   
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog 
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd";>
+    <changeSet author="fineract" id="client_identifier-1" context="mysql">
+        <addColumn tableName="m_client_identifier">
+            <column name="created_on_utc" type="DATETIME"/>
+            <column name="last_modified_on_utc" type="DATETIME"/>
+        </addColumn>
+    </changeSet>
+    <changeSet author="fineract" id="client_identifier-1" context="postgresql">
+        <addColumn tableName="m_client_identifier">
+            <column name="created_on_utc" type="TIMESTAMP WITH TIME ZONE"/>
+            <column name="last_modified_on_utc" type="TIMESTAMP WITH TIME 
ZONE"/>
+        </addColumn>
+    </changeSet>
+
+    <changeSet id="client_identifier-2" author="fineract">
+        <dropNotNullConstraint tableName="m_client_identifier" 
columnName="created_date" columnDataType="datetime"/>
+        <dropNotNullConstraint tableName="m_client_identifier" 
columnName="lastmodified_date" columnDataType="datetime"/>
+    </changeSet>
+    <changeSet id="client_identifier-3" author="fineract">
+        <renameColumn tableName="m_client_identifier" 
oldColumnName="createdby_id" newColumnName="created_by" 
columnDataType="BIGINT"/>
+        <renameColumn tableName="m_client_identifier" 
oldColumnName="lastmodifiedby_id" newColumnName="last_modified_by" 
columnDataType="BIGINT"/>
+    </changeSet>
+    <changeSet author="fineract" id="client_identifier-4">
+        <addForeignKeyConstraint baseColumnNames="created_by" 
baseTableName="m_client_identifier"
+                                 
constraintName="FK_client_identifier_created_by" deferrable="false" 
initiallyDeferred="false"
+                                 onDelete="RESTRICT" onUpdate="RESTRICT" 
referencedColumnNames="id"
+                                 referencedTableName="m_appuser" 
validate="true"/>
+        <addForeignKeyConstraint baseColumnNames="last_modified_by" 
baseTableName="m_client_identifier"
+                                 
constraintName="FK_client_identifier_last_modified_by" deferrable="false" 
initiallyDeferred="false"
+                                 onDelete="RESTRICT" onUpdate="RESTRICT" 
referencedColumnNames="id"
+                                 referencedTableName="m_appuser" 
validate="true"/>
+    </changeSet>
+    <changeSet id="client_identifier-5" author="fineract" context="mysql">
+        <preConditions onFail="MARK_RAN">
+            <sqlCheck expectedResult="0">select count(*) from 
m_client_identifier</sqlCheck>
+        </preConditions>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="created_on_utc" columnDataType="DATETIME"/>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="last_modified_on_utc" columnDataType="DATETIME"/>
+    </changeSet>
+    <changeSet id="client_identifier-5" author="fineract" context="postgresql">
+        <preConditions onFail="MARK_RAN">
+            <sqlCheck expectedResult="0">select count(*) from 
m_client_identifier</sqlCheck>
+        </preConditions>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="created_on_utc" columnDataType="TIMESTAMP WITH TIME ZONE"/>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="last_modified_on_utc" columnDataType="TIMESTAMP WITH TIME ZONE"/>
+    </changeSet>
+    <changeSet id="client_identifier-6" author="fineract">
+        <preConditions onFail="MARK_RAN">
+            <sqlCheck expectedResult="0">select count(*) from 
m_client_identifier where created_by is null or last_modified_by is 
null</sqlCheck>
+        </preConditions>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="created_by" columnDataType="BIGINT"/>
+        <addNotNullConstraint tableName="m_client_identifier" 
columnName="last_modified_by" columnDataType="BIGINT"/>
+    </changeSet>
+</databaseChangeLog>

Reply via email to