$query = qq|UPDATE ap SET
invnumber = ?, transdate = ?, ordnumber = ?, vendor_id = ?, taxincluded = ?,
amount = ?, duedate = ?, paid = ?, netamount = ?,
- curr = ?, notes = ?, department_id = ?, storno = ?, storno_id = ?
+ curr = ?, notes = ?, department_id = ?, storno = ?, storno_id = ?,
+ globalproject_id = ?
WHERE id = ?|;
@values = ($form->{invnumber}, conv_date($form->{transdate}),
$form->{ordnumber}, conv_i($form->{vendor_id}),
$form->{netamount},
$form->{currency}, $form->{notes},
conv_i($form->{department_id}), $form->{storno},
- $form->{storno_id}, $form->{id});
+ $form->{storno_id}, conv_i($form->{globalproject_id}),
+ $form->{id});
do_query($form, $dbh, $query, @values);
# add individual transactions
$form->{payables} = $amount;
# add payment
+ my $gldate = (conv_date($form->{"gldate_$i"}))? conv_date($form->{"gldate_$i"}) : conv_date($form->current_date($myconfig));
$query =
- qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, source, memo, project_id, taxkey) | .
- qq|VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?, ?, | .
+ qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, source, memo, project_id, taxkey) | .
+ qq|VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?, ?, ?, | .
qq| (SELECT taxkey_id FROM chart WHERE accno = ?))|;
@values = ($form->{id}, $form->{"AP_paid_account_$i"}, $form->{"paid_$i"},
- conv_date($form->{"datepaid_$i"}), $form->{"source_$i"},
+ conv_date($form->{"datepaid_$i"}), $gldate, $form->{"source_$i"},
$form->{"memo_$i"}, $project_id, $form->{"AP_paid_account_$i"});
do_query($form, $dbh, $query, @values);
push(@values, $form->like($form->{vendor}));
}
if ($form->{department}) {
- my ($null, $department_id) = split /--/, $form->{department};
+ # ähnlich wie commit 0bbfb33b6aa8e38bb6c81d1684ab7d08e5b5c5af abteilung
+ # wird so nicht mehr als zeichenkette zusammengebaut
+ # hätte zu ee9f9f9aa4c3b9d5d20ab10a45c12bcaa6aa78d0 auffallen können ;-) jan
+ #my ($null, $department_id) = split /--/, $form->{department};
$where .= " AND a.department_id = ?";
- push(@values, $department_id);
+ push(@values, $form->{department});
}
if ($form->{invnumber}) {
$where .= " AND a.invnumber ILIKE ?";
$where .=
qq|AND ((a.globalproject_id = ?) OR EXISTS | .
qq| (SELECT * FROM invoice i | .
- qq| WHERE i.project_id = ? AND i.trans_id = a.id))|;
- push(@values, $form->{project_id}, $form->{project_id});
+ qq| WHERE i.project_id = ? AND i.trans_id = a.id) | .
+ qq| OR EXISTS | .
+ qq| (SELECT * FROM acc_trans at | .
+ qq| WHERE at.project_id = ? AND at.trans_id = a.id)| .
+ qq| )|;
+ push(@values, $form->{project_id}, $form->{project_id}, $form->{project_id});
}
if ($form->{transdatefrom}) {
$self->_delete_payments($form, $dbh);
# Save the new payments the user made before cleaning up $form.
- my $payments_re = '^datepaid_\d+$|^memo_\d+$|^source_\d+$|^exchangerate_\d+$|^paid_\d+$|^paid_project_id_\d+$|^AP_paid_\d+$|^paidaccounts$';
+ my $payments_re = '^datepaid_\d+$|^gldate_\d+$|^memo_\d+$|^source_\d+$|^exchangerate_\d+$|^paid_\d+$|^paid_project_id_\d+$|^AP_paid_\d+$|^paidaccounts$';
map { $payments{$_} = $form->{$_} } grep m/$payments_re/, keys %{ $form };
# Clean up $form so that old content won't tamper the results.
$form->{"AP_paid_$j"} = "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
$form->{"paid_$j"} = $form->{acc_trans}{$key}->[$i - 1]->{amount};
$form->{"datepaid_$j"} = $form->{acc_trans}{$key}->[$i - 1]->{transdate};
+ $form->{"gldate_$j"} = $form->{acc_trans}{$key}->[$i - 1]->{gldate};
$form->{"source_$j"} = $form->{acc_trans}{$key}->[$i - 1]->{source};
$form->{"memo_$j"} = $form->{acc_trans}{$key}->[$i - 1]->{memo};