}
$sth->finish;
- # get currencies and closedto
- $query = qq|SELECT curr, closedto FROM defaults|;
- ($form->{currencies}, $form->{closedto}) =
- selectrow_query($form, $dbh, $query);
+ # get closedto
+ $query = qq|SELECT closedto FROM defaults|;
+ ($form->{closedto}) = selectrow_query($form, $dbh, $query);
$dbh->disconnect;
$form->{"all_$form->{vc}"} = selectall_hashref_query($form, $dbh, $query);
}
- if ($form->{ARAP} eq 'AR') {
- $query =
- qq|SELECT d.id, d.description | .
- qq|FROM department d | .
- qq|WHERE d.role = 'P' | .
- qq|ORDER BY 2|;
- } else {
- $query =
- qq|SELECT d.id, d.description | .
- qq|FROM department d | .
- qq|ORDER BY 2|;
- }
- $form->{all_departments} = selectall_hashref_query($form, $dbh, $query);
-
+ # aufruf für all_deparments rausgenommen, da die abteilungen nur
+ # beim buchen der belege (rechnung, fibu) geändert werden und danach
+ # NICHT mehr überschrieben werden
$dbh->disconnect;
$main::lxdebug->leave_sub();
my $arap = $form->{arap} eq "ar" ? "ar" : "ap";
my $query =
- qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, a.curr | .
+ qq|SELECT a.id, a.invnumber, a.transdate, a.amount, a.paid, cu.curr | .
qq|FROM $arap a | .
- qq|WHERE (a.${vc}_id = ?) AND (COALESCE(a.curr, '') = ?) AND NOT (a.amount = a.paid)| .
+ qq|LEFT JOIN currencies cu ON (cu.id=a.curr)| .
+ qq|WHERE (a.${vc}_id = ?) AND cu.curr = ? AND NOT (a.amount = a.paid)| .
qq|ORDER BY a.id|;
my $sth = prepare_execute_query($form, $dbh, $query,
conv_i($form->{"${vc}_id"}),
SELECT COUNT(*)
FROM $arap
WHERE (${vc}_id = ?)
- AND (COALESCE(curr, '') <> ?)
+ AND ((SELECT cu.curr FROM currencies cu WHERE cu.id=${arap}.curr) <> ?)
AND (amount <> paid)
SQL
($form->{openinvoices_other_currencies}) = selectfirst_array_query($form, $dbh, $query, conv_i($form->{"${vc}_id"}), "$form->{currency}");
qq| (c.link LIKE '%:AP:%')) |;
}
- my $paymentamount = $form->{amount};
-
- my $null;
- ($null, $form->{department_id}) = split(/--/, $form->{department});
- $form->{department_id} *= 1;
# query to retrieve paid amount
$query =
$form->{"due_$i"} = $form->parse_amount($myconfig, $form->{"due_$i"});
if ($form->{"checked_$i"} && $form->{"paid_$i"}) {
- $paymentamount = (($paymentamount * 1000) - ($form->{"paid_$i"} * 1000)) / 1000;
# get exchangerate for original
$query =
qq|SELECT $buysell | .
qq|FROM exchangerate e | .
qq|JOIN ${arap} a ON (a.transdate = e.transdate) | .
- qq|WHERE (e.curr = ?) AND (a.id = ?)|;
+ qq|WHERE (e.curr = (SELECT id FROM currencies WHERE curr = ?)) AND (a.id = ?)|;
my ($exchangerate) =
selectrow_query($form, $dbh, $query,
$form->{currency}, $form->{"id_$i"});
# /saving the history
}
}
-
my $rc;
- if ($form->round_amount($paymentamount, 2) < 0) {
- # Hier werden negativen Zahlungseingänge abgefangen
- # Besser: in Oberfläche schon prüfen
- # Zahlungsein- und ausgänge sind immer positiv
- $dbh->rollback;
- $rc = 0;
- }
- if ($form->round_amount($paymentamount, 2) == 0) {
+ # Hier wurden negativen Zahlungseingänge abgefangen
+ # da Zahlungsein- und ausgänge immer positiv sind
+ # Besser: in Oberfläche schon prüfen erledigt jb 10.2010
$rc = $dbh->commit;
- }
$dbh->disconnect;