support year/month/day format date

This commit is contained in:
MaysWind
2024-10-27 17:15:59 +08:00
parent 08bc0eff8c
commit 76f5f12563
2 changed files with 41 additions and 9 deletions
@@ -332,6 +332,41 @@ func TestIIFTransactionDataFileParseImportedData_ParseNameAsTransferCategory(t *
assert.Equal(t, "Test Category", allNewSubTransferCategories[0].Name)
}
func TestIIFTransactionDataFileParseImportedData_ParseYearMonthDayFormatTime(t *testing.T) {
converter := IifTransactionDataFileImporter
context := core.NewNullContext()
user := &models.User{
Uid: 1234567890,
DefaultCurrency: "CNY",
}
allNewTransactions, _, _, _, _, _, err := converter.ParseImportedData(context, user, []byte(
"!TRNS\tDATE\tACCNT\tAMOUNT\n"+
"!SPL\tDATE\tACCNT\tAMOUNT\n"+
"!ENDTRNS\t\t\t\n"+
"TRNS\t2024/09/01\tTest Account\t123.45\n"+
"SPL\t2024/09/01\tTest Account2\t-123.45\n"+
"ENDTRNS\t\t\t\n"+
"TRNS\t2024/09/2\tTest Account\t123.45\n"+
"SPL\t2024/09/2\tTest Account2\t-123.45\n"+
"ENDTRNS\t\t\t\n"+
"TRNS\t2024/9/03\tTest Account\t123.45\n"+
"SPL\t2024/9/03\tTest Account2\t-123.45\n"+
"ENDTRNS\t\t\t\n"+
"TRNS\t2024/9/4\tTest Account\t123.45\n"+
"SPL\t2024/9/4\tTest Account2\t-123.45\n"+
"ENDTRNS\t\t\t\n"), 0, nil, nil, nil, nil, nil)
assert.Nil(t, err)
assert.Equal(t, 4, len(allNewTransactions))
assert.Equal(t, int64(1725148800), utils.GetUnixTimeFromTransactionTime(allNewTransactions[0].TransactionTime))
assert.Equal(t, int64(1725235200), utils.GetUnixTimeFromTransactionTime(allNewTransactions[1].TransactionTime))
assert.Equal(t, int64(1725321600), utils.GetUnixTimeFromTransactionTime(allNewTransactions[2].TransactionTime))
assert.Equal(t, int64(1725408000), utils.GetUnixTimeFromTransactionTime(allNewTransactions[3].TransactionTime))
}
func TestIIFTransactionDataFileParseImportedData_ParseShortMonthDayFormatTime(t *testing.T) {
converter := IifTransactionDataFileImporter
context := core.NewNullContext()
@@ -373,15 +408,6 @@ func TestIIFTransactionDataFileParseImportedData_ParseInvalidTime(t *testing.T)
}
_, _, _, _, _, _, err := converter.ParseImportedData(context, user, []byte(
"!TRNS\tDATE\tACCNT\tAMOUNT\n"+
"!SPL\tDATE\tACCNT\tAMOUNT\n"+
"!ENDTRNS\t\t\t\n"+
"TRNS\t2024/09/01\tTest Account\t123.45\n"+
"SPL\t2024/09/01\tTest Account2\t-123.45\n"+
"ENDTRNS\t\t\t\n"), 0, nil, nil, nil, nil, nil)
assert.EqualError(t, err, errs.ErrTransactionTimeInvalid.Message)
_, _, _, _, _, _, err = converter.ParseImportedData(context, user, []byte(
"!TRNS\tDATE\tACCNT\tAMOUNT\n"+
"!SPL\tDATE\tACCNT\tAMOUNT\n"+
"!ENDTRNS\t\t\t\n"+
@@ -314,6 +314,12 @@ func (t *iifTransactionDataRowIterator) parseTransactionTime(dataset *iifTransac
day := dateParts[1]
year := dateParts[2]
if utils.IsValidYearMonthDayLongOrShortDateFormat(date) {
year = dateParts[0]
month = dateParts[1]
day = dateParts[2]
}
if len(month) < 2 {
month = "0" + month
}