X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAP.pm;h=cc7e06f94bacb4cd0700968f1f3baf3e6d8117fd;hb=a607a2d0854ef2b2e85bff4ab9657166236129c0;hp=53c1d2f5df4a742d79b7828c6f71575e8fa165c3;hpb=0a7acc87a3c4c016b324795c4c777643ee1517fc;p=kivitendo-erp.git diff --git a/SL/AP.pm b/SL/AP.pm index 53c1d2f5d..cc7e06f94 100644 --- a/SL/AP.pm +++ b/SL/AP.pm @@ -55,7 +55,6 @@ sub post_transaction { my $exchangerate = 0; $form->{defaultcurrency} = $form->get_default_currency($myconfig); - delete $form->{currency} unless $form->{defaultcurrency}; ($null, $form->{department_id}) = split(/--/, $form->{department}); @@ -164,28 +163,21 @@ sub post_transaction { do_query($form, $dbh, $query, $form->{id}); } else { - my $uid = rand() . time; - - $uid .= $form->{login}; - - $uid = substr($uid, 2, 75); + ($form->{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('glid')|); + $query = - qq|INSERT INTO ap (invnumber, employee_id) | . - qq|VALUES (?, (SELECT e.id FROM employee e WHERE e.login = ?))|; - do_query($form, $dbh, $query, $uid, $form->{login}); + qq|INSERT INTO ap (id, invnumber, employee_id,currency_id) | . + qq|VALUES (?, ?, (SELECT e.id FROM employee e WHERE e.login = ?), + (SELECT id FROM currencies WHERE name = ?) )|; + do_query($form, $dbh, $query, $form->{id}, $form->{invnumber}, $form->{login}, $form->{currency}); - $query = qq|SELECT a.id FROM ap a - WHERE a.invnumber = ?|; - ($form->{id}) = selectrow_query($form, $dbh, $query, $uid); } - $form->{invnumber} = $form->{id} unless $form->{invnumber}; - - $query = qq|UPDATE ap SET - invnumber = ?, transdate = ?, ordnumber = ?, vendor_id = ?, taxincluded = ?, + $query = qq|UPDATE ap SET invnumber = ?, + transdate = ?, ordnumber = ?, vendor_id = ?, taxincluded = ?, amount = ?, duedate = ?, paid = ?, netamount = ?, - curr = ?, notes = ?, department_id = ?, storno = ?, storno_id = ?, + currency_id = (SELECT id FROM currencies WHERE name = ?), notes = ?, department_id = ?, storno = ?, storno_id = ?, globalproject_id = ?, direct_debit = ? WHERE id = ?|; @values = ($form->{invnumber}, conv_date($form->{transdate}), @@ -371,7 +363,7 @@ sub post_transaction { $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, fx_transaction, cleared, project_id, taxkey, tax_id, chart_link) | . qq|VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, 't', 'f', ?, | . - qq| (SELECT taxkey_id FROM chart WHERE accno = ?)| . + qq| (SELECT taxkey_id FROM chart WHERE accno = ?),| . qq| (SELECT tax_id| . qq| FROM taxkeys| . qq| WHERE chart_id= (SELECT id | . @@ -491,6 +483,11 @@ sub ap_transactions { qq|LEFT JOIN payment_terms pt ON (pt.id = v.payment_id)|; my $where = ''; + + unless ( $::auth->assert('show_ap_transactions', 1) ) { + $where .= " AND NOT invoice = 'f' "; # remove ap transactions from Sales -> Reports -> Invoices + }; + my @values; if ($form->{vendor_id}) { @@ -666,7 +663,6 @@ sub post_payment { $form->{exchangerate} = $form->format_amount($myconfig, $form->{exchangerate}); $form->{defaultcurrency} = $form->get_default_currency($myconfig); - delete $form->{currency} unless $form->{defaultcurrency}; # Get the AP accno. $query = @@ -699,7 +695,7 @@ sub setup_form { my ($self, $form, $for_post_payments) = @_; my ($exchangerate, $i, $j, $k, $key, $akey, $ref, $index, $taxamount, $totalamount, $totaltax, $totalwithholding, $withholdingrate, - $taxincluded, $tax, $diff); + $tax, $diff); # forex $form->{forex} = $form->{exchangerate}; @@ -803,7 +799,6 @@ sub setup_form { } } - $form->{taxincluded} = $taxincluded if ($form->{id}); $form->{paidaccounts} = 1 if not defined $form->{paidaccounts}; if ($form->{taxincluded} && $form->{taxrate} && $totalamount) { @@ -879,4 +874,3 @@ sub storno { } 1; -