# connect to database, turn off autocommit
my $dbh = $provided_dbh ? $provided_dbh : $form->dbconnect_noauto($myconfig);
+ $form->{defaultcurrency} = $form->get_default_currency($myconfig);
my ($query, $sth, @values, $project_id);
my ($allocated, $taxrate, $taxamount, $taxdiff, $item);
my ($query, $sth, $ref, $q_invdate);
- $q_invdate = ", current_date AS invdate" unless $form->{id};
+ if (!$form->{id}) {
+ $q_invdate = qq|, COALESCE((SELECT transdate FROM ar WHERE id = (SELECT MAX(id) FROM ar)), current_date) AS invdate|;
+ if ($form->{vendor_id}) {
+ my $vendor_id = $dbh->quote($form->{vendor_id} * 1);
+ $q_invdate .=
+ qq|, COALESCE((SELECT transdate FROM ar WHERE id = (SELECT MAX(id) FROM ar)), current_date) +
+ COALESCE((SELECT pt.terms_netto
+ FROM vendor v
+ LEFT JOIN payment_terms pt ON (v.payment_id = pt.id)
+ WHERE v.id = $vendor_id),
+ 0) AS duedate|;
+ }
+ }
# get default accounts and last invoice number
foreach my $table_column (qw(p.partnumber p.description pg.partsgroup)) {
my $field = (split m{\.}, $table_column)[1];
next unless $form->{"${field}_${i}"};
- $where .= " AND lower(${table_column}) LIKE ?";
+ $where .= " AND lower(${table_column}) LIKE lower(?)";
push @values, '%' . $form->{"${field}_${i}"} . '%';
}
my (%payments, $old_form, $row, $item, $query, %keep_vars);
-
- my @prior;
- push @prior, selectall_hashref_query($form, $dbh, qq|SELECT id, paid, datepaid FROM ap WHERE id = ?|, $form->{id});
- push @prior, selectall_hashref_query($form, $dbh, qq|SELECT * FROM acc_trans WHERE trans_id = ? ORDER BY oid|, $form->{id});
-
-
-
-
$old_form = save_form();
# Delete all entries in acc_trans from prior payments.
restore_form($old_form);
- my @after;
- push @after, selectall_hashref_query($form, $dbh, qq|SELECT id, paid, datepaid FROM ap WHERE id = ?|, $form->{id});
- push @after, selectall_hashref_query($form, $dbh, qq|SELECT * FROM acc_trans WHERE trans_id = ? ORDER BY oid|, $form->{id});
-
- foreach my $rows (@prior, @after) {
- map { delete @{$_}{qw(itime mtime)} } @{ $rows };
- }
-
- map { $main::lxdebug->dump_sql_result(0, 'davor ', $_) } @prior;
- map { $main::lxdebug->dump_sql_result(0, 'danach', $_) } @after;
-
- my $rc = 1;
my $rc = $dbh->commit();
$dbh->disconnect();