Use dict mapping instead of if statements for transaction model
Add test for invoice transaction charge