Change logic in how indexes of sections in csv work

Change the logic in how indexes of the different sections in drivvos csv work
This commit is contained in:
Alf Sebastian Houge
2022-04-06 15:37:20 +02:00
parent f1bf36bcb9
commit 2749707546

View File

@@ -54,8 +54,6 @@ func DrivvoImport(content []byte, userId string, vehicleId string, importLocatio
return errors return errors
} }
serviceSectionIndex := bytes.Index(content, []byte("#Service"))
endParseIndex := bytes.Index(content, []byte("#Income")) endParseIndex := bytes.Index(content, []byte("#Income"))
if endParseIndex == -1 { if endParseIndex == -1 {
endParseIndex = bytes.Index(content, []byte("#Route")) endParseIndex = bytes.Index(content, []byte("#Route"))
@@ -65,29 +63,32 @@ func DrivvoImport(content []byte, userId string, vehicleId string, importLocatio
} }
expenseSectionIndex := bytes.Index(content, []byte("#Expense")) serviceEndIndex := bytes.Index(content, []byte("#Expense"))
if expenseSectionIndex == -1 { if serviceEndIndex == -1 {
expenseSectionIndex = endParseIndex serviceEndIndex = endParseIndex
} }
fillups, errors := DrivvoParseRefuelings(content[:serviceSectionIndex], user, vehicle, importLocation) refuelEndIndex := bytes.Index(content, []byte("#Service"))
if refuelEndIndex == -1 {
refuelEndIndex = serviceEndIndex
}
var fillups []db.Fillup
fillups, errors = DrivvoParseRefuelings(content[:refuelEndIndex], user, vehicle, importLocation)
var allExpenses []db.Expense var allExpenses []db.Expense
if serviceSectionIndex != -1 { services, parseErrors := DrivvoParseExpenses(content[refuelEndIndex:serviceEndIndex], user, vehicle)
services, parseErrors := DrivvoParseExpenses(content[serviceSectionIndex:expenseSectionIndex], user, vehicle) if parseErrors != nil {
if parseErrors != nil { errors = append(errors, parseErrors...)
errors = append(errors, parseErrors...) }
} allExpenses = append(allExpenses, services...)
allExpenses = append(allExpenses, services...)
expenses, parseErrors := DrivvoParseExpenses(content[serviceEndIndex:endParseIndex], user, vehicle)
if parseErrors != nil {
errors = append(errors, parseErrors...)
} }
if expenseSectionIndex != endParseIndex { allExpenses = append(allExpenses, expenses...)
expenses, parseErrors := DrivvoParseExpenses(content[expenseSectionIndex:endParseIndex], user, vehicle)
if parseErrors != nil {
errors = append(errors, parseErrors...)
}
allExpenses = append(allExpenses, expenses...)
}
if len(errors) != 0 { if len(errors) != 0 {
return errors return errors