+ # record AP
+ $amount = $form->round_amount($form->{"paid_$i"} * $form->{"exchangerate"}, 2) * -1;
+
+ $query =
+ qq|DELETE FROM acc_trans
+ WHERE (trans_id = ?)
+ AND (chart_id = (SELECT c.id FROM chart c WHERE c.accno = ?))
+ AND (amount = ?)
+ AND (transdate = ?)|;
+ @values = (conv_i($form->{id}), $form->{AP}, $amount, conv_date($form->{"datepaid_$i"}));
+ do_query($form, $dbh, $query, @values);
+
+ $query =
+ qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, project_id)
+ VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?,
+ (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
+ @values = (conv_i($form->{id}), $form->{AP}, $amount,
+ conv_date($form->{"datepaid_$i"}), $form->{AP}, $project_id);
+ do_query($form, $dbh, $query, @values);
+
+ $query =
+ qq|DELETE FROM acc_trans
+ WHERE (trans_id = ?)
+ AND (chart_id=(SELECT c.id FROM chart c WHERE c.accno = ?))
+ AND (amount = ?)
+ AND (transdate = ?)
+ AND (source = ?)
+ AND (memo = ?)|;
+ @values = (conv_i($form->{id}), $accno, $form->{"paid_$i"},
+ conv_date($form->{"datepaid_$i"}), $form->{"source_$i"},
+ $form->{"memo_$i"});
+ do_query($form, $dbh, $query, @values);
+
+ $query =
+ qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo, taxkey, project_id)
+ VALUES (?, (SELECT c.id FROM chart c WHERE c.accno = ?), ?, ?, ?, ?,
+ (SELECT taxkey_id FROM chart WHERE accno = ?), ?)|;
+ @values = (conv_i($form->{id}), $accno, $form->{"paid_$i"},
+ conv_date($form->{"datepaid_$i"}), $form->{"source_$i"},
+ $form->{"memo_$i"}, $accno, $project_id);
+ do_query($form, $dbh, $query, @values);
+
+ # gain/loss
+ $amount = $form->{"paid_$i"} * $form->{exchangerate} - $form->{"paid_$i"} * $form->{"exchangerate_$i"};
+
+ if ($amount > 0) {
+ $form->{fx}{ $form->{fxgain_accno} }{ $form->{"datepaid_$i"} } += $amount;
+ } else {
+ $form->{fx}{ $form->{fxloss_accno} }{ $form->{"datepaid_$i"} } += $amount;
+ }