Skip to content

Commit c3d49ad

Browse files
date formatting fixes for BOB Bank
1 parent d1be96a commit c3d49ad

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

src/Services/BankStatementProcessor/bankStatementProcessor-BOB.js

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77
function processBankStatement(rawData) {
88
// Use the new extraction function for array-of-arrays input
9-
const bank_details = extractBankDetailsFromRows(rawData);
9+
const bank_details = extractBankDetailsFromRows(rawData)
1010
const transactions = []
1111
let headerRowIndex = -1
1212
const maxBankDetailsRows = Math.min(20, rawData.length)
@@ -37,7 +37,7 @@ function processBankStatement(rawData) {
3737
]
3838

3939
for (const dateFormat of dateFormats) {
40-
const match = dateString.match(dateFormat.format)
40+
const match = dateString?.match(dateFormat.format)
4141
if (match) {
4242
let year = match[dateFormat.order[2]]
4343
if (year.length === 2) {
@@ -188,13 +188,14 @@ function processBankStatement(rawData) {
188188
const row = rawData[i]
189189
if (!row) continue
190190

191-
const dateString = row[keyMap.dateKey]
191+
// Check if date is null, then set row index to 1 for setting date
192+
const dateString = row[keyMap.dateKey] ? row[keyMap.dateKey] : row['1']
192193
const desc = row[keyMap.narrationKey] ? String(row[keyMap.narrationKey]).trim() : null
193194
const debitString = row[keyMap.debitKey]
194195
const creditString = row[keyMap.creditKey]
195196
const balanceString = row[keyMap.balanceKey]
196197

197-
const date = parseDate(dateString)
198+
const date = dateString
198199
const debit = cleanAmount(debitString)
199200
const credit = cleanAmount(creditString)
200201
const balance = cleanAmount(balanceString)
@@ -249,68 +250,68 @@ function extractBankDetailsFromRows(rows) {
249250
account_holder_name: null,
250251
branch_name: null,
251252
branch_code: null,
252-
};
253+
}
253254

254255
for (let i = 0; i < rows.length; i++) {
255-
const row = rows[i];
256+
const row = rows[i]
256257
for (let j = 0; j < row.length; j++) {
257-
const cell = row[j];
258-
if (!cell) continue;
259-
const value = String(cell).trim();
258+
const cell = row[j]
259+
if (!cell) continue
260+
const value = String(cell).trim()
260261

261262
if (value.toLowerCase().includes('account holder name')) {
262-
const afterColon = value.split(':')[1];
263+
const afterColon = value.split(':')[1]
263264
if (afterColon && afterColon.trim()) {
264-
bank_details.account_holder_name = afterColon.trim();
265+
bank_details.account_holder_name = afterColon.trim()
265266
} else {
266267
for (let k = j + 1; k < row.length; k++) {
267268
if (row[k]) {
268-
bank_details.account_holder_name = String(row[k]).trim();
269-
break;
269+
bank_details.account_holder_name = String(row[k]).trim()
270+
break
270271
}
271272
}
272273
}
273274
} else if (value.toLowerCase().includes('branch name')) {
274-
const afterColon = value.split(':')[1];
275+
const afterColon = value.split(':')[1]
275276
if (afterColon && afterColon.trim()) {
276-
bank_details.branch_name = afterColon.trim();
277+
bank_details.branch_name = afterColon.trim()
277278
} else {
278279
for (let k = j + 1; k < row.length; k++) {
279280
if (row[k]) {
280-
bank_details.branch_name = String(row[k]).trim();
281-
break;
281+
bank_details.branch_name = String(row[k]).trim()
282+
break
282283
}
283284
}
284285
}
285286
} else if (value.toLowerCase().includes('ifsc')) {
286-
const afterColon = value.split(':')[1];
287+
const afterColon = value.split(':')[1]
287288
if (afterColon && afterColon.trim()) {
288-
bank_details.ifsc = afterColon.trim();
289+
bank_details.ifsc = afterColon.trim()
289290
} else {
290291
for (let k = j + 1; k < row.length; k++) {
291292
if (row[k]) {
292-
bank_details.ifsc = String(row[k]).trim();
293-
break;
293+
bank_details.ifsc = String(row[k]).trim()
294+
break
294295
}
295296
}
296297
}
297298
} else if (value.toLowerCase().includes('address')) {
298-
const afterColon = value.split(':')[1];
299+
const afterColon = value.split(':')[1]
299300
if (afterColon && afterColon.trim()) {
300-
bank_details.address = afterColon.trim();
301+
bank_details.address = afterColon.trim()
301302
} else {
302303
for (let k = j + 1; k < row.length; k++) {
303304
if (row[k]) {
304-
bank_details.address = String(row[k]).trim();
305-
break;
305+
bank_details.address = String(row[k]).trim()
306+
break
306307
}
307308
}
308309
}
309310
}
310311
// Add more fields as needed...
311312
}
312313
}
313-
return bank_details;
314+
return bank_details
314315
}
315316

316317
module.exports = processBankStatement

0 commit comments

Comments
 (0)