FINERACT-1694: Storing external events fixes
This commit is contained in:
committed by
Arnold Gálovics
parent
699f61a9e1
commit
5a9ddab671
+1
-3
@@ -26,7 +26,6 @@ import javax.persistence.Entity;
|
|||||||
import javax.persistence.EnumType;
|
import javax.persistence.EnumType;
|
||||||
import javax.persistence.Enumerated;
|
import javax.persistence.Enumerated;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.Lob;
|
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -44,8 +43,7 @@ public class ExternalEvent extends AbstractPersistableCustom {
|
|||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
@Basic(fetch = FetchType.LAZY)
|
@Basic(fetch = FetchType.LAZY)
|
||||||
@Lob
|
@Column(name = "data", nullable = false)
|
||||||
@Column(name = "data", nullable = false, columnDefinition = "BLOB NOT NULL")
|
|
||||||
private byte[] data;
|
private byte[] data;
|
||||||
|
|
||||||
@Column(name = "created_at", nullable = false)
|
@Column(name = "created_at", nullable = false)
|
||||||
|
|||||||
+18
@@ -1,3 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
package org.apache.fineract.infrastructure.event.external.service;
|
package org.apache.fineract.infrastructure.event.external.service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|||||||
+18
@@ -1,3 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
package org.apache.fineract.infrastructure.event.external.service.support;
|
package org.apache.fineract.infrastructure.event.external.service.support;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|||||||
+31
-6
@@ -386,23 +386,44 @@ public final class SavingsAccountData implements Serializable {
|
|||||||
return this.minOverdraftForInterestCalculation;
|
return this.minOverdraftForInterestCalculation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getInterestPostingPeriodType() {
|
public EnumOptionData getInterestPostingPeriodType() {
|
||||||
|
return this.interestPostingPeriodType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getInterestPostingPeriodTypeId() {
|
||||||
return this.interestPostingPeriodType.getId().intValue();
|
return this.interestPostingPeriodType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getDepositType() {
|
public EnumOptionData getDepositType() {
|
||||||
|
return this.depositType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getDepositTypeId() {
|
||||||
return this.depositType.getId().intValue();
|
return this.depositType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getInterestCompoundingPeriodType() {
|
public EnumOptionData getInterestCompoundingPeriodType() {
|
||||||
|
return this.interestCompoundingPeriodType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Integer getInterestCompoundingPeriodTypeId() {
|
||||||
return this.interestCompoundingPeriodType.getId().intValue();
|
return this.interestCompoundingPeriodType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getInterestCalculationType() {
|
public EnumOptionData getInterestCalculationType() {
|
||||||
|
return this.interestCalculationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getInterestCalculationTypeId() {
|
||||||
return this.interestCalculationType.getId().intValue();
|
return this.interestCalculationType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getInterestCalculationDaysInYearType() {
|
public EnumOptionData getInterestCalculationDaysInYearType() {
|
||||||
|
return this.interestCalculationDaysInYearType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getInterestCalculationDaysInYearTypeId() {
|
||||||
return this.interestCalculationDaysInYearType.getId().intValue();
|
return this.interestCalculationDaysInYearType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,7 +467,11 @@ public final class SavingsAccountData implements Serializable {
|
|||||||
return activationLocalDate;
|
return activationLocalDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getLockinPeriodFrequencyType() {
|
public EnumOptionData getLockinPeriodFrequencyType() {
|
||||||
|
return this.lockinPeriodFrequencyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getLockinPeriodFrequencyTypeId() {
|
||||||
return this.lockinPeriodFrequencyType.getId().intValue();
|
return this.lockinPeriodFrequencyType.getId().intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -225,13 +225,13 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI
|
|||||||
// A generate list of EndOfDayBalances (not including interest postings)
|
// A generate list of EndOfDayBalances (not including interest postings)
|
||||||
|
|
||||||
final SavingsPostingInterestPeriodType postingPeriodType = SavingsPostingInterestPeriodType
|
final SavingsPostingInterestPeriodType postingPeriodType = SavingsPostingInterestPeriodType
|
||||||
.fromInt(savingsAccountData.getInterestPostingPeriodType());
|
.fromInt(savingsAccountData.getInterestPostingPeriodTypeId());
|
||||||
|
|
||||||
final SavingsCompoundingInterestPeriodType compoundingPeriodType = SavingsCompoundingInterestPeriodType
|
final SavingsCompoundingInterestPeriodType compoundingPeriodType = SavingsCompoundingInterestPeriodType
|
||||||
.fromInt(savingsAccountData.getInterestCompoundingPeriodType());
|
.fromInt(savingsAccountData.getInterestCompoundingPeriodTypeId());
|
||||||
|
|
||||||
final SavingsInterestCalculationDaysInYearType daysInYearType = SavingsInterestCalculationDaysInYearType
|
final SavingsInterestCalculationDaysInYearType daysInYearType = SavingsInterestCalculationDaysInYearType
|
||||||
.fromInt(savingsAccountData.getInterestCalculationDaysInYearType());
|
.fromInt(savingsAccountData.getInterestCalculationDaysInYearTypeId());
|
||||||
|
|
||||||
List<LocalDate> postedAsOnDates = getManualPostingDates(savingsAccountData);
|
List<LocalDate> postedAsOnDates = getManualPostingDates(savingsAccountData);
|
||||||
if (postInterestOnDate != null) {
|
if (postInterestOnDate != null) {
|
||||||
@@ -260,7 +260,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI
|
|||||||
}
|
}
|
||||||
|
|
||||||
final SavingsInterestCalculationType interestCalculationType = SavingsInterestCalculationType
|
final SavingsInterestCalculationType interestCalculationType = SavingsInterestCalculationType
|
||||||
.fromInt(savingsAccountData.getInterestCalculationType());
|
.fromInt(savingsAccountData.getInterestCalculationTypeId());
|
||||||
final BigDecimal interestRateAsFraction = getEffectiveInterestRateAsFraction(mc, upToInterestCalculationDate, savingsAccountData);
|
final BigDecimal interestRateAsFraction = getEffectiveInterestRateAsFraction(mc, upToInterestCalculationDate, savingsAccountData);
|
||||||
final BigDecimal overdraftInterestRateAsFraction = getEffectiveOverdraftInterestRateAsFraction(mc, savingsAccountData);
|
final BigDecimal overdraftInterestRateAsFraction = getEffectiveOverdraftInterestRateAsFraction(mc, savingsAccountData);
|
||||||
final Collection<Long> interestPostTransactions = this.savingsHelper.fetchPostInterestTransactionIds(savingsAccountData.getId());
|
final Collection<Long> interestPostTransactions = this.savingsHelper.fetchPostInterestTransactionIds(savingsAccountData.getId());
|
||||||
|
|||||||
@@ -64,4 +64,5 @@
|
|||||||
<include file="parts/0042_table_report_query_fix.xml" relativeToChangelogFile="true"/>
|
<include file="parts/0042_table_report_query_fix.xml" relativeToChangelogFile="true"/>
|
||||||
<include file="parts/0043_add_external_event_table.xml" relativeToChangelogFile="true"/>
|
<include file="parts/0043_add_external_event_table.xml" relativeToChangelogFile="true"/>
|
||||||
<include file="parts/0044_table_report_query_fix.xml" relativeToChangelogFile="true"/>
|
<include file="parts/0044_table_report_query_fix.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="parts/0045_external_event_table_data_binary.xml" relativeToChangelogFile="true"/>
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
<?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.1.xsd">
|
||||||
|
<changeSet author="fineract" id="1">
|
||||||
|
<delete tableName="m_external_event"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="fineract" id="2-mysql" context="mysql">
|
||||||
|
<dropColumn tableName="m_external_event" columnName="data"/>
|
||||||
|
<addColumn tableName="m_external_event">
|
||||||
|
<column name="data" type="VARBINARY">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="fineract" id="2-postgresql" context="postgresql">
|
||||||
|
<dropColumn tableName="m_external_event" columnName="data"/>
|
||||||
|
<addColumn tableName="m_external_event">
|
||||||
|
<column name="data" type="BYTEA">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="fineract" id="3">
|
||||||
|
<dropColumn tableName="m_external_event" columnName="idempotency_key"/>
|
||||||
|
<addColumn tableName="m_external_event">
|
||||||
|
<column name="idempotency_key" type="VARCHAR(100)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="fineract" id="4">
|
||||||
|
<dropColumn tableName="m_external_event" columnName="sent_at"/>
|
||||||
|
<addColumn tableName="m_external_event">
|
||||||
|
<column name="sent_at" type="timestamp">
|
||||||
|
<constraints nullable="true"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
Reference in New Issue
Block a user