version 1.25, 2020/11/29 14:00:50 |
version 1.26, 2020/11/30 14:38:35 |
|
|
); |
); |
|
|
# === SUBROUTINES ===================================================== |
# === SUBROUTINES ===================================================== |
sub get_accounts_by_amount_sign ($$$) { |
|
my ($amount, $account, $csv_account) = @_; |
|
my ($debit, $credit); |
|
if ($amount <= 0) { |
|
$amount = substr $amount, 1; |
|
$credit = $csv_account; |
|
$debit = $account; |
|
} else { |
|
$debit = $csv_account; |
|
$credit = $account; |
|
} |
|
return ($amount, $debit, $credit); |
|
} |
|
|
|
sub get_accounts_by_csv_col ($$$$) { |
|
my ($account, $csv_account, $csv_debit, $csv_credit) = @_; |
|
my ($amount, $debit, $credit); |
|
if ($csv_debit eq "") { |
|
$amount = $csv_credit; |
|
$credit = $account; |
|
$debit = $csv_account; |
|
} else { |
|
$amount = $csv_debit; |
|
$credit = $csv_account; |
|
$debit = $account; |
|
} |
|
return ($amount, $debit, $credit); |
|
} |
|
|
|
sub usage () { |
sub usage () { |
printf STDERR "usage: %s -I accountname csvfilename\n", $0; |
printf STDERR "usage: %s -I accountname csvfilename\n", $0; |
exit 1; |
exit 1; |
Line 206 LINE: while (<STDIN>) { |
|
Line 178 LINE: while (<STDIN>) { |
|
$fields[$i] = "-$1" if $fields[$i] =~ /^\((\d+\.\d+)\)/; |
$fields[$i] = "-$1" if $fields[$i] =~ /^\((\d+\.\d+)\)/; |
} |
} |
} |
} |
my $description = join ' ', @fields[@description_fields]; |
my $debit = $csv_account; |
my ($amount, $credit, $debit); |
my $credit = $account; |
if ($#amount_fields) { |
my $amount = $fields[$amount_fields[-1]] || -$fields[$amount_fields[0]]; |
($amount, $debit, $credit) = |
if ($amount < 0) { |
get_accounts_by_csv_col($account, |
$amount *= -1; |
$csv_account, $fields[$amount_fields[0]], |
$credit = $csv_account; |
$fields[$amount_fields[1]]); |
$debit = $account; |
} else { |
|
($amount, $debit, $credit) = |
|
get_accounts_by_amount_sign( |
|
$fields[$amount_fields[0]], |
|
$account, $csv_account); |
|
} |
} |
|
$amount = sprintf "%.2f", $amount; |
|
my $description = join ' ', @fields[@description_fields]; |
$date && $amount && $debit && $credit && $description |
$date && $amount && $debit && $credit && $description |
or die "import parse error: $line"; |
or die "import parse error: $line"; |
$description =~ s/#//g; |
$description =~ s/#//g; |